第5章高等数学计算的MATLAB实现讲稿.docx
- 文档编号:7837885
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:18
- 大小:117.40KB
第5章高等数学计算的MATLAB实现讲稿.docx
《第5章高等数学计算的MATLAB实现讲稿.docx》由会员分享,可在线阅读,更多相关《第5章高等数学计算的MATLAB实现讲稿.docx(18页珍藏版)》请在冰豆网上搜索。
第5章高等数学计算的MATLAB实现讲稿
第5章高等数学计算的MATLAB实现
高等数学是大学数学学习的基本内容。
利用MATLAB的符号工具箱,可以解决极限、导数、微分、积分、级数和微分方程等方面的问题。
5.1函数和极限
5.1.1函数
使用符号表达式,可以进行复合函数运算和反函数运算,下面分别予以介绍。
⒈复合函数运算
在MATLAB中,符号表达式的复合函数运算主要是通过函数compose来实现的。
compose函数的调用格式如下:
●compose(f,g):
返回复合函数
。
在这里
。
其中,x是findsym定义的f函数的符号变量,y是findsym定义的g函数的符号变量。
●compose(f,g,z):
返回自变量为z的复合函数f(g(z))。
在这里,f=f(x),g=g(y),x,y分别是findsym定义的f函数和g函数的符号变量。
●compose(f,g,x,z):
返回复合函数f(g(z)),并且使x成为f函数的独立变量。
如:
f=cos(x/t),compose(f,g,x,z)返回cos(g(z)/t),而compose(f,g,t,z)返回cos(x/g(z))。
●compose(f,g,x,y,z):
返回复合函数f(g(z)),并且使x与y分别成为函数f与g的独立变量。
例5-1 将
和
复合到一个函数中,指定x和y为它们的独立变量,自变量为z。
程序:
symsxytz;
g=tan(y);
f=x^t;
compose(f,g,x,y,z)%求复合函数
运行结果:
ans=
tan(z)^t
⒉符号表达式的反函数运算
在MATLAB中,符号表达式的反函数运算主要是通过函数finverse来实现的。
finverse函数的调用格式如下。
●g=finverse(f):
返回符号f的反函数g。
其中,f是一个符号函数表达式,其变量为x。
求得的反函数g是一个满足g(f(x))=x的符号函数。
●g=finverse(f,v):
返回自变量为v的符号函数f的反函数。
求得的反函数g是一个满足g(f(v))=v的符号函数。
当f包含不止一个符号变量时,往往使用这种求反函数的调用格式。
例5-2 求
的反函数。
程序:
f=sym('t/sin(x)');
g=finverse(f,'x')%求反函数
h=finverse(f,'t')%求反函数
运行结果:
g=
asin(t/x)
h=
t*sin(x)
5.1.2极限
在MATLAB中,符号极限由函数limit来实现。
Limit函数的调用格式如下:
●limit(F,x,a):
返回符号表达式F当
时的极限。
●limit(F,a):
返回符号表达式F由findsym(F)返回的独立变量趋向于a时的极限。
●limit(F):
返回符号表达式F由findsym(F)返回的独立变量在a=0处的极限值。
●limit(F,x,a,'right')或limit(F,x,a,'left'):
求取单侧极限,参数中'right','left'表明取极限的方向。
例5-3 求
程序:
symsx
f=sqrt(x^2+x+1)-sqrt(x^2-x+1);
a=limit(f,x,inf,'left')%求极限
b=limit(f,x,-inf,'right')%求极限
运行结果:
a=
1
b=
-1
5.2导数
5.2.1 求函数的导数
在MATLAB中,微分和求导都可以由函数diff实现。
diff函数可同时处理数值和符号两种情况下的求导和微分。
该函数的调用格式如下所示。
●diff(F):
对findsym函数返回独立变量求微分,F为符号表达式。
●diff(F,'a'):
对a变量求微分,F为符号表达式。
●diff(F,n):
对findsym函数返回的独立变量求n次微分,F为符号表达式。
●diff(F,'a',n)或diff(F,n,'a'):
对变量a求n次微分,F为符号表达式。
例5-4 求
的二阶导数。
程序:
symsx
f=(x-1)^5/(x+1);
df=diff(f,1);%求导数
d2f=diff(f,2);
df=simplify(df)%化简
d2f=simplify(d2f)
运行结果:
df=
2*(x-1)^4*(2*x+3)/(x+1)^2
d2f=
4*(x-1)^3*(3*x^2+9*x+8)/(x+1)^3
5.2.2求隐函数的导数
例5-5 求隐函数
所确定的导数
。
程序:
%求隐函数的导数
f=sym('x-y+1/2*sin(y)');
fx=diff(f,'x');
fy=diff(f,'y');
dv=-fx/fy;
simplify(dv)%化简
运行结果:
ans=
-2/(-2+cos(y))
5.2.3 求参数方程确定的函数的导数
例5-6 求椭圆的参数方程
所确定的导数
。
程序:
%参数方程确定的函数的导数
fx=sym('a*cos(t)');
fy=sym('b*sin(t)');
dxt=diff(fx,'t');
dyt=diff(fy,'t');
dv=dyt/dxt;
simplify(dv)%化简
运行结果:
ans=
-b*cos(t)/a/sin(t)
5.3极限和导数的应用
极限可用于计算函数曲线的渐近线,导数可用于求函数的极值和拐点,判断函数的单调性等。
下面结合一个具体的例子进行介绍。
例5-7 作函数
的图形。
首先创建函数,程序为:
symsx
num=3*x^2+6*x-1;denom=x^2+x-3;
f=num/denom
运行结果:
f=
(3*x^2+6*x-1)/(x^2+x-3)
5.3.1渐近线
求函数图形的水平渐近线,需要求x趋于无穷时f的极限,即
limit(f,inf)
limit(f,-inf)
求f的垂直渐近线,使分母等于0,用下面的命令进行求解。
roots=solve(denom)%返回方程
的解。
综合程序:
symsx
num=3*x^2+6*x-1;
denom=x^2+x-3;
f=num/denom;
a=limit(f,inf);
b=double(a);
roots=solve(denom);
ezplot(f)%符号函数作图命令。
holdon%在原有的图形上面叠加图形。
plot([-2*pi2*pi],[bb],'g')%绘水平渐近线
plot(double(roots
(1))*[11],[-510],'r')%绘垂直渐近线
plot(double(roots
(2))*[11],[-510],'r')%绘垂直渐近线
title('水平渐近线和垂直渐近线')
holdoff%取消图形叠加
运行结果见图5-1。
5.3.2极值
从图5-1可以看出,函数
至少有2个极值点,求解程序:
symsx
num=3*x^2+6*x-1;
denom=x^2+x-3;
f=num/denom;
a=limit(f,inf);
b=double(a);
roots=solve(denom);
ezplot(f)%符号函数作图命令。
holdon%在原有的图形上面叠加图形。
plot([-2*pi2*pi],[bb],'g')%绘水平渐近线
plot(double(roots
(1))*[11],[-510],'r')%绘垂直渐近线
plot(double(roots
(2))*[11],[-510],'r')%绘垂直渐近线
holdoff%取消图形叠加
f1=diff(f);%求一阶导数
f1=simplify(f1);%化简
crit_pts=solve(f1);%求驻点
holdon
plot(double(crit_pts),double(subs(f,crit_pts)),'ro');
title('渐近线和极值')%加标题
text(-5,3,'极小值')%加标注
text(-2,2,'极大值')
holdoff
运行结果见图5-2。
图5-1 水平渐近线和垂直渐近线
图5-2 表示函数的渐近线和极值
5.3.3拐点
求函数的拐点,需要先求函数的2阶导数,后面的处理方法与求极值方法相似。
5.4不定积分和定积分
MATLAB中,用符号工具箱的int函数求函数的不定积分和定积分。
int函数的调用格式如下所示。
●int(F):
对findsym函数返回独立变量求不定积分,F为符号表达式。
●int(F,v):
对v变量求不定积分,F为符号表达式。
●int(F,a,b):
对findsym函数返回独立变量求从a到b的定积分,F为符号表达式。
●int(F,v,a,b):
对v变量求从a到b的定积分,F为符号表达式。
5.4.1不定积分
例5-8 求不定积分
。
程序:
symsxn
f=x^n;
F=int(f,x)%求不定积分
运行结果:
F=
x^(n+1)/(n+1)
5.4.2定积分
例5-9 求定积分
。
程序:
symsxn
f=x^9;
A=int(f,x,0,1)%求定积分
运行结果:
A=
1/10
5.4.3 定积分的近似计算
在实际应用中,往往需要对定积分进行近似计算。
常用的近似计算方法有矩形法、梯形法和抛物线法等。
用MATLAB提供的trapz函数可以用梯形法近似求取定积分的值。
例5-10 求定积分
的近似值。
程序:
b=2;
x=linspace(0,b,10000);
y=exp(-x.^2./2)./sqrt(2*pi);
A=trapz(x,y)%求定积分的近似值
运行结果:
A=
0.4772
5.4.4 定积分的应用
例5-11 计算由两条抛物线
,
所围成的图形的面积。
程序:
%求曲线的交点
[x1,y1]=solve('y^2=x','y=x^2');
x1=double(x1);y1=double(y1);
n=numel(x1);
%下面寻找实数解
m=1;x0=[];y0=[];
fork=1:
n
ifisreal(x1(k))&&isreal(x1(k))
x0(m)=x1(k);y0(m)=y1(k);
m=m+1;
end
end
x0=sort(x0);y0=sort(y0);%排序
%下面计算定积分
symsx
f=sqrt(x)-x^2;
A=int(f,x,x0
(1),x0
(2))
运行结果:
A=
1/3
例5-12 计算由椭圆
所围成的图形绕
轴旋转而成的旋转体的体积。
程序:
symsabx
f=pi*b*b*(a*a-x*x)/a/a;
V=int(f,x,-a,a)
运行结果:
V=
4/3*pi*b^2*a
例5-13 计算由曲线
上相应于
从
到
的一段弧的长度。
程序:
symsxab
f=2*x^(3/2)/3;
d=diff(f);
g=sqrt(1+d^2);
S=int(g,x,a,b)
运行结果:
S=
2/3*(1+b)^(3/2)-2/3*(1+a)^(3/2)
5.4.5 多重积分
例5-14 求二重积分
。
程序:
symsrxy
A=int(int(sqrt(r*r-x*x),y,0,sqrt(r*r-x*x)),x,0,r)
运行结果:
A=
2/3*r^3
5.5 空间解析几何与向量代数
空间解析几何将平面图形与方程结合起来,从而可以用代数方法研究几何问题。
5.5.1 空间向量运算
例5-15 已知向量
,
,计算
,
,
,
。
程序:
a=[21-1];
b=[1-12];
c=a+b
d=a-b
f=dot(a,b)%求数量积
g=cross(a,b)%求向量积
运行结果:
c=
301
d=
12-3
f=
-1
g=
1-5-3
例5-16 已知三点
、
和
,求
。
程序:
M=[111];A=[221];B=[212];
ma=A-M;mb=B-M;
c=dot(ma,mb)/sqrt(dot(ma,ma))/sqrt(dot(mb,mb));
amb=acos(c)
运行结果:
amb=
1.0472
例5-17 已知三角形
的顶点是
、
和
求三角形
的面积。
程序:
A=[123];B=[345];C=[247];ab=B-A;ac=C-A;
S=sqrt(dot(cross(ab,ac),cross(ab,ac)))/2
运行结果:
S=
3.7417
5.5.2 曲面及其方程
利用MATLAB提供的绘图函数,可以绘制给定函数的曲面。
相关内容在前面已介绍过,请参见4.2.4小节。
5.6多元函数的极限和求导
对于函数有多个变量的情况,求极限和导数时需要指定函数对哪个变量进行求取。
在MATLAB中仍然使用limit和diff函数求多元函数的极限和导数。
5.6.1求多元函数的极限
例5-18 求极限
。
程序:
symsxy
f=(sin(x+y)-sin(x))/y;
limit(f,y,0)
运行结果:
ans=
cos(x)
5.6.2求多元函数的导数
例5-19 求
。
程序:
symsst
f=sin(s*t);
diff(f,t)
运行结果:
ans=
cos(s*t)*s
5.6.3 求二元隐函数的导数
例5-20 设
,求
。
程序:
symsxyz
f=x*x+y*y+z*z-4*z;fx=diff(f,x);fz=diff(f,z);
zx=simplify(-fx/fz)
运行结果:
zx=
-x/(z-2)
5.7级数
级数是表示函数、研究函数性质以及进行数值计算的一种重要工具,是高等数学的重要组成部分。
本节主要介绍级数求和和泰勒级数展开。
5.7.1级数求和
可以用symsum函数求级数的和。
该函数的调用格式如下:
●symsum(s):
求符号表达式s相对于符号变量k的和,k由findsym函数确定,取值从0到k-1。
●symsum(s,v):
求符号表达式s相对于符号变量v的和,v从0到v-1。
●symsum(s,a,b)和symsum(s,v,a,b):
指定符号表达式s从v=a累加到v=b。
例5-21 求级数
、
和
。
程序:
symsxkn
s1=symsum(n)
s2=symsum(1/k^2,1,inf)
s3=symsum(x^k,k,0,inf)
运行结果:
s1=
1/2*n^2-1/2*n
s2=
1/6*pi^2
s3=
-1/(x-1)
5.7.2泰勒级数展开
用taylor函数进行泰勒级数展开。
该函数的调用格式如下:
●taylor(f,n,v):
返回f的n-1阶马克劳林多项式近似。
f为表示函数的符号表达式,v指定表达式中的独立变量。
v可以是字符串或符号变量。
●taylor(f,n,v,a):
返回f关于a的n-1阶泰勒级数近似。
变量a可以是数值、符号或表示数值值或未知值的字符串。
n,v和a的顺序没有先后之分。
taylor函数根据变量的位置和类型确定它们的用途。
还可以忽略n,v,a等变量中的任何一个。
如果不确定v,taylor函数用findsym函数确定函数的独立变量。
n的默认值为6。
泰勒级数:
。
例5-22 求函数
的泰勒级数展开,取前9项。
程序:
symsx
f=1/(5+4*cos(x));
t=taylor(f,9)
运行结果:
t=
1/9+2/81*x^2+5/1458*x^4+49/131220*x^6+443/13226976*x^86
5.8微分方程
微分方程可以通过函数dsolve求解,该函数的调用格式为:
●r=dsolve('eq1,eq2,…','cond1,cond2,…','v')
●r=dsolve('eq1','eq2',…,'cond1','cond2',…,'v')
输入参数eq1,eq2,…表示微分方程,v为独立变量,cond1,cond2,…表示边界条件和/或初始条件。
默认的独立变量是t,用户也可以使用别的变量来代替t,只要把别的变量放在输入变量的最后即可。
字母D代表微分算子,即d/dt,字母D后面所跟的数字代表几阶微分,如D2代表
。
跟在微分算子后面的字母是被微分的变量,如D3y代表
。
注意,在符号变量中不能再出现字母D。
初始/边界条件可用这样的形式给出:
y(a)=b或Dy(a)=b。
此处的y是被微分变量,a和b是常量。
如果初始条件的个数少于被微分变量的个数,则解中会出现C1,C2这样的不定常数。
函数的输出结果可能存在如下3种情况:
⑴一个方程和一个输出,则返回符号矢量中非线性方程的联立解。
⑵几个方程与相同个数的输出,返回的结果按字母顺序排序,并且分配给输出参数。
⑶几个方程和一个输出,则返回解的结构。
如果函数找不到显示解,它会试图计算隐式解。
返回隐式解时,会给出警告信息并返回一个空的sym。
此时可以用MATLAB函数ode23或ode45求数值解。
在一些有非线性方程的情况下,输出结果可能与更低阶的微分方程或积分等价。
例5-23 求解微分方程
程序:
y=dsolve('Dy=1+y^2')%求解微分方程
运行结果:
y=
tan(t+C1)
例5-24 求解微分方程
程序:
y=dsolve('D2y=cos(2*x)-y','y(0)=1','Dy(0)=0','x');%求解微分方程
y=simplify(y)%化简y的形式。
运行结果:
y=
4/3*cos(x)-2/3*cos(x)^2+1/3
习题五
1、完成实验指导书中的实验五的上半部分。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高等数学 计算 MATLAB 实现 讲稿
![提示](https://static.bdocx.com/images/bang_tan.gif)