实验四 MATLAB符号计算Word格式文档下载.docx
- 文档编号:19862307
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:29
- 大小:336.44KB
实验四 MATLAB符号计算Word格式文档下载.docx
《实验四 MATLAB符号计算Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验四 MATLAB符号计算Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。
y=sym('
2*sin(x)*cos(x)'
)
y=simple(y)
y=
2*sin(x)*cos(x)
y=
sin(2*x)
【例5.1.1-4】用符号计算验证三角等式
。
symsfai1fai2;
y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))
sin(fai1-fai2)
【例5.1.1-5】求矩阵
的行列式值、逆和特征根
symsa11a12a21a22;
A=[a11,a12;
a21,a22]
DA=det(A),IA=inv(A),EA=eig(A)
A=
[a11,a12]
[a21,a22]
DA=
a11*a22-a12*a21
IA=
[a22/(a11*a22-a12*a21),-a12/(a11*a22-a12*a21)]
[-a21/(a11*a22-a12*a21),a11/(a11*a22-a12*a21)]
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)
【例5.1.1-6】验证积分
symsAttaow;
yf=int(A*exp(-i*w*t),t,-tao/2,tao/2);
Yf=simple(yf)
Yf=
2*A*sin(1/2*w*tao)/w
5.1.2符号计算中的算符和基本函数
5.1.3识别对象类别的指令
【例5.1.3-1】数据对象及其识别指令的使用。
(1)
clear,a=1;
b=2;
c=3;
d=4;
Mn=[a,b;
c,d]
Mc='
[a,b;
c,d]'
Ms=sym(Mc)
Mn=
12
34
Mc=
Ms=
[a,b]
[c,d]
(2)
SizeMn=size(Mn),SizeMc=size(Mc),SizeMs=size(Ms)
SizeMn=
22
SizeMc=
19
SizeMs=
(3)
CMn=class(Mn),CMc=class(Mc),CMs=class(Ms)
CMn=
double
CMc=
char
CMs=
sym
(4)
isa(Mn,'
double'
),isa(Mc,'
char'
),isa(Ms,'
sym'
)
ans=
1
ans=
(5)
whosMnMcMs
NameSizeBytesClass
Mc1x918chararray
Mn2x232doublearray
Ms2x2312symobject
Grandtotalis21elementsusing362bytes
5.1.4符号表达式中自由变量的确定
【例5.1.4-1】对独立自由符号变量的自动辨认。
symsabxXY;
k=sym('
3'
);
z=sym('
c*sqrt(delta)+y*sin(theta)'
EXPR=a*z*X+(b*x^2+k)*Y;
findsym(EXPR)
X,Y,a,b,c,delta,theta,x,y
findsym(EXPR,1)
x
findsym(EXPR,2),findsym(EXPR,3)
x,y
x,y,theta
【例5.1.4-2】findsym确定自由变量是对整个矩阵进行的。
symsabtuvxy;
A=[a+b*x,sin(t)+u;
x*exp(-t),log(y)+v]
findsym(A,1)
[a+b*x,sin(t)+u]
[x*exp(-t),log(y)+v]
5.2符号表达式和符号函数的操作
5.2.1符号表达式的操作
【例5.2.1-1】按不同的方式合并同幂项。
EXPR=sym('
(x^2+x*exp(-t)+1)*(x+exp(-t))'
expr1=collect(EXPR)
expr2=collect(EXPR,'
exp(-t)'
)
expr1=
x^3+2*exp(-t)*x^2+(1+exp(-t)^2)*x+exp(-t)
expr2=
x*exp(-t)^2+(2*x^2+1)*exp(-t)+(x^2+1)*x
【例5.2.1-2】factor指令的使用
symsax;
f1=x^4-5*x^3+5*x^2+5*x-6;
factor(f1)
(x-1)*(x-2)*(x-3)*(x+1)
f2=x^2-a^2;
factor(f2)
-(a-x)*(a+x)
factor(1025)
5541
【例5.2.1-3】对多项式进行嵌套型分解
clear;
horner(f1)
-6+(5+(5+(-5+x)*x)*x)*x
【例5.2.1-4】写出矩阵
各元素的分子、分母多项式
symsx;
A=[3/2,(x^2+3)/(2*x-1)+3*x/(x-1);
4/x^2,3*x+4];
[n,d]=numden(A)
pretty(simplify(A))%<
n=
[3,x^3+5*x^2-3]
[4,3*x+4]
d=
[2,(2*x-1)*(x-1)]
[x^2,1]
[32]
[x+5x-3]
[3/2-----------------]
[(2x-1)(x-1)]
[]
[4]
[----3x+4]
[2]
[x]
pretty(simplify(n./d))
[32]
[x]
【例5.2.1-5】简化
f=(1/x^3+6/x^2+12/x+8)^(1/3);
sfy1=simplify(f),sfy2=simplify(sfy1)
sfy1=
((2*x+1)^3/x^3)^(1/3)
sfy2=
g1=simple(f),g2=simple(g1)
g1=
(2*x+1)/x
g2=
2+1/x
【例5.2.1-6】简化
ff=cos(x)+sqrt(-sin(x)^2);
ssfy1=simplify(ff),ssfy2=simplify(ssfy1)
ssfy1=
cos(x)+(-1+cos(x)^2)^(1/2)
ssfy2=
gg1=simple(ff),gg2=simple(gg1)
gg1=
cos(x)+i*sin(x)
gg2=
exp(i*x)
5.2.2符号函数的求反和复合
【例5.2.2-1】求
的反函数
f=x^2;
g=finverse(f)
g=
x^(1/2)
fg=simple(compose(g,f))%验算g(f(x))是否等于x
fg=
【例5.2.2-2】求
的复合函数
symsxyufait;
f=x/(1+u^2);
g=cos(y+fai);
fg1=compose(f,g)
fg1=
cos(y+fai)/(1+u^2)
fg2=compose(f,g,u,fai,t)
fg2=
x/(1+cos(y+t)^2)
5.2.3置换及其应用
5.2.3.1自动执行的子表达式置换指令
【例5.2.3.1-1】演示子表达式的置换表示。
clearall,symsabcdW;
[V,D]=eig([ab;
cd]);
[RVD,W]=subexpr([V;
D],W)%<
RVD=
[-(1/2*d-1/2*a-1/2*W)/c,-(1/2*d-1/2*a+1/2*W)/c]
[1,1]
[1/2*d+1/2*a+1/2*W,0]
[0,1/2*d+1/2*a-1/2*W]
W=
(d^2-2*a*d+a^2+4*b*c)^(1/2)
5.2.3.2通用置换指令
【例5.2.3.2-1】用简单算例演示subs的置换规则。
f=a*sin(x)+5;
f=
a*sin(x)+5
f1=subs(f,'
sin(x)'
sym('
y'
))%<
f1=
a*y+5
f2=subs(f,{a,x},{2,sym(pi/3)})%<
f2=
3^(1/2)+5
f3=subs(f,{a,x},{2,pi/3})%<
f3=
6.7321
f4=subs(subs(f,a,2),x,0:
pi/6:
pi)%<
5>
f4=
5.00006.00006.73217.00006.73216.00005.0000
(6)
f5=subs(f,{a,x},{0:
6,0:
pi})%<
6>
f5=
5.00005.50006.73218.00008.46417.50005.0000
5.2.4符号数值精度控制和任意精度计算
5.2.4.1向双精度数值转换的doblue指令
5.2.4.2任意精度的符号数值
【例5.2.4.2-1】指令使用演示。
digits
Digits=32
p0=sym('
(1+sqrt(5))/2'
p1=sym((1+sqrt(5))/2)
e01=vpa(abs(p0-p1))
p1=
7286977268806824*2^(-52)
e01=
.543211520368251e-16
p2=vpa(p0)
e02=vpa(abs(p0-p2),64)
p2=
1.6180339887498948482045868343656
e02=
.38117720309179805762862135448622e-31
5.2.5符号对象与其它数据对象间的转换
【例5.2.5-1】符号、数值间的转换。
phi=sym((1+sqrt(5))/2)
double(phi)
phi=
7286977268806824*2^(-52)
1.6180
【例5.2.5-2】各种多项式表示形式之间的转换
f=x^3+2*x^2-3*x+5;
sy2p=sym2poly(f)
p2st=poly2str(sy2p,'
x'
p2sy=poly2sym(sy2p)
pretty(f,'
sy2p=
12-35
p2st=
x^3+2x^2-3x+5
p2sy=
x^3+2*x^2-3*x+5
5.3符号微积分
5.3.1符号序列的求和
【例5.3.1-1】求
,
symskt;
f1=[tk^3];
f2=[1/(2*k-1)^2,(-1)^k/k];
s1=simple(symsum(f1))
s2=simple(symsum(f2,1,inf))
s1=
[1/2*t*(t-1),k^3*t]
s2=
[1/8*pi^2,-log
(2)]
5.3.2符号微分和
矩阵
【例5.3.2-1】求
、
和
symsatx;
f=[a,t^3;
t*cos(x),log(x)];
df=diff(f)
dfdt2=diff(f,t,2)
dfdxdt=diff(diff(f,x),t)
df=
[0,0]
[-t*sin(x),1/x]
dfdt2=
[0,6*t]
[0,0]
dfdxdt=
[-sin(x),0]
【例5.3.2-2】求
的
矩阵。
symsx1x2x3;
f=[x1*exp(x2);
x2;
cos(x1)*sin(x2)];
v=[x1x2];
fjac=jacobian(f,v)
fjac=
[exp(x2),x1*exp(x2)]
[0,1]
[-sin(x1)*sin(x2),cos(x1)*cos(x2)]
5.3.3符号积分
5.3.3.1通用积分指令
5.3.3.2交互式近似积分指令
5.3.3.3符号积分示例
【例5.3.3.3-1】求
演示:
积分指令对符号函数矩阵的作用。
symsabx;
f=[a*x,b*x^2;
1/x,sin(x)];
disp('
Theintegraloffis'
pretty(int(f))
Theintegraloffis
[23]
[1/2ax1/3bx]
[log(x)-cos(x)]
【例5.3.3.3-2】求
演示如何使用mfun指令获取一组积分值。
F1=int('
1/log(t)'
'
t'
0,'
F1=
-Ei(1,-log(x))
x=0.5:
0.1:
0.9
F115=-mfun('
Ei'
1,-log(x))
x=
0.50000.60000.70000.80000.9000
F115=
-0.3787-0.5469-0.7809-1.1340-1.7758
【例5.3.3.3-3】求积分
注意:
内积分上下限都是函数。
symsxyz
F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2)
VF2=vpa(F2)
F2=
64/225*2^(3/4)-6072064/348075*2^(1/2)+14912/4641*2^(1/4)+1610027357/6563700
VF2=
224.92153573331143159790710032805
【例5.3.3.3-4】利用rsums求
积分。
(与例5.3.3.3-2结果比较)
symsxpositive;
px=0.5/log(0.5*x);
rsums(px)
图5.3-1
5.3.4符号卷积
【例5.3.4-1】本例演示卷积的时域积分法:
已知系统冲激响应
,求
输入下的输出响应。
symsTttao;
ut=exp(-t);
ht=exp(-t/T)/T;
uh_tao=subs(ut,t,tao)*subs(ht,t,t-tao);
yt=int(uh_tao,tao,0,t);
yt=simple(yt)
yt=
-1/(T-1)/exp(t)+1/(T-1)/exp(t/T)
【例5.3.4-2】本例演示通过变换和反变换求取卷积。
系统冲激响应、输入同上例,求输出。
对式(5.3.4-1)两边进行Laplace变换得
,因此有
symss;
yt=ilaplace(laplace(ut,t,s)*laplace(ht,t,s),s,t);
yt=
(exp(-t/T)-exp(-t))/(T-1)
【例5.3.4-3】求函数
的卷积。
symstao;
t=sym('
positive'
ut=sym('
Heaviside(t)-Heaviside(t-1)'
ht=t*exp(-t);
yt=int(subs(ut,t,tao)*subs(ht,t,t-tao),tao,0,t);
yt=collect(yt,'
Heaviside(t-1)'
(exp(1-t)*t-1)*heaviside(t-1)+1+(-t-1)/exp(t)
5.4符号积分变换
5.4.1Fourier变换及其反变换
【例5.4.1-1】求
的Fourier变换。
本例演示三个重要内容:
单位阶跃函数和单位脉冲函数的符号表示;
fourier指令的使用;
simple指令的表现。
(1)求Fourier变换
symstw;
Heaviside(t)'
%<
UT=fourier(ut)
UTC=maple('
convert'
UT,'
piecewise'
w'
UTS=simple(UT)
UT=
2*pi*dirac(w)
UTC=
PIECEWISE([pi*NaN,w=0],[0,otherwise])
UTS=
(2)求Fourier反变换进行验算
Ut=ifourier(UT,w,t)
Uts=ifourier(UTS,w,t)
Ut=
Uts=
1
【例5.4.1-2】用fourier指令求例5.1.1-6中方波脉冲的Fourier变换。
本例演示:
fourier,simple指令的配合使用。
symsAtw
symstaopositive%<
yt=sym('
Heaviside(t+tao/2)-Heaviside(t-tao/2)'
Yw=fourier(A*yt,t,w)
Ywc=maple('
Yw,'
)%计算结果起指示作用<
Yws=simple(Yw)
Yw=
A*(i*exp(-1/2*i*tao*w)/w+pi*dirac(w))
Ywc=
PIECEWISE([A*(i*exp(-1/2*i*tao*w)/w+pi*NaN),w=0],[i*A*exp(-1/2*i*tao*w)/w,otherwise])
Yws=
Yt=ifourier(Yw,w,t)
Yst=ifourier(Yws,w,t)
Yt=
A*heaviside(-t+1/2*tao)
Yst=
【例5.4.1-3】求
的Fourier变换,在此
是参数,
是时间变量。
fourier的缺省调用格式的使用要十分谨慎;
在被变换函数中包含多个符号变量的情况下,对被变换的自变量给予指明,可保证计算结果的正确。
symstxw;
ft=exp(-(t-x))*sym('
Heaviside(t-x)'
F1=simple(fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验四 MATLAB符号计算 实验 MATLAB 符号 计算
