24小时热门版块排行榜    

CyRhmU.jpeg
查看: 559  |  回复: 0

狂奔大蜗牛

新虫 (初入文坛)

[求助] 使用matlab进行Newton-Raphson迭代是出现虚数的问题

首先说明,我是利用牛顿迭代法求解非线性方程组。所涉及的关键代码如下:
sta_fir=Fa+F0-sum(sta_Kn.*deltan.^(1.5).*sina);
sta_sec=Fr-sum(sta_Kn.*deltan.^(1.5).*(cos(phai)).*cosa);
sta_thir=M-dm/2*sum(sta_Kn.*deltan.^(1.5).*cos(phai).*sina);
static=[sta_fir;sta_sec;sta_thir];
。。。
findsym(static);
findsym(sina);
[gen,n]=Newtonraphson(static,x0);
但是在实际运行的时候因为方程组中1.5次方的缘故会导致迭代出现负数,产生一系列后果。
我在调试中尝试过将方程在牛顿迭代函数中重新定义并添加判断来消除负数,但是这样又会导致原方程组Jacobi矩阵改变,进而出现不收敛的情况。
因此特来此求助,希望有高手能告知妥善的解决方法,不胜感激。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 狂奔大蜗牛 的主题更新
信息提示
请填处理意见