MATLAB符号运算运用共30页
合集下载
第三讲 MATLAB的符号运算
例2. factor指令的使用
(1)除x外不含其他自由变量的情况 (2) 含其他自由变量的情况之一
syms a x;
f2=x^2-a^2;
f1=x^4-5*x^3+5*x^2+5*x-6;
factor(f2)
factor(f1)
(3)对正整数的质数分解,若正整数数大于252,则用 factor(sym (‘N’))
用matlab函数sym创建矩阵(symbolic 的缩写)
命令格式:A=sym('[
]')
※ 符号矩阵内容同数值矩阵
※ 需用sym指令定义
※ 需用'
'标识
2019/7/19
13
例如:A = sym('[a , 2*b ; 3*a , 0]') A= [ a, 2*b] [3*a, 0]
2019/7/19
10
numeric(s): 将不含自由变量的符号表达式转换 为数值形式,其效果double(sym(s))相同.(旧版 中的数值转化函数).
2019/7/19
11
vpa(5/6,40)
ans =
.8333333333333333333333333333333333333333
a=sym('[1/4,exp(1);log(3),3/7]')
有时符号运算的目的是为了得到精确的数值 解,这样就需要对得到的解析解进行数值转 换。在symbolic中有三种不同的算术运算:
数值类型 matlab的浮点算术运算 有理数类型 maple的精确符号运算 vpa类型 maple的任意精度算术运算
2019/7/19
matlab符号运算(共57张)
(3)limit(F):计算符号函数F的极限值,变量为
findsym确定的默认变量;在未指定目标值时,默认变量趋 近于0; (4)limit(F,x,a,’left’)或limit(F,x,a,’right’):分别计算 函数F的左极限和右极限。
17
第17页,共57页。
>> syms x t;
>> limit(sin(x)/x)
A= [ a, 2*b] [3*a, 0]
3、用函数syms创建矩阵
格式: syms arg1 arg2… 参数
A=[ ]
>> syms a b
A=
>>A=[a,2*b;3*a,0]
[ a, 2*b] [3*a, 0]
15
第15页,共57页。
4、将数值矩阵(jǔ zhèn)转化成符号矩阵
(jǔ zhèn)
ans =
11/15
3
第3页,共57页。
>> 3*sin(3)+pi/2
ans =
1.9942
>> sym('3*sin(3)+pi/2')
ans = 3*sin(3)+pi/2
>> sym(3*sin(3)+pi/2)
ans = 8980881799167258*2^(-52)
>> sym(3*sin(3)+pi/2,'d')
>> real(z) ans = x
>> syms x unreal >> real(z)
ans =
1/2*x+1/2*conj(x)
findsym确定的默认变量;在未指定目标值时,默认变量趋 近于0; (4)limit(F,x,a,’left’)或limit(F,x,a,’right’):分别计算 函数F的左极限和右极限。
17
第17页,共57页。
>> syms x t;
>> limit(sin(x)/x)
A= [ a, 2*b] [3*a, 0]
3、用函数syms创建矩阵
格式: syms arg1 arg2… 参数
A=[ ]
>> syms a b
A=
>>A=[a,2*b;3*a,0]
[ a, 2*b] [3*a, 0]
15
第15页,共57页。
4、将数值矩阵(jǔ zhèn)转化成符号矩阵
(jǔ zhèn)
ans =
11/15
3
第3页,共57页。
>> 3*sin(3)+pi/2
ans =
1.9942
>> sym('3*sin(3)+pi/2')
ans = 3*sin(3)+pi/2
>> sym(3*sin(3)+pi/2)
ans = 8980881799167258*2^(-52)
>> sym(3*sin(3)+pi/2,'d')
>> real(z) ans = x
>> syms x unreal >> real(z)
ans =
1/2*x+1/2*conj(x)
MATLAB中的符号运算精品PPT课件
符号变量 当字符表达式中含有多于一个的变量时,只有一个变 量是独立变量。如果不告诉MATLAB哪一个变量是独 立变量,MATLAB将基于以下规则选择一个:
在符号表达式中缺省的独立变量是唯一的,除去i和j 的小写字母,不是单词的一部分。如果没有这种字 母,就选择x作为独立变量。如字符不是唯一的,就 选择在字母顺序中最接近x的字母。如果有相连的字 母,就选择在字母表中较后的那一个。
symvar( ' 3*i+4*j ' ) % i and j are equel to sqrt(-1) ans= x
symvar( ' y+3*s ' , ' t ' ) ans= s % find the variable closest to t rather than x
如果利用规则symvar不能找到一个缺省独立变量, 它便假定无独立变量并返回x。这一结论对含有由 多个字母组成的变量,如:alpha或s2的表达式, 或不含变量的符号常数均成立。如果需要,绝大多 数命令都使用用户选项以指定独立变量。
symvar( ' a*x+y*) % find the default symbolic variable ans= x
symvar( ' a*t+s/(u+3) ' ) % u is the closest to ' x ' ans= u
symvar( ' sin(omega) ' ) % ' omega ' is not a singlee character。 ans= x
MATLAB中的符号运算
2004.8.4
MATLAB所具有的符号数学工具箱与其 它所有工具不同,它适用于广泛的用 途,而不是针对一些特殊专业或专业 分支。另外,MATLAB符号数学工具 箱与其它的工具箱区别还因为它使用 字符串来进行符号分析,而不是基于 数组的数值分析。
《Matlab符号运算》课件
了解如何利用符号计算技术解决 实际工程中的复杂问题。
Matlab符号计算的注意事项
1 数据类型
深入了解符号计算中常用 的数据类型和应用。
2 精度问题
学习如何处理符号计算中 的精度和舍入误差。
3 限制
指出符号计算在某些情况 下的限制和局限性。
学习如何对符号表达式进行化简和拓展。
3
代数式求解与பைடு நூலகம்程求解
了解Matlab中解代数式和方程的高级符号求解技术。
Matlab符号计算的实例应用
符号计算在微积分中的应用 符号计算在矩阵中的应用
探索如何利用符号计算来解决微 积分中的难题。
学习如何使用符号计算解决矩阵 相关的问题和运算。
符号计算在工程问题中的 应用
Matlab符号运算的基本使用
定义符号变量
学习如何在Matlab中定义和使用 符号变量。
符号运算表达式的构建
了解如何构建和操作符号运算表 达式。
表达式求值
学习如何使用Matlab对符号表达 式进行求值。
Matlab符号运算的高级应用
1
高级符号计算
探索Matlab中更复杂的符号计算技巧和方法。
2
符号表达式的化简与扩展
《Matlab符号运算》PPT 课件
本课件将介绍Matlab符号运算的概念、基本使用、高级应用以及实例应用, 同时指出注意事项,帮助您全面了解和掌握Matlab的符号计算功能。
Matlab符号运算的概念
含义
深入探讨Matlab中符号运算的概念和作用。
优点
了解Matlab符号运算相比数值运算的优势和适用 范围。
Matlab符号计算的注意事项
1 数据类型
深入了解符号计算中常用 的数据类型和应用。
2 精度问题
学习如何处理符号计算中 的精度和舍入误差。
3 限制
指出符号计算在某些情况 下的限制和局限性。
学习如何对符号表达式进行化简和拓展。
3
代数式求解与பைடு நூலகம்程求解
了解Matlab中解代数式和方程的高级符号求解技术。
Matlab符号计算的实例应用
符号计算在微积分中的应用 符号计算在矩阵中的应用
探索如何利用符号计算来解决微 积分中的难题。
学习如何使用符号计算解决矩阵 相关的问题和运算。
符号计算在工程问题中的 应用
Matlab符号运算的基本使用
定义符号变量
学习如何在Matlab中定义和使用 符号变量。
符号运算表达式的构建
了解如何构建和操作符号运算表 达式。
表达式求值
学习如何使用Matlab对符号表达 式进行求值。
Matlab符号运算的高级应用
1
高级符号计算
探索Matlab中更复杂的符号计算技巧和方法。
2
符号表达式的化简与扩展
《Matlab符号运算》PPT 课件
本课件将介绍Matlab符号运算的概念、基本使用、高级应用以及实例应用, 同时指出注意事项,帮助您全面了解和掌握Matlab的符号计算功能。
Matlab符号运算的概念
含义
深入探讨Matlab中符号运算的概念和作用。
优点
了解Matlab符号运算相比数值运算的优势和适用 范围。
MATLAB的符号运算V精简版
ans=[2+y,4+y,6+y]
>> subs(f,x,[1:3]) >> subs(f,{x,y},{[1:3],[5:7]})
ans=[7 10 13]
>> subs(f,{x,y},{a+b,a-b}) >> subs(f,{x,y},{x+y,x-y})
Copyright © CUGB
2024/4/3
Matlab的符号运算
符号对象建立时可以附加属性: real、positive 和 unreal
>> x=sym('x','real') >> k=sym('k','positive') >> x=sym('x','unreal')
表明 x 是实的 表明 k 是正的 去掉 x 的附加属性
Copyright © CUGB 2024/4/3
Matlab的符号运算
符号表达式的建立
>> syms x >> f1=sin(x)+cos(x)
推荐!
>> f2=sym(’sin(x)+cos(x)’)
Copyright © CUGB 2024/4/3
Matlab的符号运算
相关函数
➢ findsym: 查找符号表达式中的符号变量
findsym(f) 按字母顺序列出符号表达式 f 中的所有自由变量 findsym(f,N) 列出 f 中距离 x 最近的 N 个自由变量(i,j 除外)
Matlab的符号运算
其它运算
MATLAB符号运算PPT课件
sym函数用来建立单个符号量,一般调用格式为: 符号量名=sym('符号字符串') 该函数可以建立一个符号量,符号字符串可以是常量、变 量、函数或表达式。 应用sym函数还可以定义符号常量,使用符号常量进行 代数运算时和数值常量进行的运算不同。
2021/5/8
8
2.9 符号变量和符号达式
(2) syms 函数
符号变量和符号表达式在使用前必须说明
syms函数 如果一个数学符号表示式中有多个符号,
如
z = a*t^2+b*t+c 可以用多个符号变量定义语
句放在此式前面。
>> clear
>> syms a b c t
>> whos
Name Size
Bytes Class
a
1x1
126 sym object
运算复杂的数学式,这也是我们使用它的目的。
2021/5/8
5
2.8数值运算与符号运算
数值运算在运算前必须先对变量赋值,再参加 运算。
符号运算不需要对变量赋值就可运算,运算结 果以标准的符号形式表达。
2021/5/8
6
2.8数值运算与符号运算
在MATLAB中是将一符号表示式储存唯 一字串 (character string),即是以二个单 引号之内的表示式来定义其为 一符号式, 例如:
b
1x1
126 sym object
c
1x1
126 sym object
t
1x1
126 sym object
2021/5/8
12
2.10 符号表示式的运算
2.10.1 算术运算或四则运算
2021/5/8
8
2.9 符号变量和符号达式
(2) syms 函数
符号变量和符号表达式在使用前必须说明
syms函数 如果一个数学符号表示式中有多个符号,
如
z = a*t^2+b*t+c 可以用多个符号变量定义语
句放在此式前面。
>> clear
>> syms a b c t
>> whos
Name Size
Bytes Class
a
1x1
126 sym object
运算复杂的数学式,这也是我们使用它的目的。
2021/5/8
5
2.8数值运算与符号运算
数值运算在运算前必须先对变量赋值,再参加 运算。
符号运算不需要对变量赋值就可运算,运算结 果以标准的符号形式表达。
2021/5/8
6
2.8数值运算与符号运算
在MATLAB中是将一符号表示式储存唯 一字串 (character string),即是以二个单 引号之内的表示式来定义其为 一符号式, 例如:
b
1x1
126 sym object
c
1x1
126 sym object
t
1x1
126 sym object
2021/5/8
12
2.10 符号表示式的运算
2.10.1 算术运算或四则运算
MATLAB符号运算功能PPT课件
2021/6/7
16
§ 3.5 符号矩阵的运算
一、基本运算 1. 符号矩阵的四则运算 • 矩阵的加(+)、减(-)法 例如:>>a=sym('[1/x,1/(x+1);1/(x+2),1/(x+3)] '); >>b=sym('[x,1;x+2,0]'); >>b+a
ans = [ 1/x+x, 1/(x+1)+1] [ 1/(x+2)+x+2, 1/(x+3)]
2021/6/7
19
6. 符号矩阵的指数运算 • 符号矩阵的“数组指数”运算由函数exp实现, 如:exp(b); • 符号矩阵的“矩阵指数”运算由函数expm实现; 如:expm(b)
>> exp(b) ans =
[ exp(x), exp(1)] [ exp(x+2), 1]
>>expm(b) >>a=[0 1;3 2] >>syms t >>expm(a*t)
ans =1/(1+sin(y)^2) >>compose(f,g,t);
ans =1/(1+sin(t)^2) >>compose(h,g,x,z);
2021/6/7
12
ans =sin(z)^t
>> compose(h,g,t,z); ans =x^sin(z)
>> compose(h,p,x,y,z); ans =exp(-z/u)^t
digits(D) 函数设置有效数字个数为D的近似解精度; R=vpa(S) 符号表达式S在digits函数设置下的精确的数值解; vpa(S,D) 符号表达式S在digits(D)精度下的数值解; 例题:求方程 3x2-ex=0 的精确解和各种精度的近似解。 s=solve(' 3*x^2-exp(x)=0 ')
第三讲 MATLAB的符号运算
2t
t
27
数学建模培训
MATLAB
>> a=[0 1;-2 -3]; 1;>> syms s >> b=(s*eye(2)-a) b=(s*eye(2)b= [ s, -1] [ 2, s+3] >> B=inv(b) [ (s+3)/(s^2+3*s+2), [ -2/(s^2+3*s+2),
maple 软件—— 主要功能是符号运算, maple软件 ——主要功能是符号运算 ,
它占据符号软件的主导地位。 它占据符号软件的主导地位。
02:12:10 4
数学建模培训
MATLAB
2. 符号变量与符号表达式
f = 'sin(x)+5x' f —— 符号变量名 sin(x)+5x—— sin(x)+5x—— 符号表达式 ' '—— 符号标识 符号表达式一定要用' 符号表达式一定要用' ' 单引 号括起来matlab才能识别。 号括起来matlab才能识别。
区间求定积分02:12:10 23学建模培训MATLAB
int('被积表达式','积分变量','积分上限', int( 被积表达式' 积分变量' 积分上限' '积分下限')—— 定积分 积分下限' ——缺省时为不定积分
taylor(f,n) —— 泰勒级数展开 ztrans(f) —— Z变换 iztrans(f) —— 反Z变换 laplace(f) —— 拉氏变换 ilaplace(f) —— 反拉氏变换 fourier(f) —— 付氏变换 ifourier(f) —— 反付氏变换
第三章MATLAB语言符号运算PPT课件
3.1.1 符号对象的创建
例:
>> x=sym('x') >> y=sym('y')
>> syms x y
>> z=x*x+y*y z= x^2+y^2 >> a=5;b=3;c=a*a+b*b c=
34
3.1.1 符号对象的创建
2. 符号常量的创建 不含变量的符号叫符号常量。符号常量的定义 也使用函数sym()。
3.1.1 符号对象的创建
➢syms函数调用格式:
函数sym一次只能定义一个符号变量,使用不 方便。MATLAB提供了另一个函数syms,一 次可以定义多个符号变量。syms函数的一般 调用格式为: syms 符号变量名1 符号变量名2 … 符号变量 名n 用这种格式定义符号变量时不要在变量名上加 字符串分界符(‘),变量间用空格而不要用逗号 分隔。
例:
>> a=sym(1/5) a= 1/5
3.1.1 符号对象的创建
3. 符号表达式的创建
符号表达式为含有符号对象(符号常量、符号变量)的 表达式,其创建方法如下: 1.利用函数sym()直接创建 sym(A):其中A为字符串的表达式,必须被单引号引用。 2.利用符号对象创建 符号表达式也可以通过创建的符号对象来实现,当把已 定义的符号变量或者符号常量连接为表达式,即可完成 符号表达式的创建。
※ 数值运算中必须先对变量赋值,然后才能参 与运算。
※ 符号运算无须事先对独立变量赋值,运算结 果以标准的符号形式表达。
3.1.1 符号对象的创建
在MATLAB中的符号计算主要是对符号对象进 行操作的,在使用符号计算功能前,首先需要创 建符号对象。本节主要介绍符号对象的创建,其 中常用的符号对象主要包括符号常量和变量、符 号表达式、符号矩阵。
第3讲 MATLAB语言的符号运算
2、微分
Matlab求微分的函数是diff()
说明:
①用diff(f)求 f 对预设独立变量的一次微分;
② diff(f,t)求 f 对独立变量 t 的一次微分;
③用diff(f,n)求 f 对预设独立变量的n次微分 ④diff(f,t,n)求 f 对独立变量 t 的n次微分; ⑤ f 可以是标量、向量、矩阵。
调用格式如下:
通过F=fourier(f)求时域函数f的Fourier变换
①如果采用F=fourier(f)的格式,默认积分变量是x;
③invfourier()为Fourier反变换。
②如果采用F=fourier(f,u)的格式,指定u为积分变量;
例:计算时间函数的 >>syms t w
f (t ) e
(t ) y (t ) x (t ) x(t ) y
[x,y]= dsolve(‘Dx=y’,Dy=-x’) [f,g]= dsolve(‘Df=3*f+4*g’,’Dg=-5*f+2*g’)
⑥ 2个微分方程,给定初始条件 [x,y]= dsolve(‘Dx=y’,Dy=-x’,’x(0)=0’,’y(0)=1’)
3.4 微分方程求解
符号运算中的微分方程求解函数可利用如下格式
dsolve(‘方程1’,‘方程2’,…) 函数格式说明: ①可多至12个微分方程的求解; ②默认自变量为x,并可任意指定自变量t,u等;
③方程的各阶导数项以大写字母“D”作为标识,后接 数字阶数,再接解变量名;
④初始条件以符号代数方程给出,如果初始条件项缺 省,其默认常数为C1,C2,…等; ⑤返回变量的格式为:[Y1,Y2,…]=dsolve(…)
3.6 符号表达式的运算
《MATLAB符号运算》PPT课件
%求fn的Z变换 %求Fz的逆Z变换
第二十二页,共30页。
5.5 求解(qiú jiě)方程
• 代数方程(dàishù 。 fāngchéng) • 代数方程组。 • 微分方程和微分方程组。
第二十三页,共30页。
代数方程(dàishù fāngchéng)
代数方程是指未涉及微积分运算的方程,相对比较简单。 在matlab中,求解用符号表达式表示的代数方程可由函数
limit(f,x,a,'right')
%求极限
第十四页,共30页。
符号(fúhào)函数的微分
MATLAB中的微分函数为: diff(f,x,n)
diff函数求函数f对变量x的n阶导数。参数x的用法同求极限 (jíxiàn)函数limit,可以缺省,缺省值与limit相同,n的缺省值 是1。
第十五页,共30页。
第二十页,共30页。
2. 拉普拉斯(Laplace)变换 在MATLAB中,进行拉普拉斯变换的函数是: laplace(fx,x,t) 求函数f(x)的拉普拉斯像函数F(t)。 ilaplace(Fw,t,x) 求拉普拉斯像函数F(t)的原函数f(x)。
例计算y=x2的拉普拉斯变换及其逆变换. 命令(mìng lìng)如下: x=sym('x');y=x^2; Ft=laplace(y,x,t) %对函数y进行拉普拉斯变换 fx=ilaplace(Ft,t,x) %对函数Ft进行拉普拉斯逆变换
例求函数的(微分)导数。命令如下:
syms a b t x y z;
f=sqrt(1+exp(x));
diff(f)
%未指定求导变量(biànliàng)和阶数,按缺省规则
第6章 MATLAB的符号运算PPT课件
12
6. 将符号矩阵转化为数值矩阵 函数调用格式:double(A) numeric(A) A= [ 1/3, 5/2] [10/7, 2/5] numeric(A) ans =
0.3333 2.5000 1.4286 0.4000
13
三种数据类型之间的转换: MATLAB有三种数值型、字符型和符号型,优先级符号型
f = rho^2 - rho - 1
returns f =
(1/2+1/2*5^(1/2))^2-3/2-1/2*5^(1/2)
Then simplify(f)
returns 0
5
符号常量、符号变量、符号表达 式、符号矩阵的创建 符号表达式的代数运算 符号表达式的操作和转换 符号极限、符号微分、符号积分、 符号级数 符号积分变换
11
5. 数字矩阵转化为符号矩阵
数值变量与符号变量不能进行运算,需要将数值矩阵转化 为符号矩阵,数值矩阵中的小数按最近的有理数转化。
例:
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]
第六章 MATLAB符号计算及工具箱
1
整体概述
概况一
点击此处输入相关文本内容 点击此处输入相关文本内容
概况二
点击此处输入相关文本内容 点击此处输入相关文本内容
概况三
点击此处输入相关文本内容 点击此处输入相关文本内容
2
MathWorks公司在1993年收购了主要针对符 号计算的MAPLIE V 软件的使用,以MAPLIE内 核为符号计算的引擎,开发了符号数学工具箱 ( Symbolic Math Toolbox )。 MAPLIE占据 符号软件的主导地位,符号运算工具包通过调用 Maple软件实现符号计算的。
第七章 Matlab符号计算
Matlab程序设计及应用
第七章 第10页
1、符号计算基础 建立符号表达式--用sym函数建立符号表达式
U=sym('3*x^2-5*y+2*x*y+6') M=sym('[a,b;c,d]')
结果显示: U= 3*x^2-5*y+2*x*y+6 M= [ a, b] [ c, d]
Matlab程序设计及应用
Matlab程序设计及应用
第七章 第20页
1、符号计算基础 符号表达式中变量的确定
MATLAB中的符号可以表示符号变量和符号常量。 findsym可以帮助用户查找一个符号表达式中的 的符号变量。该函数的调用格式为:
findsym(s,n) 函数返回符号表达式s中的n个符号变量,若没有 指定n,则返回s中的全部符号变量。 Matlab按离字母x最近的原则确定默认变量。
Matlab程序设计及应用
第七章 第17页
1、符号计算基础
syms a b x y;
A=a^3-b^3; factor(A) expand(s) collect(s,x) %对A分解因式 %对s展开 %对s按x合并同类项 s=(-7*x^2-8*y^2)*(-x^2+3*y^2);
g='x^2-x+7'
symadd(f,g);symsub(f,g);
symmul(f,g);symdiv(f,g);
sympow(f,'3*x')
Matlab程序设计及应用
第七章 第13页
符号表达式的四则运算
与数值运算一样,也可以利用+、-、*、/、
^运算符实现符号运算。
第七章 第10页
1、符号计算基础 建立符号表达式--用sym函数建立符号表达式
U=sym('3*x^2-5*y+2*x*y+6') M=sym('[a,b;c,d]')
结果显示: U= 3*x^2-5*y+2*x*y+6 M= [ a, b] [ c, d]
Matlab程序设计及应用
Matlab程序设计及应用
第七章 第20页
1、符号计算基础 符号表达式中变量的确定
MATLAB中的符号可以表示符号变量和符号常量。 findsym可以帮助用户查找一个符号表达式中的 的符号变量。该函数的调用格式为:
findsym(s,n) 函数返回符号表达式s中的n个符号变量,若没有 指定n,则返回s中的全部符号变量。 Matlab按离字母x最近的原则确定默认变量。
Matlab程序设计及应用
第七章 第17页
1、符号计算基础
syms a b x y;
A=a^3-b^3; factor(A) expand(s) collect(s,x) %对A分解因式 %对s展开 %对s按x合并同类项 s=(-7*x^2-8*y^2)*(-x^2+3*y^2);
g='x^2-x+7'
symadd(f,g);symsub(f,g);
symmul(f,g);symdiv(f,g);
sympow(f,'3*x')
Matlab程序设计及应用
第七章 第13页
符号表达式的四则运算
与数值运算一样,也可以利用+、-、*、/、
^运算符实现符号运算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2.1 符号表达式的代数运算
1. 符号运算中的运算符
(1) 基本运算符
运算符“+”,“-”,“*”,“\”,“/”,“^”分别实现 符号矩阵的加、减、乘、左除、右除、求幂运算。 运算符“.*”,“./”,“.\”,“.^”分别实现符号数组的乘、 除、求幂,即数组间元素与元素的运算。 运算符“′”,“.′”分别实现符号矩阵的共轭转置、非共轭转 置。
由变量:首先选择x作为自由变量;如果没有x,则选择在字 母顺序中最接近x的字符变量;如果与x相同距离,则在x后面 的优先。 – 大写字母比所有的小写字母都靠后。
• 2. findsym函数
– 如果不确定符号表达式中的自由符号变量,可以用findsym函 数来自动确定。
– 语法: findsym(f,n) %确定自由符号变量 说明:f可以是符号表达式或符号矩阵;n为按顺序得出符
%创建多个符号变量
f2=a*x^2+b*x+c
%创建符号表达式
f2 =
a*x^2+b*x+c
syms('a','b','c','x')
f3=a*x^2+b*x+c;
%创建符号表达式
3.1.3 符号矩阵
用sym和syms命令也可以创建符号矩阵。 例如,
>>A=sym('[a,b;c,d]') A= [ a, b] [ c, d] >>syms a b c d
– [Y,s1] = subexpr(X,‘s1’),该命令与上面的命令不同之处在于第 二个参数为字符串,该命令用来替换表达式中重复出现的字符串 。
A=[a b;c d] A= [ a, b] [ c, d]
3.2 符号表达式的代数运算
符号运算与数值运算的区别主要有以下几点: • 符号运算不需要进行数值运算,不会出现截断误 差,因此符号运算是非常准确的。 •符号运算可以得出完全的封闭解或任意精度的数 值解。 •符号运算的时间较长,而数值型运算速度快。
3、符号表达式的替换
• MATLAB 中,可以通过符号替换使表达式的形式简化。符 号工具箱中提供了两个函数用于表达式的替换:1.sube xpr
• 该函数自动将表达式中重复出现的比较长的子表达式或字 符串用变量替换,该函数的调用格式为:
– subexpr(s,s1),指定用符号变量 s1 来代替符号表达式s(可以是 矩阵)中重复出现的字符串。替换后的结果由 ans 返回,被替换 的字符串由 s1返回;
(2) 指数和对数函数
指数函数sqrt、exp的使用方法与数值计算的完全相同;对 数函数在符号计算中只有自然对数log(表示ln),而没有数 值计算中的log2和log10。
(3) 复数函数 复数的共轭conj、求实部real、求虚部imag和求模abs函数与 数值计算中的使用方法相同。但注意,在符号计算中, MATLAB没有提供求相角的命令。
(2) 关系运算符
在符号对象的比较中,没有“大于”、“大于等于”、 “小于”、“小于等于”的概念,而只有是否“等于”的 概念。 运算符“= =”、“~=”分别对运算符两边的符号对象进行 “相等”、“不等”的比较。当为“真”时,比较结果用1
2. 函数运算
(1) 三角函数和双曲函数 三角函数包括sin、cos、tan;双曲函数包括sinh、cosh、 tanh;三角反函数除了atan2函数仅能用于数值计算外,其 余的asin、acos、atan函数在符号运算中与数值计算的使用 方法相同。
%创建符号矩阵
A=
[ a11, a12]
[ a21, a22] det(A)
%计算行列式
ans =
a11*a22-a12*a21 A.'
%计算非共轭转置
ans =
[ a11, a21]
[ a12, a22] eig(A)
%计算特征值
【例】符号表达式f=2x2+3x+4与g=5x+6 的代数运算。
f=sym('2*x^2+3*x+4')
f=
2*x^2+3*x+4
g=sym('5*x+6')
g=
5*x+6 f+g
%符号表达式相加
ans =
2*x^2+8*x+10
f*g
%符号表达式相乘
ans =
(2*x^2+3*x+4)*(5*x+6)
3.2.2 符号表达式的操作和转换
1、符号表达式中自由变量的确定
• 1. 自由变量的确定原则
– 小写字母i和j不能作为自由变量。 – 符号表达式中如果有多个字符变量,则按照以下顺序选择自
2.使用syms命令创建符号变量和符号表达式
——syms用于创建多个符号变量
语法:
syms(‘arg1’, ‘arg2’, …,参数) %把字符变量定义为符号变量
syms arg1 arg2 …,参数 %把字符变量定义为符号变量的简洁形式
【例】使用syms命令创建符号变量和符号表达式。
syms a b c x
3.1 符号表达式的建立
3.1.1 创建符号常量
符号常量是不含变量的符号表达式,用sym命令来创建符
号常量。
语法:
sym(‘常量’)
%创建符号常量
例如:
>> a=sym('sin(2)') a= sin(2)
3.1.2 创建符号变量和表达式
1. 使用sym命令创建符号变量和表达式
语法: sym(‘表达式’) %创建符号表达式 符号变量名=sym(‘表达式’) %符号表达式赋给 符号变量
号变量的个数,当n省略时,则不按顺序得出f中所有的符号变量 。
2、符号表达式的化简
(1) pretty函数 将给出排版形式的输出结果。 (2) collect函数 将表达式中相同次幂的项合并,也可以 再输入一个参数指定以哪个变量的幂次合并。 (3) expand函数 将表达式展开成多项式形式。 (4) horner函数 将表达式转换为嵌套格式。 (5) factor函数 将表达式转换为嵌套格式。 (6) simplify函数 利用函数规则对表达式进行化简。 (7) simple函数 调用MATLAB的其他函数对表达式进行综 合化简,并显示化简过程。
(4) 矩阵代数命令
MATLAB提供的常用矩阵代数命令有diag,triu,tril,inv, det,rank, poly,eig 、expm等,它们的用法几乎与数值 计算中的情况完a11 a12 a21 a22 A=[a11 a12;a21 a22]