MATLAB_实验04 多元函数微积分

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验04 多元函数微积分

一实验目的 (2)

二实验内容 (2)

三实验准备 (2)

四实验方法与步骤 (3)

五练习与思考 (7)

一 实验目的

1 了解多元函数、多元函数积分的基本概念,多元函数的极值及其求法;

2 理解多元函数的偏导数、全微分等概念,掌握积分在计算空间立体体积或表面积等问题中的应用;

3 掌握MATLAB 软件有关求导数的命令;

4 掌握MATLAB 软件有关的命令.

二 实验内容

1 多元函数的偏导数,极值;

2 计算多元函数数值积分;

3计算曲线积分,计算曲面积分.

三 实验准备

1 建立符号变量命令为sym 和syms ,调用格式为: x=sym('x') 建立符号变量x ;

syms x y z 建立多个符号变量x ,y ,z ; 2 matlab 求导命令diff 的调用格式: diff(函数(,)f x y ,变量名x)

求(,)f x y 对x 的偏导数

f x

∂∂; diff(函数(,)f x y ,变量名x,n) 求(,)f x y 对x 的n 阶偏导数n n f

x

∂∂;

3 matlab 求雅可比矩阵命令jacobian 的调用格式: jacobian([f;g;h],[],,x y z )给出矩阵

f f f x y z

g g g x y z

h h h x

y

z ⎛⎫∂∂∂ ⎪∂∂∂ ⎪ ⎪∂∂∂ ⎪∂∂∂ ⎪ ⎪∂∂∂ ⎪∂∂∂⎝⎭

4 MATLAB 中主要用int 进行符号积分,常用格式如下: ① int(s)表示求符号表达式s 的不定积分

② int(s,x)表示求符号表达式s 关于变量x 的不定积分

③ int(s,a,b)表示求符号表达式s 的定积分,a ,b 分别为积分的上、下限

④ int(s,x,a,b)表示求符号表达式s 关于变量x 的定积分,a,b 分别为积分的上、下限

5 MATLAB 中主要用trapz,quad,quad8等进行数值积分,常用格式如下:

① trapz(x,y)采用梯形积分法,其中x 是积分区间的离散化向量,y 是与x 同维数的向量、用来表示被积函数.

② quad8('fun',a,b,tol)采用变步长数值积分,其中fun 为被积函数的M 函数名,a,b 分别为积分上、下限,tol 为精度,缺省值为1e-3.

③ dblquad('fun',a,b,c,d)表示求矩形区域的二重数值积分,其中fun 为被积函数的

M 函数名,a ,b 分别为x 的上、下限,c ,d 分别为y 的上、下限.

使用help int ,help trapz ,help quad 等查阅有关这些命令的详细信息.

四 实验方法与步骤

例1 定义二元函数23z x y =+.

解 (1)方法一:syms x y;z=x.^2+y.^3; (2)方法二:编写M 文件fun7.m 定义函数

function z=fun7(x,y) z=x.^2+y.^3;

(3)方法三:利用inline 函数:f=inline('x.^2+y.^3'). 注:不同定义方式,调用格式不完全相同. 例2 绘出函数23z x y =+的图形.

解 程序为:

x=linspace(-10,10,40);y=x;[X,Y]=meshgrid(x, y); Z=fun7(X,Y);surf(X,Y,Z),shading interp 结果如图2-10所示.

图2-10

例3 设222u x y yz =++,求

u y

∂∂. 解 输入命令:syms x y z;diff(x^2+2*y^2+y*z,y),得ans=4*y+z.

利用jacobian 命令:jacobian(x^2+2*y^2+y*z,[x y]),得ans=[2*x,4*y+z],即矩阵,u u x y ⎛⎫∂∂ ⎪∂∂⎝⎭

例4 设6

4

2

2

32z x y x y =-+,求22222,,z z z

x y x y

∂∂∂∂∂∂∂.

解 求22z

x

∂∂的程序为:syms x y;diff(x^6-3*y^4+2*x^2*y^2,x,2)

结果为: ans=30*x^4+4*y^2 求22z

y ∂∂的程序为:syms x y;diff(x^6-3*y^4+2*x^2*y^2,y,2) 结果为:ans=-36*y^2+4*x^2

求2z x y

∂∂∂的程序为:syms x y;diff(diff(x^6-3*y^4+2*x^2*y^2,x),y) 结果:为ans=8*x*y.

注:diff(x^6-3*y^4+2*x^2*y^2,x,y)是求z

y

∂∂,而不是求2z x y ∂∂∂

例5 设由,x y 所确定的z 的隐函数为2225xy y z ++=,求,z z

x y

∂∂∂∂.

解 令()22,,25F x y z xy y z =++- ''/x z z

F F x

∂=-∂ 输入命令:syms x y z;a=jacobian(x*y+y^2+2*z^2-5,[x,y,z]) 可得矩阵()

''',,x y z F F F =[y,x+2*y,4*z] 利用公式''''/,/x z y z z z

F F F F x y

∂∂=-=-∂∂可得 求

z

x ∂∂的程序为:-a(1)/a(3),结果为:-1/4*y/z ; 求z

y

∂∂的程序为:-a(2)/a(3),结果为:1/4*(-x-2*y)/z. 例6 求(1)()2

22122()312(12)f x x x x =-+-在点()2,2-临近的极小值.

(2)222()()(1)f x y x x =-+-在55x -≤≤内的极值.

解 求多元函数(,)z f x y =的极值点X 和极小值minf ,可用如下方法 方法一:X=fminsearch('f',x0),用的是Nelder-Mead 单纯形搜索法求解; 方法二:X=fminunc('f',x0),用的是BFGS 拟牛顿迭代法求解. 其中[](1),(2),(3),

,()X x x x x n =,x0是初始点. 若求极大值点,用(-1)乘函数,再

求极小值点.

(1)程序如下:

f='(x(1)^2-3*x(2))^2+12*(1-2*x(2))^2'; x=fminsearch(f,[-2,2]),minf=eval(f) 结果为:

x =-1.2247 0.5000, minf =2.1879e-009

结果说明在1 1.2247x =-,20.5x =时,函数的极小值为0. (2)先作函数的图形,程序如下:

[x,y]=meshgrid(-5:0.5:5); f=(y-x.^2).^2+(1-x).^2; surf(x,y,f);

结果如图2-11所示.

以下程序为求函数的极小值:

图2-11

f='(x(2)-x(1).^2).^2+(1-x(1)).^2';

x=fminsearch(f,[0.2,0.3]),minf=eval(f),shading interp

相关文档
最新文档