第三章MATLAB的符号运算分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 MATLAB的符号运算
1
MATLAB符号运算入门
科学与工程技术的数值运算固然重要,但自然科学 理论分析各种各样的公式、关系式及其推导就是符 号运算要解决的问题。它与数值运算一样,都是科 学计算研究的重要内容。Matlab数值运算的对象是 数值,而Matlab符号运算的对象则是非数值的符号 对象。符号对象就是代表非数值的符号字符串。
– 例: >>sym(4/3,'f') ans ='1.5555555555555'*2^(0) >> sym(4/3,'r') ans =4/3 >> sym(4/3,'e') ans =4/3-eps/3 >> sym(4/3,'d') ans =1.3333333333333332593184650249896 11
符号对象转换为数值对象的函数double(), vpa() 1、double()
这种格式的功能是将符号常量转换为双精度数值 2、vpa()
精确计算表达式的值。 格式1:R=vpa(E) 格式2:R=vpa(E,D)
12
例1:计算以下符号常量的值 c e 79
并将结果转换为指定精度8位与18位的精确数值解。 见example3_8
13
Matlab符号运算的基本运算(P52)
符号加:+ 符号减:符号乘:* 符号表达式的幂运算:^
见example3_5
14
Matlab符号运算的基本内容
符号变量代换及其函数subs(P54)(重点)
格式:f=subs(s,old,new) 功能:将符号表达式S中的old变量替换为new。old一定 是符号表达式s中的符号变量,而new可以是符号变量、 符号常量、双精度数值与数值数组相等。 格式:f=subs(s,new) 功能用new置换符号表达式s中的自变量
符以将一符号表达式赋值给一个符号变量。 符号变量的命名规则与数值变量相同。
例如: a=sym(‘alpha’) syms alpha beta gama;
8
符号表达式、符号函数与符号方程(P50) 符号表达式是由符号常量、符号变量、符号函数 用运算符或专用函数连接而成的符号对象。符号 表达式有两类: 符号函数和符号方程。 例:f=sym(‘a*x^2+b*2+c’)
3
符号运算与数值运算的区别
例求解: f 2 1
中f的值 。
其中 (1 5)/ 2
数值运算 :
符号运算:
>>rho=(1+sqrt(5))/2 >>rho=sym(‘(1+sqrt(5))/2
rho=1.6180
’)
>>f=rho^2-rho+1 rh0= (1+sqrt(5))/2
f=2.000
63 见example3_7
p
a c
b
d
见example3_4 6
Matlab符号运算的几个基本概念
符号对象(P49):
符号对象是symbolic math toolbox定义的一种新的数据 类型(sym类型),用来存储代表非数值的字符符号(通 常是大小写的英文字母及字符串)。符号对象可以是符号 常量(符号形式的数),符号变量,符号函数以及各种符 号表达式(符号数学表达式,符号方程与符号矩阵)
例1:已知 f axn by k 试对其进行符号变量替换:
a sin(t),b ln(w).k cedt 符号常量替换:n 5, k
与数组数值替换:k 1:1: 4
见example3_6 15
例2:已知 f a sin x k
试求当:a 1:1: 2, x 0 : : 时函数f的值。
>> A=sym(A) A= [ 1, 1/2, 1/3] [ 1/2, 1/3, 1/4] [ 1/3, 1/4, 1/5]
10
数值转化为符号
sym(‘数值变量’,’f’)-返回浮点表示形式 sym(‘数值变量’,’r’)-返回有理数表示形式 sym(‘数值变量’,’e’)-返回有理数(带误差)表示形式 sym(‘数值变量’,’d’)-返回十进制小数表示形式
因式连乘积的展开式。
见example3_2
5
例4:导函数 d (cos2 x)和 d (cos x2 )
dx
dx
见example3_3
b
例5:计算不定积分 xdx 和定积分 xdx a
见example3_3
例6:求解一阶微分方程 dy ay dt
见example3_3
例7:求以下矩阵行列式的值
2
符号运算与数值运算的区别
数值运算:
1. 其运算的元素是数 值;
2. 在运算过程中必须 先对变量进行赋值, 然后才能参加运算;
3. 其结果以数值形式 出现。
符号运算:
1. 其运算的元素是符 号;
2. 在运算过程中无须 对变量进行赋值就 可参加运算;但是 必须先定义符号变 量;
3. 其结果以符号形式 出现。
>>f=rho^2-rho+1
f=(1/2+1/2*5^(1/2))^2+1/2 -1/2*5^(1/2))
4
例1:求解一元二次方程 x2 2x 2 0的解。
见example3_1
例2:对于数学表达式x2 y yx x2 2x 合并关于
x 的同类项。
见example3_2
例3:对于数学表达式 (x2 1)(x 2)(x 3)即三
或syms a b c x f=‘a*x^2+b*2+c’
9
数组、矩阵与符号矩阵(P51)
m1=sym(‘[ab bc cd ; de ef fg ; h l j]’) m2=sym(‘[1 12;23 34]’)
– 例: – >>A=hilb(3);
A= 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000
创建符号对象与函数命令(P50)
1、函数命令sym()格式 格式1 s=sym(a)(a代表一个数字值、数值矩阵、数值表达式 格式2 s=sym(‘a’)(a代表一个字符串)
2、函数命令syms格式 syms s1 s2 s3;创建3个符号对象
7
符号常量
符号常量是一种符号对象。数值常量如果作为函数命令 sym()的输入参量,这就建立了一个符号对象——符 号常量 例如:sym(1/8)
1
MATLAB符号运算入门
科学与工程技术的数值运算固然重要,但自然科学 理论分析各种各样的公式、关系式及其推导就是符 号运算要解决的问题。它与数值运算一样,都是科 学计算研究的重要内容。Matlab数值运算的对象是 数值,而Matlab符号运算的对象则是非数值的符号 对象。符号对象就是代表非数值的符号字符串。
– 例: >>sym(4/3,'f') ans ='1.5555555555555'*2^(0) >> sym(4/3,'r') ans =4/3 >> sym(4/3,'e') ans =4/3-eps/3 >> sym(4/3,'d') ans =1.3333333333333332593184650249896 11
符号对象转换为数值对象的函数double(), vpa() 1、double()
这种格式的功能是将符号常量转换为双精度数值 2、vpa()
精确计算表达式的值。 格式1:R=vpa(E) 格式2:R=vpa(E,D)
12
例1:计算以下符号常量的值 c e 79
并将结果转换为指定精度8位与18位的精确数值解。 见example3_8
13
Matlab符号运算的基本运算(P52)
符号加:+ 符号减:符号乘:* 符号表达式的幂运算:^
见example3_5
14
Matlab符号运算的基本内容
符号变量代换及其函数subs(P54)(重点)
格式:f=subs(s,old,new) 功能:将符号表达式S中的old变量替换为new。old一定 是符号表达式s中的符号变量,而new可以是符号变量、 符号常量、双精度数值与数值数组相等。 格式:f=subs(s,new) 功能用new置换符号表达式s中的自变量
符以将一符号表达式赋值给一个符号变量。 符号变量的命名规则与数值变量相同。
例如: a=sym(‘alpha’) syms alpha beta gama;
8
符号表达式、符号函数与符号方程(P50) 符号表达式是由符号常量、符号变量、符号函数 用运算符或专用函数连接而成的符号对象。符号 表达式有两类: 符号函数和符号方程。 例:f=sym(‘a*x^2+b*2+c’)
3
符号运算与数值运算的区别
例求解: f 2 1
中f的值 。
其中 (1 5)/ 2
数值运算 :
符号运算:
>>rho=(1+sqrt(5))/2 >>rho=sym(‘(1+sqrt(5))/2
rho=1.6180
’)
>>f=rho^2-rho+1 rh0= (1+sqrt(5))/2
f=2.000
63 见example3_7
p
a c
b
d
见example3_4 6
Matlab符号运算的几个基本概念
符号对象(P49):
符号对象是symbolic math toolbox定义的一种新的数据 类型(sym类型),用来存储代表非数值的字符符号(通 常是大小写的英文字母及字符串)。符号对象可以是符号 常量(符号形式的数),符号变量,符号函数以及各种符 号表达式(符号数学表达式,符号方程与符号矩阵)
例1:已知 f axn by k 试对其进行符号变量替换:
a sin(t),b ln(w).k cedt 符号常量替换:n 5, k
与数组数值替换:k 1:1: 4
见example3_6 15
例2:已知 f a sin x k
试求当:a 1:1: 2, x 0 : : 时函数f的值。
>> A=sym(A) A= [ 1, 1/2, 1/3] [ 1/2, 1/3, 1/4] [ 1/3, 1/4, 1/5]
10
数值转化为符号
sym(‘数值变量’,’f’)-返回浮点表示形式 sym(‘数值变量’,’r’)-返回有理数表示形式 sym(‘数值变量’,’e’)-返回有理数(带误差)表示形式 sym(‘数值变量’,’d’)-返回十进制小数表示形式
因式连乘积的展开式。
见example3_2
5
例4:导函数 d (cos2 x)和 d (cos x2 )
dx
dx
见example3_3
b
例5:计算不定积分 xdx 和定积分 xdx a
见example3_3
例6:求解一阶微分方程 dy ay dt
见example3_3
例7:求以下矩阵行列式的值
2
符号运算与数值运算的区别
数值运算:
1. 其运算的元素是数 值;
2. 在运算过程中必须 先对变量进行赋值, 然后才能参加运算;
3. 其结果以数值形式 出现。
符号运算:
1. 其运算的元素是符 号;
2. 在运算过程中无须 对变量进行赋值就 可参加运算;但是 必须先定义符号变 量;
3. 其结果以符号形式 出现。
>>f=rho^2-rho+1
f=(1/2+1/2*5^(1/2))^2+1/2 -1/2*5^(1/2))
4
例1:求解一元二次方程 x2 2x 2 0的解。
见example3_1
例2:对于数学表达式x2 y yx x2 2x 合并关于
x 的同类项。
见example3_2
例3:对于数学表达式 (x2 1)(x 2)(x 3)即三
或syms a b c x f=‘a*x^2+b*2+c’
9
数组、矩阵与符号矩阵(P51)
m1=sym(‘[ab bc cd ; de ef fg ; h l j]’) m2=sym(‘[1 12;23 34]’)
– 例: – >>A=hilb(3);
A= 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000
创建符号对象与函数命令(P50)
1、函数命令sym()格式 格式1 s=sym(a)(a代表一个数字值、数值矩阵、数值表达式 格式2 s=sym(‘a’)(a代表一个字符串)
2、函数命令syms格式 syms s1 s2 s3;创建3个符号对象
7
符号常量
符号常量是一种符号对象。数值常量如果作为函数命令 sym()的输入参量,这就建立了一个符号对象——符 号常量 例如:sym(1/8)