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