线性方程Matlab

时间:2014-05-01 19:01:14

标签: matlab linear

我遇到了使用以下配方来计算可以生产多少加仑混合物的问题。

<1> 1加仑橙色混合物:3夸脱橙汁,0.75夸脱菠萝汁,0.25夸脱芒果汁。

<1> 1加仑菠萝混合物:1夸脱橙汁,2.5夸脱菠萝汁,0.5夸脱芒果汁。

<1> 1加仑芒果混合物:0.5夸脱橙汁,0.5夸脱菠萝汁,3夸脱芒果汁。

你得到7600加仑的橙汁,4900加仑的菠萝汁和3500芒果汁

我将所有配方要求转换为加仑

这是我的代码,但它没有给我一个开始的答案。为什么它给我奇数小数答案?

clc
clear

 A = [.75;.1875;.0625];

 B = [.25;.625;.125];

 C = [.125;.125;.75];

 X = [7600;4900;3500];

 OrangeBlend = X./A

 PineappleBlend  = X./B

 MangoBlend = X./C

1 个答案:

答案 0 :(得分:1)

我认为这是一个优化问题:您希望最大化您使用可用果汁的混合量:

混合量:

max blendorange + blendpineapple + blendmango

0.75*blendorange + 0.25*blendpineapple + 0.125*blendmango < 7600;
0.1857*blendorange + 0.625*blendpineapple + 0.125*blendmango < 4900;
0.0625*blendorange + 0.125*blendpineapple + 0.75*blendmango < 3500;

这可以在Matlab中解决linprog问题:

f = [-1 -1 -1]'; % because linprog minimizes and we want to maximize
A = [0.75 0.25 0.125;0.1875 0.625 0.125;0.0625 0.125 0.75];
b = [7600;4900;3500];
linprog(f,A,b)

这给出了:

ans =

  1.0e+003 *

    8.0000
    4.8000
    3.2000

8000加仑的橙子,4800加仑的菠萝和3200加仑的芒果......

有趣的是注意到了

A*ans

的产率       1.0e + 003 *

    7.6000
    4.9000
    3.5000

所以使用了所有的果汁。这意味着问题可以通过以下方式解决:

A\b

因为比例恰好是这样,当最大化混合量时,你会消耗掉所有的果汁。无论如何我不知道问题是怎么问到你的,所以我没有直接去找线性方程式。

希望这会有所帮助......