查看: 6576|回復: 6|關注: 0
打印 上一主題 下一主題

快乐扑克3快乐彩: [已解決] fsolve求解大型非線性方程組

[復制鏈接]

新手

9 麥片

財富積分


快乐扑克3如何跟对子 www.vqxik.tw 050


10

主題

26

帖子

0

最佳答案
跳轉到指定樓層
1#
各位大神好,小弟想寫了一個計算程序求解一個大型的非線性方程組。其代碼形式大概如下:
  • for in = 1:n
  •     eval(['p' num2str(in) '=0;']);
  •     for ix = 1:in
  •         eval(['syms x' num2str(ix) ';']);
  •         eval(['p' num2str(in) '= p' num2str(in) '+' num2str(in+1-ix) '*(x' num2str(ix) '+' num2str(ix) ')^2' ';']);
  •         eval(['equ{' num2str(in) '}=char(p' num2str(in) ');'])
  •     end
  •     equ{in} = ['p' num2str(in) '=' equ{in}];
  • end
  • solve(equ{:})

如果n很大的情況下,方程越來越大,equ{:}也越來越復雜,solve求得的解就不合理了。小弟只能將equ{n}內的方程拷貝出來做M成文件,用Fsolve來求解。但是如果我要對不同的參數運算多次,這樣以來就要多次做M文件用solve求解,其過程太繁瑣了工作量很大,能不能用matlab內的命令來實現做M文件并用fsolve求解的過程?求大神們指教。

論壇優秀回答者

1

主題

9787

帖子

1470

最佳答案
  • 關注者: 341
2#
發表于 2014-1-14 10:15:46 | 只看該作者 |此回復為最佳答案
你這個方程如果過令yi = (xi+i)^2,i = 1,2,...,n,則可以轉化成一個線性方程Ay=P
A可以很容易構造:
warning('off','MATLAB:toeplitz:DiagonalConflict')
A = toeplitz(1:n,zeros(1,n));
對于已知的列向量P,可以直接求解:
y = A\p;
由于每一個yi在復數范圍開平方都有兩解,所以方程應該有2^n組解,其中一組是:
sqrt(y) - (1:n).'

新手

9 麥片

財富積分


050


10

主題

26

帖子

0

最佳答案
3#
 樓主| 發表于 2014-1-14 10:20:59 | 只看該作者
kaaaf123 發表于 2014-1-14 10:15
你這個方程如果過令yi = (xi+i)^2,i = 1,2,...,n,則可以轉化成一個線性方程Ay=P
A可以很容易構造:
warning ...

謝謝你的回復,我給出的方程組只是一個大致的形式。真正的方程組遠比這個復雜得多,可能不好轉換成線性方程,所以才想通過fsolve來求解??!不知道能不能通過matlab語言自動生動M函數并用fsolve求解??!

論壇優秀回答者

1

主題

9787

帖子

1470

最佳答案
  • 關注者: 341
4#
發表于 2014-1-14 11:04:37 | 只看該作者
djxurui 發表于 2014-1-14 10:20
謝謝你的回復,我給出的方程組只是一個大致的形式。真正的方程組遠比這個復雜得多,可能不好轉換成線性方 ...

matlabFunction可以把符號表達式轉化成matlab函數
不過你既然打算用fsolve解,就不要再用符號函數了,而建議你直接構建matlab函數
就像我2L的過程中,建立A的過程就沒有用到符號計算,對于你的函數雖然可能方法不一樣或者更復雜一些,但是同樣可以不用符號計算

新手

9 麥片

財富積分


050


10

主題

26

帖子

0

最佳答案
5#
 樓主| 發表于 2014-1-14 14:14:28 | 只看該作者
kaaaf123 發表于 2014-1-14 11:04
matlabFunction可以把符號表達式轉化成matlab函數
不過你既然打算用fsolve解,就不要再用符號函數了,而 ...

你好,你說的matlab函數是指M函數嗎??

論壇優秀回答者

1

主題

9787

帖子

1470

最佳答案
  • 關注者: 341
6#
發表于 2014-1-14 14:44:39 | 只看該作者
djxurui 發表于 2014-1-14 14:14
你好,你說的matlab函數是指M函數嗎??

是的,也包括匿名函數

新手

9 麥片

財富積分


050


10

主題

26

帖子

0

最佳答案
7#
 樓主| 發表于 2014-1-14 14:52:46 | 只看該作者
kaaaf123 發表于 2014-1-14 14:44
是的,也包括匿名函數

哦好,謝謝了,我再研究研究?。?!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

關閉

站長推薦上一條 /4 下一條

快速回復 快乐扑克3如何跟对子 返回列表