欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

matlab小课堂03—非线性规划基础

程序员文章站 2022-06-13 16:50:31
...

用matlab解非线性规划

步骤:

  1. 找到目标函数F(X):Notes:F(X)可以为非线性函数
  2. 找到三类约束条件:(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
  3. 建立非线性目标函数的M文件(fun.m)
  4. 建立非线性约束条件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')