如何 求多元一次函数的最大值

2025-03-13 10:42:17
推荐回答(3个)
回答1:

用MATLAB。

例:目标函数35a+88b+43c+18d ,求最大值

约束条件:

45a+86b+25c+12d≤750

26a+45b+16c+10d>200

45a+86b≤450

a≥4

b≥2

5≤c,d≤8



多元函数求最值:

与一元函数相类似,对于有界闭区域上连续的二元函数,一定能在该区域上取得最大值和最小值.使函数取得最值的点既可能在的内部,也可能在的边界上。

若函数的最值在区域的内部取得,这个最值也是函数的极值,它必在函数的驻点或偏导数不存在的点处取得。

若函数的最值在区域的边界上取得,往往比较复杂,在实际应用中可根据问题的具体性质来判断。

在解决实际问题时,如果只有唯一一个最值点的可疑点,无需判别,这个唯一点即为要求的最值点。

回答2:

我是用MATLAB,
例:
目标函数35a+88b+43c+18d ,求最大值
约束条件:
45a+86b+25c+12d≤750
26a+45b+16c+10d>200
45a+86b≤450
a≥4
b≥2
5≤c,d≤8

MATLAB代码如下: 百分号后面是注释
f=[-35;-88;-43;-18]; %由于linprog是求最小值的,题意为最大值,取负数就变成最大值了。
A=[45,86,25,12;-26,-45,-16,-10;15,86,0,0]; %不等式约束条件的左边,写成矩阵的形式,注意这里是小于号,如果题目为大于号,两边加负号
b=[750;-200;450]; %不等式约束条件的右边
Aeq=[]; %等式约束的左边
beq=[]; %等式约束的右边
xmin=[4,2,5,-inf]; %各个变量的最小值,如果没有最小值,也就是最小值为负无穷,用-inf表示
xmax=[inf,inf,inf,8]; %名个变量的最大值,如果没有最大值,用inf(正无穷)表示
x0=xmin; %迭代的初值
[x,fmin]=linprog(f,A,b,Aeq,beq,xmin,xmax,x0);
x,-fmin

回答3:

simplex方法。
去找线性规划程序包,别自己写。
也可以用lingo或者mathematica来做。