高分悬赏 MATLAB:??? Input argument "x" is undefined.

f02.m————这个改名为systemEqns,函数名最好和文件名一样
function [f,J] = systemEqns(x)

newton_syst(f02,x,100,1e-10,1e-10)
把f02改为@systemEqns 你传递的是函数,不是函数运算出来的值

改好后即可运行了,当然又会出现些其它错误,你自己继续处理好了。
________________________________
算了,我还是讲出来吧
xnew = x-J\f;
改为
xnew = x-(J\f)';
老实说我是不知道你的算法,数学没学好啊。不知道以下是不是你要的结果:

m=[1;1];
newton_syst('systemEqns',m,100,1e-10,1e-10)
iteration |X_n - X_n-1| |f(X_n)|
0 100.00000000000000 2.00000000000000
1 1.16666666666667 1.38888888888889
2 0.31410256410256 0.09893819855358
3 0.02662807204330 0.00070908314388
4 0.00019416184600 0.00000003769882
5 0.00000001032425 0.00000000000000

ans =

1.8257
0.8165

其实很简单,主要是你忘了句柄了,写成‘newton_syst(‘f02’,x,100,1e-10,1e-10)’即可,还有因为程序里面进行了转置处理,所以输入因该是行向量才是,即‘x=[1 1]’


OPJPPJPJPJPJP549856