使用matlab的fsolve函数,首先需要写一个m文件来描述非线性方程组,比如
function eq=nxxf(x)
global number;
number=number+1
eq(1) = x(1)*normcdf(x(3),0,1)-80120231*normcdf(x(4),0,1)*exp(-0.02)-595042771.7;
eq(2) = (log(x(1)/80120231)+0.02+0.5*(x(2)^2))/x(2)-x(3);
eq(3) = x(3)-x(2)-x(4);
eq(4) = (normcdf(x(3),0,1)*x(1)*x(2))/595042771.7-0.0475;
其中每个方程都是移项后一边为0后,另外一边的式子。
然后在matlab命令窗口输入
global number;
number=0;
y=fsolve('nxxf',[1,1,1,1])
number
其中fsolve函数第一个参数就是非线性方程组的函数,第二个是初始点,将输出结果和迭代步数