MATLAB用fsolve函数解非线性方程总出现输入参数数目不足的提示是什么原因?

2025-05-11 06:40:07
推荐回答(1个)
回答(1):

在myfun(x)函数中的A1、B1、C1、D1、F1、。。。、A4、B4、C4、D4、F4应为具体的数值,这样才能计算。例如:

function f=myfun(x)

A1=5;A2=10;A3=15;A4=20;

B1=5;B2=10;B3=15;B4=20;

C1=5;C2=10;C3=15;C4=20;

D1=5;D2=10;D3=15;D4=20;

F1=5;F2=10;F3=15;F4=20;

f(1)=F1-((A1-x(1))-B1*(C1-x(2)))/(D1*x(3))-x(4);

f(2)=F2-((A2-x(1))-B2*(C2-x(2)))/(D2*x(3))-x(4);

f(3)=F3-((A3-x(1))-B3*(C3-x(2)))/(D3*x(3))-x(4);

f(4)=F4-((A4-x(1))-B4*(C4-x(2)))/(D4*x(3))-x(4);

f=[f(1);f(2);f(3);f(4)];

end

执行下列程序后,可以得到

x0=rand(1,4)

x=fsolve(@myfun,x0)