4.1  因式分解

本节介绍线性代数的一些基本操作,包括行列式、逆和秩,LU分解和QR分解,以及范数等。其中LU分解和QR分解都是使用对角线上方或者下方的元素均为0的三角矩阵来进行计算。使用三角矩阵表示的线性方程组,可以通过向前或者向后置换很容易地得出结果。

4.1.1  行列式、逆和秩

在MATLAB中,用户可以通过以下命令来计算矩阵A的行列式、逆和矩阵的秩。

(1)det(A):求方阵A的行列式。

(2)rank(A):求矩阵A的秩,即A中线性无关的行数和列数。

(3)inv(A):求方阵A的逆矩阵。如果A是奇异矩阵或者近似奇异矩阵,则会给出一个错误信息。

(4)pinv(A):求矩阵A的伪逆。如果A是m×n的矩阵,则伪逆的尺寸为n×m。对于非奇矩阵A来说,有pinv(A)=inv(A)。

(5)trance(A):求矩阵A的迹,也就是对角线元素之和。

下面用具体示例对矩阵行列式、逆和秩作简要的说明。

【例4-1】  矩阵的行列式计算示例。

det函数可以用来计算矩阵的行列式。

>> A1=[1 2;3 4]          %  创建矩阵A1

1     2

3     4

>> A2=[1 2;3,6]           %  创建矩阵A2

1     2

3     6

>> A3=[1 2;3 4;5 6]      %  创建矩阵A3

1     2

3     4

5     6

>> det1=det(A1)           %  求方阵A1的行列式

>> det2=det(A2)           % 求方阵A2的行列式

>> det3=det(A3)           %  注意非方阵的行列式没有意义

??? Error using ==> det

Matrix must be square.

>> det_1=det(A1')        %  实数矩阵的行列式和它的转置的行列式相同

>> det_2=det(A2')

>> det_3=det(A3')

??? Error using ==> det

Matrix must be square.

本例使用det函数计算A3的行列式时返回了错误信息,提醒用户A3必须是是方阵才可以调用det函数。

【例4-2】  矩阵的逆计算示例。

本例在上例创建的矩阵基础上进行演示。

>> inv1=inv(A1)

-2.0000    1.0000

1.5000   -0.5000

>> inv2=inv(A2)              %  A2行列式为0,不存在逆矩阵

Warning: Matrix is singular to working precision.

Inf   Inf

Inf   Inf

>> inv3=inv(A3)               %  非方阵不存在逆矩阵

??? Error using ==> inv

Matrix must be square.

>> detinv1=det(inv(A1))      %  A1的逆矩阵的行列式就等于1/det(A1)

>> 1/det(A1)

【例4-3】  使用pinv函数计算矩阵的伪逆示例。

>> pinv1=pinv(A1)   % A1的逆矩阵和它的伪逆是一样的

-2.0000    1.0000

1.5000   -0.5000

>> pinv2=pinv(A2)

0.0200    0.0600

0.0400    0.1200

>> pinv3=pinv(A3)

-1.3333   -0.3333    0.6667

1.0833    0.3333   -0.4167

本例调用pinv函数计算了矩阵A1、A2、A3的伪逆。因为矩阵A2行列式为0,矩阵A3不是方阵,所以不能求矩阵A2和A3的逆,但是可以求这两个矩阵的伪逆。

【例4-4】  使用rank函数求解矩阵的秩示例。

>> rank1=rank(A1)

>> rank2=rank(A2)

>> rank3=rank(A3)

>> rank_1=rank(A1')

>> rank_2=rank(A2')

>> rank_3=rank(A3')

从本例中可以看出矩阵的秩和它的转置的秩相同。

通过上面的这4个例子,可以总结出以下规律。

(1)只有方阵的行列式才有意义。

(2)只有方阵的逆才有意义,但如果方阵的行列式为0,该方阵则不存在逆矩阵。

(3)如果方阵的逆矩阵存在,它的伪逆和逆相同。

(4)如果方阵的逆矩阵存在,它的逆矩阵的行列式det(A-1)等于1/det(A)。

(5)矩阵的秩和它的转置的秩相同。

(6)实数矩阵的行列式和它的转置矩阵的行列式相同。

4.1.2  Cholesky因式分解

分解法是将原方阵分解成一个上三角形矩阵(或是以不同次序排列的上三角阵)和一个下三角形矩阵,这样的分解法又称为三角分解法,它主要用于简化大矩阵行列式值的计算过程、求逆矩阵和求解联立方程组。需要注意的是:这种分解法所得到的上下三角阵并不是唯一的,可以找到多个不同的上下三角阵对,每对三角阵相乘都会得到原矩阵。

对线性系统的求解,MATLAB依据系数矩阵A的不同,而相应地使用不同的方法。如有可能,MATLAB会先分析矩阵的结构。例如A是对称且正定的,则使用Cholesky分解。

如果没有找到可以替代的方法,则采用高斯消元法和部分主元法,主要是对矩阵进行LU因式分解或LU分解。这种方法就是令A=LU,其中A是方阵,U是一个上三角矩阵,L是一个带有单位对角线的下三角矩阵。

Cholesky因式分解是把一个对称正定矩阵A分解为一个上三角矩阵R和其转置矩阵的乘积,其对应的表达式为:A=R'R。从理论上说,并不是所有的对称矩阵都可以进行Cholesky因式分解,只有正定矩阵才可以。

Pascal矩阵就是一个有趣的例子。下面以Pascal矩阵为例,说明Cholesky因式分解的使用方法。

【例4-5】  Cholesky因式分解示例。

>> A = pascal(6)             % 创建Pascal矩阵

1     1    1     1     1     1

1     2    3     4     5    6

1     3    6    10    15   21

1     4   10    20    35   56

1     6   21    56   126  252

矩阵A的元素是二项式系数,每一个元素都是上方和左方两个元素的和。在MATLAB中,进行Cholesky因式分解的是chol函数。矩阵A的Cholesky因式分解可以通过以下命令得到:

>> R = chol(A)

1     1    1     1     1    1

0     1    2     3     4    5

0     0    1     3     6   10

0     0    0     1     4   10

0     0    0     0     1    5

0     0    0     0     0    1

得到的矩阵R的元素同样也是二项式系数。

Cholesky因式分解允许线性方程组A x = b被R’Rx=b代替。在MATLAB环境中,这个线性方程组可以通过以下命令来求解:

>> x=R\(R'\b)

4.1.3  LU因式分解

LU分解法主要用于简化大矩阵行列式值的计算过程、求逆矩阵和求解联立方程组。需要注意的是:这种分解法得到的上下三角阵对并不是唯一的,可以找到多个不同的上下三角阵对,每对三角阵相乘都会得到原矩阵。

在MATLAB中,求矩阵A的LU分解的调用函数是lu,调用格式如下:

[L,U]=lu(A)

另外,矩阵A的LU分解为线性系统A*x=b提供了以下表达式来快速求解:

【例4-6】  矩阵A的LU分解示例。

>> A=[5 2 0;2 6 2;5 6 7]

5     2    0

2     6    2

5     6    7

>> [L,U]=lu(A)               %  分解所得L是带有单位对角线的下三角矩阵,U是上三角矩阵

1.0000         0         0

0.4000   1.0000         0

1.0000    0.7692    1.0000

5.0000    2.0000         0

0    5.2000    2.0000

0         0    5.4615

>> L*U                          %  验证结果

5     2    0

2     6    2

5     6    7

【例4-7】  矩阵A的LU分解实例。

>> A=[1 2 3;4 5 6;7 8 9];

>> [L,U]=lu(A);

>> B=[9 8 7;6 5 4; 3 2 1];

>> x=U\(L\B)

Warning: Matrix is close to singular or badlyscaled.

Results may be inaccurate. RCOND =1.e-017.

-27   -26  -17

42    41   24

-16   -16   -8

>> A*x           % 验证结果

9     8    7

6     5    4

3     2    1

4.1.4  QR因式分解

如果A是正交矩阵,那么它满足A’A=1。二维坐标旋转变换矩阵就是一个简单的正交矩阵:

矩阵的正交分解又称做QR分解,是将矩阵分解成一个单位正交矩阵和上三角形矩阵。假设A是m×n的矩阵,那么A就可以分解成:

其中Q是一个正交矩阵,R是一个维数和A相同的上三角矩阵,因此Ax=B可以表示为QRx=B或者等同于Rx=QB。这个方程组的系数矩阵是上三角的,因此容易求解。

在MATLAB中,用户可以调用函数qr来求QR因式分解,这个命令可用于分解m×n的矩阵,假设A是m×n的矩阵。qr函数常用调用格式有以下几种。

(1)[Q,R]=qr(A):求得m×m阶矩阵Q和m×n阶上三角矩阵R。Q和R满足A=QR。

(2)[Q,R,P]= qr(A):求得矩阵Q,上三角矩阵R和置换矩阵P。R的对角线元素按大小降序排列,且满足AP=QR。

(3)[Q,R]= qr(A,0):求矩阵A的QR因式分解。如果在m×n的矩阵A中行数小于列数,则给出Q的前n列。

(4)[Q1,R1]=gradelete(Q,R,j):求去掉矩阵A中第j列之后形成的矩阵的QR因式分解,矩阵Q和R是A的QR因子。

(5)[Q1,R1]=qrinset(Q,R,b,j):求在矩阵A的第j列前插入列向量b后形成的矩阵的QR因式分解,矩阵Q和R是A的QR因子。如果j=n+1,那么插入的一列放在最后。

【例4-8】  QR分解示例。已知魔方矩阵

对其进行QR分解。

用户只需要调用qr函数就可以实现对A进行QR分解。具体过程如下:

>> A=magic(3)

8     1    6

3     5    7

4     9    2

>> [Q,R]=qr(A)               %  QR分解

-0.8480    0.5223   0.0901

-0.3180   -0.3655   -0.8748

-0.4240   -0.7705    0.4760

-9.4340   -6.2540   -8.1620

0   -8.2394   -0.9655

0         0   -4.6314

>> Q*R                     %  验证结果

8.0000    1.0000    6.0000

3.0000    5.0000    7.0000

4.0000    9.0000    2.0000

【例4-9】  利用QR分解求线性方程组的解。

用户可以通过求A的QR分解并计算R\Q'*B来求解X。具体过程如下:

>> A=[1 2 2;3 2 2;1 1 2]

1     2     2

3     2    2

1     1    2

>> B=[7;9;5]

>> [Q,R]=qr(A)

-0.3015    0.9239  -0.2357

-0.9045   -0.3553  -0.2357

-0.3015    0.1421   0.9428

-3.3166   -2.7136  -3.0151

0    1.2792   1.4213

0         0   0.9428

>>  X=R\Q'*B

>> A\B

4.1.5  范数

向量的范数是一个标量,用来衡量向量的长度。需注意不要把向量范数和向量中元素的个数相混淆。在MATLAB中,可以用命令norm得到不同的范数。

norm形式的表达式还有norm(x,-inf),但它不是求向量的范数,而是求向量x的绝对值的最小值,即min(abs(x))。请读者注意区分。

【例4-10】  向量范数的求解示例。

>> x=[2 4 5]

2     4    5

>> norm1=norm(x)                 %  欧几里德范数

>> norm2=norm(x,1)                %  1-范数

>> norm3=norm(x,inf)             % ¥-范数

>> norm4=norm(x,4)               %  p-范数

>> norm5=norm(x,-inf)            % 向量绝对值的最小值

怎么用matlab分解因式,MATLAB因式分解相关推荐

  1. 求助matlab分解质因数,Matlab

    Since Apr.6th,2016 linspace:产生一系列整数.linspace(a, b, c)产生的数 x 范围为 a≤x≤b ,总数为 c . 注意和 a:b:c的区别,a:b:c中 c ...

  2. 数字图像处理-DFTDCTWHT小波变换分解重构(Matlab)

    文章目录 数字图像处理-DFT&DCT&WHT&小波变换分解重构(Matlab) 基本的matlab图像处理函数的使用 代码块 运行效果 傅里叶变换(DFT) 对图像进行傅里叶 ...

  3. 初二因式分解奥数竞赛题_日本初中数学竞赛题:分解因式,中国学生:确定不是送分题?...

    大家好,本文和大家分享一道日本初中数学竞赛题:分解因式.分解因式是初中数学非常重要的知识板块,国内学生都会进行大量的练习,不少国内学生看到这道题后表示这就是一道送分题,甚至有学生表示这道题还没有中考题 ...

  4. 矩阵的Cholesky分解的Matlab实现

    版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/weixin_38451800/article/details/88933683 1.Cholesky分 ...

  5. 颜色分类识别代码matlab——分解RGB通道通过阈值来判断

    颜色分类识别代码matlab--分解RGB通道通过阈值来判断 代码下载链接 代码下载链接 代码下载链接 首先有一张包含多种颜色的图片: 然后可以编写代码,来实现分别提取出不同颜色的操作:

  6. VMD分解及其matlab实现方法

    VMD是一种新型的信号分解方法,它基于Hilbert Huang变换(HHT)理论,可以将一个信号分解成多个正交的模态,每个模态都有自己的中心频率和频率带宽.VMD的优点在于,能够克服传统的信号分解方 ...

  7. matlab qr分解作用,MATLAB论文_矩阵的QR分解及其MATLAB实现.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab MATLAB论文_矩阵的QR分解及其MATLAB实 ...

  8. qr分解实验 matlab,QR分解与最小二乘

    主要内容: 1.QR分解定义 2.QR分解求法 3.QR分解与最小二乘 4.Matlab实现 一.QR分解 R分解法是三种将矩阵分解的方式之一.这种方式,把矩阵分解成一个正交矩阵与一个上三角矩阵的积. ...

  9. matlab 的 符号,MATLAB符号计算

    <MATLAB符号计算>由会员分享,可在线阅读,更多相关<MATLAB符号计算(33页珍藏版)>请在人人文库网上搜索. 1.第7章 MATLAB符号计算,7.1 符号计算基础, ...

最新文章

  1. DeepMind开源Psychlab平台——搭建AI和认知心理学的桥梁(附论文和代码下载)
  2. 关于如何开办餐饮店?
  3. 手写简版spring --9--对象作用域和FactoryBean
  4. Appium+RobotFrameWork测试环境搭建
  5. .NET Core实战项目之CMS 第六章 入门篇-Vue的快速入门及其使用
  6. 国际空间站20年花掉超千亿美金,一些人开始觉得它“没啥用”了
  7. cmd编译java文件中文乱码_乱码 HelloWorld 世界你好 cmd 执行输出的中文java 显示乱码 解决 另附 win无法执行编译运行javac java编译文件的解决方案...
  8. python 使用整数编码字符串的值
  9. 使用selenium启动(无界面)浏览器的隐私模式
  10. 数据结构与算法之循环队列的操作
  11. VUE 组件之间通信
  12. 转: utf16编码格式(unicode与utf16联系)
  13. android消息处理机制原理解析
  14. 电商网站前台模板_电商热潮汹涌,兴长信达PEC零售商城系统为企业注入新力量...
  15. 【数字信号调制】基于matlab GUI数字信号调制系统【含Matlab源码 1030期】
  16. 怎么用odbc连接mysql数据库连接_怎么用odbc连接mysql数据库
  17. openCV银行卡号识别
  18. 126邮箱手机登录服务器密码怎么办,魅族手机登录网易126邮箱提示账号密码或协议设置不正确解决办法...
  19. 2017年数据库技术盘点
  20. 1968:Misspelling

热门文章

  1. HTML5 地理位置定位(HTML5 Geolocation)
  2. 优酷 html flash播放器,优酷播放器提示没有安装flash插件的解决办法
  3. el表达式ne什么意思_el表达式中的比较eq ne gt lt
  4. MogaFX外汇储备与经济危机
  5. java按照模板导出word 文档
  6. 软件著作权包括了哪些权利
  7. 虾皮系统老出现服务器错误,Shopee卖家须知:虾皮系统什么状况会自动取消订单?...
  8. 【解决方案】智慧煤矿:加速智能化布局,AI助力煤炭产业转型升级
  9. 笔记本外接显示器,合上笔记本盖子以后在显示屏上显示
  10. zj-layout组件的布局