matlab如何求解下列多元一次方程,程序及运行结果。

来源:百度知道 编辑:UC知道 时间:2024/06/21 02:30:49
1+d+(N-2)*1+f=280
g=5580/1.2+(d+0.5)*7200/0.6+3600/1.2+40*d/1.2+(5580-40*d)/1.2;
h=7200*e/0.6+40*e/1.2+5600/1.2;
i=(5580-40*f)/1.2+(f+0.5)*7200/0.6+3600/1.2+20/1.2+40*f/1.2;
j=h=i<=172800
N,d,e,f均取整数,求N最小值及d,e,f,g,h,i值
请附原始程序及matlab运行结果。
第一行应为1+d+(N-2)*e+f=280
第二行g=5580/1.2+(d+0.5)*7200/0.6+40*d/1.2+(5620+40*d)/1.2-2(20d+根号下(1000*1000-1600d*d))/1.2+6000
第四行i=(5580-40*f)/1.2+f*7200/0.6+3600/1.2+20/1.2+40*f/1.2+400/0.6+3200/1.2

你这个应当会有问题。
全是整数。你的方程里面g是含有根号的。一开方,得到的极有可能是无理数,而你的有理式,要跟它相等,好像有点勉强。

程序大致如下。但是我没有得到解。
第1步.目标函数
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=zhidao_bnb20_NGZHUMENG_opt(x)
%%d,e,f,N分别用x(1),x(2),x(3),x(4)代替
y=x(4);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

第2步.约束条件
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [c,ceq]=zhidao_bnb20_NGZHUMENG_con(x)
%%d,e,f,N分别用x(1),x(2),x(3),x(4)代替
d=x(1);
e=x(2);
f=x(3);
N=x(4);

%g=5580/1.2+(d+0.5)*7200/0.6+3600/1.2+40*d/1.2+(5580-40*d)/1.2;
g=5580/1.2+(d+0.5)*7200/0.6+40*d/1.2+(5620+40*d)/1.2-2*(20*d+sqrt(1000*1000-1600*d*d))/1.2+6000;
h=7200*e/0.6+40*e/1.2+5600/1.2;
%i=(5580-40*f)/1.2+(f+0.5)*7200/0.6+3600/1.2+20/1.2+40*f/1.2;
i=(5580-40*f)/1.2+f*7200/0.6+3600/1.2+20/1.2+40*f/1.2+400/0.6+3