内点惩罚函数求最优解的matlab编程

题目:minf(x)=x1*x1+x2*x2 约束条件1-x1<=0用内点法求最优解的MATLAB编程?求高手指点一二

第1个回答  推荐于2017-05-22
function main()
clc; clear all; close all;
options = optimset('Algorithm', 'interior-point', 'Display', 'off');
A = []; b = [];
Aeq = []; beq = [];
lb = [1; -inf]; ub = [inf; inf];
x0 = [1 2];
[x,fval,exitflag] = fmincon(@net_fun,x0,A,b,Aeq,beq,lb,ub,[],options);
if exitflag == 1
fprintf('\n利用内点法:\n')
fprintf('当x取(%.3f, %.3f)时,目标函数取最小值:%.3f\n', ...
x(1), x(2), fval);
else
fprintf('\n未找到最优解!\n');
endfunction f = net_fun(x)
f = x(1)^2 + x(2)^2;本回答被网友采纳