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值和您的不一样呢?
展开
 我来答
噜噜晗寶
2018-03-01 · TA获得超过462个赞
知道小有建树答主
回答量:295
采纳率:87%
帮助的人:82万
展开全部

在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
追问
初值跟您设置的一样
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式