用MATLAB求定义函数L(x1,x2,lambda)的偏御咐微空拆搏斗祥分,可以这样求。
dLdx1=diff(L,x1) %对x1求一阶偏微分
dLdx2=diff(L,x2) %对x2求一阶偏微分
dLdlambda=diff(L,lambda) %对λ求一阶偏微分
实现代码为
syms x1 x2 lambda
L=pi/3*(864-18*x2^2+x2^3+12*x1*x2-x1*x2^2)-lambda*(144*pi-12*pi*6*x2+pi*sqrt((12*x2-x2^2+x1^2)*(12*x2-x2^2))-450);
dLdx1=diff(L,x1)
dLdx2=diff(L,x2)
dLdlambda=diff(L,lambda)
s=vpasolve(dLdx1,dLdx2,dLdlambda); %求x1、x2、λ值
lambda=s.lambda %λ 值
x1=s.x1 %x1值
x2=s.x2 %x2值
运行结果
lambda =1.799208272236779626364205689662
x1 =115.00843115249022790078610975691
x2 =8.6324015741235818360256060450589
2024-10-13 广告