matlab数值运算与符号运算.ppt
1,本章目标,掌握矩阵、向量、数组和多项式的构造和运算方法能够使用常用的几种函数进行一般的数值问题求解理解符号运算的有关概念掌握使用符号运算解决符号推导、微积分、方程等问题的方法,2,主要内容,2.1 矩阵2.2 向量 2.3 数组 2.4 多项式 2.5 数值运算与符号运算2.6 符号变量和符号表达式2.7 符号表示式的运算2.8 微积分2.9 方程求解,3,2.1 矩阵,MATLAB=matrix(矩阵)+laboratory(实验室),4,2.1.1 矩阵的构造,1.通过直接输入矩阵的元素构造矩阵2.通过M文件创建矩阵3.通过函数构造矩阵4.通过数据文件构造矩阵,5,2.1.1 矩阵的构造,1.通过直接输入矩阵的元素构造矩阵:(1)用中括号 把所有矩阵元素括起来(2)同一行的不同数据元素之间用空格或逗号间隔(3)用分号(;)指定一行结束(4)可分成几行进行输入,用回车符代替分号(5)数据元素可以是表达式、数值、变量或函数,6,例:输入矩阵A、B的值,A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16B=1,sqrt(25),9,13;2,6,10,7*23+sin(pi),7,11,154,abs(-8),12,16,7,2.1.1 矩阵的构造,2.通过M文件创建矩阵:当矩阵尺寸较大时,可采用在M文件中创建矩阵。优点:方便修改矩阵元素,8,2.1.1 矩阵的构造,3.通过函数构造矩阵:使用专门的函数可生成某个特定意义的矩阵方法一:初值:步长:终点若不指定步长,则默认值为1;最后一个元素不一定是终点,这取决于区间长度是否是步长的整数倍。该函数用于创建向量。,9,2.1.1 矩阵的构造,3.通过函数构造矩阵:【例2-3】x=0:pi/4:2*pi;%创建0到2 间隔为/4的自变量y=sin(x)%得到在自变量范围内的函数值v=0:piv=0 1 2 3,10,2.1.1 矩阵的构造,3.通过函数构造矩阵:方法二:linspace(初值,终点,元素个数)等分间隔;该函数用于创建向量。例如:m=linspace(0,pi,3)m=0 1.5708 3.1416,11,2.1.1 矩阵的构造,3.通过函数构造矩阵:方法二:linspace(初值,终点,元素个数)例如:n=linspace(0,3,5)n=n=0 0.7500 1.5000 2.2500 3.0000,12,3.通过函数构造矩阵:方法三:常见函数创建特殊矩阵空阵;全0阵zeros();全1阵ones();单位阵eye();随机阵randn(),2.1.1 矩阵的构造,13,3.通过函数创建矩阵 空阵方法:性质:存在空阵变量;空阵中不包括任何元素;用于MATLAB中的运算传递。,2.1.1 矩阵的构造,14,3.通过函数创建矩阵 全0阵矩阵元素全部由0组成的矩阵或数组方法:zeros(n,n)%nn方阵 zeros(m,n,p,.)%mnp.维矩阵,2.1.1 矩阵的构造,15,3.通过函数创建矩阵全1阵全部元素均为1的矩阵或数组方法:ones(n,n)%nn方阵 ones(m,n,p,.)%mnp.非方阵,2.1.1 矩阵的构造,16,3.通过函数创建矩阵 单位阵仅对角线元素为1,其余元素均为0的矩阵或数组方法:eye(n,n)%nn方阵 eye(m,n)%mn非方阵,2.1.1 矩阵的构造,17,3.通过函数创建矩阵 随机阵全部元素均为0到1的矩阵或数组方法:randn(n,n)%nn方阵 randn(m,n,p,.)%mnp非方阵,2.1.1 矩阵的构造,18,4.通过数据文件构造矩阵:MATLAB可处理的数据格式有:(1)文本文件(2)*.mat文件(3)*.xls文件(4)图形文件和声音文件 以上文件均以矩阵存储的。,2.1.1 矩阵的构造,19,2.1.2 矩阵下标与子矩阵提取,(1)A(m,n)%提取第m行,第n列元素(2)A(:,n)%提取第n列元素(3)A(m,:)%提取第m行元素(4)A(m1:m2,n1:n2)%提取第m1行到第m2行和第n1列到%第n2列的所有元素(5)A(m:end,n)%提取从第m行到最末行和第n列的子块(6)A(:)%得到一个长列矢量,该矢量的元素按%矩阵的列进行排列,20,例如:修改矩阵A中元素的数值,A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16;,矩阵如图:,A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0);,继续执行,第1行,第4列,0,1,7,21,2.1.3 矩阵的算术运算,1矩阵的加减运算:(加)、(减)2矩阵乘法:*(乘)3矩阵除法:/(右除)、(左除)4矩阵的幂:(幂)5矩阵转置:(转置运算符),矩阵的算数运算应满足算数运算法则!,22,2.1.3 矩阵的算术运算,【例2-4】两个矩阵分别为 和 求两者相加a=1 2 3;4 5 6;7 8 9;b=1 1 1;2 2 2;3 3 3;c=a+b结果为,23,2.1.3 矩阵的算术运算,【例2-5】两个矩阵分别为 和 求两者相减a=1 2 3;4 5 6;7 8 9;b=1 1 1;c=a-b结果为,24,2.1.3 矩阵的算术运算,【例2-6】两个矩阵a为,b为 求c=a*b和d=b*aa=1 2 3;4 5 6;7 8 9;b=1 2 3;c=a*b结果为,25,2.1.3 矩阵的算术运算,【例2-6】两个矩阵a为,b为 求c=a*b和d=b*aa=1 2 3;4 5 6;7 8 9;b=1 2 3;d=b*a结果为,26,2.1.3 矩阵的算术运算,矩阵除法:/(右除)、(左除)ab等效于矩阵a的逆左乘矩阵b,即a-1 b;a/b等效于矩阵b的逆右乘矩阵a,即a b-1;,27,2.1.3 矩阵的算术运算,矩阵的幂:(幂)【例】矩阵a为,求它的2次幂。a=1 2;3 4c=a2c=7 10 15 22,28,2.1.3 矩阵的算术运算,矩阵转置:(转置运算符),【例2-14】矩阵a为,求a的转置。a=1 2 3;4 5 6;7 8 9;c=ac=1 4 7 2 5 8 3 6 9,29,2.1.3 矩阵的算术运算,矩阵转置:(转置运算符),【例2-15】矩阵a为1+2i,3+4i,求a的转置。a=1+2i 3+4i;c=ac=1.000-2.000i 3.000-4.000ic=a.c=1.000+2.000i 3.000+4.000i,a为复数的共轭转置,a.为复数的非共轭转置,c=conj(a),30,2.1.4 矩阵的关系运算,关系运算符:(大于)gt=(大于或等于)ge、=(等于)eq、=(不等于)ne。关系运算符的运算法则:关系运算将对两个矩阵的对应元素进行比较。关系运算的两个矩阵必须同维。,31,2.1.4 矩阵的关系运算,【例2-16】矩阵a和b均为13阶矩阵,进行如下关系运算。a=0-1 2;b=-3 1 2;aa=bans=0 1 1,ab;a=b;a=b;结果为多少呢?,1 0 0,0 0 1,1 1 0,32,2.1.4 矩阵的关系运算,【例】A=1 5 9;3 4 7;2 6 8A=1 5 9 3 4 7 2 6 8 B=magic(3)B=8 1 6 3 5 7 4 9 2,C=gt(A,B)%A大于等于B?C=0 1 1 0 0 0 0 0 1,33,2.1.4 矩阵的关系运算,【例】B=magic(3)B=8 1 6 3 5 7 4 9 2B3ans=1 0 1 0 1 1 1 1 0,B.*(B3)%B中不大于3的元素设为0ans=8 0 6 0 5 7 4 9 0,34,2.1.4 矩阵的关系运算,【例】绘制0到3pi之间的正弦曲线,并截取pi到2pi之间的曲线。x=linspace(0,3*pi);%自变量数组y=sin(x);%函数数组x1=(x2*pi);%逻辑数组y1=x1.*y;%截断数组plot(x,y1),35,2.1.4 矩阵的关系运算,36,2.1.4 矩阵的关系运算,【综合实例】利用关系运算求近似极限,修补图形缺口t=-2*pi:pi/10:2*pi;%自变量向量y=sin(t)./t;%函数向量tt=t+(t=0)*eps;%修正自变量向量,当t=0时用最小机器数代替y1=sin(tt)./tt;%修正后的函数向量subplot(1,2,1),plot(t,y)%未修正图形subplot(1,2,2),plot(tt,y1)%修正后图形,37,2.1.4 矩阵的关系运算,38,2.1.5 矩阵的逻辑运算,必须是两个同维矩阵或其中一个矩阵为标量才能进行 MATLAB提供了一些逻辑函数,39,2.1.5 矩阵的逻辑运算,【例2-17】矩阵a和b均为23阶矩阵,进行如下逻辑运算。a=1 0 3;0-1 6;b=-1 0 0;0 5 0.3;a%标量b|cans=1 1 1 1 1 1,40,2.1.5 矩阵的逻辑运算,【例】矩阵a和b均为23阶矩阵,进行如下逻辑运算。a=1 0 3;0-1 6;b=1 0 3;1-1 6;isequal(a,b)ans=0isreal(a)ans=1,41,2.1.6 矩阵函数,42,1求矩阵的行列式的值,X=1 2 3 0;5 6 0 8;9 0 11 12;0 14 15 16;det(X)ans=-5464,43,2求矩阵的秩,X=1,2,3;2,3-5;4 7 1;rank(X)ans=2,44,3求逆矩阵,X=1 2 3 0;5 6 0 8;9 0 11 12;0 14 15 16;Y=inv(X)Y=0.2299 0.0908 0.0351-0.0717 0.1940 0.0798-0.0659 0.0095 0.1274-0.0835 0.0322 0.0176-0.2892 0.0084 0.0275 0.0377Y*X%矩阵与其逆阵相乘结果是单位矩阵ans=1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000,45,3求逆矩阵,%续前页 X*Y%矩阵的逆阵是唯一的ans=1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000,46,4求特征值和特征向量,【例2-18】矩阵a=,计算a的特征值和特征矢量a=1 2 3;4 5 6;7 8 9;c,d=eig(a)c=-0.2320-0.7858 0.4082-0.5253-0.0868-0.8165-0.8187 0.6123 0.4082%特征矢量d=16.1168 0 0 0-1.1168 0 0 0-0.0000 特征值,47,5矩阵分解(LU分解),LU分解法是将方阵分解成一个下三角矩阵(lower)和一个上三角矩阵(upper)适用场合:简化大矩阵的行列式值的计算过程;求解逆矩阵;求解方程组。,48,5矩阵分解(LU分解),【例2-22】a=1 2 3;4 5 6;7 8 9;l,u=lu(a)l=0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0u=7.0000 8.0000 9.0000 0 0.8571 1.7143 0 0-0.0000,49,6求解线形方程组,例:求下列方程式的根。2x1+x2-x3=5 3x1-2x2+2x3=5 5x1-3x2-x3=16,求解上述的联立方程,可以使用左除,即求解AX=b,X=Ab,50,6求解线形方程组,A=2 1-1;3-2 2;5-3-1;b=5;5;16;X=AbX=2.1429-1.1429-1.8571,51,7矩阵的特殊操作,重新排列方法:reshape(a,m,n,p,.)性质:将矩阵或数组a重新排列为mnp.排列按照先排列、再排行、然后排列第三维、第四维.,52,7矩阵的特殊操作,重新排列reshape例2-25 矩阵a为44矩阵,将其重新排列为116的一维矢量和242三维数组。a=pascal(4)a=1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20,c=reshape(a,1,16)c=1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20,53,7矩阵的特殊操作,重新排列reshape例2-25 矩阵a为44矩阵,将其重新排列为116的一维矢量和242三维数组。a=pascal(4)a=1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20,c=reshape(a,2,4,2)c(:,:,1)=1 1 1 3 1 1 2 4c(:,:,2)=1 6 1 10 3 10 4 20,54,7矩阵的特殊操作,矩阵的翻转和旋转方法:fliplr(a)%矩阵a左右翻转 left&right flipud(a)%矩阵a上下翻转 up&down flipdim(a,n)%矩阵a 的第n维翻转 rot90(a)%矩阵a 逆时针旋转90o,55,7矩阵的特殊操作,矩阵的翻转和旋转A=magic(3)A=8 1 6 3 5 7 4 9 2flipud(A)ans=4 9 2 3 5 7 8 1 6,56,7矩阵的特殊操作,矩阵的翻转和旋转A=magic(3)A=8 1 6 3 5 7 4 9 2fliplr(A)ans=6 1 8 7 5 3 2 9 4,57,7矩阵的特殊操作,矩阵的翻转和旋转A=magic(3)A=8 1 6 3 5 7 4 9 2rot90(A)ans=6 7 2 1 5 9 8 3 4,58,7矩阵的特殊操作,矩阵的抽取方法:c=diag(a,n)%c为矩阵a的第n条对角线%所创建的元素矢量,n=0或不指定时抽取主对角线。a=diag(c,n)%创建对角矩阵a,矢量c作为a的第n条%对角线元素。,n0,n=0,n=0,%这两条命令中的c为列向量,59,7矩阵的特殊操作,矩阵的抽取方法:c=tril(a,n)%抽取矩阵a的n条对角线下面的部分。c=triu(a,n)%抽取矩阵a的n条对角线上面的部分。%这两条命令中的c为与a同维矩阵,60,7矩阵的特殊操作,例2-27 矩阵a为pascal矩阵,分别抽取对角线元素、创建对角矩阵,抽取上三角矩阵和下三角矩阵。a=pascal(4)a=1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 c=diag(a,1)c=1 3 10,61,7矩阵的特殊操作,例2-27 矩阵a为pascal矩阵,分别抽取对角线元素、创建对角矩阵、抽取上三角矩阵和下三角矩阵。a=pascal(4)a=1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 b=diag(c,1)b=0 1 0 0 0 0 3 0 0 0 0 10 0 0 0 0,c=tril(a)c=1 0 0 0 1 2 0 0 1 3 6 0 1 4 10 20 d=triu(a,-1)d=1 1 1 1 1 2 3 4 0 3 6 10 0 0 10 20,62,2.2 向量,向量是矢量运算的基础行向量列向量,63,2.2.1 向量的构造,1逐个输入a=1 3 9 10 15 16%采用空格和逗号分隔构成行向量b=1;3;9;10;15;16%采用分号隔开构成列向量2利用冒号表达式“:”生成向量x=1:2:9%初值=1,终值=9,步长=2z=1:5%初值=1,终值=5,默认步长=13利用函数生成向量 x=linspace(1,9,5)%初值=1,终值=9,元素数目=5,64,2.2.2 向量的运算,1点积:dot函数2叉积:cross函数 例 a=1 2 3;b=4 5 6;c=dot(a,b)d=cross(a,b)c=32d=-3 6-3,65,2.3 数组,数组运算方式是一种元素对元素的运算(不按照线性代数的规则);除了加、减法的与矩阵相同以外,乘、除、幂的数组运算符都是通过在标准的运算符前面加一个圆点来生成,即.*、./、.、.。,66,数组运算,【例】已知两数组,求两数组的相应运算。x=1 2 3;4 5 6;7 8 9;y=9 8 7;6 5 4;3 2 1;x+y%数组和矩阵的加法规则相同ans=10 10 10 10 10 10 10 10 10 x.*y%数组乘法:对应元素相乘ans=9 16 21 24 25 24 21 16 9,67,数组运算,【例】已知两数组,求两数组的相应运算。x=1 2 3;4 5 6;7 8 9;y=9 8 7;6 5 4;3 2 1;%续前页 x*y%矩阵乘法:按照线性代数理论进行ans=30 24 18 84 69 54 138 114 90,68,2.4 多项式,多项式是形如P(x)=a0 xn+a1xn-1+an-1x+an的式子。在MATLAB中,多项式用行向量表示:P=a0 a1 an-1 an,69,2.4.1 多项式的生成与表达,1.系数矢量直接输入poly2sym 例3-1 创建多项式x3-4x2+3x+2poly2sym(1-4 3 2)%将系数矢量转换为符号形式ans=x3-4*x2+3*x+22.特征多项式输入 poly例3-2 求矩阵 的特征多项式系数,并转换为多项式a=1 2 3;4 5 6;7 8 9;p=poly(a);%求解特征多项式poly2sym(p)ans=x3-6*x2-72*x-27,70,2.4.1 多项式的生成与表达,3.根矢量创建 例3-3 根据根矢量-0.5,-0.3+0.4i,-0.3-0.4i创建多项式 r=-0.5-0.3+0.4i,-0.3-0.4i p=poly(r)p=1.0000 1.1000 0.5500 0.1250 pr=real(p)%对于含复数根的根矢量需用real函数滤除虚部 pr=1.0000 1.1000 0.5500 0.1250 ppr=poly2sym(pr)ppr=x3+11/10*x2+11/20*x+1/8,71,2.4.2 多项式的运算,1.多项式的算术运算参加加减运算的多项式应该具有相同的阶次。多项式乘法采用conv函数,除法由deconv函数完成。2.求根 求多项式的根采用roots函数。3.求值函数polyval可以将某个特定数值代入多项式函数polyvalm可以求出当多项式中的未知数为方阵时的值。4.求微分 使用polyder函数对多项式求微分。,72,2.4.2 多项式的运算,【例3-4】求多项式3x2+2x+1在5、7、9处的值。分析:求多项式在标量处的值,可采用polyval函数。p=3,2,1;polyval(p,5,7,9)ans=86 162 262,73,2.4.2 多项式的运算,【例3-5】求多项式3x2+2x+1对于矩阵 及标量5处的值。分析:求多项式在矩阵处的值,可采用polyvalm函数。p=3,2,1;polyvalm(p,2,5;7,9)ans=122 175 245 367,polyval m(p,5)ans=86polyval(p,5),polyvalm符合矩阵乘法规则,74,2.4.2 多项式的运算,【例3-6】求多项式x5-5x4+3x3-6x2+4x-10的根。分析:采用roots函数。a=1,-5,3,-6,4,-10;r=roots(a)r=4.6130 0.7621+0.9789i 0.7621-0.9787i-0.5685+1.0419i-0.5685-1.0419i,75,2.4.2 多项式的运算,【例3-9】求多项式3x4-5x3+2x2-6x+10的微分。分析:采用polyder函数。p=3-5 2-6 10;p1=polyder(p)%求解1次微分p1=12-15 4-6p2=polyder(p1)p2=36-30 4poly2sym(p1)%转换为多项式ans=12*x3-15*x2+4*x-6,p3=polyder(p,2)p3=24-30 8-12%polyder(A,B)实现的是多项式A*B的一次导数(微分),76,应用举例,例:设矩阵A和B满足关系式AB=A+2B已知 A=4 2 3 求B 1 1 0-1 2 3分析:由AB=A+2B,可得(A-2E)B=A,故B=(A-2E)-1AA=4 2 3;1 1 0;-1 2 3;B=inv(A-2*eye(3)*AB=3.0000-8.0000-6.0000 2.0000-9.0000-6.0000-2.0000 12.0000 9.0000,77,应用举例,例:将表达式(x-4)(x+5)(x2-6x+9)展开为多项式形式,并求其对应的一元n次方程的根。分析:采用conv函数和roots函数p=conv(1-4,conv(1 5,1-6 9)px=poly2str(p,x)x=roots(p),78,2.5 数值运算与符号运算,数值运算在运算前必须先对变量赋值,再参加运算。符号运算不需要对变量赋值就可运算,运算结果以标准的符号形式表达。,79,2.5 数值运算与符号运算,有关符号运算的几个基本概念:1.符号对象用来存储代表非数值的字符符号,可以是符号常量、符号变量、符号函数以及各种符号表达式。2.符号常量形式上是数值,但已是一个符号对象。通过将数值常量作为sym()函数的输入参量可建立。3.符号变量内容可变的符号对象。4.符号表达式、符号函数和符号方程由符号常量、符号变量、符号函数用运算符或专用函数连接而成的符号对象。5.符号矩阵元素是符号对象的矩阵。,80,2.6 符号变量和符号表达式,符号变量和符号表达式在使用前必须说明1.sym函数f1=sym(ax2+bx+c)%创建符号变量f1和一个符%号表达式2.syms函数 clear syms a b c x whos Name Size Bytes Class a 1x1 126 sym object b 1x1 126 sym object c 1x1 126 sym object x 1x1 126 sym object,81,2.6 符号变量和符号表达式,默认的符号变量i和j通常作为虚数单位如a=1+2i a=1+2i,82,2.7 符号表示式的运算,2.7.1 算术运算 运算符“”、“-”、“*”、“/”、“”、“”、“.*”、“.”、“./”、“.”分别实现符号对象的加、减、乘、左除、右除、符号数组的乘、左除、右除、幂运算,83,2.7 符号表示式的运算,2.7.1算术运算 clear f1=sym(1/(a-b);f2=sym(2*a/(a+b);f3=sym(a+1)*(b-1)*(a-b);f1+f2%符号和ans=1/(a-b)+2*a/(a+b)f1*f3%符号积ans=(a+1)*(b-1)f1/f3%符号商ans=1/(a-b)2/(a+1)/(b-1),84,2.7 符号表示式的运算,2.7.2 关系运算 符号对象的关系运算,没有“大于”“小于”等的概念,只有是否“等于”的关系概念。即=或 符号对象没有逻辑运算。,85,2.7.3 函数运算,1合并、化简、展开等函数(1)factor(S):将表达式S因式分解;(2)expand(S):将表达式S展开;(3)collect(S,n):将表达式S中的自变量n合并同次幂项;(4)simplify(S):利用代数中的函数规则化简表达式S;(5)n,d=numden(S):将表示式S转变成分子与分母形式,其中n为分子,d为分母。,86,2.7.3 函数运算,2反函数finverse(f,v)对指定自变量为v的函数f(v)求反函数 3复合函数compose(f,g)求f=f(x)和g=g(y)的复合函数f(g(y)compose(f,g,z)求 f=f(x)和g=g(y)的复合函数f(g(z)4表达式替换函数(1)subs(S):用赋值语句中给定值替换表达式S中所有同名变量(2)subs(S,old,new):用符号或数值变量new替换S中的符号变量old,87,应用举例,clear f1=sym(exp(x)+x)*(x+2);f2=sym(a3-1);f3=sym(1/a4+2/a3+3/a2+4/a+5);f4=sym(sin(x)2+cos(x)2);collect(f1)ans=x2+(exp(x)+2)*x+2*exp(x)expand(f1)ans=exp(x)*x+2*exp(x)+x2+2*x,factor(f2)ans=(a-1)*(a2+a+1)m,n=numden(f3)%m为分子,n为分母m=1+2*a+3*a2+4*a3+5*a4n=a4 simplify(f4)ans=1,88,【例4-10】将表达式f=x(x(x-6)+12)t分别按照x 和 t进行同类合并。syms x tf=x*(x*(x-6)+12)*t;collect(f)ans=t*x3-6*t*x2+12*t*xcollect(f,t)ans=x*(x*(x-6)+12)*t,应用举例,%不指明自变量时,默认状态是x,%指明自变量时,按指定自变量合并。,89,clearsyms x yfinverse(1/tan(x)%求反函数,自变量为x ans=atan(1/x)f=x2+y;finverse(f,y)%求反函数,自变量为yans=-x2+y clearsyms x y z t u;f=1/(1+x2);g=sin(y);h=xt;p=exp(-y/u);compose(f,g)%求f=f(x)和 g=g(y)的复合函数f(g(y)ans=1/(1+sin(y)2),应用举例,90,【例4-15】clearsyms a bsubs(a+b,a,4)%用4替代a+b中的aans=4+bsubs(cos(a)+sin(b),a,b,sym(alpha),2)%多重替换ans=cos(alpha)+sin(2)f=sym(x2+3*x+2)f=x2+3*x+2 subs(f,x,2)%求解f当x=2时的值ans=12,应用举例,%当变量new为数值形式时,显示的结果仍为符号变量。,91,2.8 符号极限、微积分,2.8.1极限,1.limit(F)计算符号表达式F在默认自变量趋于0时极限2.limit(F,a)(同上)a时极限3.limit(F,x,a)计算符号表达式F在x a条件下的极限4.limit(F,x,a,right)和limit(F,x,a,left)计算符号表达式F在x a 条件下的右极限和左极限。,92,应用举例,例:,clearsyms a xlimit(1/x,x,0)ans=NaNlimit(1/x,x,0,left)ans=-Inflimit(x+a)/(x-a)x,x,inf)ans=exp(2*a),93,2.8.2 符号微分 dy/dx,1.diff(f)求表达式f对默认自变量的一次微分值;2.diff(f,t)对指定自变量t的一次微分值;3.diff(f,n)对默认自变量的n次微分值;4.diff(f,t,n)对指定自变量t的n次微分值。,94,应用实例,例:已知f(x)=ax2+bx+c,求f(x)的微分,syms a b c xf=a*x2+b*x+cdiff(f)%对默认自变量x 求微分ans=2*a*x+bdiff(f,2)%对x求2次微分ans=2*a,diff(f,a)%对自变量a求微分ans=x*2diff(diff(f),a)%对x和a求偏导ans=2*x,95,2.8.3 积分,1.int(f)对默认自变量的积分值;2.int(f,t)对指定自变量t的不定积分值;3.int(f,a,b)对默认自变量的定积分值,积分区间为a,b;4.int(f,t,a,b)对指定自变量t的定积分值,积分区间为a,b,int(被积表达式,积分变量,积分下限,积分上限)定积分,缺省时为不定积分,96,应用实例,例:已知f(x)=ax2+bx+c,求f(x)的积分syms a b c xf=a*x2+b*x+cint(f)%表达式f的不定积分ans=1/3*a*x3+1/2*b*x2+c*x%表达式f在(0,2)的定积分int(f,x,0,2)ans=8/3*a+2*b+2*c,97,应用实例,例:已知f(x)=ax2+bx+c,求f(x)对a的不定积分int(f,a)ans=1/2*a2*x3+1/2*b*a*x2+c*a*xint(int(f,a),x)ans=1/6*a2*x3+1/2*b*a*x2+c*a*x,计算二重不定积分,98,应用实例,例:计算二重不定积分,F=int(int(x*exp(-x*y),x),y)F=1/y*exp(-x*y),99,2.9 符号求和,1.symsum(S)%计算符号表达式S对默认自变量 的不定和 2.symsum(S,v)%符号表达式S对自变量v的不定和 3.symsum(S,a,b)%符号表达式S对默认变量从a到b 的有限和,100,应用实例,【例4-19】分别计算表达式k,和syms k xsymsum(k)ans=1/2*k21/2*ksymsum(k2,0,10)ans=385symsum(xk/sym(k!),k,0,inf)ans=exp(x),101,2.10 符号方程的求解,matlab符号运算能够解一般的线性方程、非线性方程及一般的代数方程、代数方程组。当方程组不存在符号解时,又无其他自由参数,则给出数值解。命令格式:solve(f)求一个方程的解solve(f1,f2,fn)求n个方程的解,102,2.10 符号方程的求解,2.10.1 代数方程代数方程的求解由函数solve实现:1.solve(eq)求解符号方程式eq=0,默认自变量 2.solve(eq,var)求解符号方程式eq=0,var为自变量3.solve(eq1,eq2,eqn,var1,var2varn)求解联立方程组eq1=0,eq2=0eqn=0,自变量分别为var1,var2varn,103,应用实例,syms a b c xf=a*x2+b*x+csolve(f)ans=1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4*a*c)(1/2),计算机格式,一般格式,f=ax2+bx+c 求解,104,应用实例,solve(f,b)%对指定变量b求解ans=-(a*x2+c)/xsolve(1+x=sin(x)ans=-1.9345632107520242675632614537689,f=ax2+bx+c 求解,105,应用实例,解方程组 x+y+z=1 x-y+z=2 2x-y-z=1g1=sym(x+y+z=1);g2=sym(x-y+z=2);g3=sym(2*x-y-z=1)f=solve(g1,g2,g3)或者f=solve(x+y+z=1,x-y+z=2,2*x-y-z=1),106,应用实例,解方程组 x+y+z=1 x-y+z=2 2x-y-z=1,f=solve(x+y+z=1,x-y+z=2,2*x-y-z=1)f=x:1x1 symf.x ans=2/3 y:1x1 symf.y ans=-1/2 z:1x1 symf.z ans=5/6,107,2.10 符号方程的求解,2.10.2 常微分方程使用函数dsolve来求解常微分方程:dsolve(eq1,eq2,.,cond1,cond2,.,v)其中eq1、eq2为微分方程式cond1、cond2为对应微分方程式的初始条件v是指定变量,若不指明为默认自变量,108,2.10 符号方程的求解,2.10.2 常微分方程,109,应用实例,例:分别求解,,初始条件y(0)=1,dsolve(Dy=x,x)%求微分方程y=x的通解,指定x为%自变量。ans=1/2*x2+C1dsolve(D2y=1+Dy,y(0)=1,Dy(0)=0)%求微分方程y=1+y的解,加初始条件ans=-x+exp(x),110,应用实例,y=dsolve(D2y+2*Dy+2*y=0,y(0)=1,Dy(0)=0)y=exp(-x)*cos(x)+exp(-x)*sin(x)ezplot(y)方程解y(t)的时间曲线图,例:,111,应用实例,例:,112,扩展阅读,mtaylor(f,n)泰勒级数展开ztrans(f)Z变换invztrans(f)反Z变换laplace(f)拉氏变换invlaplace(f)反拉氏变换fourier(f)付氏变换invfourier(f)反付氏变换,113,扩展阅读,例:计算 f=x*exp(-x*10)的Z变换 F=ztrans(f)F=z*exp(-10)/(z-exp(-10)2,114,应用练习,练习1,练习2,提示:利用limit函数和symsum函数,提示:利用符号矩阵和limit函数,115,应用练习,练习3:求积分,练习4:求微分方程,116,学好计算机的唯一途径是 你的编程能力与你在计算机上投入的时间成,结束语,上机练习,正比,