哪错了?MATLAB 解非线性规划的程序是一个求非线性规划的程序function f=myfun(u)f=50*(abs(u(3))+abs(u(17))+abs(u(29)))+200*(abs(u(5))+abs(u(19))+abs(u(31)));float u[1][37];A=[0 0 1 0 0 0 0 -1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
哪错了?MATLAB 解非线性规划的程序是一个求非线性规划的程序function f=myfun(u)f=50*(abs(u(3))+abs(u(17))+abs(u(29)))+200*(abs(u(5))+abs(u(19))+abs(u(31)));float u[1][37];A=[0 0 1 0 0 0 0 -1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
哪错了?MATLAB 解非线性规划的程序
是一个求非线性规划的程序
function f=myfun(u)
f=50*(abs(u(3))+abs(u(17))+abs(u(29)))+200*(abs(u(5))+abs(u(19))+abs(u(31)));
float u[1][37];
A=[0 0 1 0 0 0 0 -1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 -1 1 1 1 0 0 0 0 0 1 0 0 0 -1 -1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 -1 1 1 1 0 0 0 0 0 1 0 0 0 -1 -1 -1 1 0 0 0 0 1 0 0 1 -1 -1 1 0 0;
0 0 0 1 0 0 0 0 0 -1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 1 0 0 0 0 0 -1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 ;
0 0 0 1 0 0 0 0 0 -1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 -1 0 -1 0 0 0 1 1;
-1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
-1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0 1 1 -1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
-1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0 -1 1 -1 -1 1 0 0 0 0 0 0 0 1 1 -1 1 1 0 0 0 0 0 0;
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ;
0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0;
1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 -1 0];
b=[-40 -90 -50 -10 10 -10 -30 -60 -10 80 130 190 -30 -10 20 70 80 40 -40 -100 -100 -40 -50 -60];
lb=[0;-40;-30;-20;0;40;0;0;-10;-20;0;0;0;0;0;0;-50;-20;0;0;0;0;-20;0;0;0;0;0;-30;-30;0;-30;0;0;0;0;0];
u0=[30;-20;0;0;20;50;0;50;0;0;30;20;30;40;0;30;0;0;20;5;20;10;0;20;5;0;30;30;0;0;20;0;30;20;20;20;20];
Aeq=[]; Beq=[];ub=[];
[u,fval]=fmincon(fun,u0,A,b,Aeq,Beq,lb,ub)
下面是系统提示的问题,看不懂.
The string being specified was neither 'single' nor 'double'
Input argument "u" is undefined.
Error in ==> fun
这个规划的目标函数含绝对值,约束为线性的,变量比较多.小女子万分感谢!
哪错了?MATLAB 解非线性规划的程序是一个求非线性规划的程序function f=myfun(u)f=50*(abs(u(3))+abs(u(17))+abs(u(29)))+200*(abs(u(5))+abs(u(19))+abs(u(31)));float u[1][37];A=[0 0 1 0 0 0 0 -1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
先把下面语句保存为myfun.m
function [u,fval]=myfun
A=[0 0 1 0 0 0 0 -1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 -1 1 1 1 0 0 0 0 0 1 0 0 0 -1 -1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 -1 1 1 1 0 0 0 0 0 1 0 0 0 -1 -1 -1 1 0 0 0 0 1 0 0 1 -1 -1 1 0 0;
0 0 0 1 0 0 0 0 0 -1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 1 0 0 0 0 0 -1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 ;
0 0 0 1 0 0 0 0 0 -1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 -1 0 -1 0 0 0 1 1;
-1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
-1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0 1 1 -1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
-1 -1 -1 -1 1 0 0 0 0 0 0 0 0 0 -1 1 -1 -1 1 0 0 0 0 0 0 0 1 1 -1 1 1 0 0 0 0 0 0;
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ;
0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0;
1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 -1 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 -1 0];
b=[-40 -90 -50 -10 10 -10 -30 -60 -10 80 130 190 -30 -10 20 70 80 40 -40 -100 -100 -40 -50 -60];
lb=[0;-40;-30;-20;0;40;0;0;-10;-20;0;0;0;0;0;0;-50;-20;0;0;0;0;-20;0;0;0;0;0;-30;-30;0;-30;0;0;0;0;0];
u0=[30;-20;0;0;20;50;0;50;0;0;30;20;30;40;0;30;0;0;20;5;20;10;0;20;5;0;30;30;0;0;20;0;30;20;20;20;20];
Aeq=[]; Beq=[];ub=[];
[u,fval]=fmincon(@fun,u0,A,b,Aeq,Beq,lb,ub);
function f=fun(u)
f=50*(abs(u(3))+abs(u(17))+abs(u(29)))+200*(abs(u(5))+abs(u(19))+abs(u(31)));
然后在command window里写
[u,fval]=myfun