matlab实验六 多元函数的极值
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六多元函数的极值
【实验目的】
1.了解多元函数偏导数的求法。
2.了解多元函数极值的求法。
3.了解多元函数条件极值的求法。
4.学习、掌握MATLAB软件有关的命令。
【实验内容】
求函数42
=-+-的极值点和极值。
823
z x xy y
【实验准备】
1.计算多元函数的极值
2.计算二元函数在区域D内的最大值和最小值
3.求函数偏导数的MATLAB命令
MATLAB中主要用diff求函数的偏导数,用jacobian求Jacobian 矩阵。
diff(f,x,n)求函数f关于自变量x的n阶导数。
jacobian(f,x)求向量函数f关于自变量x(x也为向量)的jacobian 矩阵。
【实验重点】
1、多元函数的偏导数计算
2、多元函数极值的计算
【实验难点】
1、多元函数极值的计算
【实验方法与步骤】
练习1 求函数42823z x xy y =-+-的极值点和极值。首先用diff 命令求z 关于x,y 的偏导数
>>clear;syms x y;
>>z=x^4-8*x*y+2*y^2-3;
>>diff(z,x)
>>diff(z,y)
结果为
ans=4*x^3-8*y
ans=-8*x+4*y 即348,84z z x y x y x y
∂∂=-=-+∂∂再求解正规方程,得各驻点的坐标。一般方程组的符号解用solve 命令,当方程组不存在符号解时,solve 将给出数值解。求解正规方程的MATLAB 代码为
>>clear;
>>[x,y]=solve('4*x^3-8*y=0','-8*x+4*y=0','x','y')
结果有三个驻点,分别是P(-2,-4),Q(0,0),R(2,4)。下面再求判别式中的二阶偏导数:
>>clear;syms x y;
>>z=x^4-8*x*y+2*y^2-3;
>>A=diff(z,x,2)
>>B=diff(diff((z,x),y))
>>C=diff(z,y,2)
结果为
A=12*x^2
B=-8
C=4
由判别法可知P(-4,-2)和Q(4,2)都是函数的极小值点,而点Q(0,0)不是极值点。实际上,P(-4,-2)和Q(4,2)是函数的最小值点。当然,我们可以通过画函数图形来观测极值点与鞍点。
>>clear;
>>x=-5:0.2:5;y=-5:0.2:5;
>>[X,Y]=meshgrid(x,y);
>>Z=X.^4-8*X.*Y+2*Y.^2-3;
>>mesh(X,Y,Z)
>>xlabel('x'),ylabel('y'),zlabel('z')
运行结果为
还可以通过画等值线来观察极值。
>>contour (X,Y ,Z,600)
>>xlabel ('x'),ylabel ('y')
运行结果为
练习2 求函数z xy =在条件1x y +=下的极值。构造Lagrange 函数 (,,)(1)L x y xy x y λλ=++- 求Lagrange 函数的极值。先求(,,)L x θλ关于,,x θλ的一阶偏导数,相应的MATLAB 代码为
>>clear;syms x y k
>>l=x*y+k*(x+y-1);
>>diff(l,x)
>>diff(l,y)
>>diff(l.k) 得L
y x λ∂=+∂,L
x y λ∂=+∂,1L
x y λ∂=+-∂,再解正规方程
>>clear;syms x y k
>>[x,y,k]=solve ('y+k=0','x+k=0','x+y-1=0','x','y','k') 得12x =-,12y =,1
2λ=。经过判断,该点为函数的极大值点,此
时函数达到最大值。
【练习与思考】
1. 求1444+-+=xy y x z 的极值,并对图形进行观察。
2. 求函数222),(y x y x f +=在圆周122=+y x 的最大值和最小值。