Matlab符号计算

符号表达式

 

在MATLAB中是将一符号表示式储存唯一字串 (character string),即是以二个单引号之内的表示式来定义其为一符号式,例如 'tan(x)', 'x^4 +2*x^2 /5' 的两个式子。

l        把字符表达式转换为符号变量

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

y=simple(y)                     %按规则把已有的y符号表达式化成最简形式

y=

2*sin(x)*cos(x)

y=

sin(2*x) 

 

 

 

?symsx%这个必须先定义一个变量X

?A=[3/2,(x^2+3)/(2*x-1)+3*x/(x-1);4/x^2,3*x+4]

 

A=

 

[                      3/2, (x^2+3)/(2*x-1)+3*x/(x-1)]

[                    4/x^2,                    3*x+4]

 

l        MATLAB提供了一个函数ezplot 可以画单变数的符号式

符号函数

horner(S)

将S转换成巢状表示式

numden(S)

将S的有理数表示成分子和分母的形式

numeric(S)

将S改成数值式(S不能含有任何符号变数)

poly2sym(c)

转换多项式系数向量c为符号多项式

pretty(S)

将S显示成数学式

sym2poly(S)

转换S为多项式系数向量

symadd(A,B)

执行A+B的符号加法

symdiv(A,B)

执行A+B的符号除法

symmul(A,B)

执行A+B的符号乘法

sympow(S,p)

执行S^p的符号次方运算

symsub(A,B)

执行A+B的符号减法

?syms x

?s=2*x^2;

?horner(s)

ans =

2*x^2

?pretty(s)

                                       2

2 x

   ?s=3*x^4+4*x^3+x+20;

?sym2poly(s)

ans =

3     4     0     1    20

符号微积分

l        符号微分

?syms x

?s=3*x^4+4*x^3+x+20;

?diff(s)%x的导数

ans =

12*x^3+12*x^2+1 

?diff(s,x,2)%二阶导数

ans =

36*x^2+24*x

l        符号积分

?int(s)

ans =

3/5*x^5+x^4+1/2*x^2+20*x

符号卷积与积分变换

l        符号卷积

?syms tao;t=sym('t','positive');           %t定义为限定性符号变量<4>

ut=sym('Heaviside(t)-Heaviside(t-1)');ht=t*exp(-t);

yt53=int(subs(ut,t,tao)*subs(ht,t,t-tao),tao,0,t);

yt53=collect(yt53,'Heaviside(t-1)')   

yt53 =

(-1+exp(1-t)*t)*Heaviside(t-1)+1+(-t-1)*exp(-t)

l        符号积分变换

1.             Fourier变换及其反变换

?ft=fourier(s)

ft=

6*pi*Dirac(4,w)-8*i*pi*Dirac(3,w)+2*i*pi*Dirac(1,w)+40*pi*Dirac(w)

?ifourier(ft)

ans=

3*x^4+4*x^3+x+20

2.             Laplace变换及其反变换

?fs=laplace(s)

 

fs=

 

72/s^5+24/s^4+1/s^2+20/s

 

?ilaplace(fs)

 

ans=

 

3*t^4+4*t^3+t+20

3.             Z变换及其反变换

syms z

?fz=ztrans(s,x,z)

fz =

3*z*(z^3+11*z^2+11*z+1)/(z-1)^5+4*z*(z^2+1+4*z)/(z-1)^4+z/(z-1)^2+20*z/(z-1)

» simple(fz)

ans =

2*z*(-36*z^3+81*z^2-28*z+9+10*z^4)/(z-1)^5

» syms n

» iztrans(fz,z,n)  

ans =

3*n^4+4*n^3+n+20


出处:http://cs.nju.edu.cn/yangxc/dcc2003.files/matlab/matlab/11.htm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值