求解非线性方程组出现NAN的值如何解决
我采用了newton迭代法求解下面的非线性方程组,但是求解结果出现
x1 =
NaN +
NaNi
NaN +
NaNi
NaN +
NaNi
NaN +
NaNi
不知道如何解决,请教各位高手,谢谢了!
[ 本帖最后由 eight 于 2008-5-4 21:26 编辑 ]
回复 楼主 的帖子
你啥都没有,别人怎么看呢:@L 你一个方程怎么能求出四个未知数来呢应该找到四个方程来求那四个未知数
求助:求解值为NAN如何解决(迭代求解非线性方程组的问题)
我采用了newton迭代法求解下面的非线性方程组,但是求解结果出现x1 =
NaN +
NaNi
NaN +
NaNi
NaN +
NaNi
NaN +
NaNi
不知道如何解决,请教各位高手,谢谢了!
昨天没有发好帖子,不好意思,还请各位老大帮忙!再次感谢!
采用计算:
x=newtonpro()
其中,为迭代初值
原函数文件:
function y=f(x)
y(1)=x(1)*0.0563^x(2)+x(3)*log(1+x(4)*3594.1)-179.44;
y(2)=x(1)*0.1687^x(2)+x(3)*log(1+x(4)*5338.3)-306.19;
y(3)=x(1)*0.2543^x(2)+x(3)*log(1+x(4)*4176.4)-362.97;
y(4)=x(1)*0.3223^x(2)+x(3)*log(1+x(4)*3437.1)-384.78;
导函数文件:
function y=df(x)
y=[0.0563^x(2) x(1)*x(2)*0.0563^(x(2)-1) log(1+x(4)*3594.1) 3594.1*x(3)/(1+x(4)*3594.1);
0.1687^x(2) x(1)*x(2)*0.1687^(x(2)-1) log(1+x(4)*5338.3) 5338.3*x(3)/(1+x(4)*5338.3);
0.2543^x(2) x(1)*x(2)*0.2543^(x(2)-1) log(1+x(4)*4176.4) 4176.4*x(3)/(1+x(4)*4176.4);
0.3223^x(2) x(1)*x(2)*0.3223^(x(2)-1) log(1+x(4)*3437.1) 3437.1*x(3)/(1+x(4)*3437.1)]
newton算法文件:
function y=newtonpro(x0)
x1=x0-f(x0)/df(x0);
n=1;
while(norm(x1-x0)>=1.0e-6)&(n<=1000)
x0=x1;
x1=x0-f(x0)/df(x0);n=n+1;
end;
x1
n
[ 本帖最后由 fengli84921 于 2008-5-4 09:07 编辑 ]
页:
[1]