资源描述
Matlab与仿真 高军峰 博士: 西安交通大学 硕士: 武汉理工大学 qq:690172649练习1的问题 求两个向量的点积的三种方法 c=dot(a,b); c=a*b; c=sum(a.*b); 求两个向量的叉积的方法 c=cross(a,b); 求矩阵和变量的积,实际即为点积: c=a*(1+2*i); 在在Matlab中,关系运算与逻辑运算中,关系运算与逻辑运算只适用于数组(向只适用于数组(向量),量),不适用于矩阵。其运算规则为:不适用于矩阵。其运算规则为:关系运算的优先关系运算的优先级高于算术运算,低于逻辑运算。级高于算术运算,低于逻辑运算。a=1+2i;b=1+4i;a=b%运算结果为:运算结果为:ans = 0 ab%运算结果为:运算结果为: ans = 0例例:1.4.4 关系与逻辑运算关系与逻辑运算 运算符运算符、=只比较二量的实部,而只比较二量的实部,而运算符运算符=与与=则同时比较实部与虚部。则同时比较实部与虚部。 若两标量比较,其关系成立者,运算结果为逻若两标量比较,其关系成立者,运算结果为逻辑真辑真(1),否则为逻辑假,否则为逻辑假(0)。一、数组的关系运算一、数组的关系运算若一标量与一数组比较,则将标量与数组的每一个元若一标量与一数组比较,则将标量与数组的每一个元素逐个比较,其运算结果为一个与数组同维的新数组,素逐个比较,其运算结果为一个与数组同维的新数组,其元素由其元素由1与与0组成,即关系成立者,运算结果为逻辑组成,即关系成立者,运算结果为逻辑真真(1),否则为逻辑假,否则为逻辑假(0)。c=8;d=4 5 6; 7 8 9;df%运算结果为:运算结果为: ans= 0 0 1 0例例:二、数组的逻辑运算二、数组的逻辑运算 非非0元素代表逻辑真元素代表逻辑真“1”,0元素代表逻辑假元素代表逻辑假“0”;cleara=1;b=2;c=3;d=0;e=a & bf=c | dg=c%运算结果为:运算结果为:e = 1f = 1g = 0例例:逻辑运算中,逻辑运算中,not的运算优先级最高,的运算优先级最高,and和和or有相同的优有相同的优先级先级(xor只有函数形式只有函数形式);还可用括号改变运算优先权。;还可用括号改变运算优先权。若一标量与一数组比较,则将标量与数组的每一个元素逐若一标量与一数组比较,则将标量与数组的每一个元素逐个比较,其运算结果为一个与数组同维的新数组,其元素个比较,其运算结果为一个与数组同维的新数组,其元素由由1与与0组成。组成。c=6;d=4 0 6; 0 8 0d | c%运算结果为:运算结果为:ans = 1 0 1 0 1 0例例:若两数组做逻辑运算,数组维数需相同,将两数组对若两数组做逻辑运算,数组维数需相同,将两数组对应的每一个元素逐个运算,其运算结果为一个与原向应的每一个元素逐个运算,其运算结果为一个与原向量同维的新数组,其元素由量同维的新数组,其元素由1与与0组成。组成。e=1 0; 8 3;f=2 0; 5 7;e & f%运算结果为:运算结果为:ans = 1 0 1 1例例:Matlab除了上述的各类运算外,还提供了许多运算函数。除了上述的各类运算外,还提供了许多运算函数。函数名函数名功能功能函数名函数名功能功能函数名函数名功能功能sin正弦函数正弦函数tanh双曲正切双曲正切abs绝对值绝对值(复数的模复数的模)cos余弦函数余弦函数coth双曲余切双曲余切angle复数的幅角复数的幅角tan正切函数正切函数asinh反双曲正弦反双曲正弦conj复数共轭运算复数共轭运算cot余切函数余切函数acosh反双曲余弦反双曲余弦imag复数的虚部复数的虚部sec正割函数正割函数atanh反双曲正切反双曲正切real复数的实部复数的实部csc余割函数余割函数acoth反双曲余切反双曲余切fix向向0方向取整方向取整asin反正弦函数反正弦函数asech反双曲正割反双曲正割floor不大于自变量的最大整数不大于自变量的最大整数acos反余弦函数反余弦函数acsch反双曲余割反双曲余割ceil不小于自变量的最小整数不小于自变量的最小整数atan反正切函数反正切函数exp自然指数自然指数round四舍五入到最邻近的整数四舍五入到最邻近的整数acot反余切函数反余切函数pow2以以2为底的指数为底的指数mod模除求余模除求余asec反正割函数反正割函数log10常用对数常用对数rem求余数或模运算求余数或模运算acsc反余割函数反余割函数log2以以2为底的对数为底的对数sign符号函数符号函数sinh双曲正弦双曲正弦log自然对数自然对数gcd最大公约数最大公约数cosh双曲余弦双曲余弦sqrt平方根函数平方根函数lcm最小公倍数最小公倍数表表1-2 MATLAB常用运算函数常用运算函数matlab的函数 分为系统函数和自己书写的函数,对于系统函数,可以在matlab的命令窗口输入名字,然后选中函数名,右键找到:就可以打开系统函数的定义,可以查看函数的说明及函数过程。 函数定义,以function 关键字开头,如: function y, delta = polyval(p,x,S,mu) 调用函数的形式: 返回变量用逗号隔开=函数名(实参变量用逗号隔开),如: C=dot(a,b); d=conj(1+2*i); 在在Matlab中,采用行向量表示多项式,该向量中的元素中,采用行向量表示多项式,该向量中的元素是按降幂排列的多项式系数。是按降幂排列的多项式系数。多项式多项式 P (x)=a0 x n+a1 x n-1+an-1 x +an的系数行向量为:的系数行向量为: P=a0 a1 an-1 an 1.4.5 多项式运算多项式运算函函 数数功功 能能函函 数数功功 能能roots多项式求根多项式求根convdeconv多项式乘法多项式乘法(卷积卷积)多项式除法多项式除法(解卷解卷)poly由根式求多项式由根式求多项式residue分式多项式的部分分式展开分式多项式的部分分式展开(留数留数)polyval多项式求值多项式求值polyder多项式求导数多项式求导数多项式运算函数:多项式运算函数:1. 多项式求根多项式求根p=1 2 3 4 5;C=roots ( p)%运算结果为:运算结果为:C = 0.2878+1.1461i 0.2878 -1.1461i -1.2878+0.8579i -1.2878 -0.8579i 例:例:求多项式求多项式 P (x)=x4+2x3+3x2+4x+5 的根。的根。求解该多项式等于求解该多项式等于0时对应方程的根。时对应方程的根。2. 由根求多项式由根求多项式p1= poly ( C )%运算结果为:运算结果为:P1=1 2 3 4 5由此可见,多项式的由此可见,多项式的poly ( )与与roots ( )函数互为逆运算。函数互为逆运算。由该多项式等于由该多项式等于0时对应方程的根求其多项式的系数。时对应方程的根求其多项式的系数。例:例:已知多项式的根分别为已知多项式的根分别为1、5、8,试求对应的多项式。,试求对应的多项式。即即多项式多项式 P 1(x)=x4+2x3+3x2+4x+53. 多项式乘法多项式乘法/除法除法r=1 2 3; g=4 5 6;p= conv ( r, g)%运算结果为:运算结果为:p = 4 13 28 27 18即即p (x) = 4x4+13x3+28x2+27x+18例:例:求多项式求多项式 p (x)=(x2+2x+3)( 4x2+5x+6 )的系数。的系数。p = conv ( p1, p2)p,r = deconv ( p1, p2)s,q= deconv ( p, g)4. 分式多项式的部分分式展开分式多项式的部分分式展开 01110111.)(axaxaxabxbxbxbxaxbxynnnnmmmm 将将y(x)进行部分分式分解,即求留数计算,可以得到:进行部分分式分解,即求留数计算,可以得到: xkpxrpxrpxrxaxbxynn .)(2211 b为分子系数向量,为分子系数向量,a为分母系数向量;为分母系数向量;r为部分分式中留数为部分分式中留数向量,向量,p为部分分式中极点向量,为部分分式中极点向量,k为直接相除项行向量。为直接相除项行向量。r, p, k=residue (b, a)例:例:已知一传递函数已知一传递函数 ,将其分解为部分分式。,将其分解为部分分式。35 . 015 . 0)( sssF342)(2ssssFa=1 2;b=1 4 3;z, p, k=residue (a, b)%运算结果为:运算结果为:z = 0.5000 0.5000p = -3 -1k = 即得传递函数分解的部分分式为:即得传递函数分解的部分分式为:反之,用反之,用residue函数也可将部分分式展开式返回到传函数也可将部分分式展开式返回到传递函数多项式之比的形式。递函数多项式之比的形式。a, b=residue (z, p, k)%运算结果为:运算结果为:a=1 2b=1 4 3342)(2ssssF即返回原传递函数即返回原传递函数例例:5. 多项式求导数多项式求导数(微分微分)polyder (p): 求求p的微分;的微分;polyder (a, b): 求多项式求多项式a, b乘积的微分;乘积的微分;p, q=polyder (a, b): 求多项式求多项式a, b商的微分,商的微分,p为导函为导函数的分子系数向量,数的分子系数向量,q这导函数的分母系数向量。这导函数的分母系数向量。p=1 2 3 4 5;b= polyder ( p )%运算结果为:运算结果为: b= 4 6 6 4例:例:求多项式求多项式 p (x)=x4+2x3+3x2+4x+5的导数。的导数。即即b(x)=d p(x) /dx=4x3+6x2+6x+46. 多项式求值多项式求值polyval (p, x): p为多项式系数向量,为多项式系数向量,x为输入。为输入。p=1 2 3 4; x=2;y= polyval ( p, x )%运算结果为:运算结果为: y= 26例:例:求多项式求多项式 y=x3+2x2+3x+4在在x=2处的值。处的值。1.4.6 数值分析数值分析函函 数数功功 能能函函 数数功功 能能max查找最大值查找最大值prod求积求积min查找最小值查找最小值mean求平均值求平均值sum求和求和median求中值求中值一、查找最大值一、查找最大值1. 求矩阵求矩阵/数组(向量)的最大元素数组(向量)的最大元素max (A),返回一个行向量,向量的第,返回一个行向量,向量的第i个元素是矩阵个元素是矩阵第第i列上的最大元素列上的最大元素; y, u=max (A),返回两个行向量,返回两个行向量,y向量记录向量记录A的每的每列的最大元素,列的最大元素,u向量记录每列最大元素的向量记录每列最大元素的行号行号。 max (A, ,dim),dim取取1或或2。dim取取1时,该函数和时,该函数和max (A)完全相同。完全相同。dim取取2时,该函数返回一个列向量,时,该函数返回一个列向量,其第其第i个元素是个元素是A矩阵的第矩阵的第i行上的最大元素。行上的最大元素。A=3 2 6;-5 28 -7;16 4 -8;60 9 17; max (A) %求每列的最大元素求每列的最大元素ans = 60 28 17y,u1=max (A)y = 60 28 17u1 = 4 2 4u2=max(A, ,1) %求每列的最大元素求每列的最大元素u2 =60 28 17u3=max(A, ,2) %求每行的最大元素求每行的最大元素u3 = 6 28 16 60例例: u=max (A,B),A、B是两个同型的数组或矩阵。是两个同型的数组或矩阵。结果结果u是与是与A、B同型的数组或矩阵,并且同型的数组或矩阵,并且u的每个的每个元素等于元素等于A、B对应元素的最大者;对应元素的最大者; u=max (A,n),n是一个标量。结果是一个标量。结果u是与是与A同型同型的数组或矩阵,的数组或矩阵,u的每个元素等于的每个元素等于A中对应元素和中对应元素和n相比的较大者。注意区别相比的较大者。注意区别max (A, ,1)或者或者 max (A, ,2)2. 两个数组或矩阵元素的比较两个数组或矩阵元素的比较min函数用来查找最小值,其用法与命令格式与函数用来查找最小值,其用法与命令格式与max完全相同。完全相同。A=1 9; 8 2;B=3 4; 6 5;n=5C=max (A, B)C =3 9 8 5D=max(A,n)D =5 9 8 5例例:二、求和与求积二、求和与求积 sum(A),返回一个行向量,其第返回一个行向量,其第 i个元素是矩阵个元素是矩阵 A 的第的第 i列的元素和列的元素和。(与。(与max一样。)一样。) sum(A,dim),当,当 dim 为为 1 时,该函数等同于时,该函数等同于 sum(A),当),当 dim 为为 2 时,返回一个列向量,其第时,返回一个列向量,其第 I个元素是矩阵个元素是矩阵 A 的第的第 i行的各元素和行的各元素和。prod函数用来求积,其用法与命令格式与函数用来求积,其用法与命令格式与sum完全相同。完全相同。A = 1 9; 8 2B = sum(A)B = 9 11C=sum(A,1) %求每列的和求每列的和D = 9 11D=sum(A,2) %求每行的和求每行的和D = 10 10例例:三、求平均值和中值三、求平均值和中值 中值中值是指在数据序列中其值的是指在数据序列中其值的大小恰好在中间大小恰好在中间。例如,数。例如,数据序列据序列5,3,8,-6,12的中值为的中值为5 。如果为偶数个元素时,则中值等。如果为偶数个元素时,则中值等于中间的两项之平均值。例如,数据序列于中间的两项之平均值。例如,数据序列5,3,8,-6,12,4中,处于中,处于中间的数为中间的数为4和和5,故其中值为此两数的平均值,故其中值为此两数的平均值4.5 。median函数用来求中值,其用法与命令格式与函数用来求中值,其用法与命令格式与mean完全相同。完全相同。 mean(A),返回一个行向量,其第,返回一个行向量,其第 i个元素是矩阵个元素是矩阵 A 的第的第 i列的算术平均值。列的算术平均值。 mean(A,dim),当,当 dim 为为 1 时,该函数等同于时,该函数等同于 mean(A),当,当 dim 为为 2 时,返回一个列向量,其第时,返回一个列向量,其第 i个个元素是矩阵元素是矩阵 A 的第的第 i行的算术平均值。行的算术平均值。A = 1 9; 8 2B = mean(A)B = 4.5 5.5C=mean(A,2) %求每列的平均值求每列的平均值C = 5 5例例:一、一、MATLAB的数学表达式的数学表达式MATLAB的表达式有两类:的表达式有两类: 数字表达式数字表达式由数值量、数值变量、数值函数或由数值量、数值变量、数值函数或数值矩阵用运算符连接而成的数学关系式。它主要用来数值矩阵用运算符连接而成的数学关系式。它主要用来进行数值计算。进行数值计算。符号表达式符号表达式由符号常量、符号变量、符号函数用由符号常量、符号变量、符号函数用运算符连接而成的符号对象,主要用来进行符号运算。运算符连接而成的符号对象,主要用来进行符号运算。1.4.7 MATLAB的数学表达式及其书写的数学表达式及其书写1. 数值与变量或变量与变量相乘不能连写,必须用乘号数值与变量或变量与变量相乘不能连写,必须用乘号将两变量加以连接;思考将两变量加以连接;思考b=a(1+2i);c=2a+bd;2. 一般数学表达式中可以使用大括号、中括号与小括号,一般数学表达式中可以使用大括号、中括号与小括号,而而Matlab表达式只能用小括号;表达式只能用小括号;3. 像水平除号线、乘方运算、开根号等纯数学写法在像水平除号线、乘方运算、开根号等纯数学写法在Matlab里不允许也是不能实现的;里不允许也是不能实现的;4. 三角函数与双曲函数及其反函数、对数函数的自变量三角函数与双曲函数及其反函数、对数函数的自变量必须用小括号加以限定;如必须用小括号加以限定;如d=sinx;二、二、MATLAB数学表达式书写数学表达式书写5. 分式的书写,注意分子分母最好都分别用小括号加以限定。分式的书写,注意分子分母最好都分别用小括号加以限定。特别是分母,当省略小括号的限定时,很容易出错;如:特别是分母,当省略小括号的限定时,很容易出错;如: 思考:思考:c=b/2*c;5. 某量某量k的平方根表示:的平方根表示:sqrt (k)与与k(1/2)等效;等效;6. 求幂运算的指数两侧最好用小括号加以限定,否则指数为求幂运算的指数两侧最好用小括号加以限定,否则指数为分式时极易出错;如:思考:分式时极易出错;如:思考:c=d3*4;7. 自然常数自然常数e的指数运算的书写形式为的指数运算的书写形式为exp ( ) ,对数运算的,对数运算的书写形式为书写形式为log( );8. 自然常数自然常数的书写形式为的书写形式为“pi”;虚数单位的书写形式为;虚数单位的书写形式为“i”或或“j”;无穷大的书写形式为;无穷大的书写形式为“inf”或或“INF”。例:例:将以下数学表达式书写成将以下数学表达式书写成MATLAB表达式。表达式。8ln533)4(97ln35)3(2)2(2cos82sin4) 1 (TtezzFxytefexexy解:解:根据根据Matlab书写规则,以上式子的书写规则,以上式子的Matlab表达式为:表达式为:(1) y=4*sin(2*x)*exp(-3)+8*cos(2*x)* exp(-3)(2) f=exp(5*t)*2*sqrt(t/pi)(3) 5/(3*log(7-x)+9)(4) F=z/(z-exp(T*log(8)注意在注意在matlab里面输入时,前提当然是等号右边里面输入时,前提当然是等号右边的那些变量已经在内存中,并有值存在!的那些变量已经在内存中,并有值存在!u 符号运算的操作对象是非数值的符号对象。符号运算的操作对象是非数值的符号对象。u 与数值运算的区别:数值运算中必须先对变量赋值,与数值运算的区别:数值运算中必须先对变量赋值,然后才能参与运算。符号运算无须事先对独立变量然后才能参与运算。符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。赋值,运算结果以标准的符号形式表达。1.5 Matlab符号运算符号运算 符号运算是符号运算是Matlab的重要组成部分。应用符号计的重要组成部分。应用符号计算功能,可以直接对抽象的符号对象进行微积分或代算功能,可以直接对抽象的符号对象进行微积分或代数计算,并获得问题的解析结果。数计算,并获得问题的解析结果。1.5.1符号运算基础符号运算基础一、符号变量、符号常量的建立一、符号变量、符号常量的建立(1) a=sym (x), x为创建的符号变量,为创建的符号变量,a为输出的变量名。为输出的变量名。(2) syms arg1 arg2 argN,在一个语句中同时定义多个符,在一个语句中同时定义多个符号变量。注意号变量。注意syms后面的后面的s不要掉了!不要掉了! 符号变量和数值变量是不同的。数值变量参与运算前必须符号变量和数值变量是不同的。数值变量参与运算前必须先进行赋值,变量的运算实际上是该变量所对应的值进行运算,先进行赋值,变量的运算实际上是该变量所对应的值进行运算,其运算结果是一个和变量类型对应的值。符号变量运算前不需其运算结果是一个和变量类型对应的值。符号变量运算前不需要赋值,其结果是一个由参与运算的变量名组成的表达式。要赋值,其结果是一个由参与运算的变量名组成的表达式。a=sym (a);b=sym (b);c=sym (c);d=sym (d); %定义定义4个符号变量个符号变量w=1; x=2; y=3; z=4; %定义定义4个数值变量个数值变量A=a, b; c, d %建立符号矩阵建立符号矩阵AA = a, b c, dB=w, x; y, z %建立数值矩阵建立数值矩阵BB = 1 2 3 4det (A) %计算符号矩阵计算符号矩阵A的行列式的行列式ans = a*d - b*cdet (B) %计算数值矩阵计算数值矩阵B的行列式的行列式ans= -2例:例:例如: a=sym(a);b=sym(b);c=sym(c);d=sym(d);i=sym(i);j=sym(j);k=sym(k);e=sym(e);f=sym(f); 或者:syms i j k a b c d e f; A=i j k;a b c;d e f;求向量a b c与d e f的叉积表达式,则:c=det(A),结果为:c = i*b*f-i*c*e-a*j*f+a*k*e+d*j*c-d*k*b (3) 应用应用sym( )函数还可以定义符号常量。函数还可以定义符号常量。符号常量进行计符号常量进行计算得到的是精确的数学表达式算得到的是精确的数学表达式;而数值计算得到的是一个;而数值计算得到的是一个近似值。近似值。a=sym (8);b=8; %定义定义1个符号常量和个符号常量和1个数值常量个数值常量sqrt (a); %求符号常量求符号常量a的平方根的平方根ans= 2*2(1/2)sqrt (b); %求数值常量求数值常量b的平方根的平方根ans= 2.8284例:例: 符号表达式由符号常量、符号变量、符号函数、算符号表达式由符号常量、符号变量、符号函数、算术运算符等组成。创建符号表达式术运算符等组成。创建符号表达式/方程的方法有两种:方程的方法有两种:一种是直接用一种是直接用sym函数创建,二是用已经定义的符号变函数创建,二是用已经定义的符号变量创建符号表达式。量创建符号表达式。二、符号表达式二、符号表达式/方程和符号矩阵的建立方程和符号矩阵的建立f=sym (a*x2+b*x+ c) f=a*x2+b*x+ csyms x a b cf=a*x2+b*x+ cf=a*x2+b*x+ c例:例:符号表达式一定要用符号表达式一定要用 (双单引号双单引号)括起来括起来Matlab才能识别。才能识别。创建符号矩阵的方法也有两种:创建符号矩阵的方法也有两种:一种是一种是直接直接用用sym函数创建,命令格式:函数创建,命令格式:A=sym( ) ;A = sym(a , 2*b ; 3*a , 0)A = a, 2*b 3*a, 0 如建立前面的例子的如建立前面的例子的A符号矩阵:符号矩阵:A=sym(i j k;a b c;d e f)二是用已经定义的符号变量创建。二是用已经定义的符号变量创建。 syms a bA=a 2*b; 3*a 0A = a, 2*b 3*a, 0例:例:用双单引号也可建立符号变量、符号常量和符号表达式。用双单引号也可建立符号变量、符号常量和符号表达式。例:例:1.5.2 符号对象的基本运算符号对象的基本运算 运算符运算符“+”、“-”、“*”、“”、“/”与与“” 用于符号用于符号对象的加、减对象的加、减 、乘、左除、右除与求幂运算。运算符、乘、左除、右除与求幂运算。运算符“.*”、“.”、“./”、“.”分别用来实现符号数组的乘、左除、右除分别用来实现符号数组的乘、左除、右除与求幂运算。与求幂运算。一、算术运算一、算术运算 运算符运算符“=”和和“ =”分别对运算符两端的对象进行分别对运算符两端的对象进行“相等相等”与与“不等不等”的比较。当结果为真,语句执行后返回的比较。当结果为真,语句执行后返回“1”。否则返回。否则返回“0”。二、关系运算二、关系运算subs (S, old, new),将符号表达式,将符号表达式S中的中的old替换为替换为new。old为符号表达式中的符号变量,而为符号表达式中的符号变量,而new可以是符号变量、符可以是符号变量、符号常量等。号常量等。三、基本运算函数三、基本运算函数函函 数数功功 能能函函 数数功功 能能subs符号替换符号替换collect合并同类项合并同类项factor 因式分解因式分解simplify表达式化简表达式化简expand表达式展开表达式展开simple表达式化简表达式化简numden表达式通分表达式通分1. 符号替换符号替换syms a b c d k n x y w t;f=a*x n+ b* y+ k;f1=subs (f, a b k, sin (t) log (w) c* exp (-d*t)f2=subs (f, n k, 5 pi)f3=subs (f, k, 1:4)%程序运行结果为:程序运行结果为:f1 = sin(t)*xn+log(w)*y+c*exp(-d*t) f2 = a*x5+b*y+pi f3 = a*xn+b*y+1, a*xn+b*y+2, a*xn+b*y+3, a*xn+b*y+4例:例:已知已知 ,试对其进行符号变量替换:,试对其进行符号变量替换:符号常量替换:符号常量替换:n=5, k=与数值数组替换:与数值数组替换:k=1:4kbyaxfn)(,ln,sindtcekwbtasyms a b c;f=a2*(b+ c)+ b2*(c+ a)+ c2*(a+ b)+2*a*b*c;factor (f)%程序运行结果为:程序运行结果为:ans = (b+c)*(c+a)*(a+b) 2. 符号表达式因式分解符号表达式因式分解factor ( )例:例:已知已知 ,试对其进,试对其进行因式分解。行因式分解。abcbacacbcbaf2)()()(222)()(2)()()(222accbbaabcbacacbcbaf3. 符号表达式展开函数符号表达式展开函数expand ( )syms x y; f=(2*x+3*y)*(x+1); expand (f)%程序运行结果为:程序运行结果为:ans = 2*x2+2*x+3*x*y+3*y expand ( )常用于多项式表达式、三角函数、指数函数常用于多项式表达式、三角函数、指数函数和对数函数的展开。和对数函数的展开。例:例:已知已知 ,试对其进行展开。,试对其进行展开。) 1)(32(xyxfyxyxxxyxf3322) 1)(32(2collect (f, v),是将符号表达式,是将符号表达式f中变量中变量v的同幂项系数合并。的同幂项系数合并。syms a b x y; f=x2*y+ x* y-a* x2- b*x;collect (f, x) %对对f按按x进行合并同类项进行合并同类项%程序运行结果为:程序运行结果为:ans = (y-a)*x2+ (y-b)*x 4. 符号表达式合并同类项符号表达式合并同类项例:例:已知已知 ,试对其同类项进行合并。,试对其同类项进行合并。bxaxxyyxf22xbyxaybxaxxyyxf)()(222simplify (S),应用代数恒等式对,应用代数恒等式对S进行化简。进行化简。simple (S),调用,调用Matlab的其他函数对表达式进行化简。的其他函数对表达式进行化简。syms x c alph beta; e1=sin (x)2+cos(x)2; e10=simplify (e1)e2=exp (c* log (alph+ beta); e20=simple (e2) %程序运行结果为:程序运行结果为:e10 = 1 e20 = (alph+beta)c 5. 符号表达式化简符号表达式化简例:例:试对试对 和和 ,进行化简。,进行化简。xxe221cossin)ln(2ceeN,D=numden(S),将符号表达式,将符号表达式S通分,分别返回通分,分别返回S通通分后的分子分后的分子N和分母和分母D,并转换成分子与分母都是整系,并转换成分子与分母都是整系数的最佳多项式形式。数的最佳多项式形式。syms x y k p; f=x/(k*y)+y/(p*x); r,s=numden(f)%程序运行结果为:程序运行结果为:r =x2*p+y2*k s =k*y*p*x6. 符号表达式通分符号表达式通分例:例:试对试对 进行通分。进行通分。pxykyxf1.5.3 微积分运算微积分运算一、求极限一、求极限limit( )(1) limit (f, x, a),求当变量,求当变量x趋近于常数趋近于常数a时,函数时,函数f(x)的的极限值。极限值。(2) limit (f, x, a, right),求符号函数,求符号函数f的右极限值。的右极限值。right表示变量表示变量x从右边趋近于从右边趋近于a。(3) limit (f, x, a, left),求符号函数,求符号函数f的左极限值。的左极限值。left表表示变量示变量x从左边趋近于从左边趋近于a。syms x; f=(3*x3-4*x2+2)/(7*x3+5*x2-3);b=limit (f, x, inf)%程序运行结果为:程序运行结果为:b =3/7例:例:试求试求 。357243lim2323xxxxxc=limit(1/x, x ,0, left)%程序运行结果为:程序运行结果为:c =-Infd=limit(1/x, x ,0, right)%程序运行结果为:程序运行结果为:d =Inf例:例:试求试求 和和 。xx1lim0 xx1lim0二、微分二、微分diff ( )(1)diff (f, v),v为自变量,对表达式为自变量,对表达式f求一阶导数或偏导求一阶导数或偏导数。数。(2)diff (f, v, n),求表达式,求表达式f的高阶导数或偏导数,的高阶导数或偏导数,v为自为自变量,变量,n为导数或者偏导数的阶数。为导数或者偏导数的阶数。Df=diff (x2+2*x-1)%程序运行结果为:程序运行结果为:Df = 2*x+2 Dfx=diff (x2+x*y+y2, x)%程序运行结果为:程序运行结果为:Df = 2*x+y 例:例:试求函数试求函数 对对x的一阶导数。的一阶导数。12)(2xxxf例:例:试求二元函数试求二元函数 对对x的一阶偏导数。的一阶偏导数。22),(yxyxyxfDf2=diff (x5*exp(x), 2)%程序运行结果为:程序运行结果为: Df2 =20*x3*exp(x)+10*x4*exp(x)+x5*exp(x)例:例:已知已知 ,求,求 。xexy5y xxxexexexy5431020 syms x y; f=x*y*(x4+4*x2*y2-y4)/(x2+y2);Dfxx=diff(f,x,2) %程序运行结果为:程序运行结果为:Dfxx = 2*y*(4*x3+8*x*y2)/(x2+y2)-6*y*(x4+4*x2*y2-y4)/(x2+y2)2*x+x*y*(12*x2+8*y2)/(x2+y2)-4*x2*y*(4*x3+8*x*y2)/(x2+y2)2+8*x3*y*(x4+4*x2*y2-y4)/(x2+y2)3simple (Dfxx)ans = 2*x*y*(3*y2+x2)*(5*y4+3*x4)/(x2+y2)3例:例:已知已知 ,求,求 。 2242244),(yxyyxxxyyxf ,xyxxffDfx=diff(f,x) Dfxy = diff(Dfx,y) Dfxy = (x4+4*x2*y2-y4)/(x2+y2)+y*(8*x2*y-4*y3)/(x2+y2)-2*y2*(x4+4*x2*y2-y4)/(x2+y2)2+x*(4*x3+8*x*y2)/(x2+y2)+16*x2*y2/(x2+y2)-2*x*y2*(4*x3+8*x*y2)/(x2+y2)2-2*x2*(x4+4*x2*y2-y4)/(x2+y2)2-2*x2*y*(8*x2*y-4*y3)/(x2+y2)2+8*x2*y2*(x4+4*x2*y2-y4)/(x2+y2)3simple (Dfxy)ans = (18*x6*y2+56*x4*y4+6*x2*y6+3*x8-3*y8)/(x2+y2)3例:例:已知已知 ,求,求 。 2242244),(yxyyxxxyyxf ,xyxxff三、积分三、积分int()(1) int (f, v),求符号函数,求符号函数f的不定积分,的不定积分,v为变量。为变量。(2) int (f, v, a, b),求符号函数,求符号函数f的定积分,的定积分,v为变量。为变量。 a、b分别表示定积分的下限和上限。分别表示定积分的下限和上限。R=int(x+1)*(x-2)/x,x)%程序运行结果为:程序运行结果为: R = 1/2*x2-x-2*log(x)例:例:求不定积分求不定积分 。dxxxx)2)(1(xxxdxxxxln221)2)(1(2例:例:求定积分求定积分 。301xxR=int(x/sqrt(1+x) ,x,0,3)%程序运行结果为:程序运行结果为:R = 8/3在在Matlab中,多次使用中,多次使用int ( )时,计算的就是重积分。时,计算的就是重积分。syms x y; int(int(x2/y2,y,1/x,x),x,1,2)%程序运行结果为:程序运行结果为:ans = 9/4例:例:求二重积分求二重积分 ,其中,其中D是由直线是由直线x=2,y=x以以及双曲线及双曲线xy=1围成的区域。围成的区域。Ddxdyyx22
展开阅读全文