《AMATLAB微积分及泰勒级数计算PPT优秀课件》由会员分享,可在线阅读,更多相关《AMATLAB微积分及泰勒级数计算PPT优秀课件(37页珍藏版)》请在金锄头文库上搜索。
1、2.1 2.1 符号计算基础符号计算基础2.2 2.2 微分运算微分运算2.3 2.3 积分运算积分运算2.4 2.4 泰勒级数泰勒级数2.5 2.5 求解方程求解方程2.6 2.6 积分变换积分变换 第第2 2章章 MATLABMATLAB符号计算符号计算2.1 2.1 符号计算基础符号计算基础2.1.1 2.1.1 符号对象符号对象1. 1. 建立符号变量和符号常数建立符号变量和符号常数(1)sym(1)sym函数函数 S=sym(A)S=sym(A)nsymsym函数用来建立单个函数用来建立单个符号变量符号变量,例如,例如,a=sym(a=sym(a a) )建立符号变量建立符号变量a
2、a,此后,用户可以在表,此后,用户可以在表达式中使用变量达式中使用变量a a进行各种运算。进行各种运算。n定义定义符号常量符号常量n 如如pi=sym(pi)pi=sym(pi)n a=sym(3/4) a=sym(3/4)例例2.12.1考察考察符号变量符号变量和和数值变量数值变量的差别。的差别。 在在 MATLABMATLAB命令窗口,输入命令:命令窗口,输入命令: a=sym(a);b=sym(b);c=sym(c);d=sym(d); a=sym(a);b=sym(b);c=sym(c);d=sym(d); % %定义定义4 4个符号变量个符号变量w=10;x=5;y=-8;z=11;
3、 %w=10;x=5;y=-8;z=11; %定义定义4 4个数值变量个数值变量A=a,b;c,d %A=a,b;c,d %建立符号矩阵建立符号矩阵A AB=w,x;y,z %B=w,x;y,z %建立数值矩阵建立数值矩阵B Bdet(A) %det(A) %计算符号矩阵计算符号矩阵A A的行列式的行列式det(B) %det(B) %计算数值矩阵计算数值矩阵B B的行列式的行列式例例2.2 2.2 比较比较符号常数符号常数与与数值变量数值变量在代数运算时在代数运算时的差别。的差别。在 MATLAB命令窗口,输入命令:pi1=sym(pi1=sym(pipi);k1=sym();k1=sym(
4、8 8);k2=sym();k2=sym(2 2);k);k3=sym(3=sym(3 3);); % % 定义符号常数定义符号常数pi2=pi;r1=8;r2=2;r3=3; % pi2=pi;r1=8;r2=2;r3=3; % 定义数值变量定义数值变量sin(pi1/3) % sin(pi1/3) % 计算符号表达式值计算符号表达式值 sin(pi2/3) % sin(pi2/3) % 计算数值表达式值计算数值表达式值sqrt(k1) % sqrt(k1) % 计算符号表达式值计算符号表达式值sqrt(r1) % sqrt(r1) % 计算数值表达式值计算数值表达式值sqrt(k3+sqr
5、t(k2) % sqrt(k3+sqrt(k2) % 计算符号表达式值计算符号表达式值sqrt(r3+sqrt(r2) % sqrt(r3+sqrt(r2) % 计算数值表达式值计算数值表达式值区别区别n数值数字并不能保证被完全准确存储,运算时也会引进截断误差;n符号类数字总是被准确记录和计算。(2)syms(2)syms函数函数1.1.用于定义多个符号变量。用于定义多个符号变量。syms函数的一般调用格式为:syms var1 var2 varn 函数定义符号变量var1,var2,varn等。用这种格式定义符号变量时不要在变量名上加字符分界符(),变量间用空格而不要用逗号分隔。2. 2.
6、建立符号表达式建立符号表达式例例2.32.3用用2 2种方法建立符号表达式。种方法建立符号表达式。在在MATLABMATLAB窗口,输入命令:窗口,输入命令:U=sym(3*x2+5*y+2*x*y+6)U=sym(3*x2+5*y+2*x*y+6) % %定义符号表达式定义符号表达式U Usyms x y; %syms x y; %建立符号变量建立符号变量x x、y yV=3*x2+5*y+2*x*y+6V=3*x2+5*y+2*x*y+6 % %定义符号表达式定义符号表达式V V2*U-V+6 %2*U-V+6 %求符号表达式的值求符号表达式的值例例2.42.4 计算计算3 3阶范得蒙矩阵
7、行列式的值。设阶范得蒙矩阵行列式的值。设A A是一个是一个由符号变量由符号变量a,b,ca,b,c确定的范得蒙矩阵。确定的范得蒙矩阵。命令如下:命令如下:syms a b c;syms a b c;U=a,b,c;U=a,b,c;A=1,1,1;U;U.2 %A=1,1,1;U;U.2 %建立范得蒙符号矩阵建立范得蒙符号矩阵det(A) %det(A) %计算计算A A的行列式值的行列式值例例2.52.5 建立建立x,yx,y的一般二元函数。的一般二元函数。 在MATLAB命令窗口,输入命令: syms x y; f=sym(f(x,y);2.1.2 2.1.2 基本的符号运算基本的符号运算(
8、1)(1)符号表达式的代数运算符号表达式的代数运算 与矩阵运算基本一致,详见与矩阵运算基本一致,详见P P3535。(2)(2)符号与数值的转换:符号与数值的转换:symsym,numericnumeric,evaleval,sym2polysym2poly,poly2sympoly2symNumericNumeric,evaleval:将符号常数转换为数字或计算表达式的:将符号常数转换为数字或计算表达式的函数;函数;Sym2polySym2poly:将符号多项式变换为等价系数向量。:将符号多项式变换为等价系数向量。Poly2symPoly2sym:要求用户指定用于表达式的变量(:要求用户指定
9、用于表达式的变量(x x,y y等)等)例例2.62.6 f=sym(f=sym(2*x2+7*x+92*x2+7*x+9) ) n=sym2poly(f) n=sym2poly(f) f1=poly2sym(n,y)f1=poly2sym(n,y)(3)(3)因式分解与展开因式分解与展开factor(S) 对S分解因式,S是符号表达式或符号矩阵。expand(S) 对S进行展开,S是符号表达式或符号矩阵。collect(S) 对S合并同类项,S是符号表达式或符号矩阵。collect(S,v) 对S按变量v合并同类项,S是符号表达式或符号矩阵。例例2.7 2.7 对符号矩阵对符号矩阵A A的每
10、个元素分解因式。的每个元素分解因式。命令如下:命令如下:syms a b x y;syms a b x y;A=2*a2*b3*x2-4*a*b4*x3+10*a*b6*x4,3*x*y-A=2*a2*b3*x2-4*a*b4*x3+10*a*b6*x4,3*x*y-5*x2;4,a3-b3;5*x2;4,a3-b3;factor(A)factor(A) % %对对A A的每个元素分解因式的每个元素分解因式例例2.8 2.8 计算表达式计算表达式S S的值。的值。命令如下:命令如下:syms x y;syms x y;s=sym(-7*x2-8*y2)*(-x2+3*y2);s=sym(-7*
11、x2-8*y2)*(-x2+3*y2);s1=expand(s) %s1=expand(s) %对对s s展开展开s2=collect(s,x) %s2=collect(s,x) %对对s s按变量按变量x x合并同类项合并同类项( (无同无同类项类项) )factor(s2) % factor(s2) % 对对s2s2分解因式分解因式(4)(4)表达式化简表达式化简MATLABMATLAB提供的对符号表达式化简的函数有:提供的对符号表达式化简的函数有:simplify(S) simplify(S) 应用函数规则对应用函数规则对S S进行化简。进行化简。simple(S) simple(S)
12、调用调用MATLABMATLAB的其他函数对表达的其他函数对表达式进行综合化简,并显示化简过程。式进行综合化简,并显示化简过程。例例2.92.9化简化简命令如下:命令如下:syms x y;syms x y;s=(x2+y2)2+(x2-y2)2;s=(x2+y2)2+(x2-y2)2;simplsimplifyify(s) %(s) %应用函数规则对应用函数规则对s s进行化简。进行化简。(5) (5) 符号表达式中变量的确定符号表达式中变量的确定MATLABMATLAB中的符号可以表示符号变量和符号常数。中的符号可以表示符号变量和符号常数。findsymfindsym可以帮助用户查找一个符
13、号表达式中的可以帮助用户查找一个符号表达式中的符符号变量号变量。该函数的调用格式为:。该函数的调用格式为:findsym(S,n)findsym(S,n)函数返回符号表达式函数返回符号表达式S S中的中的n n个符号变量,若没有指个符号变量,若没有指定定n n,则返回,则返回S S中的全部符号变量。中的全部符号变量。在求函数的极限、导数和积分时,如果用户没有明在求函数的极限、导数和积分时,如果用户没有明确指定自变量,确指定自变量,MATLABMATLAB将按缺省原则确定主变量将按缺省原则确定主变量并对其进行相应微积分运算。可用并对其进行相应微积分运算。可用findsym(S,1)findsym
14、(S,1)查找系统的缺省变量,查找系统的缺省变量,事实上,事实上,MATLABMATLAB按离字符按离字符xx最近原则确定缺省变量最近原则确定缺省变量。2.2 2.2 微分运算微分运算2.2.12.2.1符号表达式的极限运算符号表达式的极限运算 limitlimit函数的调用格式为:函数的调用格式为:limit(f,x,a) limit(f,x,a) Limit(f) Limit(f) limitlimit函数的另一种功能是函数的另一种功能是求单边极限求单边极限,其调用,其调用格式为:格式为:limit(f,x,a,right) limit(f,x,a,right) limit(f,x,a,l
15、eft)limit(f,x,a,left)例例2.102.10求极限。求极限。在MATLAB命令窗口,输入命令:syms a m x;f=(x(1/m)-a(1/m)/(x-a);limit(f,x,a) %求极限(1)f=(sin(a+x)-sin(a-x)/x;limit(f) %求极限(2)limit(f,inf) %求f函数在x(包括+和-)处的极限limit(f,x,inf,left) %求极限(3)f=(sqrt(x)-sqrt(a)-sqrt(x-a)/sqrt(x*x-a*a);limit(f,x,a,right) %求极限(4)2.2.2 2.2.2 符号函数求导及其应用符号
16、函数求导及其应用MATLABMATLAB中的求导的函数为:中的求导的函数为:diff(f,x,n)diff(f,x,n)diffdiff函数求函数函数求函数f f对变量对变量x x的的n n阶导数阶导数。参数。参数x x的的用法同求极限函数用法同求极限函数limitlimit,可以缺省,缺省,可以缺省,缺省值与值与limitlimit相同,相同,n n的缺省值是的缺省值是1 1。 例例2.112.11 求函数的导数。求函数的导数。命令如下:命令如下:syms a b t x y z;syms a b t x y z;f=sqrt(1+exp(x);f=sqrt(1+exp(x);diff(f)
17、 %diff(f) %求求(1)(1)。未指定求导变量和阶数,按缺省规则处理。未指定求导变量和阶数,按缺省规则处理f=x*cos(x);f=x*cos(x);diff(f,x,2) %diff(f,x,2) %求求(2)(2)。求。求f f对对x x的二阶导数的二阶导数diff(f,x,3) %diff(f,x,3) %求求(2)(2)。求。求f f对对x x的三阶导数的三阶导数f1=a*cos(t);f2=b*sin(t);f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1) %diff(f2)/diff(f1) %求求(3)(3)。按参数方程求导公式求。按参数
18、方程求导公式求y y对对x x的导数的导数(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1)3 %(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1)3 %求求(3)(3)。求。求y y对对x x的二阶导数的二阶导数f=x*exp(y)/y2;f=x*exp(y)/y2;diff(f,x) %diff(f,x) %求求(4)(4)。z z对对x x的偏导数的偏导数diff(f,y) %diff(f,y) %求求(4)(4)。z z对对y y的偏导数的偏导数f=x2+y2+z2-a2;f=x2+y2
19、+z2-a2;zx=-diff(f,x)/diff(f,z) %zx=-diff(f,x)/diff(f,z) %求求(5)(5)。按隐函数求导公式求。按隐函数求导公式求z z对对x x的偏导数的偏导数zy=-diff(f,y)/diff(f,z) %zy=-diff(f,y)/diff(f,z) %求求(5)(5)。按隐函数求导公式求。按隐函数求导公式求z z对对y y的偏导数的偏导数例例2.122.12在曲线在曲线y=xy=x3 3+3x-2+3x-2上哪一点的切线与直线上哪一点的切线与直线y=4x-1y=4x-1平行。平行。命令如下:x=sym(x); y=x3+3*x-2; %定义曲线
20、函数f=diff(y); %对曲线求导数g=f-4;solve(g)solve(g) %求方程f-4=0的根,即求曲线何处的导数为42.3 2.3 积分运算积分运算2.3.1 2.3.1 不定积分不定积分在在MATLABMATLAB中,求不定积分的函数是中,求不定积分的函数是intint,其调用格式为:,其调用格式为:int(f,x)int(f,x)intint函数求函数函数求函数f f对变量对变量x x的不定积分。参数的不定积分。参数x x可以缺省,可以缺省,缺省原则与缺省原则与diffdiff函数相同。函数相同。例例2.132.13求不定积分。求不定积分。命令如下:命令如下:x=sym(x
21、);x=sym(x);f=(3-x2)3;f=(3-x2)3;int(f) %int(f) %求不定积分求不定积分(1)(1)f=sqrt(x3+x4);f=sqrt(x3+x4);f1=int(f) %f1=int(f) %求不定积分求不定积分(2)(2)g=simple(f1) %g=simple(f1) %调用调用simplesimple函数对结果化简函数对结果化简2.3.2 2.3.2 定积分定积分定积分在实际工作中有广泛的应用。在定积分在实际工作中有广泛的应用。在MATLABMATLAB中,中,定积分的计算使用函数:定积分的计算使用函数:int(f,x,a,b)int(f,x,a,b
22、)例例2.142.14求定积分。求定积分。命令如下:命令如下:x=sym(x);t=sym(t);x=sym(x);t=sym(t);int(abs(1-x),1,2)int(abs(1-x),1,2) % %求定积分求定积分(1)(1)f=1/(1+x2);f=1/(1+x2);int(f,-inf,inf)int(f,-inf,inf) % %负无穷到正无穷求定负无穷到正无穷求定积分积分(2)(2)int(4*t*x,x,2,sin(t)int(4*t*x,x,2,sin(t) % %求定积分求定积分(3)(3)f=x3/(x-1)100;f=x3/(x-1)100;I=int(f,2,3
23、) %I=int(f,2,3) %用符号积分的方法求用符号积分的方法求 定积分定积分(4)(4)例例2.12.15 5 轴的长度为轴的长度为1010米,若该轴的线性密度计算公式是米,若该轴的线性密度计算公式是f(x)=6+0.3xf(x)=6+0.3x千克千克/ /米米( (其中其中x x为距轴的端点距离为距轴的端点距离) ),求轴的质量。,求轴的质量。在在MATLABMATLAB命令窗口,输入命令:命令窗口,输入命令:syms x;syms x;f=6+0.3*x;f=6+0.3*x;m=int(f,0,10)m=int(f,0,10)2.42.4常微分方程的求解常微分方程的求解函数函数ds
24、olvedsolve该函数的调用格式为:该函数的调用格式为:dsolve(eqn1,condition,var)dsolve(eqn1,condition,var)该函数求解微分方程该函数求解微分方程eqn1eqn1在初值条件在初值条件conditioncondition下的下的特解特解。参数参数varvar描述方程中的自变量符号,省略时按缺省原则处描述方程中的自变量符号,省略时按缺省原则处理,若没有给出初值条件理,若没有给出初值条件conditioncondition,则求方程的,则求方程的通解通解。dsolvedsolve在在求微分方程组求微分方程组时的调用格式为:时的调用格式为:dsol
25、ve(eqn1,eqn2,dsolve(eqn1,eqn2,eqnN,condition1,eqnN,condition1,cond,conditionN,var1,itionN,var1,varN),varN)函数求解微分方程组函数求解微分方程组eqn1eqn1、eqnNeqnN在初值条件在初值条件conditoion1conditoion1、conditionNconditionN下的解,若不给出初值条下的解,若不给出初值条件,则求方程组的通解,件,则求方程组的通解,var1var1、varNvarN给出求解变量。给出求解变量。常微分方程(补充)常微分方程(补充)n微分方程:凡是表示未知函
26、数、未知函数的导数与自变量之间的关系的方程叫做微分方程。n常微分方程:未知函数是一元函数的,叫做常微分方程。n微分方程的阶:微分方程中出现的未知函数的最高阶导数即是微分方程的阶。n一般地,n阶微分方程的形式是:其中F是n+2个变量的函数,且 是必须出现的,而小于n阶导数的变量不一定要出现。dsolve dsolve 参数说明参数说明参数说明参数说明n(1)Eqn 微分方程输入方法:微分方程输入方法:n例:例: n命令:命令:Y=dsolve(D2y-2*Dy-3*y=0,x)n(2)condition 初始条件初始条件 y(a)=b;Dy(a)=c;D2y(a)=d;n最多可接受最多可接受12
27、个输入参量个输入参量例例2.2.1818 求微分方程的求微分方程的通解通解。命令如下:命令如下:y=dsolve(Dy-(x2+y2)/x2/2,x) %y=dsolve(Dy-(x2+y2)/x2/2,x) %解解(1)(1)。方程的右。方程的右端为端为0 0时可以不写时可以不写y=dsolve(Dy*x2+2*x*y-exp(x),x) %y=dsolve(Dy*x2+2*x*y-exp(x),x) %解解(2)(2)y=dsolve(Dy-x/y/sqrt(1-x2),x) %y=dsolve(Dy-x/y/sqrt(1-x2),x) %解解(3)(3)例例2.2.1919 求微分方程的
28、求微分方程的特解特解。命令如下:命令如下:y=dsolve(Dy=2*x*y2,y(0)=1,x) %y=dsolve(Dy=2*x*y2,y(0)=1,x) %解解(1)(1)y=dsolve(Dy-x2/(1+y2),y(2)=1,x) %y=dsolve(Dy-x2/(1+y2),y(2)=1,x) %解解(2)(2)2.5 2.5 积分变换积分变换1. 1. 傅立叶傅立叶(Fourier)(Fourier)变换变换在在MATLABMATLAB中,进行傅立叶变换的函数是:中,进行傅立叶变换的函数是:fourier(fx,x,t) fourier(fx,x,t) 求函数求函数f(x)f(x
29、)的傅立叶像函数的傅立叶像函数F(t)F(t)。ifourier(Fw,t,x) ifourier(Fw,t,x) 求傅立叶像函数求傅立叶像函数F(t)F(t)的原函数的原函数f(x)f(x)。2. 2. 拉普拉斯拉普拉斯(Laplace)(Laplace)变换变换在在MATLABMATLAB中,进行拉普拉斯变换的函数是:中,进行拉普拉斯变换的函数是:laplace(fx,x,t) laplace(fx,x,t) 求函数求函数f(x)f(x)的拉普拉斯像函数的拉普拉斯像函数F(t)F(t)。ilaplace(Fw,t,x) ilaplace(Fw,t,x) 求拉普拉斯像函数求拉普拉斯像函数F(
30、t)F(t)的原函数的原函数f(x)f(x)。3. Z3. Z变换变换对数列对数列f(n)f(n)进行进行z z变换的变换的MATLABMATLAB函数是:函数是:ztrans(fn,n,z) ztrans(fn,n,z) 求求fnfn的的z z变换像函数变换像函数F(z)F(z)iztrans(Fz,z,n) iztrans(Fz,z,n) 求求FzFz的的z z变换原函数变换原函数f(n)f(n)傅立叶变换的定义及基本概念(补充)傅立叶变换的定义及基本概念(补充) 令令 为实变为实变x x的连续函数,如果的连续函数,如果 满足满足下面的狄里赫莱条件:下面的狄里赫莱条件:(1 1)有有限个间
31、断点)有有限个间断点(2 2)有有限个极值点)有有限个极值点(3 3)绝对可积)绝对可积 则有以下二式成立:则有以下二式成立: 上式中上式中x x为时域变量(空间域),为时域变量(空间域),u u为频率变量,为频率变量,i i为虚数单位,为虚数单位,通常称上式为傅立叶变换对。通常称上式为傅立叶变换对。 傅立叶变换的定义及基本概念傅立叶变换的定义及基本概念因因x x为时域变量(空间域)故第一式:为时域变量(空间域)故第一式:为逆变换,而且它们可以互为逆变为逆变换,而且它们可以互为逆变换:换:是影像函数的傅立叶变换。第二式:是影像函数的傅立叶变换。第二式: 傅立叶变换的定义及基本概念傅立叶变换的定
32、义及基本概念例例2.202.20求函数的傅立叶变换及其逆变换。求函数的傅立叶变换及其逆变换。命令如下:命令如下:syms x t;y=abs(x);Fw=fourier(y,x,w) %求y的傅立叶变换fx=ifourier(Fw,w,x) %求Ft的傅立叶逆变换命令如下:命令如下:f = exp(-x2)Ft=fourier(f)fx=ifourier(Ft)例例2.2.2 21 1计算计算y=xy=x2 2的拉普拉斯变换及其逆变换的拉普拉斯变换及其逆变换. .命令如下:命令如下:x=sym(x);y=x2;x=sym(x);y=x2;Ft=laplace(y,x,s) %Ft=laplac
33、e(y,x,s) %对函数对函数y y进行拉普拉斯变换进行拉普拉斯变换fx=ilaplace(Ft,s,x) %fx=ilaplace(Ft,s,x) %对函数对函数FtFt进行拉普拉斯逆变换进行拉普拉斯逆变换例例2.2.2 22 2 求数列求数列 fn=efn=e-n-n的的Z Z变换及其逆变换。变换及其逆变换。命令如下:命令如下:syms n zsyms n zfn=exp(-n);fn=exp(-n);Fz=ztrans(fn,n,z) %Fz=ztrans(fn,n,z) %求求fnfn的的Z Z变换变换f=iztrans(Fz,z,n) %f=iztrans(Fz,z,n) %求求F
34、zFz的逆的逆Z Z变换变换 2.6 2.6 泰勒级数泰勒级数2.6.1 2.6.1 函数的泰勒级数函数的泰勒级数MATLABMATLAB中提供了将函数展开为幂级数的函数中提供了将函数展开为幂级数的函数taylortaylor,其调用格式,其调用格式为:为:taylor(f,v,taylor(f,v,a a, ,n n) ) 变量变量v v在在a a点的点的n-1n-1阶泰勒级数阶泰勒级数例例2.12.16 6求函数在指定点的泰勒展开式。求函数在指定点的泰勒展开式。命令如下:命令如下:x=sym(x);x=sym(x);f1=(1+x+x2)/(1-x+x2);f1=(1+x+x2)/(1-x
35、+x2);f2=sqrt(1-2*x+x3)-(1-3*x+x2)(1/3);f2=sqrt(1-2*x+x3)-(1-3*x+x2)(1/3);taylor(f1,x,5) %taylor(f1,x,5) %求求(1)(1)。展开到。展开到x x的的4 4次幂次幂taylor(f2,6) %taylor(f2,6) %求求(2)(2)。 例例2.12.17 7将多项式表示成将多项式表示成x+1x+1的幂的多项式。的幂的多项式。命令如下:命令如下:x=sym(x);x=sym(x);p=1+3*x+5*x2-2*x3;p=1+3*x+5*x2-2*x3;f=taylor(p,x,-1,4)f=taylor(p,x,-1,4)2.7 2.7 求解方程求解方程2.7.1 2.7.1 求解代数方程组求解代数方程组函数函数solvesolve其调用格式为:其调用格式为:solve(eqn1,eqn2,solve(eqn1,eqn2,eqnN,var1,var2,eqnN,var1,var2,varN),varN)x,y = solve(x2 + x*y + y = 3,x2 - 4*x + 3 = 0)个人观点供参考,欢迎讨论