当前位置:文档之家› matlab程序设计矩阵及其运算

matlab程序设计矩阵及其运算


矩阵及其运算
1、特征值分解 由以前学过的知识,我们已经了解到在MATLAB是 应用函数eig来解决的。但是应用到特征值分解的部分, 需要在形式上作一定的变化,其使用的格式如下: [V,D]=eig(X)命令生成两个矩阵V和D,其中V是以 矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X 的特征值作为主对角线元素构成的对角矩阵,使得满足 关系式X*V=V*D。
矩阵及其运算
randn(M,N):表示生成M×N阶随机矩阵,生成 的矩阵的元素值在服从正态分布N(0,1)。 例十五 随机矩阵的生成

矩阵及其运算
4 魔术矩阵的生成 魔术矩阵是一个经常遇到的矩阵,它是一个方阵,特 点是每一行、每一列以及每一主对角线元素之和都同。 在MATLAB中,用函数magic来生成。其格式如下: magic(N):表示生成N×N阶的魔术矩阵,使矩 阵的每一行、每一列以及每一主对角线元素之和都同。 其中N>0,N=2除外。 例十五 魔术矩阵的生成。
矩阵及其运算
四 矩阵的分解运算 MATLAB的数学处理能力之所以强大,很大一部分 的原因就是它的矩阵函数功能的扩展。矩阵分解在数值 分析和科学研究中有着重要的地位。常用的分解方法有 以下几种:三角分解(lu)、正交分解(qr)、特征值 分解(eig)和奇异值分解(svd)。我们这里主要介绍特 征值分解。
矩阵及其运算
reshape(X,[M,N,p,…]):该命令与上个 reshape(X,M,N,p,…)命令的效果一致。 例十一:

矩阵及其运算
2 矩阵的变向 矩阵的变向包括对矩阵进行旋转、上下翻转、左右翻 转以及对指定的维进行翻转。分别由函数rot90、 flipud、fliplr和flipdim来实现。具体用法如下: rot90(A):命令返回矩阵A按逆时钟方向旋转90度 所得的矩阵。 rot90(A,K):命令返回矩阵A按逆时针方向旋转 90×K度所得的矩阵。(K=±1, ±2,…)。 flipud(X):命令将矩阵X上下翻转。
矩阵及其运算
上面的例子就是一个典型的稀疏矩阵。可见,无论对 存储空间还是对零元素进行代数运算所需的计算量都是 很大的浪费。对于这种情况,MATLAB提供了一个更为 高级的存储方式,即稀疏矩阵方法,这个矩阵中, MATLAB7.0将不会存储矩阵中的0元素而只对非零元素 进行操作。 1 稀疏矩阵的生成 在MATLAB中,生成稀疏矩阵用以下几个函数: speye、spones、spdiags、find、full、spalloc、 sprand和sprandn等,这里主要介绍几个常用的函数。
矩阵及其运算
三 矩阵的特征参数运算 一 矩阵的乘方运算和开方运算 在MATLAB7中,可以使用Ap来计算A的p次方,使用 函数sqrtm来对矩阵进行开方运算。如果有X*X=A,则有 sqrtm(A)=X。 例五 求矩阵的乘方和开方运算。
为逆运算。 二 矩阵的指数和对数运算 矩阵的指数运算用expm函数来实现;对数运算用 logm函数来实现。两者互为逆运算。 例六 矩阵的指数和对数运算
矩阵及其运算
2 矩阵之间的四则运算 (1)矩阵与矩阵的加法(减法) 矩阵与矩阵的加法(减法)即是指矩阵各元素之间的 加法(减法)运算。矩阵必须具有相同的阶数时才可以 进行加法(减法)运算。 例三如下:
矩阵及其运算
由上例可以看出,矩阵m3为3*3的,而m1为4*4 的。因而如果求m5=m3+m1,系统就会报错。 (2)矩阵与矩阵的乘法 在MATLAB7中,矩阵的乘法使用的是运算符“*”。 由 数学知识,我们知道们只有当第一个矩阵(左矩阵)的 列数等于第二个矩阵(右矩阵)的行数时,两个矩阵的 乘积才有意义。 例四 矩阵的乘法运算。
矩阵及其运算
A=diag(V),该命令的意义同A=diag(V,0)。即 表示V为主对角线。 例十四 对角矩阵的生成函数。

矩阵及其运算
3 随机矩阵的 生成 随机矩阵表示矩阵中的元素是随机数。在MATLAB 中,使用两个函数rand和randn函数来生成多种随机矩 阵。其使用格式如下: rand(N):表示生成N×N阶的随机矩阵,生成矩 阵的元素值在区间(0.0 1.0)之间。 rand(M,N):表示生成M×N阶随机矩阵,生成随 机矩阵的元素值在区间(0.0 1.0)之间。 randn(N):表示生成N×N阶的随机矩阵,生成的 矩阵的元素值服从正态分布N(0,1)
矩阵及其运算
元素分布在以向量i的对应值和向量j的对应值为坐标的位 置上,其中,nzmax=length(s)。 S=sparse(i,j,s):生成m×n的稀疏矩阵S,向量s的元 素分布在以向量i的对应值和向量j的对应值为坐标的位置 上,其中m=max(i),n=max(j)。 S=sparse(m,n):即是sparse([],[],[],m,n,0)的简化形 式。 见例题:
第二节
矩阵及其运算
矩阵及其运算
MATLAB语言是由早期专门用于矩阵运算的计算机 语言发展而来的,其名称就是“矩阵实验室”的缩写。 MATLAB语言最基本、最重要的功能就是进行实数矩阵 或是复数矩阵的运算,其所有的数值功能都以矩阵为基 本单元来实现。矩阵是MATLAB的重要组成部分,将对 矩阵及其运算进行详细介绍。
矩阵及其运算
矩阵及其运算
七 稀疏型矩阵 以上已经对MATLAB中的矩阵的用法做了一些基础 的介绍,当创建一个矩阵的时候系统会为矩阵中的每一 个元素分配内存。但是也存在如下的问题:例如函数 A=eye(10)创建的矩阵有100个元素,其主对角线上 的元素都为1,别的元素都为0。即10个元素是非零,其 他的90个元素是0。所以矩阵要求有100个单元,而只 有10个单元是非零的,这样的例子就是一个稀疏矩阵。
矩阵及其运算
eigs函数使用方法同eig函数相同,eigs函数使用的是迭 代法来求解矩阵的特征值和特征向量。 例九 求矩阵A和X的特征值和特征向量。

矩阵及其运算
六 矩阵的秩 矩阵可以经过初等行或列变换,将其转换为行阶梯行 矩阵,而行阶梯行矩阵所包含非零行的行数是一定的, 这个确定的非零行的行数就是矩阵的秩。在MATLAB 中,矩阵的秩可以通过函数rank来求得。 七 矩阵的迹 矩阵的迹是指矩阵主对角线上所有元素的和,也是矩 阵各特征值,矩阵的迹可以通过trace函数求得。
矩阵及其运算
由上例可以看出,矩阵A为4*4阶,矩阵D为3*3 阶,两者的阶数不符合乘法的要求,因此报错。 (3) 矩阵与矩阵的除法 在MATLAB7中,矩阵的除法有左除和右除两种,分 别以符号“\”和“/”表示。 但是从MATLAB6以来,矩 阵 的左除和右除的区别在逐渐减少。斜杆上面的数据除以 斜杆下面的数据。 三 矩阵的特征参数运算 关于矩阵的运算,主要包括:矩阵的特征值运算、行 列式运算、矩阵的范数运算和矩阵的条件运算等。
矩阵及其运算
三 矩阵的逆运算 矩阵求逆在矩阵运算中,是非常重要的运算。矩阵可 逆的充分必要条件就是矩阵的行列式不为零。在 MATLAB中,所有复杂的问题都化为一个函数inv。 例七 求矩阵A的逆。 四 矩阵的行列式运算 当矩阵的行和列相同时,可以进行矩阵的行列式操 作。MATLAB提供了函数det来求行列式的值。 例八 求矩阵A的及其其逆矩阵B的行列式的值。
矩阵及其运算
filplr(X):该命令将矩阵X左右翻转。 filpdim(X,DIM):还命令将矩阵X的第DIM维翻 转。 例十二

矩阵及其运算
六 特殊矩阵的生成 在介绍了矩阵的生成以后,在介绍一些特殊的矩阵的 生成。 1 零矩阵和全1矩阵的生成 零矩阵指的就是矩阵中的元素全部为零,在 MATLAB中,使用zeros函数来生成一个零矩阵。它的使 用格式如下: A=zeros(M,N)命令中,A为生成的零矩阵,M和 N分别为生成矩阵的行和列。 如果已经存在矩阵B,要生成与B维数相同的矩阵,
矩阵及其运算
可以使用命令:A=zeros(size(B))。 当要生成一个方阵时,也可以直接使用命令 A=zeros(N),此时MATLAB只是生成一个N阶方阵。 而全1矩阵的生成与零矩阵的生成类似,只是使用函 数ones来实现。 例十三 零矩阵和全1矩阵的生成。
矩阵及其运算
2 对角矩阵的生成 对角矩阵指的是对角线上的元素为任意数值,而其他 元素为零的矩阵。在MATLAB中用函数diag来生成一个 对角矩阵。其格式为: A=diag(V,K),该命令表示V为某个向量,K为向 量V偏离主对角线的列数。K等于零时表示V为主对角 线,K为大于零的数时表示V在主对角线以上,K小于零 表示V在主对角线以下。
矩阵及其运算
speye函数 Speye(size(A)):生成和单位矩阵A维数相同的单位稀 疏矩阵。 speye(M,N):生成单位稀疏矩阵,其中,其维数为 M和N中较小的那个数。 speye(M) :生成M阶的单位稀疏矩阵。 见例子
1.
矩阵及其运算
sprand函数 该函数用于生成随机稀疏矩阵(其元素服从0-1分 布)。 R=sprand(S):产生与稀疏矩阵S结构相同的稀疏 矩阵R,但是它的元素都是0到1上的随机数。 R=sprand(M,N,D):产生一个M×N的随机稀疏矩 阵R,它的非零元素的个数近似为M×N×D,注意D的 值介于0和1之间。 见例子
矩阵及其运算
五 矩阵的特征值运算 在矩阵中,特征值占据着重要的角色,在MATLAB 中,可以利用eig、eigs两个函数来进行矩阵的特征值运 算,其使用的格式和注意事项如下: E=eig(X)命令生成由矩阵X 的特征值所组成的一 个列向量。其中X必须是方阵。 [V,D]=eig(X)命令生成两个矩阵V和D,其中V是 以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵 X的特征值作为主对角线元素构成的对角矩阵。
二 矩阵的基本数值运算 矩阵的基本运算通常包含有矩阵与常数的四则运算、 矩阵与矩阵之间的的四则运算以及矩阵的逆运算等。本 节将要对矩阵的这些运算作简要的介绍。 1 矩阵与常数的四则运算 矩阵与常数的四则运算即是指矩阵各元素与常数之间 的四则运算。在矩阵与常数进行除法运算时,常数只能 作为除数。例二如下:
相关主题