MATLAB二元线性规划求最值,《二》线性规划的解法——matlab学习

这个专题是matlab的学习,所以这个专题的重点在于如何用matlab来解决这个问题,而具体matlab是如何解决这个问题的我们不做考虑,或者说暂时还不做考虑。本篇文章比较简单,看起来,但是却是我们解决几乎所有相关的线性规划的敲门砖,一个金钥匙,打开思路之后,一切都将不会成为问题。

matlab系列

1)一般线性规划用 linprog方法

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。

纸上得来终觉浅,绝知此事要躬行。一起加油~

你可能感兴趣的:(MATLAB二元线性规划求最值)