matlab-note-7
matlab-note-7
符号计算
符号对象
符号对象的建立
sym函数用于建立单个符号对象,其常用调用格式为:$name=sym(A)$。将由A来建立符号对象。其中A可以是一个数值常量、数值矩阵或者数值表达式(不加单引号),此时符号对象为一个符号常量;A也可以是一个变量名(加单引号),这时符号对象为一个符号变量。
1 | t = sym(2); |
1 | a = 5; |
syms命令用于一次定义多个符号变量。
1 | syms a b c d |
符号对象的运算
四则运算:与之前相同
关系运算:lt()(<),le()(<=),gt()(>),ge()(>=),eq()(==),ne()(~=)
- 在进行符号对象的运算前,可用assume函数对符号对象设置值域。
逻辑运算:and(a,b)、or(a,b)、not(a)和xor(a,b)
因式分解与展开运算:
- MATLAB提供了符号表达式的因式分解与展开的函数,函数的调用格式为:
①factor(s):对符号表达式s分解因式。
②expand(s):对符号表达式s进行展开。
③collect(s):对符号表达式s合并同类项。
④collect(s,v):对符号表达式s按变量v合并同类项。其他运算:
- ①提取有理分式的分子分母:[n,d]=numden(s)。
②提取符号表达式的系数:c=coeffs(s,x)。
③符号表达式化简:simplify(s)。
④符号多项式与多项式系数向量之间的转换:- 符号多项式转换为多项式系数向量:p=sym2poly(s)。
- 多项式系数向量转换为符号多项式:s=poly2sym§。
符号矩阵
符号矩阵也是一种符号表达式,所以符号表达式运算都可以在矩阵意义下进行。
符号微积分
符号函数的极限
求符号函数极限的命令为limit,其调用格式为:$limit(f,x,a)$即求函数f关于变量x在a点的极限。
- limit函数的另一种功能是求单边极限,其调用格式为:
$limit(f,x,a,‘right’)$
$limit(f,x,a,‘left’)$
1 | syms a m x n; |
符号函数的导数
MATLAB中的求导函数为:$diff(f,x,n)$ 即求函数f关于变量x的n阶导数。
参数x的用法同求极限函数limit,可以缺省,默认值与limit相同,n的默认值是1。
符号函数的积分
不定积分
在MATLAB中,求不定积分的函数是int(),其常用的调用格式为:$int(f,x)$即求函数f对变量x的不定积分。
定积分
在MATLAB中,定积分的计算也使用int()函数,但调用格式有区别:$int(f,x,a,b)$
其中,a、b分别表示定积分的下限和上限。
- 当函数f关于变量x在闭区间[a,b]可积时,函数返回一个定积分结果。
- 当a、b中有一个是inf时,函数返回一个广义积分。
- 当a、b中有一个符号表达式时,函数返回一个符号函数。
级数
级数求和
求无穷级数的和需要符号表达式求和函数symsum(),其调用格式为:$symsum(s,v,n,m)$
其中,s表示一个级数的通项,是一个符号表达式。v是求和变量,v省略时使用系统的默认变量。n和m是求和变量v的初值和末值。
1 | syms n; |
泰勒级数
MATLAB提供了taylor()函数将函数展开为幂级数,其调用格式为:$taylor(f,v,a,Name,Value)$
该函数将函数f按变量v在a点展开为泰勒级数,v的默认值与diff函数相同,a的默认值是0。Name和Value为选项设置,经常成对使用,前者为选项名,后者为该选项的值。
Name有3个可取字符串:
①’ExpansionPoint’:指定展开点,对应值可以是标量或向量。未设置时,展开点为0。
②’Order’:指定截断参数,对应值为一个正整数。未设置时,截断参数为6,即展开式的最高阶为5。
③’OrderMode’:指定展开式采用绝对阶或相对阶,对应值为’Absolute’或’Relative’。未设置时取’Absolute’。
1 | syms x; |
符号方程求解
代数方程符号求解
在MATLAB中,求解用符号表达式表示的代数方程可由函数solve()实现,其调用格式为:
①solve(s):求解符号表达式s的代数方程,求解变量为默认变量。
②solve(s,v):求解符号表达式s的代数方程,求解变量为v。
③solve(s1,s2,…,sn,v1,v2,…,vn):求解符号表达式s1,s2,…,sn组成的代数方程组,求解变量分别为v1,v2,…,vn。
常微分方程符号求解
在MATLAB中,用大写字母D表示导数。例如,Dy表示y’,D2y表示y’’,Dy(0)=5表示y’(0)=5。D3y+D2y+Dy-x+5=0表示微分方程y’’’+y’’+y’-x+5=0。
-
符号常微分方程求解可以通过函数dsolve()函数来实现,其调用格式为:$dsolve(e,c,v)$
用于求解常微分方程e在初值条件c下的特解。参数v是方程中的自变量,省略时按默认原则处理,若没有给出初值条件c,则求方程的通解。
-
dsolve在求常微分方程组时的调用格式为:$dsolve(e1,e2,…,en,c1,c2,…,cn,v)$
用于求解常微分方程组e1, e2, …, en在初值条件c1, c2, …, cn下的特解,若不给出初值条件,则求方程组的通解。v给出求解变量,如果没有指定自变量,则采用默认自变量t。
- Title: matlab-note-7
- Author: Charles
- Created at : 2023-02-03 22:41:03
- Updated at : 2023-08-17 09:48:22
- Link: https://charles2530.github.io/2023/02/03/matlab-note-7/
- License: This work is licensed under CC BY-NC-SA 4.0.