【数学建模】13 非线性规划模型求解方法

目录

1 近似线性法

近似线性法:在一个小范围内展开

【数学建模】13 非线性规划模型求解方法

; 2 罚函数法

基本思想是通过构造罚函数把约束问题转化为一系列无约束最优化问题,进而用无约束最优化方法去求解。这类方法为序列无约束最小化方法。简称为SUMT。分为内点法和外点法两种。
罚函数法:将约束条件放入目标函数
(1)SUMT外点法
原问题化为

【数学建模】13 非线性规划模型求解方法

其中T(X,M)称为罚函数,M称为罚因子,带M的项称为罚项。罚函数只对不满足约束条件的点实行惩罚。
(2)SUMT内点法(障碍函数法)
构造障碍函数

【数学建模】13 非线性规划模型求解方法

3 MATLAB函数求解方法

(1)二次规划模型
标准型:

【数学建模】13 非线性规划模型求解方法

用MATB软件求解,其输入格式如下:

1,x=quadprog(H,CA,b);
2,x=quadprog(H,CA,b,Aeqbeq);
3,x=quadprog(H,C,A,b,Aeq,beq,VLBVUB);
4,x=quadprog(H,CA,b,Aeq,beqVLBVUBXO);
5,x=quadprog(H,C,A,b,AeqbeqVLBVUB,XOoptions);
6,[xfva刂=quaprog(...);
7,[xfval,exitflag]=quaprog(...);
8,[xfval,exitflag,output]=quaprog(,..);

举例:

【数学建模】13 非线性规划模型求解方法

写成标准型

【数学建模】13 非线性规划模型求解方法

程序设计:

H = [1 1 ;1 1]
C = [-1;-2]
A = [2 3;1 4]
b = [6:5]
vlb = [0,0]
[x,fval] = quadprog(H,C,A,b,[],[],vlb)

(2)一般规划模型
标准型

【数学建模】13 非线性规划模型求解方法

MATLAB求解方法

  • 首先建立M文件fun.m。用来定义目标函数F(X)
  • 若约束条件中有非线性约束:G(X)
function[G,Ceq](X〕
G=...

Ceq=...

  • 建立主程序
x = fmincon('fun',X0,A, b)
x =fmincon('fun' , XO,A, b, Aeq, beq)
x =fmincon('fun',X0,A,b,Aeq, beq, VLB, VUB)
x=fmincon ( 'fun' , XO , A, b, Aeg, beg,VLB, VLJB, 'nonlcon' )
x=fmincon ('fun' ,XO,A,b,Aeq, beq, YLB, YUB, ' nonlcon' , options )
[z, fval]= fmincon(... )
[z, fval, exitflag] = fmincon(... )
[z, fval, exitflag, output] = fmincon(...)

举例:

【数学建模】13 非线性规划模型求解方法

写成标准形式:

【数学建模】13 非线性规划模型求解方法

程序设计

x0 = [1;1];
A=[2 3 ;1 4 ];
b = [6;5];
Aeq = [];
beq = [];
vlb = [0;0];
[x,fval] = fmincon(@fun,x0,A,b,Aeq,beq,vlb)
function f = fun(x)
    f = -x(1)-2*x(2)+ (1/2)*x(1)^2+(1/2)*x(2)^2+ x(1)*x(2)
end

4 LINGO软件求解方法

min =-x1-2*x2 + x1^2/2 + x2^2/2 + x1*x2
2*x1 + 3*x2 <6 x1 + 4*x2 <5 < code></6>

5 课后习题

编程求解下列非线性数学规划模型

【数学建模】13 非线性规划模型求解方法
x0 = rand(3,1);
VLB = zeros(3,1);
[x,fval] =  fmincon(@fun1,x0,[],[],[],[],VLB,[],@fun2)
function f=fun1(x)
 f=2*x(1)+3*x(1)^2+3*x(2)+x(2)^2+x(3);
end
function [C,Ceq]=fun2(x)
C(1)=x(1)+2*x(1)^2+x(2)+2*x(2)^2+x(3)-10; % &#x975E;&#x7EBF;&#x6027;&#x7EA6;&#x675F;&#xFF0C;&#x82E5;&#x4E0D;&#x6B62;1&#x4E2A;&#xFF0C;&#x5219;&#x7528;C(1),C(2),...

C(2)=x(1)+x(1)^2+x(2)+x(2)^2-x(3)-50;
C(3)=2*x(1)+x(1)^2+2*x(2)+x(3)-40;
C(4)= -x(1)-2*x(2)+1;
Ceq= x(1)^2+x(3)-2; % &#x7B49;&#x5F0F;&#x7EA6;&#x675F;, &#x82E5;&#x6CA1;&#x6709;&#x7B49;&#x5F0F;&#x7EA6;&#x675F;&#xFF0C;&#x53EF;&#x4EE4;Ceq=[];
end

输出结果是
x =
0.0006
0.4997
2.0000
fval =
3.7500

Original: https://blog.csdn.net/weixin_43935696/article/details/110942131
Author: Better Bench
Title: 【数学建模】13 非线性规划模型求解方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/635793/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球