第3章 MATLAB的符号运算_微分方程求解_符号代数方程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sf=120/s^6 ilaplace(f) —— 反拉氏变换 fourier(f) —— 付氏变换 ifourier(f) —— 反付氏变换 simple(f) ——化简表达式 例:>>f=sym(‘cos(x)^2+sin(x)^2’);
>>simple(f) ans=1
29/46
例1:求单位冲激函数 (t)与函数 f (t) = 1
16/46
8
符号表达式的化简 1、 factor()
符号表达式因式分解的函数命令 2、expand()
将符号表达式展开 3、collect()
符号表达式的合并 格式1:collect(E,v) 按v变量合并 格式2:collect(E)按默认变量合并 4、simplify() ,simple() 将将符号表达式运用多种恒等式变换进行综合化简 格式1:simplify(E) ,simple(E) 格式2:[R,HOW]=simple(E)
的傅立叶变换F(w)
Dirac(t)
例2:求单位延迟阶跃函数 u(t c)
的傅立叶变换F(w)
例3:求函数Au(t)e t f (t) = cos bt
的傅立叶变换F(w)
例4:求函数 df (t) dt
的傅立叶变换F(w)
例5:求函数F (w) = 2 (w) 的傅立叶反变换f(t)
见example3_16 30/46
ab
例7:求以下矩阵行列式的值 p =
det()
cd
见example3_4 6
3
Matlab符号运算的几个基本概念
符号对象(P49):
符号对象是symbolic math toolbox定义的一种新的数据 类型(sym类型),用来存储代表非数值的字符符号(通 常是大小写的英文字母及字符串)。符号对象可以是符号 常量(符号形式的数),符号变量,符号函数以及各种符 号表达式(符号数学表达式,符号方程与符号矩阵)
见example3_9 19/46
Matlab两种特性的符号运算
复合函数的运算与函数命令compose
求复合函数
例1:已知 f = ln( x ) 与 g = u cos y
求:f
(
g ( x)),
f
(
g
(
z
t
))
见example3_10 反函数的运算与函数命令finverse
例2:求 y = ax b
sympow(s,p), (s^p)
见example3_5
14/46
7
Matlab符号运算的基本内容
符号变量代换及其函数subs(P54)(重点)
格式:subs(s,old,new) 功能:将符号表达式S中的old变量替换为new。old一定 是符号表达式s中的符号变量,而new可以是符号变量、 符号常量、双精度数值与数值数组等。 格式:subs(s,new) 功能:用new置换符号表达式s中的自变量
0
0
4s源自文库n t
例11:计算广义积分 4xtdx = ? 2
见example3_13
24/46
12
Matlab符号方程求解
Matlab符号代数方程的求解
格式1:solve(‘eqn1’,’eqn2’,…’eqnN’,’v1’,’v2’,…’vN’) 对方程组eqn1,eqn2,…eqnN按照变量v1,v2,…vN联立求解
例:f=sym('a*x^2+b*2+c')
或syms a b c x
f='a*x^2+b*2+c'
9/46
数组、矩阵与符号矩阵(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
3/46
符号运算与数值运算的区别
例求解: f = 2
1
中f的值 。
其中 =(1 5)/ 2
数值运算 :
>>rho=(1+sqrt(5))/2
rho=1.6180 >>f=rho^2-rho+1 f=2.000
符号运算: >>rho=sym(‘(1+sqrt(5))/2
’) rh0= (1+sqrt(5))/2 >>f=rho^2-rho+1 f=(1/2+1/2*5^(1/2))^2+1/2
的反函数
见example3_10
20/46
10
Matlab符号微积分运算(P55)
符号极限运算limit(f,x,a) x->a 符号微分运算diff(f,x,n)
符号积分运算int(f)
函数命令findsym(f,n) 在微积分、函数表达式化简、解方程中,确定自变量 是必不可少的。在不指定自变量的情况下,按照数学 常规,自变量通常都是小写英文字母,并且为字母表 末尾的几个如t、w、x、y、z等等。在matlab中,用 此函数确定一个符号表达式中的自变量。
dt
dt
dy + 5x 3y + t2 dt
dsolve()默认独立 自变量为t
例3:求微分方程组的通解以及满足所给初始条件的特解
dx dt
=
y,
x
t=0
0
dy = dt
x, y t=0
1
见example3_15
27/46
例4:求欧拉方程的通解
x3 y + x2 y 4xy 3x2
例5:求满足初始条件的二阶常系数非齐次微分方程的特解
dx dx2
例6:已知函数
f
= x2 sin 2 y 求
df
df ,
d2 f ,
dx dy dxdy
例7:已知函数
f
=
xe y y2
求
ff ,
xy
见example3_12
23/46
df
例8:已知导函数
= ax 求原函数
dx
b
例9:已知导函数 f (x) = x2 求 f (x)dx a
例10:计算重积分I = 2 d a r2 sin dr ?
第3章 MATLAB的符号运算
1
MATLAB符号运算入门
科学与工程技术的数值运算固然重要,但自然科学 理论分析各种各样的公式、关系式及其推导就是符 号运算要解决的问题。它与数值运算一样,都是科 学计算研究的重要内容。Matlab数值运算的对象是 数值,而matlab符号运算的对象则是非数值的符号 对象。符号对象就是代表非数值的符号字符串。
符号变量
符号变量通常是指一个或几个特定的字符,不是指符号 表 达式,虽然可以将一符号表达式赋值给一个符号变量。 符 号变量的命名规则与数值变量相同。
例如: a=sym('alpha') syms alpha beta gama;
8/46
4
符号表达式、符号函数与符号方程(P50) 符号表达式是由符号常量、符号变量、符号函数 用运算符或专用函数连接而成的符号对象。符号 表达式有两类: 符号函数和符号方程。
17/46
例1:已知 f = x3 x2 + x 1 试对其进行因式分解。
例2:已知 c = 12345678901234567890 试对其进行质因式分解。
例3:已知 f = (x y)3 试对其进行展开。
例4:已知 f = axe cx be cx 试对其进行同类项合并。 见example3_9
– 例:>>rho=1+sqrt(5)/2; >>sym(rho,’d’); ans= 2.1180339887498949025257388711907
11/46
符号对象转换为数值对象的函数double(), vpa() 1、double()
这种格式的功能是将符号常量转换为双精度数值 2、vpa()
例1:已知 f = axn by + k 试对其进行符号变量替换:
a = sin(t),b ln(w).k = ce dt 符号常量替换:n = 5, k
与数组数值替换:k = 1:1: 4
见example3_6 15/46
例2:已知 f = a sin x k
试求当:a = 1:1: 2, x 0 : : 时函数f的值。 63 见example3_7
>> A=sym(A) A= [ 1, 1/2, 1/3] [ 1/2, 1/3, 1/4] [ 1/3, 1/4, 1/5]
10/46
5
数值转化为符号
sym(‘数值变量‘,’f’)-返回浮点表示形式 sym(‘数值变量‘,’r’)-返回有理数表示形式[分式] sym(‘数值变量‘,’e’)-返回有理数表示形式[精确 误差] sym(‘数值变量‘,’d’)-返回十进制小数表示形式
Matlab符号微分方程的求解
dsolve(‘eqn1’,’eqn2’,…’初始条件部分’,’指定独立变量部分’)
25/46
例1:对以下方程联立方程组
y2 z2 x2 y+z a x2 bx c
求a=1,b=2,c=3时的x,y,z
见example3_14
26/46
13
例2:求微分方程组的通解
dx + 2x dy + y t
15
Matlab符号函数图形计算器 FUNTOOL
直接在命令窗口输入funtool命令即可出现
31/46
32/46
16
F:图形窗口1输入的控制函数,默认值为x G:图形窗口2输入的控制函数,默认值为1 X:函数的自变量的取值范围,默认值为[-2*pi:2*pi] A:输入常数,默认值为1/2 第一排:函数自身的运算 第二排:函数与常数之间的运算 第三排:两个函数之间的运算 第四排:几个系统的操作按钮
创建符号对象与函数命令(P50)
1、函数命令sym()格式 格式1 s=sym(a)(a代表一个数字值、数值矩阵、数值表达式 格式2 s=sym(‘a’)(a代表一个字符串)
2、函数命令syms格式 syms s1 s2 s3;创建3个符号对象
7/46
符号常量
符号常量是一种符号对象。数值常量如果作为函数命令 sym()的输入参量,这就建立了一个符号对象——符 号 常量 例如:sym(1/8)
2
1
符号运算与数值运算的区别
数值运算:
1. 其运算的元素是数 值;
2. 在运算过程中必须 先对变量进行赋值, 然后才能参加运算;
3. 其结果以数值形式 出现。
符号运算:
1. 其运算的元素是符 号;
2. 在运算过程中无须 对变量进行赋值就 可参加运算;但是 必须先定义符号变 量;
3. 其结果以符号形式 出现。
因式连乘积的展开式。
见example3_2
5
例4:导函数 d (cos2 x)和 d (cos x2 )
dx
dx
diff()
见example3_3
b
例5:计算不定积分 xdx 和定积分 xdx a int()
见example3_3
例6:求解一阶微分方程 dy = ay dt
dsolve()
见example3_3
18/46
9
例5:试对 e1 = sin2 x cos2 x e2 = ecln( + )
进行综合化简。
例6:试对 e1 = ln x ln y e2 = 2 cos2 x sin2 x
e3 = cos x j sin x
e4 = x3 3x2 + 3x 1 e5 = cos2 x sin2 x
进行综合化简。
y + y sin(2x) + 0, y x=
1, y = 1 x
见example3_15
28/46
14
符号运算实现各种变换
ztrans(f) —— Z变换 例:>>zf=ztrans(2^n)
zf=1/2*z/(1/2*z-1) iztrans(f) —— 反Z变换 Laplace(f) —— 拉氏变换 例:>>sf=laplace(t^5)
-1/2*5^(1/2))
4/46
2
例1:求解一元二次方程x2 + 2x 2 + 0的解。
solve()
见example3_1
例2:对于数学表达式x2 y + yx x2 2x 合并关于
x 的同类项。
见example3_2
例3:对于数学表达式 (x2 +1)(x 2)(x + 3)
collect()
21/46
例1:试证明 lim(1+ 1 )n e
n
n
例2:试求
mx lim
ma =?
xa x a
例3:试求
sin x lim
=?
x0 x
1
1
例4:试求 lim e x = ?, lim e x ?
x0
x+ 0
见example3_11
22/46
11
例5:已知函数
f = ax 求
df d 2 f ,
精确计算表达式的值。 格式1:R=vpa(E) 格式2:R=vpa(E,D)
12/46
6
例1:计算以下符号常量的值 c = e 79
并将结果转换为指定精度8位与18位的精确数值解。 见example3_8
13/46
Matlab符号运算的基本运算(P52)
符号加:symadd(A,B), (A+B) 符号减:symsub(A,B), (A-B) 符号乘:symmul(A,B), (A*B) 符号表达式的幂运算:
>>simple(f) ans=1
29/46
例1:求单位冲激函数 (t)与函数 f (t) = 1
16/46
8
符号表达式的化简 1、 factor()
符号表达式因式分解的函数命令 2、expand()
将符号表达式展开 3、collect()
符号表达式的合并 格式1:collect(E,v) 按v变量合并 格式2:collect(E)按默认变量合并 4、simplify() ,simple() 将将符号表达式运用多种恒等式变换进行综合化简 格式1:simplify(E) ,simple(E) 格式2:[R,HOW]=simple(E)
的傅立叶变换F(w)
Dirac(t)
例2:求单位延迟阶跃函数 u(t c)
的傅立叶变换F(w)
例3:求函数Au(t)e t f (t) = cos bt
的傅立叶变换F(w)
例4:求函数 df (t) dt
的傅立叶变换F(w)
例5:求函数F (w) = 2 (w) 的傅立叶反变换f(t)
见example3_16 30/46
ab
例7:求以下矩阵行列式的值 p =
det()
cd
见example3_4 6
3
Matlab符号运算的几个基本概念
符号对象(P49):
符号对象是symbolic math toolbox定义的一种新的数据 类型(sym类型),用来存储代表非数值的字符符号(通 常是大小写的英文字母及字符串)。符号对象可以是符号 常量(符号形式的数),符号变量,符号函数以及各种符 号表达式(符号数学表达式,符号方程与符号矩阵)
见example3_9 19/46
Matlab两种特性的符号运算
复合函数的运算与函数命令compose
求复合函数
例1:已知 f = ln( x ) 与 g = u cos y
求:f
(
g ( x)),
f
(
g
(
z
t
))
见example3_10 反函数的运算与函数命令finverse
例2:求 y = ax b
sympow(s,p), (s^p)
见example3_5
14/46
7
Matlab符号运算的基本内容
符号变量代换及其函数subs(P54)(重点)
格式:subs(s,old,new) 功能:将符号表达式S中的old变量替换为new。old一定 是符号表达式s中的符号变量,而new可以是符号变量、 符号常量、双精度数值与数值数组等。 格式:subs(s,new) 功能:用new置换符号表达式s中的自变量
0
0
4s源自文库n t
例11:计算广义积分 4xtdx = ? 2
见example3_13
24/46
12
Matlab符号方程求解
Matlab符号代数方程的求解
格式1:solve(‘eqn1’,’eqn2’,…’eqnN’,’v1’,’v2’,…’vN’) 对方程组eqn1,eqn2,…eqnN按照变量v1,v2,…vN联立求解
例:f=sym('a*x^2+b*2+c')
或syms a b c x
f='a*x^2+b*2+c'
9/46
数组、矩阵与符号矩阵(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
3/46
符号运算与数值运算的区别
例求解: f = 2
1
中f的值 。
其中 =(1 5)/ 2
数值运算 :
>>rho=(1+sqrt(5))/2
rho=1.6180 >>f=rho^2-rho+1 f=2.000
符号运算: >>rho=sym(‘(1+sqrt(5))/2
’) rh0= (1+sqrt(5))/2 >>f=rho^2-rho+1 f=(1/2+1/2*5^(1/2))^2+1/2
的反函数
见example3_10
20/46
10
Matlab符号微积分运算(P55)
符号极限运算limit(f,x,a) x->a 符号微分运算diff(f,x,n)
符号积分运算int(f)
函数命令findsym(f,n) 在微积分、函数表达式化简、解方程中,确定自变量 是必不可少的。在不指定自变量的情况下,按照数学 常规,自变量通常都是小写英文字母,并且为字母表 末尾的几个如t、w、x、y、z等等。在matlab中,用 此函数确定一个符号表达式中的自变量。
dt
dt
dy + 5x 3y + t2 dt
dsolve()默认独立 自变量为t
例3:求微分方程组的通解以及满足所给初始条件的特解
dx dt
=
y,
x
t=0
0
dy = dt
x, y t=0
1
见example3_15
27/46
例4:求欧拉方程的通解
x3 y + x2 y 4xy 3x2
例5:求满足初始条件的二阶常系数非齐次微分方程的特解
dx dx2
例6:已知函数
f
= x2 sin 2 y 求
df
df ,
d2 f ,
dx dy dxdy
例7:已知函数
f
=
xe y y2
求
ff ,
xy
见example3_12
23/46
df
例8:已知导函数
= ax 求原函数
dx
b
例9:已知导函数 f (x) = x2 求 f (x)dx a
例10:计算重积分I = 2 d a r2 sin dr ?
第3章 MATLAB的符号运算
1
MATLAB符号运算入门
科学与工程技术的数值运算固然重要,但自然科学 理论分析各种各样的公式、关系式及其推导就是符 号运算要解决的问题。它与数值运算一样,都是科 学计算研究的重要内容。Matlab数值运算的对象是 数值,而matlab符号运算的对象则是非数值的符号 对象。符号对象就是代表非数值的符号字符串。
符号变量
符号变量通常是指一个或几个特定的字符,不是指符号 表 达式,虽然可以将一符号表达式赋值给一个符号变量。 符 号变量的命名规则与数值变量相同。
例如: a=sym('alpha') syms alpha beta gama;
8/46
4
符号表达式、符号函数与符号方程(P50) 符号表达式是由符号常量、符号变量、符号函数 用运算符或专用函数连接而成的符号对象。符号 表达式有两类: 符号函数和符号方程。
17/46
例1:已知 f = x3 x2 + x 1 试对其进行因式分解。
例2:已知 c = 12345678901234567890 试对其进行质因式分解。
例3:已知 f = (x y)3 试对其进行展开。
例4:已知 f = axe cx be cx 试对其进行同类项合并。 见example3_9
– 例:>>rho=1+sqrt(5)/2; >>sym(rho,’d’); ans= 2.1180339887498949025257388711907
11/46
符号对象转换为数值对象的函数double(), vpa() 1、double()
这种格式的功能是将符号常量转换为双精度数值 2、vpa()
例1:已知 f = axn by + k 试对其进行符号变量替换:
a = sin(t),b ln(w).k = ce dt 符号常量替换:n = 5, k
与数组数值替换:k = 1:1: 4
见example3_6 15/46
例2:已知 f = a sin x k
试求当:a = 1:1: 2, x 0 : : 时函数f的值。 63 见example3_7
>> A=sym(A) A= [ 1, 1/2, 1/3] [ 1/2, 1/3, 1/4] [ 1/3, 1/4, 1/5]
10/46
5
数值转化为符号
sym(‘数值变量‘,’f’)-返回浮点表示形式 sym(‘数值变量‘,’r’)-返回有理数表示形式[分式] sym(‘数值变量‘,’e’)-返回有理数表示形式[精确 误差] sym(‘数值变量‘,’d’)-返回十进制小数表示形式
Matlab符号微分方程的求解
dsolve(‘eqn1’,’eqn2’,…’初始条件部分’,’指定独立变量部分’)
25/46
例1:对以下方程联立方程组
y2 z2 x2 y+z a x2 bx c
求a=1,b=2,c=3时的x,y,z
见example3_14
26/46
13
例2:求微分方程组的通解
dx + 2x dy + y t
15
Matlab符号函数图形计算器 FUNTOOL
直接在命令窗口输入funtool命令即可出现
31/46
32/46
16
F:图形窗口1输入的控制函数,默认值为x G:图形窗口2输入的控制函数,默认值为1 X:函数的自变量的取值范围,默认值为[-2*pi:2*pi] A:输入常数,默认值为1/2 第一排:函数自身的运算 第二排:函数与常数之间的运算 第三排:两个函数之间的运算 第四排:几个系统的操作按钮
创建符号对象与函数命令(P50)
1、函数命令sym()格式 格式1 s=sym(a)(a代表一个数字值、数值矩阵、数值表达式 格式2 s=sym(‘a’)(a代表一个字符串)
2、函数命令syms格式 syms s1 s2 s3;创建3个符号对象
7/46
符号常量
符号常量是一种符号对象。数值常量如果作为函数命令 sym()的输入参量,这就建立了一个符号对象——符 号 常量 例如:sym(1/8)
2
1
符号运算与数值运算的区别
数值运算:
1. 其运算的元素是数 值;
2. 在运算过程中必须 先对变量进行赋值, 然后才能参加运算;
3. 其结果以数值形式 出现。
符号运算:
1. 其运算的元素是符 号;
2. 在运算过程中无须 对变量进行赋值就 可参加运算;但是 必须先定义符号变 量;
3. 其结果以符号形式 出现。
因式连乘积的展开式。
见example3_2
5
例4:导函数 d (cos2 x)和 d (cos x2 )
dx
dx
diff()
见example3_3
b
例5:计算不定积分 xdx 和定积分 xdx a int()
见example3_3
例6:求解一阶微分方程 dy = ay dt
dsolve()
见example3_3
18/46
9
例5:试对 e1 = sin2 x cos2 x e2 = ecln( + )
进行综合化简。
例6:试对 e1 = ln x ln y e2 = 2 cos2 x sin2 x
e3 = cos x j sin x
e4 = x3 3x2 + 3x 1 e5 = cos2 x sin2 x
进行综合化简。
y + y sin(2x) + 0, y x=
1, y = 1 x
见example3_15
28/46
14
符号运算实现各种变换
ztrans(f) —— Z变换 例:>>zf=ztrans(2^n)
zf=1/2*z/(1/2*z-1) iztrans(f) —— 反Z变换 Laplace(f) —— 拉氏变换 例:>>sf=laplace(t^5)
-1/2*5^(1/2))
4/46
2
例1:求解一元二次方程x2 + 2x 2 + 0的解。
solve()
见example3_1
例2:对于数学表达式x2 y + yx x2 2x 合并关于
x 的同类项。
见example3_2
例3:对于数学表达式 (x2 +1)(x 2)(x + 3)
collect()
21/46
例1:试证明 lim(1+ 1 )n e
n
n
例2:试求
mx lim
ma =?
xa x a
例3:试求
sin x lim
=?
x0 x
1
1
例4:试求 lim e x = ?, lim e x ?
x0
x+ 0
见example3_11
22/46
11
例5:已知函数
f = ax 求
df d 2 f ,
精确计算表达式的值。 格式1:R=vpa(E) 格式2:R=vpa(E,D)
12/46
6
例1:计算以下符号常量的值 c = e 79
并将结果转换为指定精度8位与18位的精确数值解。 见example3_8
13/46
Matlab符号运算的基本运算(P52)
符号加:symadd(A,B), (A+B) 符号减:symsub(A,B), (A-B) 符号乘:symmul(A,B), (A*B) 符号表达式的幂运算: