MATLAB符号计算实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六符号计算
学院:数计学院班级:1003班姓名:黄晓丹学号:1051020144
一、实验目的
1、了解富符号对象和数值对象之间的差别,以及它们之间的互相转换
2、了解符号运算和数值运算的特点、区别和优缺点
3、掌握符号对象的基本操作和运算,以及符号运算的基本运用
二、实验内容
1、符号常数形成和使用
(1)符号常数形成中的差异
>> a1=[1/3,pi/7,sqrt(5),pi+sqrt(5)]
a1 =
0.3333 0.4488 2.2361 5.3777
>> a2=sym([1/3,pi/7,sqrt(5),pi+sqrt(5)])
a2 =
[ 1/3, pi/7, sqrt(5),
6054707603575008*2^(-50)]
>> a3=sym('[1/3,pi/7,sqrt(5),pi+sqrt(5)]')
a3 =
[ 1/3, pi/7, sqrt(5), pi+sqrt(5)]
>> a24=a2-a3
a24 =
[ 0, 0, 0, 189209612611719/35184372088832-pi-5^(1/2)]
(2)把字符表达式转化为符号变量
>> y=sym('2*sin(x)*cos(x)')
y =
2*sin(x)*cos(x)
>> y=simple(y)
y =
sin(2*x)
(3)用符号计算验证三角等式
>> syms fai1 fai2;y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))
y =
sin(fai1-fai2)
(4)求矩阵的行列式值、逆和特征值
>> syms a11 a12 a21 a22;A=[a11,a12;a21,a22]
A =
[ a11, a12]
[ a21, a22]
>> DA=det(A),IA=inv(A),EA=eig(A)
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)
2、识别对象类型的指令
生成三种不同类型的矩阵,给出不同的显示形式>> clear,a=1;b=2;c=3;d=4;
>> Mn=[a,b;c,d]
Mn =
1 2
3 4
>> Mc='[a,b;c,d]'
Mc =
[a,b;c,d]
>> Ms=sym(Mc)
Ms =
[ a, b]
[ c, d]
3、符号表达式中自由变量的确定
(1)生成符号变量
>> syms a b x X Y;k=sym('3');z=sym('c*sqrt(delta)+y*sin(theta)');
>> EXPR=a*z*X+(b*x^2+k)*Y;
(2)找出EXPR中的全部自由符号变量
>> findsym(EXPR)
ans =
X, Y, a, b, c, delta, theta, x, y
(3)在EXPR中确定一个自由符号变量
>> findsym(EXPR,1)
ans =
x
(4)在EXPR中确定2个和3个自由变量时的执行情况
>> findsym(EXPR,2),findsym(EXPR,3)
ans =
x,y
ans =
x,y,theta
4、符号表达式的操作:简化f=。。。
>> syms x;f=(1/x^3+6/x^2+12/x+8)^(1/3); >> g1=simple(f),g2=simple(g1)
g1 =
(2*x+1)/x
g2 =
2+1/x
5、符号数值精度控制和任意精度计算>> digits
Digits = 32
>> p0=sym('(1+sqrt(5))/2');
>> p1=sym((1+sqrt(5))/2)
p1 =
7286977268806824*2^(-52)
>> e01=vpa(abs(p0-p1))
e01 =
.543211520368251e-16
>> p2=vpa(p0)
p2 =
1.6180339887498948482045868343656 >> e02=vpa(abs(p0-p2),64)
e02 =
.38117720309179805762862135448622e-31 >> digits
Digits = 32
6、符号序列的求和
>> s2=simple(symsum(f2,1,inf))