首页 > 代码库 > Matlab 矩阵运算
Matlab 矩阵运算
1、Syms 和sym的区别:
- syms是定义多个符号是符号变量的意思
sym只能定义一个符号变量,但可以具体到这个符号变量的内容
例:syms f z; %定义下x和y
f=sym(‘a+b+c‘); %就只能定义一个f=a+b+c
- syms可以直接声明符号函数d(r),并且可以对函数的形式进行赋值改变,但是sym却不可以
例:>> syms d(r)
>> d=r^2
d =r^2
>> sym d(t)
ans =d(t)
>> d=t^2
Undefined function or variable ‘t‘
2、subs 置换指令
- R=subs(S) %将表达式S中的所有变量用调用的函数或MATLAB workspace中获得的值进行置换,将置换后的表达式赋给R;
- R=subs(S,new) %用new置换表达式S中的自变量后在赋给R;
- R=subs(S,old,new) %用new置换表达式中的old,然后将置换完的表达式赋给R
例:>> syms a b x;
>> f=a*sin(x)+b
f =b + a*sin(x)
>> f1=subs(f,sin(x),‘log(y)‘)
f1 =b + a*log(y)
>> f2=subs(f,a,2.89)
f2 =b + (289*sin(x))/100%当单个变量被双精度数字置换后,其结果仍然是符号对象属性,f中的a被置换为289/100了。
>> f3=subs(f,{a,b,x},{2,5,sym(‘pi/3‘)})
f3 =3^(1/2) + 5%如果置换数字中含有符号数字,那么计算记过类型也为符号sym类型。表达式中的所有变量都被数字置换,而且sin(pi/3)被计算出来了(其类型即为sym)
>> f4=subs(f,{a,b,x},{2,5,pi/3})
f4 =6.7321%如果置换全为双精度数值型数字,计算结果也为双精度
?
3、向量的积、叉积
dot:向量的数量积。格式:C=dot(A,B)
cross:向量的叉积。格式:C=cross(A,B)
4、矩阵中inv、 pinv、rank、eig
inv:逆矩阵。矩阵A为方阵。
pinv:伪逆矩阵。当矩阵A为长方形时,计算A的伪逆矩阵,用pinv(A)。
rank:矩阵的秩
eig:矩阵的特征值。
两种格式:(1)d=eig(A) 特征值以列向量形式给出
(2)[V,D]=eig(A) V:特征向量矩阵;D特征值(对角矩阵)
4、矩阵分解
- Cholesky分解
A为的正定矩阵。使得。
格式:(1) R=chol(A) 输出R的上三角矩阵。
(2)[R,p]=chol(A) 输出R矩阵同上,如果A为正定p=0,如果A不正定,则p为正整数,且上三角矩阵R的阶数n=p-1。
- LU分解
将A分解为一个下三角矩阵L与一个上三角矩阵U的乘积。格式:[L, U]=lu(A)
- QR分解
将矩阵A分解为一个正交矩阵Q与一个上三角矩阵R的乘积。
格式:(1)[Q,R]=qr(A) 输出Q:正交矩阵;R:上三角矩阵。
(2)[Q,R,E]=qr(A) 输出的参量E为一个置换矩阵。
- 奇异值分解
格式:(1)S=sdv(A) 输出S是A的奇异值对角矩阵
(2)[U,S,V]=svd(A) 输出U与V是两个正交矩阵,
U、S与V称为矩阵A的奇异值分解三对组。
?
5、基本函数组
函数名 | 功能 | 函数名 | 功能 |
sec | 正切 | log | 自然对数 |
csc | 余切 | log10 | 常用对数 |
asin | 反正弦 | pow2 | 以2为底的指数 |
atan | 反正切 | conj | 复数的共轭 |
atan2 | 四象限反正切 | isreal | 是否为复数 |
sinh | 双曲正弦 | asinh | 反双曲正弦 |
sign | 符号函数 | sqrt | 平方根 |
fix | 向0取整 | floor | 向负无穷方向取整 |
ceil | 向正无穷方向取整 | round | 四舍五入 |
mod | 除法求余(与除数同号) | rem | 除法求余(与被除数同号) |
?
6、特殊函数组
函数名 | 功能 | 函数名 | 功能 |
airy | Airy函数 | erf | 误差函数 |
beseelj | 第一类beseel函数 | erfinv | 误差函数的逆函数 |
beseely | 第二类beseel函数 | exprint | 指数形式积分函数 |
beseelh | 第三类beseel函数 | gamma | Gamma函数 |
beseeli | 改进的第一类beseel函数 | gammanic | 不完全Gamma函数 |
beseelk | 改进的第一类beseel函数 | gammaln | 对数Gamma函数 |
beta | Beta函数 | isprime | 是否为质数 |
betainc | 不完全beta函数 | gcd | 最大公约数 |
betaln | 对数beta函数 | lcm | 最小公倍数 |
ellipj | Jacobi椭圆形函数 | rat | 有理数近似 |
ellipke | 完全椭圆形积分 | rats | 有理数形式输出 |
?
7、矩阵函数
zeros(m,n):生成元素全为0的阶矩阵。
ones (m,n):生成元素全为1的阶矩阵。
rand (m,n):生成均匀分布的阶的随机矩阵。
randn(m,n):生成正态分布的阶的随机矩阵。
magic(N):生成一种N阶魔方阵。魔方阵:每一行、每一列、对角线上的元素之和相等。
diag (X):生成矩阵X的对角矩阵。
triu (Y):生成矩阵Y的上三角矩阵。
tril (Y):生成矩阵Y的上三角矩阵。
size (Z):返回指定矩阵Z的行数和列数。
eye (m,n):生成阶的单位矩阵。
一般eye和size一起用,生成指定矩阵Z同维的单位矩阵。
8、特殊矩阵生成函数
函数 | 功能 | 函数 | 功能 |
compan | 伴随阵 | magic | 魔方阵 |
gallery | Higham检验矩阵 | pascal | Pascal阵 |
hadamard | Hadamard阵 | rosser | 经典对称特征值检验矩阵 |
hankel | Hankel阵 | toeplitz | Toeplitz阵 |
hilb | Hilbert阵 | vander | Vander阵 |
invhilb | 逆hilbert 阵 | wilknsion | Wilksion特征值检验矩阵 |
?
9、矩阵变换函数
函数 | 功能 |
fliplr | 矩阵左右翻转 |
flipud | 矩阵上下翻转 |
flipdim | 矩阵沿特定维翻转 例:flipdim(A,1)= flipud(A); flipdim(A,2) |
rot90 | 矩阵逆时针旋转90° |
?
10、矩阵的运算函数
函数 | 功能 | 函数 | 功能 |
cond | 向量矩阵的条件数 | norm | 向量矩阵的范数 |
condeig | 对应于特征值的条件数 | null | 矩阵的零空间 |
det | 方阵的行列式值 | orth | 矩阵的列空间 |
expm | 矩阵的指数函数 | rank | 矩阵的秩 |
funm | 计算矩阵的函数值 | subspace | 子空间的夹角 |
logm | 矩阵的对数函数 | squtm | 矩阵的平方根 |
Matlab 矩阵运算