当前位置:文档之家› 第3章 MATLAB的符号运算_微分方程求解_符号代数方程

第3章 MATLAB的符号运算_微分方程求解_符号代数方程

创建符号对象与函数命令(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)
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)
的反函数
见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中,用 此函数确定一个符号表达式中的自变量。
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 ,
第3章 MATLAB的符号运算
1
MATLAB符号运算入门
科学与工程技术的数值运算固然重要,但自然科学 理论分析各种各样的公式、关系式及其推导就是符 号运算要解决的问题。它与数值运算一样,都是科 学计算研究的重要内容。Matlab数值运算的对象是 数值,而matlab符号运算的对象则是非数值的符号 对象。符号对象就是代表非数值的符号字符串。
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
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)
-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()
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 ?
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
进行综合化简。
ab
例7:求以下矩阵行列式的值 p =
det()
cd
见example3_4 6
3
Matlab符号运算的几个基本概念
符号对象(P49):
符号对象是symbolic math toolbox定义的一种新的数据 类型(sym类型),用来存储代表非数值的字符符号(通 常是大小写的英文字母及字符串)。符号对象可以是符号 常量(符号形式的数),符号变量,符号函数以及各种符 号表达式(符号数学表达式,符号方程与符号矩阵)
例: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
>> 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
0
0
4sin 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联立求解
见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
例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
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中的自变量
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:求欧拉方程的通解
相关主题