Show older comments
以下为求解非线性规划的代码。为什么目标函数1执行成功,目标函数2会执行错误?目标函数2应该如何修改?
%主程序
clc
options=optimset;
[x,y]=fmincon('f',rand(4,1),[],[],[],[],zeros(4,1),[],'f2',options)
%非线性约束
function [g,h]=f2(x)
g(1)=x(1)-400;
g(2)=1.1*x(1)+x(2)-440;
g(3)=1.21*x(1)+1.1*x(2)+x(3)-484;
g(4)=1.331*x(1)+1.21*x(2)+1.1*x(3)+x(4)-532.4;
h=0;
end
%目标函数2(执行错误)
function z=f(x)
for i=1:4
z=z+(x(i)^0.5*(-1));
end
%目标函数1(执行正确)
function z=f(x)
z=-(sqrt(x(1))+sqrt(x(2))+sqrt(x(3))+sqrt(x(4)));
Accepted Answer
More Answers (0)
Categories
Find more on 语言基础知识 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!