MATLAB电子教案(4)

2019-06-11 09:45

解:①求两个多项式的卷积。 在MATLAB命令窗口中输入: >> p=[1 2 3 4]; >> q=[10 20 30]; >> c=conv(p,q) c =

10 40 100 160 170 120 ②用多项式解卷验证 >> [s,r]=deconv(c,p) s =

10 20 30 r =

0 0 0 0 0 0

说明:①s是向量c除以向量p所得的结果,r为余数。 ②函数conv( )与deconv( )互为逆运算。

③建立控制系统的传递函数模型时,会经常使用函数conv( )。 (5)分式多项式的部分分式展开

应用时域分析法分析控制系统动态性能时,常常需要求出系统在典型输入信号作用下的时间响应c(t),为此,必须首先求出c(t)的象函数C(s),并将其展开成部分分式。利用函数residue( )。

例:已知控制系统的输出象函数C(s)?解:>> num=[2 8]; >> den=[1 5 6 0];

>> [z,p,k]=residue(num,den) z =

0.6667 -2.0000 1.3333 p =

-3.0000 -2.0000 0 k = []

(6)多项式曲线拟合

进行系统设计与仿真时,常常需要用曲线拟合方法。曲线拟合就是要寻找一条光滑曲线,使其在某种准则下能最佳地拟合已知数据。使用函数polyfit( )对已知数据进行曲线拟合。拟合方法采用最小二乘法(即最小误差平方和准则)。

例:曲线拟合实例。

解:>> x=0:0.1:1; %生成用行向量表示的自变量数据 >> y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; >> p=polyfit(x,y,2) %计算二阶拟合多项式系数 p =

-9.8108 20.1293 -0.0317

2(s?4),将其展开为部分分式。 2s(s?5s?6)第 16 页/共 63页

2.4 符号运算

一、符号对象的创建和使用

进行符号运算时,首先要创建基本的符号对象,它可以是常数、变量和表达式。然后利用这些基本符号对象构成新的表达式,进而完成所需的符号运算。

符号对象的创建使用函数sym( )和syms( )来完成,他们的调用格式如下:

S=sym(A) 将数值A转换成符号对象S,A是数字(值)或数值矩阵或数值表达式 S=sym(‘x’) 将字符串x转换成符号对象S

S=sym(A,flag) 将数值A转换成flag格式的符号对象

syms arg1 arg2 ? arg1=sym(‘arg1’),arg2=sym(‘arg2’),?的简洁形式 例:创建符号变量和符号表达式演示。

解:>> y=sym('x') %定义变量y,它代表字符x y = x

>> f=sym('x^3+x^2+4*x+4') %定义变量f,它代表符号表达式x3?x2?4x?4 f =

x^3+x^2+4*x+4

例:字符表达式转换为符号变量演示。

解:>> y=sym('2*sin(x)*cos(x)') %将字符表达式转换为符号变量 y =

2*sin(x)*cos(x)

>> y=simple(y) %将已有的y符号表达式化成最简形式 y = sin(2*x)

二、符号运算中的运算符号和基本函数 例:基本运算符号与基本函数应用演示。 解:>> syms x; %定义符号变量x >> f1=x^3+x^2+4*x+4; %生成多项式f1 >> f2=x^2+4*x+10; %生成多项式f2 >> f=f1+f2 %求f1与f2之和 f =

x^3+2*x^2+8*x+14

>> y=sqrt(x^5) %求函数的平方根 y =

(x^5)^(1/2)

>> z=log10(x) %求以10为底的对数 z =

log(x)/log(10)

例:矩阵代数运算演示。求矩阵A=??a11 a12??a?的行列式值、逆和特征值。21 a

22?解:>> syms a11 a12 a21 a22; %定义符号变量a11,a12,a21,a22

>> A=[a11,a12;a21,a22] %生成矩阵A A =

[ a11, a12]

第 17 页/共 63页

[ a21, a22]

>> DA=det(A) %求矩阵A的行列式 DA =

a11*a22-a12*a21

>> IA=inv(A) %求矩阵A的逆矩阵 IA =

[ a22/(a11*a22-a12*a21), -a12/(a11*a22-a12*a21)] [ -a21/(a11*a22-a12*a21), a11/(a11*a22-a12*a21)]

>> EA=eig(A) %求矩阵A的特征值 EA =

1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2) 1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2) 三、符号表达式的操作 调用格式 collect(E,v) expand(E) factor(E) horner(E) 功能 同类项合并 表达式展开 因式分解 嵌套分局 说明 将符号表达式E中v的同幂项系数合并 对E进行多项式、三角函数、指数函数及对数函数等展开 对E(或正整数)进行因式(或因子)分解 将E分解成嵌套形式 将E通分,返回E通分后的分子N与分母D 运用多种恒等式变换对E进行综合简化 运用包括simplify在内的各种简化算法,把E转换成最简短形式 [N,D]=numden(E) 表达式通分 simplify(E) 表达式化简 simple(E) subs(E,old,new) 符号变量替换 将E中的符号变量old替换为new,new可以是符号变量、符号 常量、双精度数值与数值数组(或矩阵)等 1、符号(包括符号变量、符号常量及数值数组)替换 例:已知数学表达式y?axn?bt?c,试对其进行以下的符号替换: (1)a=sint,b=lnz,c=de的符号变量替换; (2)n=3,c=π的符号常量替换; (3)c=1:2:5的数值数组替换; (4)c=?2t

?1 2??的数值矩阵替换。 3 4??解:>> syms a b c d e t n x y z;

>> y=a*x^n+b*t+c;

>> y1=subs(y,[a,b,c],[sin(t) log(z) d*exp(2*t)]) %符号变量替换 y1 =

sin(t)*x^n+log(z)*t+d*exp(2*t)

>> y2=subs(y,[n,c],[3 pi]) %符号常量替换 y2 =

a*x^3+b*t+pi

>> y3=subs(y,c,1:2:5) %符号数组替换 y3 =

[ a*x^n+b*t+1, a*x^n+b*t+3, a*x^n+b*t+5] >> y4=subs(y,c,[1 2;3 4]) %数值矩阵替换

第 18 页/共 63页

y4 =

[ a*x^n+b*t+1, a*x^n+b*t+2] [ a*x^n+b*t+3, a*x^n+b*t+4] 2、同类项合并

例:已知数学表达式y?(x2?xe?t?1)(x?e?t),试对其同类项进行合并。 解:>> syms x t;

>> y=sym('(x^2+x*exp(-t)+1)*(x+exp(-t))');

>> y1=collect(y) %默认合并x同幂项系数 y1 =

x^3+2*exp(-t)*x^2+(1+exp(-t)^2)*x+exp(-t)

>> y2=collect(y,'exp(-t)') %合并exp(-t)同幂项系数 y2 =

x*exp(-t)^2+(2*x^2+1)*exp(-t)+(x^2+1)*x 3、因式分解

例:已知数学表达式y(x)?x4?5x3?5x2?5x?6,试对其进行因式分解。解:>> syms x;

>> y=x^4-5*x^3+5*x^2+5*x-6; >> y1=factor(y) y1 =

(x-1)*(x-2)*(x-3)*(x+1)

4、表达式展开

例:已知数学表达式y(x)=cos(3arccosx),试将其展开。 解:>> syms x;

>> y=cos(3*acos(x)); >> y1=expand(y) y1 =

4*x^3-3*x

5、表达式简化

例:已知数学表达式y(x)?2cos2x?sin2x,试对其进行简化。 解:>> syms x;

>> y=2*cos(x)^2-sin(x)^2; >> y1=simplify(y) y1 =

3*cos(x)^2-1 6、表达式通分

例:已知数学表达式y(x)?x?3x?x(x?1)?1x2(x?2),试对其进行通分。

解:>> syms x;

>> y=((x+3)/(x*(x+1)))+((x-1)/(x^2*(x+2))); >> [n,d]=numden(y) n =

第 19 页/共 63页

x^3+6*x^2+6*x-1 d =

x^2*(x+1)*(x+2) 四、符号积分变换

1、拉氏变换及其反变换

设f(t)是一个以时间t为自变量的函数,它的定义域是t>0,并设|f(t)|≤ke(a为正数),则对所有实部大于a的复数,积分

at??0f(t)edt绝对收敛。f(t)的拉氏变换F(s)定义为F(s)=

?st??0f(t)e?stdt。

F(s)称为f(t)的象函数,而f(t)称为F(s)的原函数。s=ζ+jω为复变量,称其为拉氏变换算子。从f(t)求取F(s)的过程称为拉氏正变换。

在MATLAB中,分别使用函数laplace( )与ilaplace( )进行拉氏变换与反变换。 (1)函数laplace( )

功能:求取函数的拉氏变换。格式:F=laplace(f)。 例:求单位阶跃函数f(t)=1(t)的拉氏变换。 解:>> f=sym(1); >> F=laplace(f) F = 1/s

例:求函数t,e及sinωt的拉氏变换。 解:>> syms a t w; >> F1=laplace(t^5) F1 = 120/s^6

>> F2=laplace(exp(a*t)) F2 = 1/(s-a)

>> F3=laplace(sin(w*t)) F3 =

w/(s^2+w^2)

(2)函数ilaplace( )

功能:求取函数的拉氏反变换。格式:f=ilaplace(F) 例:求象函数F(s)=1?5atab?的拉氏反变换。 2s?1(s?2)解:>> syms a b s;

>> F=1+a/(s+1)+b/(s+2)^2; >> f=ilaplace(F) f =

dirac(t)+a*exp(-t)+b*t*exp(-2*t)

说明:dirac(t)表示单位脉冲函数δ(t)。即f(t)=δ(t)+ae+bte2、Z变换及Z反变换 (1)函数ztrans( )

?1

?2t。

第 20 页/共 63页


MATLAB电子教案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:参考实用版个人蔬菜生鲜配送网络平台建设创业商业计划书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: