用Excel和Python编程完成线性规划问题的求解

用拉格朗日法求解,手工求解和编程求解。
题目:给定椭球
在这里插入图片描述
求这个椭球的内接长方体的最大体积。这个问题实际上就是条件极值问题,即在条件
在这里插入图片描述
下,求
在这里插入图片描述
的最大值。

一、手工求解

参考:参考此链接
1.通过拉格朗日乘数法将问题转化为
在这里插入图片描述
对F(x,y,z,λ)求偏导值
得到
在这里插入图片描述
联立前面三个方程得bx=ay,az=cx然后代入第四个方程得
在这里插入图片描述
最后结果得
在这里插入图片描述

二、编程求解

插入代码即可求解

from sympy import *
x,y,z,k = symbols('x,y,z,k')
a,b,c=symbols('a,b,c')
f = 8*x*y*z
g = x**2/a**2+y**2/b**2+z**2/c**2-1
L=f+k*g
dx = diff(L, x)  
print("dx=",dx)
dy = diff(L,y)   
print("dy=",dy)
dz = diff(L,z)  
print("dz=",dz)
dk = diff(L,k)  
print("dk=",dk)
dx= 8*y*z + 2*k*x/a**2
dy= 8*x*z + 2*k*y/b**2
dz= 8*x*y + 2*k*z/c**2
dk= -1 + z**2/c**2 + y**2/b**2 + x**2/a**2
m= solve([dx,dy,dz,dk],[x,y,z,k])   
print(m)
x=sqrt(3)*a/3
y=sqrt(3)*b/3
z=sqrt(3)*c/3
k=-4*sqrt(3)*a*b*c/3
f = 8*x*y*z
print("方程的最大值为:",f)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值