1.sym2poly(s)
返回一个包含符号多项式的数值系数的行向量。系数是按照多项式中独立变量幂值的降序来排列的。换句话说,向量c首先包含多项式最高项的系数,然后是次高项系数,以此类推。
syms x
sym2poly(x^3 - 2*x - 5)
返回:
ans =
1 0 -2 -5
2.poly2sym( c )
按降幂排列的多项式系数向量转化为符号多项式
返回一个符号多项式,多项式系数在数值向量c中。默认的符号变量是x。变量v可以被指定作为第二个输入参数。
3.y = polyval(p,x)
返回n次多项式p在x处的值。输入变量p是一个长度为n+1的向量,其元素为按降幂排列的多项式系数。x可以是一个矩阵或者一个向量,在这两种情况下,polyval计算在X中任意元素处的多项式p的估值。
4.poly( r )
由特征多项式的根,即特征值求特征多项式。
r是向量,返回其根是r元素的多项式的系数。
5.由函数创建和修改矩阵
eg:A=[1 2 3;4 5 6];
fliplr(A)
ans =
3 2 1
6 5 4
rot90(A)
ans =
3 6
2 5
1 4
6.矩阵中的元素操作
A( : ) %依次提取矩阵A的每一列,将A拉伸为一个列向量
ans =
1
4
2
5
3
6
取矩阵A的第i1 ~ i2行、第j1~ j2列构成新矩阵:
A(i1:i2, j1:j2)
删除A的第i1~ i2行,构成新矩阵:A(i1:i2,:)=[ ]
删除A的第j1~ j2列,构成新矩阵:A(:, j1:j2)=[ ]
7. 矩阵的合并
cat(dim,A,B) 在dim维度上合并A和B。Dim=1,按行
horzcat(A,B) 水平方向合并A和B
vertcat(A,B) 垂直方向合并A和B
repmat(A,M,N) 通过复制A矩阵的M x N,来构造新矩阵
blkdiag(A,B,…) 用A,B,…等矩阵构造对角化矩阵
8.排序
矩阵元素的排序:
sort(A),升序排序,若为二维矩阵,对每一列分别排序
sort(A,dim),dim=1时,对列排序,dim=2时,对行排序
sort(A,dim,mode), mode=‘ascend’,升序;mode=‘descend’,降序
9. 矩阵形状信息:
ndims(A) 矩阵的维数
size(A) 矩阵在各个维度的长度
length(A) 矩阵最长维度的长度
numel(A) 矩阵元素的个数
10.符号表达式的替换
1.subexpr函数
符号表达式有时因为子表达式多次出现而显得烦冗,可以通过使用subexpr函数替换子表达式来化简。
语法:
subexpr(s,s1) %用符号变量s1置换s中的子表达式
subexpr函数对子表达式是自动寻找的,只有比较长的子表达式才被置换,比较短的子表达式,即使重复出现多次,也不被置换。
2.subs函数
subs函数可用来进行对符号表达式中符号变量的替换。
语法:
subs(s) %用给定值替换符号表达式s中的所有变量
subs(s,new) %用new替换符号表达式s中的自由变量
subs(s,old,new) %用new替换符号表达式s中的old变量
11.代数方程
12.符号常微分方程
dsolve()
dsolve函数用于求常微分方程组的精确解,也称为常微分方程的符号解。如果没有初始条件或边界条件,则求出通解;如果有,则求出特解。
Y = dsolve(‘eq1,eq2,…’ , ’cond1,cond2,…’ , ’Name’)
其中,‘eq1,eq2,…’:表示微分方程或微分方程组; ’cond1,cond2,…’:表示初始条件或边界条件; ‘Name’:表示变量。没有指定变量时,matlab默认的变量为t.
ode()
有大量的常微分方程,虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,需要利用ode()寻求方程的数值解。
ode45是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,可换用ode15s试试。
[T,Y] = ode45(odefun,tspan,y0)
odefun 是函数句柄,可以是函数文件名,匿名函数句柄或内联函数名
tspan 是区间 [t0 tf] 或者一系列散点[t0,t1,…,tf]
y0 是初始值向量
T 返回列向量的时间点
Y 返回对应T的求解列向量
13.符号函数可视化
ezplot和 ezplot3命令
ezplot命令是绘制符号表达式的自变量和对应各函数值的二维曲线,ezplot3命令用于绘制三维曲线。
语法:
ezplot(F,[xmin,xmax],fig) %画符号表达式的图形
说明:F是将要画的符号函数;[xmin,xmax]是绘图的自变量范围,省略时默认值为[-2pi,2pi];fig是指定的图形窗口,省略时默认为当前图形窗口。