实验五 MATLAB符号计算

更新时间:2023-12-06 01:01:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验5 MATLAB符号计算

一、目的和要求

(1) 熟练掌握MATLAB符号表达式的创建。 (2) 熟练掌握符号表达式的代数运算。 (3) 掌握符号表达式的化简和替换。 (4) 熟练掌握符号微积分。 (5) 掌握符号积分变换。 (6) 熟悉符号方程的求解。 (7) 熟悉拉氏变换和z变换。

二、内容和步骤

1、符号常量、符号变量、符号表达式的创建

(1) 使用 sym( )创建

输入以下命令,观察 Workspace 中 A、B、f是什么类型的数据,占用多少字节的内存空间。

>>A=sym('1') %符号常量 >>B=sym('x') %符号变量

>>f=sym('2*x^2+3*y-1') %符号表达式 >>clear

>>f1=sym('1+2') %有单引号,表示字符串 >>f2=sym(1+2) %无单引号 >>f3=sym('2*x+3')

>>f4=sym(2*x+3) %为什么会出错 原因:未定义符号变量“x” >>x=1

>>f4=sym(2*x+3)

通过看 MATLAB 的帮助可知,sym( )的参数可以是字符串或数值类型,无论是哪种类型都会生成符号类型数据。

(2) 使用 syms 创建 >>clear

>>syms x y z %注意观察x,y,z都是什么类型的,它们的内容是什么 >>x,y,z

>>f1=x^2+2*x+1

>>f2=exp(y)+exp(z)^2 >>f3=f1+f2

通过以上实验,知道生成符号表达式的第二种方法:由符号类型的变量经过运算(加减乘除等)得到。又如:

>>f1=sym('x^2+y +sin(2)') >>syms x y

>>f2=x^2+y+sin(2)

>>x=sym('2') , y=sym('1') >>f3=x^2+y+sin(2) >>y=sym('w')

>>f4=x^2+y+sin(2)

2、符号矩阵创建

>>syms a1 a2 a3 a4 >>A=[a1 a2;a3 a4] >>A(1),A(3) 或者

>>B=sym('[ b1 b2 ;b3 b4] ') >>c1=sym('sin(x) ') >>c2=sym('x^2') >>c3=sym('3*y+z') >>c4=sym('3 ') >>C=[c1 c2; c3 c4]

3、自由变量的确定。使用findsym确定符号表达式g的自由变量。

4、用常数替换符号变量。用行向量替换x,使符号对象f转变为行向量。

x,y都为双精度型数值。 5、符号算术运算

(1)符号表达式加和减

(2) 符号量相乘、相除

符号量相乘运算和数值量相乘一样,分成矩阵乘和数组乘。 >>a=sym(5);b=sym(7); >>c1=a*b >>c2=a/b

>>a=sym(5);B=sym([3 4 5]); >>C1=a*B, C2=a\\B >>syms a b

>>A=[5 a;b 3]; B=[2*a b;2*b a]; >>C1=A*B, C2=A.*B >>C3=A\\B, C4=A./B

(3)符号数值任意精度控制和运算

任意精度的 VPA 运算可以使用命令 digits(设定默认的精度)和 vpa(对指定对象以新的精度进行计算)来实现。

>>a=sym('2*sqrt(5)+pi') >>b=sym(2*sqrt(5)+pi) >>digits >>vpa(a) >>digits(15) >>vpa(a)

>>c1=vpa(a,56) >>c2=vpa(b,56)

注意:观察 c1 和 c2 的数据类型,c1 和 c2 是否相等。

6、符号表达式的操作和转换 1)求反函数和复合函数。

① 用finverse函数求f、g的反函数。

② 用compose函数求解f、g的复合函数。

2)符号表达式与多项式的转换。用函数sym2poly和poly2sym实现符号表达式f与多项式的转换。 >>clear >>syms x

>>f=x^2+3*x+2

本文来源:https://www.bwwdw.com/article/0lrt.html

Top