作者candy88257 (阿泰斯)
看板MATLAB
标题[讨论] 使用"数值方法"求解"复数方程式"?
时间Mon Jan 20 10:57:38 2014
如:
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
1F:→ candy88257:另外问一下,牛顿法跟正割法会推荐正割法吗? 01/20 11:06
2F:→ candy88257:因为牛顿法要对方程式微分,有些方程式相当复杂,微分 01/20 11:06
3F:→ candy88257:很耗时间。 01/20 11:07
4F:→ candy88257:还有,上面那个方程式求初始值为100的时候,fsolve无解 01/20 11:42
5F:→ candy88257:正割法却求出有解,ans=35.8142 -47.7522i 01/20 11:44
6F:→ candy88257:牛顿法求出来的解分正割法一样 01/20 11:45
7F:推 alamabarry:我想最大问题应该在於~复数没有勘根定理~~ 01/20 18:19
8F:→ alamabarry:除非你可以严格证明 或是去控制你的方程式变成实系数 01/20 18:20
9F:→ alamabarry:否则就只能用绝对值最小值去解出"可能"解 01/20 18:20
10F:→ alamabarry:如果你是实数方程解复数根~~那就muller's method试试 01/20 18:21
11F:→ candy88257:感谢!!!我现在就是用绝对值取最小值,但是把最小值代回 01/20 20:16
12F:→ candy88257:去取绝对值,会发现绝对值会离0很远...,而且取特徵值 01/20 20:17
13F:→ candy88257:也离0很远...,虽然相对其它特徵值而言,是算非常接近 01/20 20:18
14F:→ candy88257:0,如特徵值为:[1e10,1e8,1e5,1e2],最後一个就离0相对 01/20 20:18
15F:→ candy88257:接近很多,不晓得这样算会准确吗? 01/20 20:19
16F:→ vaakaa:解complex root的paper还蛮多的欧 有兴趣可以google zanly 01/20 20:20
17F:→ candy88257:感谢各位!!! 01/21 18:52