为什么matlab求解非线性方程组,解出现负值?
从题主给出的程序代码,经分析和运行,在x=5的地方出现分叉的原因是迭代方程书写有错误,即x1处应为1-x1
错误的语句,fx2=(exp(-c*(1-ks)*x1*t))*t^(-1/ks)
更改的语句,fx2=(exp(-c*(1-ks)*(1-x1)*t))*t^(-1/ks)
还有有几个值得商榷:
1、从你的图形范围来看,用x0=[0.5,0.5]是否有点大,但对本题影响不是太大,可以考虑用x0=[0.05,0.05]
2、用integral积分函数,是可以用inf来表示的,这里有四处可以改为
Snd1(i)=integral(fnd_1,1,inf)
Snd2(i)=integral(fnd_2,1,inf)
S1=integral(f1,1,inf)
S2=integral(f2,1,inf)
3、更改后运行,其结果与你的期望值相符。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)