MATLAB符号运算基础 科学与工程技术中的数值运算固然重要,但自然科学 理论分析中各种各样的公式、关系式及其推导就是符 号运算要解决的问题。 在Matlab7.0中,符号计算虽以数值运算的补充身份出 现,但它们都是科学计算研究的重要内容。 Matlab开发了实现符号计算的工具包Symbolic Math Toolbox 。 符号数学工具箱中的工具是建立在功能强大的Maple的 基础上。 它最初是由加拿大的滑铁卢(Waterloo)大学开发出来 的。 如果要求Matlab7.0进行符号运算,那么首先由Maple 计算并将结果返回到Matlab7.0命令窗口。
0、符号运算的基本操作1. 什么是符号运算
与数值运算的区别 ※ 数值运算中必须先对变量赋值, 然后才能参与运算。 ※ 符号运算无须事先对独立变量 赋值,运算结果以标准的符号形式 表达。
特点:
运算对象可以是没赋值的符号变量 可以获得任意精度的解
Symbolic Math Toolbox——符号运 算工具包通过调用Maple软件实现符 号计算的。 maple软件——主要功能是符号运算, 它占据符号软件的主导地位。
2. 符号变量与符号表达式
f = 'sin(x)+5x' f —— 符号变量名 sin(x)+5x—— 符号表达式 ' ' —— 符号标识 符号表达式一定要用 ' ' 单引号括起 来matlab才能识别。
' ' 的内容可以是符号表达式,也 可以是符号方程。 例: f1='a x^2+b x+c' —— 二次三项式 f2= 'a x^2+b x+c=0' —— 方程 f3='Dy+y^2=1' ——微分方程※符号表达式或符号方程可以赋给符号变 量,以后调用方便;也可以不赋给符号变 量直接参与运算
3.符号矩阵的创建数值矩阵A=[1,2;3,4] A=[a,b;c,d] —— 不识别
用matlab函数sym创建矩阵(symbolic的缩写)命令格式:A=sym('[ ※ 需用sym指令定义※ 需用 ' ' 标识
]')
※ 符号矩阵内容同数值矩阵
例如:A = sym('[a , 2*b ; 3*a , 0]') A=
[
a, 2*b]0]
[3*a,
这就完成了一个符号矩阵的创建。 注意:符号矩阵的每一行的两端都有方括号,这是与 matlab数值矩阵的
一个重要区别。
用字符串直接创建矩阵 模仿matlab数值矩阵的创建方法 需保证同一列中各元素字符串有相同的长 度。
例:A =['[ a,2*b]'; '[3*a, 0]'] A= [ a, 2*b] [3*a, 0]
符号矩阵的修改a.直接修改 可用 、 键找到所要修改的矩阵,直 接修改。 b.指令修改 用A1=sym(A, , ,'new') 来修改。 用A1=subs(A, 'new', 'old')来修改 用A1=subs(S, 'old' ,'new')
例如:A =[ a, 2*b] [3*a, 0] A1=sym(A,2,2, '4*b') A1 =[ a, 2*b] [3*a, 4*b] A2=subs(A1, 'c', 'b') A2 =[ a, 2*c] [3*a, 4*c]
A(2,2)='4*b' A1 = [ a, 2*b] [3*a, 4*b]
符号矩阵与数值矩阵的转换 将数值矩阵转化为符号矩阵 函数调用格式:sym(A) A=[1/3,2.5;1
/0.7,2/5] A= 0.3333 2.5000 1.4286 0.4000 sym(A) ans = [ 1/3, 5/2] [10/7, 2/5]
将符号矩阵转化为数值矩阵 函数调用格式: numeric(A) A= [ 1/3, 5/2] [10/7, 2/5] numeric(A) ans = 0.3333 2.5000 1.4286 0.4000
一、符号运算的基本函数1、使用factor( )命令,可以进行因式分解 例1 对于以下数学表达式进行因式分解a ( b c ) b ( c a ) c ( a b ) 2 abc2 2 2
解:输入以下语句
运行结果为:
2、使用函数subs(S,old,new)实现符号变量代换n a 例2、已知 f ax by k ,试对其进行符号变量替换: sin t
b ln w
k ce
dt
符号常量替换: n 5
k
解:输入语句
执行结果为
3、符号表达式同类项合并函数collect( )其调用格式为collect(E,v), 其功能是将符号表达式E中的v的同 幂次项系数合并。 例3、已知 f x 2 y xy ax 2 bx ,试对x进行同类项合并。 解:输入语句
执行结果为
表示
f x y xy ax bx ( y a ) x ( y b ) x2 2 2
4、符号表达式展开的函数expand( )其调用格式为expand(E), 其功能是将符号表达式E展开。
例4,已知 f cos( 3 arccos x ) ,试将其展开。解:输入语句 执行结果为 f1 =
3*x*(x^2 - 1) + x^3 f2 =f2=collect(f1) 4*x^3 - 3*x 表示
f cos( 3 arccos x ) 4 x 3 x3
5、符号表达式化简的函数simplify( )和simple( )函数simplify(E)的功能是将符号表达式E运用多种恒等式变 换进行综合化简。
函数simple(E)的功能是对符号表达式E尝试多种不同的简化 算法(包括simplify()的算法),以得到符号表达式E的长度 最短的简化形式。
例5、试对 e1 sin x cos x2 2
与 e2 e
c ln( )
进行综合化简。
解:输入语句
执行结果为
表示
e1 sin x cos x 12 2
e2 e
c ln( )
( )
c
6、符号表达式通分的函数numden( ) 其调用格式为 [N, D]=numden(E),功能是将符号表达式E通分。 例6、已知f x ky y px
,试对其进行通分。
解:输入语句
执行结果为
表示
f
x ky
y px
px ky2
2
kpxy
7、对具有符号的矩阵作求逆等运算例7,求以下矩阵的逆 解:输入语句 a P c b d
执行结果为
表明
P
1
d ad bc c ad bc
ad bc a ad bc
b
二、符号函数的微分与积分运算1、符号极限运算 函数limit( )有5种: (1)limit(F, x, a)计算符号表达式F当变量x→a时的极限 (2)limit(F, a)计算符号表达式F当独立变量趋向a时的极限 (3)limit(F)计算符号表达式F在x=0处的极限 (4)limit(F, x, a,’right’)计算符号表达式F在x→a(从右边 趋向于a)条件下的 …… 此处隐藏:897字,全部文档内容请下载后查看。喜欢就下载吧 ……