我需要在matlab中使用以下约束最大化方程3x + y:
2x + y <= 6,x + 3y <= 9,并且x,y> = 0
我很难弄清楚如何以一种我可以将它们与原始方程联系起来的方式来设置约束.我是matlab的新手,我很难搞清楚这一点.
提前致谢!
正如@Franck所提到的,您通常可以使用它fmincon
来解决优化问题.但是,由于您的问题只是线性编程问题,因此解决方案更简单(并保证最佳):
f = -[3 1]; % Note the minus as we want maximization
A = [2 1; 1 3];
b = [6; 9];
LB = [0 0];
[X, FVAL] = linprog(f,A,b,[],[],LB)
Run Code Online (Sandbox Code Playgroud)
会给:
X =
3.0000
0.0000
FVAL =
-9.0000
Run Code Online (Sandbox Code Playgroud)
因此,在点(3,0)处找到最优值,结果值为9.
尝试help linprog
阅读有关这个非常有用的功能的更多信息.
归档时间: |
|
查看次数: |
5231 次 |
最近记录: |