看板 MATLAB 關於我們 聯絡資訊
如: A=@(x1) (1+2i)*sin((3+4i)*x1); fsolve(A,1) ans = 0.3770 - 0.5027i 以上是用Matlab求解 我另外用Mathematica的內建數值方法指令FindRoot求解,解完全跟Matlab一樣 目前有學到牛頓法、二分法......等 但是都只會用在實數係數的方程式,請問複數係數的方程式要如何使用數值方法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.253
candy88257:另外問一下,牛頓法跟正割法會推薦正割法嗎? 01/20 11:06
candy88257:因為牛頓法要對方程式微分,有些方程式相當複雜,微分 01/20 11:06
candy88257:很耗時間。 01/20 11:07
candy88257:還有,上面那個方程式求初始值為100的時候,fsolve無解 01/20 11:42
candy88257:正割法卻求出有解,ans=35.8142 -47.7522i 01/20 11:44
candy88257:牛頓法求出來的解分正割法一樣 01/20 11:45
alamabarry:我想最大問題應該在於~複數沒有勘根定理~~ 01/20 18:19
alamabarry:除非你可以嚴格證明 或是去控制你的方程式變成實係數 01/20 18:20
alamabarry:否則就只能用絕對值最小值去解出"可能"解 01/20 18:20
alamabarry:如果你是實數方程解複數根~~那就muller's method試試 01/20 18:21
candy88257:感謝!!!我現在就是用絕對值取最小值,但是把最小值代回 01/20 20:16
candy88257:去取絕對值,會發現絕對值會離0很遠...,而且取特徵值 01/20 20:17
candy88257:也離0很遠...,雖然相對其它特徵值而言,是算非常接近 01/20 20:18
candy88257:0,如特徵值為:[1e10,1e8,1e5,1e2],最後一個就離0相對 01/20 20:18
candy88257:接近很多,不曉得這樣算會準確嗎? 01/20 20:19
vaakaa:解complex root的paper還蠻多的歐 有興趣可以google zanly 01/20 20:20
candy88257:感謝各位!!! 01/21 18:52