购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2.3 矩阵的基本运算

1.矩阵基本数学运算

矩阵基本数学运算包括矩阵的四则运算、逆运算、行列式运算、幂和开方运算、指数和对数运算等。

(1)四则运算:矩阵的四则运算与数字变量的四则运算相同,但需满足一定的条件。

①矩阵的加法“+”和减法“-”要求相加减的矩阵同维;

②矩阵的乘法“*”要求相乘的矩阵相邻维相同;

③矩阵除法有两种形式:

A.右除“/”是先计算矩阵的逆再进行矩阵的乘法;

B.左除“\”是直接除法,通常比右除快,且可避免被除矩阵奇异性带来的问题。

④矩阵与常数的运算包括数加减、数乘、数除(常数通常只能为除数)。

(2)逆运算:是矩阵运算中的重要运算,它在线性代数和计算方法中均有应用。

①定义:如果方阵 B 满足 BA = AB = E ,则 B 称为 A 的逆矩阵;

②在Matlab中,矩阵逆运算由内置函数inv实现。

(3)行列式运算:行列式源于线性方程组的解和排列组合。

①定义:由 n × n 个元素排成 n n 列,在其两边各画一条竖线,并把它定义为:

这样的数学表达式称为 n 阶行列式,它是一个含有 n !项的代数和;

②在Matlab中,矩阵行列式运算由内置函数det实现。

(4)幂和开方运算。

①矩阵幂运算的形式与数字变量的幂运算形式相同,用运算符“^”实现;

②矩阵开方运算由内置函数sqrtm实现。

(5)指数和对数运算。

①矩阵指数运算由内置函数expm实现;

②矩阵对数运算与指数运算互为逆运算,由内置函数logm实现。

2.8 矩阵基本数学运算。

(1)矩阵基本数学运算——四则运算。

在Matlab命令行窗口运行ex2_8.m中的这些语句,得到如下结果,其中:矩阵 d e f 与矩阵 a b 同维,矩阵 g 与矩阵 c 同维。

(2)矩阵基本数学运算——逆运算、行列式运算。

在Matlab命令行窗口运行ex2_8.m中的这些语句,得到如下结果。可以看出:矩阵 a 与它的逆 b 的乘积是单位矩阵,矩阵 a 的行列式 a 1 与矩阵 a 的逆的行列式 a 2 乘积为 1。这些判断通过逻辑数组的元素值为真(值为 1)得到。

(3)矩阵基本数学运算——幂和开方运算、指数和对数运算。

在Matlab命令行窗口运行ex2_8.m中的这些语句,得到如下结果。从round( b 2^2)== b 1可以看出:矩阵的幂运算与开方运算互为逆运算;从round( d )== b 可以看出:矩阵的指数运算与对数运算互为逆运算。另外, c 是矩阵 b 元素的指数运算结果,而 c 1、 c 2 是矩阵 b 的不同方法的指数运算结果,它们的运算结果不同。

2.9 采用矩阵除法求解恰定线性方程组,并比较右除与左除得到的结果和误差,程序ex2_9.m如下,其中线性方程组由 100 个方程构成,系数矩阵为 100 行 100 列 0 到 1 均匀分布的随机数+1.0 ×10 10 ,常数项由 100 列的全 1 向量与系数矩阵的乘积得到。

在Matlab命令行窗口运行ex2_9.m,得到如下结果。可以看出:左除耗时 t 2 较少,右除和左除得到的线性方程组解的绝对误差 err 、相对误差 rerr 在同一量级。

2.10 矩阵除法用于数据拟合,也相当于超定线性方程组的求解。已知表 2-1 所列的一组数,采用 y = ax 2 + b 对该组数据( x y )进行拟合,并绘出拟合曲线。

表 2-1 矩阵除法求解超定线性方程组的数据

该例题表 2-1 中的 x y 满足 y = ax 2 + b ,由此可列出 5 个方程构成的线性方程组,其求解采用矩阵除法,得到用于数据拟合的参数 a b ,程序ex2_10.m如下。

在Matlab命令行窗口运行ex2_10.m程序,得到如下数值结果和结果图 2-3。可以看出:得到的拟合参数 a =0.0462、 b =3.1929,图 2-3 给出了已知数据点和拟合曲线。

图 2-3 例 2.10 矩阵除法用于数据拟合的结果图

2.11 矩阵除法可用于求解如下的欠定线性方程组。

用矩阵除法求解欠定线性方程组与求解恰定线性方程组的方法一样,该程序ex2_11.m如下。

在Matlab命令行窗口运行程序ex2_11.m,得到如下结果。可以看出,该欠定线性方程组的解有 3 个不确定量,以 0 值给出。

2.矩阵基本函数运算

本节介绍的矩阵基本函数运算包括:特征值和奇异值函数、条件数函数、伪逆函数、范数函数、矩阵的秩与迹函数、矩阵的空间函数以及矩阵的通用函数形式。

(1)特征值和奇异值函数。

①矩阵特征值和特征向量:设 T 是矢量空间V的线性变换,由矩阵 A 表示,如果对于数 λ 0 和非零矢量 x Ax= λ 0 x ,则 λ 0 称为线性变换 T 的一个特征值(或特征根,或本征值),而 x 称为变换 T 属于该特征根的一个特征向量;

②矩阵的特征值 λ 0 和特征向量 x 由eig或eigs内置函数调用得到;

③矩阵的奇异值函数有两种形式:svd和svds。

(2)条件数函数。

①条件数在数值分析中有着重要的作用,线性方程组系数矩阵的条件数是判断其病态程度的量度。

②Matlab中有三个函数可实现条件数的计算:

A.cond:计算矩阵条件数的值;

B.condest:计算矩阵的 1 范数条件数的值;

C.rcond:计算矩阵条件数的倒数值。

(3)特征值条件数和伪逆函数。

①求矩阵 A 的特征值时,若遇到矩阵的条件数很大或很小的病态问题,Matlab中有专用于求解特征值条件数的内置函数condeig,其调用形式为condeig( A )或[ V D S ]=condeig( A );

②在求解系数矩阵 A 为严重病态问题( Ax = b )时,可调用内置的伪逆函数pinv,有 x =pinv( A )* b ,由此避免伪解的产生。

(4)范数函数。

①范数是矩阵或向量的一种量度。矩阵的范数分为 1 范数、2 范数、无穷范数和 F 范数等,范数的计算由函数norm和normest实现;

A 为矩阵时,有:

A.norm( A ,1)返回max(sum(abs( A )));

B.norm( A ,2)返回max(svd( A ));

C.norm( A inf )返回max(sum(abs( A ')));

D.norm( A fro )返回sqrt(sum(diag( A' * A )));

A 为向量时,有:

A.norm( A p )返回sum(abs( A ).^ p )^(1 /p ),for 1≤ p ≤∞;

B.norm( A )返回norm( A ,2);

C.norm( A inf )返回max(abs( A ));

D.norm( A ,- inf )返回min(abs( A ))。

(5)矩阵的秩与迹函数。

①矩阵的秩是矩阵的一切非零子行列式的最高阶数。在高等数学中,对矩阵进行一系列变换得到矩阵的秩,在Matlab中求矩阵秩的内置函数为rank;

②矩阵的迹是方矩阵主对角线上的元素和,Matlab中求矩阵迹的内置函数为trace。

(6)矩阵的空间函数。

①矩阵的零空间函数为null;

②矩阵的正交空间函数orth可用于求矩阵的一组正交基。

(7)矩阵的通用函数形式。

①Matlab中函数调用的通用格式为:funm( A ,‘funname’),其中 A 为输入矩阵,funname为调用的函数名;

②内置的基本函数有:exp,log,log10,sin,asin,sqrt,fix,floor,ceil,round,mod,rem,sign,等等;

③内置的特殊函数有:besselj,bessely,besselh,beta,gamma,legendre,erf,等等。

2.12 矩阵基本函数运算。

(1)矩阵基本函数运算——特征值和奇异值函数。

在Matlab命令行窗口运行ex2_12.m中的这些语句,得到如下结果。

(2)矩阵基本函数运算——条件数。

在Matlab命令行窗口运行ex2_12.m中的这些语句,得到如下结果。

(3)矩阵基本函数运算——特征值条件数和伪逆函数。

在Matlab命令行窗口运行ex2_12.m中的这些语句,得到如下结果。可以看出:矩阵 A 的特征值条件数 Dc = S V D 分别是矩阵 A 的特征向量和特征值矩阵。从伪逆函数的调用可以看出,线性方程组的系数矩阵 a 的条件数 d 很大时,采用矩阵除法求解会产生伪解,而伪逆函数求得的解为真解,如矩阵 xab 的第三列所示。

(4)矩阵基本函数运算——范数函数。

在Matlab命令行窗口运行ex2_12.m中的这些语句,得到如下结果。

(5)矩阵基本函数运算——矩阵的秩与迹函数。

在Matlab命令行窗口运行ex2_12.m中的这些语句,得到矩阵exm的秩和迹结果如下。

(6)矩阵基本函数运算——矩阵的空间函数。

在Matlab命令行窗口运行ex2_12.m中的这些语句,得到如下结果。

(7)矩阵基本函数运算——矩阵的通用函数。

在Matlab命令行窗口运行ex2_12.m中的这些语句,得到如下结果,afsin是 3 阶魔方阵 a 的正弦函数矩阵,afix是矩阵 a /10 各元素取整的矩阵,around是矩阵 a /10 各元素四舍五入的矩阵,abes0 和abes1 分别是矩阵 a 的 0 阶和 1 阶球谐贝塞尔函数值。 sqOeE4esubhYQcv9QSUekO1IGGwjNnOh3fhG7pCMMpxAvK8w450ETiGPDdGtUZ/p

点击中间区域
呼出菜单
上一章
目录
下一章
×