MATLAB中的线性代数 您所在的位置:网站首页 matlab中remezord函数 MATLAB中的线性代数

MATLAB中的线性代数

2023-05-18 05:32| 来源: 网络整理| 查看: 265

在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的列向量生成的线性空间等价



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有