MATLAB用fsolve函数解非线性方程总出现输入参数数目不足的提示是什么原因?
方程组为F1=((A1-x)-B1*(C1-y))/(D1*z)+w;F2=((A2-x)-B2*(C2-y))/(D2*z)+w;F3=((A3-x)-B3*(C3-y...
方程组为F1=((A1-x)-B1*(C1-y))/(D1*z)+w;F2=((A2-x)-B2*(C2-y))/(D2*z)+w;F3=((A3-x)-B3*(C3-y))/(D3*z)+w;F4=((A4-x)-B4*(C4-y))/(D4*z)+w,其中x,y,z,w是未知量,其余都是已知量。
MATLAB中的.m内容为
function f=myfun(x)
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)];
使用您的程序为什么我计算出来的x值和您的不一样呢? 展开
MATLAB中的.m内容为
function f=myfun(x)
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)];
使用您的程序为什么我计算出来的x值和您的不一样呢? 展开
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)
更多追问追答
追答
这个跟初值有关,x0
追问
初值跟您设置的一样
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询