MATLAB基础知识——MATLAB符号计算
树图思维导图提供 MATLAB符号计算 在线思维导图免费制作,点击“编辑”按钮,可对 MATLAB符号计算 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:dcd39684c0c0863e5e225cebea27bc1f
MATLAB符号计算思维导图模板大纲
1. 符号对象的建立
(1)sym函数
sym函数用于建立单个符号对象,其常用调用格式为:
符号对象名=sym(A)
将由A来建立符号对象。其中,A可以是一个数值常量、数值矩阵或数值表达式(不加单引号),此时符号对象为一个符号常量;
A也可以是一个变量名(加单引号),这时符号对象为一个符号变量。
取符号对象的值
eval(符号对象)
由以上的例子我们可以看出:
符号计算的结果是一个精确的数学表达式。
数值计算的结果是一个数值。
(2)syms命令
syms命令可以一次定义多个符号变量,其一般调用格式如下:
syms 符号变量名1 符号变量名2 … 符号变量名n
命令:
>> syms a b c d
其中,变量名不能加单引号,相互之间用空格隔开。
例如,要同时定义四个符号变量a、b、c、d,则可以输入如上
2. 符号对象的运算
(1)四则运算
+、-、*、/、^
符号表达式的四则运算与数值运算一样,用+、-、*、/、^ 运算符实现,其运算结果依然是一个符号表达式。例如:
(2)关系运算
6种关系运算符:
<、<=、>、>=、==、~=
对应的6个函数:
lt()、le()、gt()、ge()、eq()、ne()
若参与运算的是符号表达式,其结果是一个符号关系表达式;若参与运算的是符号矩阵,其结果是由符号关系表达式组成的矩阵。
在进行符号对象的运算前,可用assume函数对符号对象设置值域,
assume(condition)
指定变量满足条件condition
assume(expr,set)
指定表达式expr属于集合set
(3)逻辑运算
3种逻辑运算符:
&(与)、|(或)和~(非)。
4个逻辑运算函数:
and(a,b)、or(a,b)、not(a)和xor(a,b)。
(4)因式分解与展开运算
①对符号表达式s分解因式。
factor(s)
②对符号表达式s进行展开。
expand(s)
③对符号表达式s合并同类项。
collect(s)
④ 对符号表达式s按变量v合并同类项。
collect(s,v)
(5)其他运算
① 提取有理分式的分子分母:
[n,d]=numden(s)
② 提取符号表达式的系数:
c=coeffs(s,x)
③ 符号表达式化简:
simplify(s)
④ 符号多项式与多项式系数向量之间的转换:
符号多项式转换为多项式系数向量:
p=sym2poly(s)
多项式系数向量转换为符号多项式:
s=poly2sym(p)
补充:倒序
g=[1 2 3 4 5 6]
g=g(end:-1:1)
>>g=[6 5 4 3 2 1]
(6)符号运算中变量的确定
① 如果没有明确指定自变量,MATLAB将按以下原则确定主变量并对其进行相应运算:
寻找除i、j之外,在字母顺序上最接近x的小写字母。小写字母x是最优先的。
若表达式中有两个符号变量与x的距离相等,则ASCII码大者优先。
② symvar()函数可以用于查找一个符号表达式中的符号变量,函数的调用格式为:
symvar(s,n)
函数返回符号表达式s中的n个符号变量。因此,可以用symvar(s,1)查找表达式s的主变量。
3. 符号矩阵
符号矩阵也是一种符号表达式,所以符号表达式运算都可以在矩阵意义下进行。
注意:这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。
例如:建立符号矩阵并化简。
当λ取何值时,以下 齐次线性方程组有非零解?
1. 符号函数的极限
求符号函数极限的命令为limit,其调用格式为:
limit(f,x,a)
即求函数f关于变量x在a点的极限。
limit函数的另一种功能是求单边极限,其调用格式为:
limit(f,x,a,'right')
limit(f,x,a,'left')
2. 符号函数的导数
diff(f,x,n)
即求函数f关于变量x的n阶导数。
参数x的用法同求极限函数limit,可以缺省,默认值与limit相同,(按照系统定义的变量顺序?)
n的默认值是1。
3. 符号函数的积分
(1)不定积分
int(f,x)
即求函数f对变量x的不定积分。
(2)定积分
在MATLAB中,定积分的计算也使用int()函数,但调用格式有区别:
int(f,x,a,b)
a、b分别表示定积分的下限和上限。
当函数f关于变量x在闭区间[a,b]可积时,函数返回一个定积分结果。
当a、b中有一个是inf时,函数返回一个广义积分。
当a、b中有一个符号表达式时,函数返回一个符号函数。
例题
1. 级数求和
求无穷级数的和需要符号表达式求和函数symsum(),其调用格式为:
symsum(s,v,n,m)
s表示一个级数的通项,是一个符号表达式。
v是求和变量,v省略时使用系统的默认变量。
n和m是求和变量v的初值和末值。
2. 泰勒级数
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. 代数方程 符号求解
在MATLAB中,求解用符号表达式表示的代数方程可由函数solve()实现,其调用格式为:
① solve(s):
求解符号表达式s的代数方程,求解变量为默认变量。
② solve(s,v):
求解符号表达式s的代数方程,求解变量为v。
③ solve(s1,s2,…,sn,v1,v2,…,vn):
求解符号表达式s1,s2,…,sn组成的代数方程组,求解变量分别为v1,v2,…,vn。
符号表达式s有多种表达方式:
注意
2. 常微分方程符号求解
在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。
树图思维导图提供 完成MATLAB的图像分割技术思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 完成MATLAB的图像分割技术思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:1c59bd79661423a741214616d03d25e9
树图思维导图提供 MATLAB程序设计 在线思维导图免费制作,点击“编辑”按钮,可对 MATLAB程序设计 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:41cec55641e6da7b3c10c8fe54b6a97a