当前位置:首页 > 名师推荐微积分线性代数知识在matlab中的实现
第一章 微积分、线性代数的基础知识及其在Matlab中的实现
1.1 建模中常用微积分基础知识在Matlab中的实现
在数摸问题的计算中,经常要用到极限、导数、微分和积分等基本运算。利用数学软件Matlab可以使复杂的微积分运算变得很容易。本节介绍微积分的基本运算在计算机上如何实现,包括:微分、积分、极限、级数求和、方程求根以及Taylor展开等功能的实现方法。
下面是MATLAB中的基本符号运算函数(有关符号运算请参考附录A): 1. x=sym(‘x’)
功能:创建一个符号变量x 2. syms x y z
功能:创建多个符号变量 x , y , z 3. r=collect(S,v)
功能:合并同类项,S是符号表达式,v是变量或表达式,R是合并同类项后的结果。 4. factor(S)
功能:符号计算的因式分解,X是待分解的符号多项式 5. expand(S)
功能:对符号多项式或函数S进行展开 6. r=simple(S) 或 r=simplify(S) 功能:对符号表达式S进行化简 7. subs(S,old,new)
功能:把符号变量中的变量old 用 new 代替,new 可以是一个符号,也可以是具体的数 8. vpa(S)
功能:对符号表达式S计算其任意精度的数值 9. eval(S)
功能:计算符号表达式(或字符串)S
1.1.1 导数、极值和积分、Talyor公式及在Matlab中的实现
一、极限运算
在MATLAB中,计算极限采用下面的命令:
命令 功能 limit(f,x,a) 计算limx?af(x) f(x)
x?a? limit(f,x,inf) 计算limx?? limit(f,x,a,’right’) 计算单侧极限 limit(f,x,a,’left’) 计算单侧极限
limf(x)
x?a?limf(x)
注意:在左右极限不相等或左右极限有一个不存在时,Matlab的默认状态是求右极限
ex?1例1 求极限lim(1?4x)与极限lim
x?0x?0x1x解 Matlab命令为 syms x;
y1=(1+4*x)^(1/x); y2=(exp(x)-1)/x; limit(y1,x,0) ans= exp(4) limit(y2,x,0) ans= 1
例2 求极限lim?(x?0x?2)
?1x解 syms x; y=sqrt(x)-2^(-1/x); limit(y,x,0,’right’) ans= 0
二、求导运算
导数是函数增量?y与自变量增量?x之比的极限(?x?0),即在Matlab中求函数的导数及其他一些类似计算均由 diff 命令来完成。
1.一元函数的求导 命令形式1: diff(f)
功能:求函数f的一阶导数,其中f为符号函数。 命令形式2: diff(f,n)
功能:求函数f的n阶导数,其中f为符号函数。 例3 求函数
f?(x)?f(x??x)?f(x)。
?x3x3?5x?1的二阶导数
解 Matlab的命令为 syms x ; f= 3*x^3+5*x+1 ; diff(f,2) ; ans= 18*x 例4 设
y?3x2?2x?1,求y'|x?1
解 syms x ; y=3*x^2-2*x+1 ; B=diff(y) , x=1 ; eval(B) 运行结果为 B = 6*x – 2 ans = 4
2.多元函数的偏导数 将函数z数,记为
?f(x,y)中的变量y看成常量而对变量x的导数称为二元函数f(x,y)对变量x的偏导
fx(x,y)。若把x当作常量而对y求导的结果称为函数对y的偏导数,记为fy(x,y)。求偏
导的方法和一元函数的求导方法一样,只要把另一个变量看成常量即可。
命令形式1: diff(f,xi)
功能: 多函数f 对变量xi的一阶偏导。 命令形式2: diff(f,xi,n)
功能:多函数f 对变量xi的n阶偏导。 例5 求z?x2sin2y关于x的偏导数
解 syms x y;
z= x^2*sin(2*y); B=diff(z,’x’); 运行结果为 B=2*x*sin(2*y)
3. 全微分、参数方程求导及隐函数求导 (1) 若函数z?f(x,y)在某点(x0,y0)的两个偏导数存在且连续,则函数在该点的全微分为 dz?fx(x0,y0)dx?fy(x0,y0)dy
Matlab中求函数全微分的命令为: diff(z,x)+diff(z,y) (2) 对参数方程??x?x(t)dydydt?所确定的函数y?f(x),根据公式,连续两次利用diff(f)dxdxdty?y(t)?命令就可以求出结果。
(3) 隐函数求导
方程F(x,y)?0所确定的隐函数
y?y(x),则其导数
Fdy??xdxFy;方程F(x,y,z)?0确定的
F?z??x隐函数z?z(x,y),其导数为?xFz的偏导再相除就可得到隐函数的导数。
三、积分运算
1.一元函数的不定积分 命令形式1: int(f)
Fy?z,???yFz。在Matlab中按照上述公式,分别求出函数
功能: 求函数f对默认变量的不定积分,用于函数中只有一个变量的情况。 命令形式2:int(f,v)
功能:求符号函数f对变量v的不定积分。 例6 计算
1?sin2xcos2xdx
解 Matlab命令为 syms x ;
y=1/(sin(x)^2*cos(x)^2) ; int(y) ans =
1/(sin(x)*cos(x))?2*cos(x)/sin(x)
pretty(int(y)) %把int(y)化简为常用的数学形式的表达式 结果为
12cosx?
sinx()cosx()sinx例7 求
x?1?z2dz
解 Matlab的命令为
syms x z ; B=int(x/(1+z^2),z) ; B=x*atan(z)
2.一元函数的定积分 命令形式: int(f,x,a,b)
功能:用微积分基本公式计算定积分
?baf(x)dx
1例8 求?1(1?x?)2dx
x221解 Matlab的命令为 syms x ;
t=1+x-1/x; y=exp(x+1/x) ; t=t*y ; int(f,x,1/2,2) ; ans = 3/2*exp(5/2)
3. 多重积分运算
命令 功能 int(int(f,y),x) 计算不定积分
?dx?f(x,y)dy
bdcint(int(f,y,c,d),x,a,b) 计算定积分注意:对于三重积分的运算和二重积分的形式一致。 例9 计算
?dx?af(x,y)dy
A??1x?10x?(x2?y2?1)dxdy
解 Matlab的命令为 syms x y
A=int(int(x^2+y^2+1,y,x,x+1),x,0,1) %求二重积分 A=5/2
四、函数的Taylor展开 命令形式1:taylor(f)
功能:将函数f展开成默认变量的6阶麦克劳林公式 命令形式2: taylor(f, n)
功能:将函数f展开成默认变量的n阶麦克劳林公式 命令形式3: taylor(f, n, v, a)
功能: 将函数f(v)在v=a处展开n阶泰勒公式
共分享92篇相关文档