MATLAB_实验04 多元函数微积分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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