《二》线性规划的解法——matlab学习
2016-08-29 本文已影响250人
李庆文
这个专题是matlab的学习,所以这个专题的重点在于如何用matlab来解决这个问题,而具体matlab是如何解决这个问题的我们不做考虑,或者说暂时还不做考虑。本篇文章比较简单,看起来,但是却是我们解决几乎所有相关的线性规划的敲门砖,一个金钥匙,打开思路之后,一切都将不会成为问题。
matlab系列1)一般线性规划用 linprog方法
可参见第一篇文章《一》线性规划的解法——matlab学习
2)整数规划用 intlinprog方法
整数规划这个对matlab的版本是有一定的限制的,应该要求最低版本在R2015a;
针对软件这个东西,一般来说,咱们都下载最新的肯定是没有问题的。
3)01 规划用 intlinprog方法,最后的参数要进行更改。u最大限制设置为1。
lb设置为zeros(5,1) ;每个参数值的最小值为0
ub设置为ones(5,1); 就是说5个值,每个值的最大值都是1。
解决0-1规划问题
4)非线性规划 fminbnd函数
具体用法
编写我们要写的函数
edit myfun.m
然后再我们的.m文件中编写我们的文件
function f = myfun(x);
f=(3-2*x).^2*x;
然后在我们的最后的命令行中进行编写
[x,result]=fminbnd('fun0',0,1.5) %函数变量x的取值范围在0到1.5之间
或者是这样
[x,result]=fminbnd(@fun0,0,1.5)
注意这里的函数的第一个参数是一个函数对象。
或者是这样
%The argument fun can also be a function handle for an anonymous %function. For example, to find the minimum of the function
%f(x) = x3 – 2x – 5 on the interval (0,2), create an anonymous %function f
f = @(x)x.^3-2*x-5;
%Then invoke fminbnd with
x = fminbnd(f, 0, 2)
%The result is
x =
0.8165
5)多元函数无约束优化问题 用fminnuc函数或者是fminsearch
多元函数解决无约束优化问题有了以上法宝,差不多所有的线性规划问题都能解决了。当然,以上仅仅是思路,具体的代码到时候自己通过help命令来进行查看就ok。
纸上得来终觉浅,绝知此事要躬行。一起加油~