MATLAB为什么总是提示输入的参数数目不足
请各位大神帮忙解答,不胜感激function[y1,y2]=funcn1(x1,x2)if(0<x1&x1<=4)y1=5000*x1;elseif(x1<=10)y1=...
请各位大神帮忙解答,不胜感激
function [y1,y2]=funcn1(x1,x2)
if (0<x1&x1<=4)
y1=5000*x1;
else
if(x1<=10)
y1=4000+4000*x1;
else
y1=9000+3500*x1;
end
end
s=0;
for i=1:1:x1-x2./50
s=10.*i+5.*i.*i+s;
end
y2=5000./x1+x2.*x2./(50*x1)+y1./x1+s./x1;
然后在命令窗口输入
x1=0:1:20;
>> x2=0:1:200;
>> [x,fval]=fminsearch('funcn1',[1,1])
为什么总是显示
错误使用 funcn1 (line 12)
输入参数的数目不足。
出错 fminsearch (line 190)
fv(:,1) = funfcn(x,varargin{:}); 展开
function [y1,y2]=funcn1(x1,x2)
if (0<x1&x1<=4)
y1=5000*x1;
else
if(x1<=10)
y1=4000+4000*x1;
else
y1=9000+3500*x1;
end
end
s=0;
for i=1:1:x1-x2./50
s=10.*i+5.*i.*i+s;
end
y2=5000./x1+x2.*x2./(50*x1)+y1./x1+s./x1;
然后在命令窗口输入
x1=0:1:20;
>> x2=0:1:200;
>> [x,fval]=fminsearch('funcn1',[1,1])
为什么总是显示
错误使用 funcn1 (line 12)
输入参数的数目不足。
出错 fminsearch (line 190)
fv(:,1) = funfcn(x,varargin{:}); 展开
1个回答
展开全部
有点乱七八糟,你要优化得到x1,x2,你这样输入是没用的。首先你应该把函数的输入写成向量
y = funcn1(x),在函数里令x1 = x(1),x2=x(2),然后继续计算;其次要优化的函数只能有一个值,不能有y1,y2,看起来y2是个向量,你要确定使y1最小还是y2最小。最后,你的y2为什么是个向量呢,向量的值没法最小化。
命令窗口直接
[x,fval]=fminsearch(@(x) funcn1(x),[1,1]),其它的不要。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询