首页天道酬勤数值分析及其matlab实验第二版,matlab实验答案

数值分析及其matlab实验第二版,matlab实验答案

张世龙 05-12 09:00 116次浏览

用实验matlab求二元函数和极值

实验5? 用matlab求二元函数的极值

1 .计算二元函数的极值

对于二元函数的极值问题,根据二元函数的极值的需要和充分条件,可以分为以下步骤33到360

步骤1 .定义二元函数。

步骤2 .求解方程,得到驻点。

步骤3 .对各停车点,求二次偏导数

步骤4 .针对各停车点,计算判别式,如果是,则该停车点为极值点、极小值、极大值; 如果需要进一步判断该驻地是否为极值点的话,如果该驻地不是极值点的话。

2 .计算区域d内二元函数的最大值和最小值

假设函数在有界域上连续,则上面一定有最大值和最小值。 的最大值和最小值的一般步骤如下。

包括步骤1 .计算所有驻地的函数值;

步骤2 .计算各边界线上的最大值和最小值

步骤3 .比较上述函数值,最终确定包括在内的最大值和最小值。

3 .函数求偏导数的MATLAB命令

MATLAB中主要用diff求函数的偏导数,用jacobian求jacobian矩阵。

DIFF(f,x,n )? 求出关于函数f的自变量x的n次导数。

关于jacobian(f,x )自变量x ) x求出向量函数f的Jacobian矩阵。 有关这些命令的详细信息,可以通过help diff、help jacobian访问

例1? 求出函数的极值点和极值。

首先,用diff命令求出关于x、y的z的偏导数

clear? syms x y;

z=x^4-8*x*y 2*y^2-3;

DIFF(z,x ) )。

差频(z,y ) )。

结果是

ans=4*x^3-8*y

? ans=-8*x 4*y

也就是说,求解方程,求出各驻扎点的坐标。 一般方程的符号解使用solve命令,如果方程中不存在符号解,则solve提供数值解。 求解方程的MATLAB代码如下。

清除器

[x,y]=solve('4*x^3-8*y=0),'-8*x 4*y=0),' x ',' y ' )

结果有三个驻点: p(-2、-4)、q ()、0 )、r ()、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=2*x^2

B=-8

? C=4

从判别法可以看出,和都是函数的极小点,但点q [ 0,0 ]不是极值点,实际上,和是函数的最小值点。 当然,可以通过绘制函数图形来观测极值点和鞍点。

清除器

x=-5:0.2:5; y=-5:0.2:5;

[X,y ]=消息网格(x,y );

Z=X.^4-8*X.*Y 2*Y.^2-3;

mesh(x,y,z ) )。

xlabel('x ',ylabel('y ',zlabel ' )

结果如图16.5.1所示

图16.5.1? 函数的曲面图

在图6.1中可知极值点很难观测到。 这是因为,z的可取值的范围为[-500,100 ],是远景图,所以局部的信息损失多,无法观测图像的细节。 通过画等值线可以观测极值。

contour(x,y,z,600 ) )。

xlabel('x ',ylabel('y ' )

结果如图16.5.2所示

图16.5.2? 等值线图

从图16.5.2可以看出,函数值随图形灰度逐渐变浅而逐渐减小,图形中有两个明显的极小值点。 根据坡度与等高线的关系,坡度的方向为等高线的法线方向,是指函数增加的方向。 由此可知,极值点应该用等高线包围,但点的周围没有用等高线包围,是鞍点而不是极值点。

例2求函数条件下的极值.构建Lagrange函数

求Lagrange函数的自由极值,首先求关于的一阶偏导数

clear syms x y k

L=x*yk*(xy-1 );

DIFF(L,x ) ) ) ) )。

DIFF(L,y ) )。

差频(l,k ) )。

必须再解一次方程式

clear syms x y k

[x,y,k ]=求解(' x k=0)、' x k=0)、' x y-1=0)、' x )、' y )和' k ] ]

必须判断。 这一点是函数的极大值点,此时函数达到最大值。

例3抛物面在平面上被切割成椭圆,求出从该椭圆到原点的最长和最短距离。

这个问题实际上是求函数

条件和下的最大值和最小值问题. Lagrange函数的构造

求Lagrange函数的自由极值,首先求关于的一阶偏导数

clear syms x y z u v

L=x^2y^2z^2u*(x^2y^2-z ) v * (XYZ-1 );

DIFF(L,x ) ) ) ) )。

DIFF(L,y ) )。

DIFF(L,z ) )。

DIFF(L,u ) )。

DIFF(L,v ) )。

解方程式

清除器

[x,y,z,u,v]=solv

matlab实验一,matlab画一元二次函数图像