文章目录
- 多项式求解
- 1.2 多项式四则运算
- 1.3 多项式的分解与合并
- 行列式求解
- 3、矩阵基本运算
- ➢ 3.2 矩阵的取块和变换
- ➢ 3.3 矩阵的基本运算
- 4、求解线性方程组
多项式求解
➢ 1.1 多项式表达式与根
有关多项式函数表达式与根的Matlab命令:
poly2sym§ 返回由多项式系数转为多项式函数p(x)表达式
polyval(p,a) 返回多项式函数p(x)当x=a时的值
roots§ 返回多项式函数p(x)的所有复数根
poly® 返回由根组成的向量r创建的多项式函数p(x)的系
p=[1 0 -2 3]
px=poly2sym(p)
px=x^3-2*x+3
1.2 多项式四则运算
有关多项式函数四则运算的Matlab命令:
conv(p1,p2) 返回多项式函数p1(x)和p2(x)的乘积
[q r]=deconv(p1,p2) 返回多项式函数p1(x)除了p2(x)的商式q(x)和余式r(x)
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
结果为
p= -1 0 2 0 -4 4
p(x)=-x5+2x3-4x+4
例1-3: 求多项式𝑝 𝑥 = −𝑥8 + 3𝑥6 − 𝑥5 − 4𝑥4 + 4𝑥3 + 4𝑥2 − 8𝑥 + 3分别被多项式p1 𝑥 = 𝑥3 − 2𝑥 + 1, 𝑝2 𝑥 = 𝑥3 − 2𝑥 + 3相clear
p=[-1 0 3 -1 -4 4 4 -8 3];
p1=[1 0 -2 1];
p2=[1 0 -2 3];
[q1,r1]=deconv(p,p1)
[q2,r2]=deconv(p,p2)
结果为
q1= -1 0 1 0 -2 3
r1= 0 0 0 0 0 0 0 0 0
q2= 1 0 1 2 -2 5
r2= 0 0 0 0 0 0 -6 8 -12除后的结果
1.3 多项式的分解与合并
有关多项式的分解与合并的Matlab命令:
syms x
collect(f) 对符号多项式f进行合并同类项
expand(f) 对符号多项式f进行展开
horner(f) 对符号多项式f进行嵌套分解
factor(f) 对符号多项式f进行因式分解
例1-4 合并同类项𝑓1 = 𝑥 − 1 𝑥 − 2 𝑥 − 3 , 𝑓2 = 1 + 𝑥 𝑡 + 𝑡𝑥。
syms x t
f1=(x-1)*(x-2)*(x-3);f2=(1+x)*t+t*x;
p1=collect(f1)
p2=collect(f2)
结果为
p1=-6+x ^ 3 - 6 * x ^ 2 +11 * x
p2=2 * t * x +t
行列式求解
求解行列式的Matlab命令:
det(A) 计算A的行列式值,A为数值或符号方阵
D=[2 -3 -1 2; 1 -5 3 -4; 0 2 1 -1; -5 1 3 -3];
det(D)
结果为
-75
3、矩阵基本运算
➢ 3.1 矩阵的生成
矩阵除了直接在命令窗口键入,也可以从外部数据文件(*.mat)和自编M文件
导入,还可以利用Matlab系统内部提供的一些函数生成,常见的函数如下:
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阶希尔伯特病态矩阵
pascal(n)函数 生成n阶的帕斯卡矩阵
➢ 3.2 矩阵的取块和变换
在矩阵运算中,有时需要提取其中的一部分元素参与运算,比如提取某个元素,
某行,某列甚至某一个子阵,还有将原来的矩阵改变形式,常见的命令如下:
A(i ,:) 提取矩阵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
3.2 矩阵的取块和变换
B=flipud(A) 将矩阵A 中的元素上下对称得到新矩阵B
flipdim(A,1)=flipud(A) flipdim(A,2)=fliplr(A)
A(2,:)=[] 将矩阵A的第二行删除
A(A>5)=1 将矩阵中的所有大于6的元素赋值为
➢ 3.3 矩阵的基本运算
在矩阵运算中常见的命令如下:
𝐴 ± 𝐵 矩阵A加减矩阵B
A+k 矩阵A的所有元素加上数k
AB 矩阵A乘以矩阵B
KA,A*k 矩阵A的所有元素乘以数k
A.*B 将矩阵A的各个元素对应和矩阵B中的元素相乘
A. /B 将矩阵A的各个元素对应和矩阵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的对应元素开方
4、求解线性方程组
rank(A) 得到矩阵A的秩
rref(A) 得到矩阵A的行最简形
null(A) 得到系数矩阵为A的齐次方程组基础解系
Null(A, ‘r’) 得到系数矩阵为A的齐次方程组有理数形式的基础解系
trace(A) 得到矩阵A的迹
poly(A) 得到矩阵A的特征多项式系数
[a,b]=eig(A) 得到矩阵A的特征列向量矩阵a和对应特征值组成的对角阵b
B=orth(A) 正交化空间,即矩阵B的列向量正交且生成的线性空间与矩阵A的列向量
生成的线性空间等价
r = roots(p)返回由p表示的多项式的根作为列向量。