matlab中fminimax函数问题!

问题描述:

matlab中fminimax函数问题!
程序代码是:
x0=[0.01;0.01;0.01;0.01;0.01];
s=0.5;
LB=zeros(5,1);
A=[-0.05,-0.27,-0.19,-0.185,-0.185];
b=100;
Aeq=[1,1.01,1.02,1.045,1.065];
beq=1;
[x,q]=fminimax(@ourfun,x0,A,b,Aeq,beq,LB);
outfun.m
是:
function f=ourfun(x,s)
f(1)=s*0*x(1)-(1-s)*[0.05*x(1)+0.27*x(2)+0.19*x(3)+0.185*x(4)+0.185*x(5)];
f(2)=s*0.025*x(2)-(1-s)*[0.05*x(1)+0.27*x(2)+0.19*x(3)+0.185*x(4)+0.185*x(5)];
f(3)=s*0.015*x(3)-(1-s)*[0.05*x(1)+0.27*x(2)+0.19*x(3)+0.185*x(4)+0.185*x(5)];
f(4)=s*0.055*x(4)-(1-s)*[0.05*x(1)+0.27*x(2)+0.19*x(3)+0.185*x(4)+0.185*x(5)];
f(5)=s*0.026*x(5)-(1-s)*[0.05*x(1)+0.27*x(2)+0.19*x(3)+0.185*x(4)+0.185*x(5)];
为啥主函数里的s的值带不到ourfun里呢?
报错是:
Input argument "s" is undefined.
Error in ==> ourfun at 3
f(1)=s*0*x(1)-(1-s)*[0.05*x(1)+0.27*x(2)+0.19*x(3)+0.185*x(4)+0.185*x(5)];
Error in ==> fminimax at 365
user_f = feval(funfcn{3},x,varargin{:});
1个回答 分类:综合 2014-10-29

问题解答:

我来补答
[x,q]=fminimax(@(x) ourfun(x,s),x0,A,b,Aeq,beq,LB)
再问: 大神。。。可以了。。。。能不能问一下为什么要这么改?是因为fminimax函数的关系?还是所有类似的matlab函数应用都要这样?
再答: 貌似fminimax函数只能对“单变量”的函数起作用。 类似的matlab优化函数都可用这种方式。
 
 
展开全文阅读
剩余:2000
上一页:求形状的题不会