CyRhmU.jpeg
查看: 1870  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

mickk

铁杆木虫 (职业作家)

[交流] 【求助】求解非线性方程已有5人参与

非线性方程,困扰多日,求教

x(kk+i (d-i*(abs(x))^2))-E=0  (1)
x为待求未知量,i为单位复数,abs 为求模,其余kk,d,E为已知量。本人用mathematica直接用Solve求解,求得三个解,但是三个解代入数据,再代回方程(1)验证不对。百思不得其解。请教各位原因是什么?另外是否有其他更好的方法?

[ Last edited by mickk on 2010-4-18 at 20:24 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)

★ ★ ★
余泽成(金币+1):谢谢应助! 2010-04-19 21:46
mickk(金币+10):非常感谢,发给我看看 2010-04-20 07:24
wangen994(金币+2):感谢参与应助,活动期间额外奖励 2010-04-20 08:51
应该只是一个2次方程啊。不会这么难啊。
你给一组参数我看看。

我也解出3个根,太长了。可能和你的一样。
3楼2010-04-19 20:31:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

mickk

铁杆木虫 (职业作家)

顶上去,同志们请帮忙呀
2楼2010-04-19 17:38:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mickk

铁杆木虫 (职业作家)

相关数据:kk=1350884.77611542
d=2330000.00000000
E=315995559476.732

请holmescn  验证,我的邮箱xwmi@yahoo.com.cn
4楼2010-04-20 07:32:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

resonant

木虫 (正式写手)

独自为政

mickk(金币+9):非常感谢 2010-04-21 21:24
引用回帖:
Originally posted by mickk at 2010-04-18 20:21:37:
非线性方程,困扰多日,求教

x(kk+i (d-i*(abs(x))^2))-E=0  (1)
x为待求未知量,i为单位复数,abs 为求模,其余kk,d,E为已知量。本人用mathematica直接用Solve求解,求得三个解,但是三个解代入数据,再代 ...

不知道楼主用的什么版本的?
我用5.2

Reduce[x*(1350884.77611542+I*(2330000.00000000-I*(Abs[x]^2)))-315995559476.732==0]

x*(1350884.77611542+I*(2330000.00000000-I*(Abs[x]^2)))-315995559476.732/.{x->Part[%,2]}

这样你起码可以解出一个解:
x == 6733.97- 335.191 I

带入验证得:
-0.0000610352 + 0. I
基本是正确的。


Solve和NSolve在求解的过程当中往往会调用反函数,导致可能解不正确或者丢根。
当然Reduce也有可能有这种错误发生。
一般这类问题求解最好是画出函数曲线用FindRoot搞定,但是由于你用了复变量,所以常规方法好像不大好办。上面的只能算是一种将就的办法。由于版本7我没有用过,所以不好说它的Reduce是否有改进,不过你或许可以再试试看它是不是可以一次性解决这个问题——即是否存在多个根。

其实你可以把这个方程分成实部虚部两个方程联立来解,不过就是变成x+yI。这样两个变量(x,y)的联立方程组,应该可以解出来的。

[ Last edited by resonant on 2010-4-20 at 12:27 ]
交朋识友,猛搞科研。两手抓,两手都要硬。
5楼2010-04-20 12:12:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见