function f=fun1(x);
f=x.^2+8;
function [g,h]=fun2(x);
g=[-x(1)^2+x(2)-x(3)^2
x(1)+x(2)^2+x(3)^3-20];
h=[-x(1)-x(2)^2+2
x(2)+2*x(3)^-3];
[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[],'fun2')
你好,这个有两种方法解决,第一种是写成多个文件,即
fun1.m文件里面有
function f=fun1(x);
f=x(1)^2+x(2)^2+x(3)^2+8;
end
fun2.m文件里面有
function [g,h]=fun2(x);
g=[-x(1)^2+x(2)-x(3)^2
x(1)+x(2)^2+x(3)^3-20];
h=[-x(1)-x(2)^2+2
x(2)+2*x(3)^-3];
end
然后main.m文件里面有
[x,y]=fmincon(@fun1,rand(3,1),[],[],[],[],zeros(3,1),[],@fun2)
第二种方法是直接写成一个文件,保存为main.m:
function main
[x,y]=fmincon(@fun1,rand(3,1),[],[],[],[],zeros(3,1),[],@fun2)
end
function f=fun1(x);
f=x(1)^2+x(2)^2+x(3)^2+8;
end
function [g,h]=fun2(x)
g=[-x(1)^2+x(2)-x(3)^2
x(1)+x(2)^2+x(3)^3-20];
h=[-x(1)-x(2)^2+2
x(2)+2*x(3)^-3];
end
然后关键是目标函数应该写成我给出的fun1
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!