牛顿法求解非线性方程组 matlab编程 以下是我写的程序,但是有错误.

问题描述:

牛顿法求解非线性方程组 matlab编程 以下是我写的程序,但是有错误.
function y=fc(x)
y(1)=(x(1))*(x(1))+exp(-(x(2)))-10;
y(2)=(x(1))*(x(2))-5;
y=[y(1) y(2)];
function y=df2(x)
y=[2*(x(1)) (-exp(-(x(2))));x(2) x(1)];
function y=newtoneqs(x0)
x1=x0-fc(x0)*inv(df2(x0));
n=1;
while(norm(x1-x0)>=1.0e-6)&&(n fc at 2
y(1)=(x(1))*(x(1))+exp(-(x(2)))-10;
为什么还要定义x?我看了别人编写的,都没有定义x.
求解答. nuohou18这个人别乱回答.
1个回答 分类:综合 2014-12-10

问题解答:

我来补答
是这个样子的,你应该是直接运行的m文件当然提示你x没有定义了
可以在命令行输入x0=...;newtoneqs(x0);就可以了
提示一下,如果你者几个函数放在一个m文件中,应该是newtoneqs(x0);这个函数放在最上面才可以,上面的顺序是不对的.如果是三个m文件就不用改了
再问: 现在问题是这样子的,依然是两组二元方程组,利用牛顿法求。但是这两个方程是有求和公式的,即是含有数据的。那么怎么更加方便的用matlab编辑呢?
再答: 如果导数信息可以表示出来的话一样可以求解的 m=[];数据 y(1)=f(m).... dy(1)=f(m) 牛顿法使用于导数已知的情况,如果不知道公式挺复杂可以利用其他方法求解 单纯形法,或者遗传算法等
 
 
展开全文阅读
剩余:2000