概念
非线性规划问题:目标函数或约束条件中包含非线性函数。
非线性规划的标准型:
求非线性规划的matlab求解
实例1:二次规划简单实例
二次规划:某非线性规划的目标函数是x的二次函数,约束条件全是线性的。
(1)二次规划的数学模型
(2)matlab二次规划命令
[x,fval] = quadprog(h,f,a,b,aeq,beq,lb,ub,x0,options)
其中:h为nn的矩阵,h(i,i)填xi^2的系数2,其他的填写对应系数值。
例题1:求解二次规划
按照H填充方法可得:H=[4,-4;-4,8],x向量是n*1的矩阵
H = [4,-4;-4,8];
f = [-6;-3]; %f^T
a = [1,1;4,1];
b = [3;9];
[x,fval] = quadprog(H,f,a,b,[],[],zeros(2,1),[],zeros(2,1));
结果:
x =
1.9500
1.0500
value =
-11.0250
实例2:一般非线性规划简单实例
(1)数学模型
(2)matlab非线性规划命令
[x,fval,setflag] = fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon,options)
其中,a,b,aeq,beq定义了线性约束条件,nonlcon定义了非线性约束函数,options定义了优化参数,可以使用matlab缺省参数的设置
例题2:求下列非线性规划
fun1.m:非线性目标函数
function f=fun1(x)
f = sum(x.^2)+8;
fun2.m:非线性约束函数
function [g,h]=fun2(x)
g = [-x(1)^2+x(2)-x(3)^2
x(1)];
nonliner.m
clc,clear;
x0 = zeros(3,1)