MATLAB中的线性代数

本文基于MATLAB2012a版本

多项式

多项式表达式与根

poly2sym(p)    %返回由多项式系数转换为多项式函数p(x)表达式
polyval(p,2)     %返回多项式函数p(x)当x=a时的值
roots(p)           %返回多项式函数p(x)的所有复数根
poly(r)             %返回由根组成的向量r创建的多项式函数篇p(x)的系数

#求根

多项式四则运算

conv(p1,p2)      %返回多项式函数p1(x)和p2(x)的乘积
[q,r]=deconv(p1,p2)   %返回多项式函数p1(x)和p2(x)的商式q(x)和余式r(x)

MATLAB中多项式加减运算与乘除法不同:
在MATLAB中多项式用行矩阵表示,多项式相加就是对应的行矩阵相加。
为了解决多项式次数可能不同而得到不同型的行矩阵从而导致无法相加的问题
解决方法:
将对应的行矩阵化为同型矩阵,
实例:

clear
p1=[1 0 -2 1];
p2=[-1 0 1 0 -2 3];
m=length(p1);n=length(p2);
t=max(m,n);
p1=[zeros(1,t-m),p1]
p2=[zeros(1,t-n),p2]
p=p1+p2

#四则运算

多项式的分解与合并

符号运算

syms x
collect(f)    %对符号多项式f进行合并同类项
expand(f)   %对符号多项式f进行展开
horner(f)    %对符号多项式f进行嵌套分解
factor(f)     %对符号多项式f进行因式分解

#符号运算 #分解与合并

有理分式的分解与合并

[a,b,r]=residue(p,q)  %返回将p(x)/q(x)分解为最简分数之和
[p,q]=residue(a,b,r)  %返回将简单分式之和合并为有理分式,a表示分子,b表示和a对应分式的分母的根,r表示整式

MATLAB中[ ]表示为空,当返回结果为r=[ ]表示为无整数部分

行列式

det(A)   %计算A的行列式值,A为数值或符号方阵

示例:

D=[2 -3 -1 2;1 -5 3 -4;0 2 1 -1;-5 1 3 -3];
det(D)

注意点:一行行读,横着写,每一行以分号隔开

衍生运用:
克莱默法则求解线性方程组

#行列式 #克莱默法则

矩阵

#矩阵

矩阵的生成

| 函数 | 功能 |
|:–|:–|:–|
| zeros(m,n)函数 | 生成m行n列全部元素为0的矩阵 |
| ones(m,n)函数 | 生成m行n列全部元素为1的矩阵 |
| rand(m,n)函数 | 生成m行n列全部在0到1的均匀分布随即元素的矩阵 |
| randn(m,n)函数 | 生成m行n列全部为标准正态分布随机元素的矩阵 |
| magic(n)函数 | 生成n阶幻方方阵(魔阵),即每行每列和对角线上元素之和相等 |
| diag(M)函数 | 从矩阵M对角线元素生成一列数据或将一列数组M生成一个对角阵 |
| triu(M)函数 | 取矩阵M的对应元素生成上三角矩阵 |
| tril(M)函数 | 取矩阵M的对应元素生成下三角矩阵 |
| length(M)函数 | 返回向量M的长度|
| size(M)函数 | 返回矩阵M的行数和列数|
| eye(n)函数 | 生成n阶单位阵 |
| hilb(n)函数 | 生成n阶希尔伯特(Hibert)病态矩阵|
| pascal(n) | 生成n阶的帕斯卡(Pascal)矩阵|

矩阵的取块和变换

A(,:)   %提取矩阵A的第i行
A(:,j)  %提取矩阵A的第j行
A(:)     %将矩阵A的各列元素依次排成一行向量
A(i:j)   %将矩阵A(;)的第i个到第j个的元素依次排成一行向量
A(i:j,:)   %提取矩阵A的第i行到第j行的所有元素所成的矩阵
A(:,i:j)   %提取矩阵A的第i列到第j列的所有元素所成的矩阵
A(i:j,k:l) %提取矩阵A的第i行到第j行以及第k列到第l列的所有元素所成的子阵  
B=reshape(A,m,n)  %将矩阵中A的元素依次序组成一个m行n列的矩阵B
B=rot90(A)   %将矩阵A逆时针旋转90°得到新矩阵B
B=fliplr(A)   %将矩阵A中的元素左右对称得到新矩阵B
B=flipud(A)  %将矩阵A中的元素上下对称得到新矩阵B
flipdim(A,1)=flipud(A) flipdim(A,2)=fliplr(A)
A(2,:)=[ ]     %将矩阵A的第2行删除
A(A>5)=1    %将矩阵中的所有大于6的元素赋值为1

矩阵的基本运算

命令注释
A±B矩阵A加减矩阵B
A+k矩阵A的所有元素加上数k
A*B矩阵A的乘以矩阵B
k*A,A*k矩阵A的所有元素乘以数k
A.*B将矩阵的各个元素对应和矩阵B中的元素相乘
A./B将矩阵的各个元素对应和矩阵B中的元素相除
A/B右除
A\B左除
A.'得到矩阵A的转置
A'得到矩阵A的共轭转置,在实数域内就是转置
inv(A)或A^(-1)得到矩阵A的逆矩阵,A应该为可逆阵
A^k矩阵A的k次幂
sqrtm(A)或A^(1/2)矩阵A的开方,其平方为A
sqrt(A)矩阵A的对应元素开方

求解线性方程组

rank(A)  %得到矩阵A的秩
rref(A)   %得到矩阵A的行最简形
bull(A)   %得到系数矩阵为A的齐次方程组基础解系
null(A,`r`)  %得到系数矩阵为A的齐次方程组有理数形式的基础解系

当原方程组(即AX=b)无解的时候,由于实际应用中需要求出最小二乘解(使得向量AX=b的长度达到最小的解)
在此情况下,通过输入X=A\b得到该方程组的最小二乘解

特征值和特征多项式

trace(A)         %得到矩阵A的迹
ploy(A)           %得到矩阵A的特征多项式系数
[a,b]=eig(A)    %得到矩阵A的特征列向量矩阵a和对应特征值组成额度对角阵b
B=orth(A)       %正交化空间,即矩阵B的列向量正交且生成的线性空间与矩阵A的列向量生成的线性空间等价
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值