当前位置:
文档之家› 第三章MATLAB的符号运算
第三章MATLAB的符号运算
2 2
进行综合化简。
见example3_9
19
Matlab符号微积分运算(P55)
符号极限运算limit(f,x,a) x->a
符号微分运算diff(f,x,n)
符号积分运算int(f),int(f,a,b)
函数命令findsym(f,n) 在微积分、函数表达式化简、解方程中,确定自变量 是必不可少的。在不指定自变量的情况下,按照数学 常规,自变量通常都是小写英文字母,并且为字母表 末尾的几个如t、w、x、y、z等等。在matlab中,用 此函数确定一个符号表达式中的自变量。
4
例1:求解一元二次方程 x
2
2 x 2 0 的解。
见example3_1
2 2 x y yx x 2x 合并关于 例2:对于数学表达式 x 的同类项。
见example3_2
2 ( x 1)( x 2)( x 3) 即三 例3:对于数学表达式
因式连乘积的展开式。
例1:已知 f x3 x2 x 1 试对其进行因式分解。 例2:已知 c 12345678901234567890 试对其进行质因式分解。 例3:已知 f ( x y)3 试对其进行展开。 例4:已知 f axecx becx 试对其进行同类项合并。 见example3_9
16
符号表达式的化简 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) 17
0.3333 0.2500 0.2000
10
数值转化为符号
sym(‘数值变量’,’f’)-返回浮点表示形式 sym(‘数值变量’,’r’)-返回有理数表示形式 sym(‘数值变量’,’e’)-返回有理数(带误差)表示形式 sym(‘数值变量’,’d’)-返回十进制小数表示形式
– 例: >>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
n
例1:已知 f ax by k 试对其进行符号变量替换: n 5, k a sin(t ), b ln(w).k cedt 符号常量替换:
与数组数值替换:k 1:1: 4
见example3_6
15
例2:已知 f a sin x k 试求当: a 1:1: 2, x 0 : : 时函数f的值。 6 3 见example3_7
见example3_15
26
例4:求欧拉方程的通解
x y x y 4xy 3x
3 2
2
例5:求满足初始条件的二阶常系数非齐次微分方程的特解
y y sin(2x) 0, y x 1, y x 1
见example3_15
27
符号运算实现各种变换
见example3_3
见example3_4
6
Matlab符号运算的几个基本概念
符号对象(P49):
符号对象是symbolic math toolbox定义的一种新的数据 类型(sym类型),用来存储代表非数值的字符符号(通 常是大小写的英文字母及字符串)。符号对象可以是符号 常量(符号形式的数),符号变量,符号函数以及各种符 号表达式(符号数学表达式,符号方程与符号矩阵)
20
1 n ) e 例1:试证明 lim(1 n n
x m a ? 例2:试求 lim x a xa
m
sin x 例3:试求 lim ? x0 x
lim e ?, lim e ? 例4:试求 x 0 x 0
1 x
1 x
见example3_11
21
2 df d f x 例5:已知函数 f a 求 , 2 dx dx
a
f ( x)dx
2 2 I d r 例10:计算重积分 sin dr ? 0 0
a
例11:计算广义积分
4s i n t
2
4 xtdx ?
见example3_13
23
Matlab符号方程求解
Matlab符号代数方程的求解
格式1:solve(‘eqn1’,’eqn2’,…’eqnN’,’v1’,’v2’,…’vN’) 对方程组eqn1,eqn2,…eqnN按照变量v1,v2,…vN联立求解
28
例1:求单位冲激函数 (t ) 与函数 f (t ) 1 的傅立叶变换F(w) 例2:求单位延迟阶跃函数 u(t c) 的傅立叶变换F(w) 例3:求函数 Au(t )e
t
f (t ) cos bt
当cos无法直接FT时, 考虑欧拉公式 1/2(exp(jt)+exp(-jt)
ztrans(f) —— Z变换 例:>>zf=ztrans(2^n) zf=1/2*z/(1/2*z-1) iztrans(f) —— 反Z变换 Laplace(f) —— 拉氏变换 例:>>sf=laplace(t^5) sf=120/s^6 ilaplace(f) —— 反拉氏变换 fourier(f) —— 付氏变换 ifourier(f) —— 反付氏变换 simple(f) ——化简表达式 例:>>f=sym(‘cos(x)^2+sin(x)^2’); >>simple(f) ans=1
2
符号运算与数值运算的区别
数值运算: 1. 其运算的元素是数 值; 2. 在运算过程中必须 先对变量进行赋值, 然后才能参加运算; 3. 其结果以数值形式 出现。
符号运算: 1. 其运算的元素是符 号; 2. 在运算过程中无须 对变量进行赋值就 可参加运算;但是 必须先定义符号变 量; 3. 其结果以符号形式 出现。
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
第3章 MATLAB的符号运算
1
MATLAB符号运算入门
科学与工程技术的数值运算固然重要,但自然科学 理论分析各种各样的公式、关系式及其推导就是符 号运算要解决的问题。它与数值运算一样,都是科 学计算研究的重要内容。Matlab数值运算的对象是 数值,而Matlab符号运算的对象则是非数值的符号 对象。符号对象就是代表非数值的符号字符串。
18
例5:试对 e1 sin2 x cos2 x
e2 ecln( )
进行综合化简。 例6:试对 e1 ln x ln y
e2 2cos x sin x
2 2
ቤተ መጻሕፍቲ ባይዱ
e3 cos x j sin x
e4 x3 3x2 3x 1
e5 cos x sin x
Matlab符号微分方程的求解
dsolve(‘eqn1’,’eqn2’,…’初始条件部分’,’指定独立变量部分’)
24
例1:对以下方程联立方程组
y2 z 2 x2 yz a x 2 bx c
求a=1,b=2,c=3时的x,y,z
见example3_14
25
例2:求微分方程组的通解
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.5000 0.3333 0.3333 0.2500 >> A=sym(A) A= [ 1, 1/2, 1/3] [ 1/2, 1/3, 1/4] [ 1/3, 1/4, 1/5]
的傅立叶变换F(w) df (t ) 例4:求函数 dt 的傅立叶变换F(w)
例5:求函数 F (w) 2 (w) 的傅立叶反变换f(t)
见example3_16 29
符号函数的可视化
ezplot(f):绘制f=f(t),t的范围-2*pi<t<2*pi ezplot(f,[a,b]):绘制f=f(t),t的范围a<t<b ezplot(f):对于符号f=f(x,y),ezplot(f)在图形窗口 中绘制符号方程f(x,y)=0的图形, -2*pi<x<2*pi, -2*pi<y<2*pi。 ezplot(f,[xmin,xmax,ymin,ymax]) ezplot(x,y):绘制符号方程x=x(t),y=y(t)的图形, 0<t<2*pi; ezplot(x,y,[tmin,tmax])
见example3_2
5
d d 2 2 例4:导函数 (cos x) 和 (cos x ) dx dx
见example3_3 例5:计算不定积分