用拉格朗日法求解,手工求解和编程求解。
题目:给定椭球
求这个椭球的内接长方体的最大体积。这个问题实际上就是条件极值问题,即在条件
下,求
的最大值。
一、手工求解
参考:参考此链接
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)