数学建模_线性_整数_非线性_动态_规划

Roxana ·
更新时间:2024-11-14
· 579 次阅读

1. 线性规划 1. 常用函数

在这里插入图片描述

2. 绝对值型

在这里插入图片描述

2.整数规划 1.分支定界法

在这里插入图片描述

2.蒙特卡洛法

在这里插入图片描述

function [f,g]=mengte(x); f=x(1)^2+x(2)^2+3*x(3)^2+4*x(4)^2+2*x(5)-8*x(1)-2*x(2)-3*x(3)-... x(4)-2*x(5); g=[sum(x)-400 x(1)+2*x(2)+2*x(3)+x(4)+6*x(5)-800 2*x(1)+x(2)+6*x(3)-200 x(3)+x(4)+5*x(5)-200]; (ii)编写M文件mainint.m如下求问题的解: rand('state',sum(clock)); p0=0; tic for i=1:10^6 x=99*rand(5,1); x1=floor(x);x2=ceil(x); [f,g]=mengte(x1); if sum(g<=0)==4 if p0<=f x0=x1;p0=f; end end [f,g]=mengte(x2); if sum(g<=0)==4 if p0<=f x0=x2;p0=f; end end end x0,p0 toc 3. 计算机求解

bintprog()

3.非线性规划 1.fminunc 和 fminsearch 解:编写 M 文件 fun2.m 如下: function [f,g]=fun2(x); f=100*(x(2)-x(1)^2)^2+(1-x(1))^2; g=[-400*x(1)*(x(2)-x(1)^2)-2*(1-x(1));200*(x(2)-x(1)^2)]; 编写主函数文件example6.m如下: options = optimset('GradObj','on'); [x,y]=fminunc('fun2',rand(1,2),options) 2.约束极值-罚函数

在这里插入图片描述
在这里插入图片描述

function g=test(x); M=50000; f=x(1)^2+x(2)^2+8; g=f-M*min(x(1),0)-M*min(x(2),0)-M*min(x(1)^2-x(2),0)+... -47- M*abs(-x(1)-x(2)^2+2); 或者是利用Matlab的求矩阵的极小值和极大值函数编写test.m如下: function g=test(x); M=50000; f=x(1)^2+x(2)^2+8; g=f-M*sum(min([x';zeros(1,2)]))-M*min(x(1)^2-x(2),0)+... M*abs(-x(1)-x(2)^2+2); 我们也可以修改罚函数的定义,编写test.m如下: function g=test(x); M=50000; f=x(1)^2+x(2)^2+8; g=f-M*min(min(x),0)-M*min(x(1)^2-x(2),0)+M*(-x(1)-x(2)^2+2)^2; (ii)在 Matlab 命令窗口输入 [x,y]=fminunc('test',rand(2,1)) 即可求得问题的解。 Matlab 优化工具箱中,用于求解约束最优化问题的函数有:fminbnd、fmincon、quadprog、fseminf、fminimax,上面我们已经介绍了函数 fmincon 和 quadprog。
作者:weixin_42824385



非线性 数学建模 线性 数学 动态

需要 登录 后方可回复, 如果你还没有账号请 注册新账号