MATLAB符号计算实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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))

相关文档
最新文档