matlab小课堂03—非线性规划基础
程序员文章站
2022-06-13 16:50:31
...
用matlab解非线性规划
步骤:
- 找到目标函数F(X):Notes:F(X)可以为非线性函数
- 找到三类约束条件:(1)找出线性不等式约束条件:如a11x1+a12x2+…+a1nxn= (≥,≤) b1 ; a21x1+a22x2+…+a2nxn= (≥,≤) b2 ………………………………… am1x1+am2x2+…+amnxn= (≥,≤) bm; (2)找出线性等式约束条件:如如a11x1+a12x2+…+a1nxn=b1 ; (3)找出非线性的不等式约束条件:G(X)<=0;(4)找出非线性的等式约束:Ceq(X)=0;(5)找出自变量取值约束:VLB<=X<=VUB
- 建立非线性目标函数的M文件(fun.m)
- 建立非线性约束条件G(X)<=0以及Ceq(X)=0的M文件(nonlcon(X))
命令基本格式
// 'fun':目标函数的M文件名
// X0:迭代的储值,需在自变量定义域内取值
// A,b:线性不等式约束AX<=b的系数
// Aeq,Beq:线性等式约束Aeq*X=Beq的系数
// VLB,VUB:自变量取值范围约束
// 'nonlcon':非线性约束的M文件名
[x,fval]=fmincon('fun',x0,A,b,Aeq,Beq,VLB,VUB,'nonlcon')
推荐阅读