第5章高等数学计算的MATLAB实现讲稿Word文档下载推荐.docx
《第5章高等数学计算的MATLAB实现讲稿Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第5章高等数学计算的MATLAB实现讲稿Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
![第5章高等数学计算的MATLAB实现讲稿Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/26/387c140d-9430-4d69-afbd-d0fac8d19ed4/387c140d-9430-4d69-afbd-d0fac8d19ed41.gif)
返回自变量为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'
):
求取单侧极限,参数中'
,'
表明取极限的方向。
例5-3 求
symsx
f=sqrt(x^2+x+1)-sqrt(x^2-x+1);
a=limit(f,x,inf,'
)%求极限
b=limit(f,x,-inf,'
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为符号表达式。
n)或diff(F,n,'
对变量a求n次微分,F为符号表达式。
例5-4 求
的二阶导数。
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 求隐函数
所确定的导数
%求隐函数的导数
x-y+1/2*sin(y)'
fx=diff(f,'
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,'
dyt=diff(fy,'
dv=dyt/dxt;
-b*cos(t)/a/sin(t)
5.3极限和导数的应用
极限可用于计算函数曲线的渐近线,导数可用于求函数的极值和拐点,判断函数的单调性等。
下面结合一个具体的例子进行介绍。
例5-7 作函数
的图形。
首先创建函数,程序为:
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)%返回方程
的解。
综合程序:
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],'
title('
水平渐近线和垂直渐近线'
)
holdoff%取消图形叠加
运行结果见图5-1。
5.3.2极值
从图5-1可以看出,函数
至少有2个极值点,求解程序:
f1=diff(f);
%求一阶导数
f1=simplify(f1);
%化简
crit_pts=solve(f1);
%求驻点
holdon
plot(double(crit_pts),double(subs(f,crit_pts)),'
ro'
渐近线和极值'
)%加标题
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 求定积分
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)%求定积分的近似值
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);
%排序
%下面计算定积分
f=sqrt(x)-x^2;
A=int(f,x,x0
(1),x0
(2))
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)
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
-1
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
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)
cos(x)
5.6.2求多元函数的导数
例5-19 求
symsst
f=sin(s*t);
diff(f,t)
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项。
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'
eq1'
'
eq2'
…,'
cond1'
cond2'
输入参数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 求解微分方程
D2y=cos(2*x)-y'
y(0)=1'
Dy(0)=0'
%求解微分方程
y=simplify(y)%化简y的形式。
4/3*cos(x)-2/3*cos(x)^2+1/3
习题五
1、完成实验指导书中的实验五的上半部分。