实验四 MATLAB符号运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四 MATLAB 符号运算

一、实验目的

掌握符号变量和符号表达式的创建,掌握MATLAB 的symbol 工具箱的一些基本应用。

二、实验内容

(1) 符号变量、表达式、方程及函数的表示。

(2) 符号微积分运算。

(3) 符号表达式的操作和转换。

(4) 符号微分方程求解。

三、实验步骤

1. 符号运算的引入 在数值运算中如果求x

x x πsin lim 0→,则可以不断地让x 接近于0,以求得表达式接近什么数,但是终究不能令0=x ,因为在数值运算中0是不能作除数的。MATLAB 的符号运算能解决这类问题。输入如下命令:

>>f=sym('sin(pi*x)/x')

>>limit(f,'x',0)

>> f=sym('sin(pi*x)/x')

f =

sin(pi*x)/x

>> limit(f,'x',0)

ans =

Pi

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

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=1

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

> A=sym('1')

A =

1

>> B=sym('x')

B =

x

>> f=sym('2*x^2+3*y-1')

f =

2*x^2+3*y-1

>> clear

>> f1=sym('1+2')

f1 =

1+2

>> f2=sym(1+2)

f2 =

3

>> f3=sym('2*x+3')

f3 =

2*x+3

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

Undefined function or variable 'x'. >> x=1

x =

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

f4 =

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

2)使用syms 创建

>>syms x y z

>>x,y,z

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

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

>> f3=f1+f2

>> clear

>> syms x y z

>> x,y,z

x =

x

y =

y

z =

z

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

f1 =

x^2+2*x+1

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

f2 =

exp(y)+exp(z)^2

>> f3=f1+f2

f3 =

x^2+2*x+1+exp(y)+exp(z)^2

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

>> 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)

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

f1 =

x^2+y+sin(2)

>> syms x y

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

f2 =

x^2+y+4095111552621091/4503599627370496

>> x=sym('2'),y=sym('1')

x =

2

y =

1

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

f3 =

26613109689473571/4503599627370496

>> y=sin('w')

Undefined function or method 'sin' for input arguments of type 'char'.

>> y=sym('w')

y =

w

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

f4 =

22109510062103075/4503599627370496+w

思考题:syms x 是不是相当于?)'('x sym x =

理解:这两个式子是不相同的。syms x 是定义x 为符号变量,而?)'('x sym x =是给x 赋值。

3. 符号复诊创建】

>> syms a1 a2 a3 a4

>> A=[a1 a2;a3 a4]

>> A(1),A(3)

>> syms a1 a2 a3 a4

>> A=[a1 a2;a3 a4]

A =

[ a1, a2]

[ a3, a4]

>> A(1),A(3)

ans =

a1

ans =

相关文档
最新文档