排列矩阵和三角矩阵——Matlab解线性方程组(2)

这篇具有很好参考价值的文章主要介绍了排列矩阵和三角矩阵——Matlab解线性方程组(2)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、排列矩阵是什么?

二、三角形矩阵

总结


前言

        上一篇文章讲了线性方程组的高斯消元法 。本文是一个辅助概念,讲解上文得到的P矩阵和L与U矩阵所代表的排列矩阵和上三角矩阵。


一、排列矩阵是什么?

        排列矩阵(permutation matrix)是单位矩阵经过行列交换而得到的新矩阵。它在每行或每列上有且仅有一个1,其他元素都为0.例如:

        如上一篇文章所说,对任意矩阵A左乘一个排列矩阵P,就是对矩阵A的行进行排列。如果对任意矩阵A右乘一个排列矩阵P,就是对矩阵A的列进行排列。

        Matlab中提供了一种快速建立排列矩阵的方法:

即用一个排列向量(permutation vector)作为行或者列的索引,对于上面那个排列矩阵P,设p为排列向量,则有:

p = [1,3,2];

即,第一行的第一列是1,第二行的第三列是1,第三行的第2列是1.

此时,P*A 和A(p,:)都表示对A进行行排列;而A*P和A(:,p)都表示对A进行列排列。

clear,clc
p=[1 3 2];
P=[1 0 0;0 0 1;0 1 0];
A=[10 -7 0;-3 2 6;5 -1 5];
P*A
A(p,:)
A*P
A(:,p)

输出如下:

matlab求解上三角矩阵方程组,Matlab练习,matlab,算法,矩阵

输出结果确实符合所需排列要求。 

这两种方式都可以在Matlab中讲矩阵进行排列。更接近传统数学表达方式,而则会占用更少的内存,且运算速度更快

二、三角形矩阵

        三角形矩阵就是所有非零元素集中在主对角线之上或之下。如果所有非零元素在主对角线之,叫上三角矩阵(upper triangular)如果所有非零元素在主对角线之,叫下三角矩阵

        特别地,如果主对角线上的元素都为1,则可以叫做单位三角矩阵。

如上一节的例子:

就是一个单位下三角矩阵(unit lower triangualr)。

 如果系数矩阵为三角矩阵,则对于方程,其中U为n阶方阵,b为列向量。则求其解x可以如下有两种算法。

%% 从b向量中逐个减去矩阵U列的倍数
x=zeros(n,1);
for k=n:-1:1
    x(k)=b(k)/U(k,k);
    i=(1:k-1)';
    b(i)=b(i)-x(k)*U(i,k);
end

%% 使用U矩阵的行和解出的部分x作内积
x=zeros(n,1);
for k=n:-1:1
	j=k+1:n;
    x(k)=(b(k)-U(k,j)*x(j))/U(k,k);
end

总结

        本文讲解了两种特殊矩阵。分别是排列矩阵P和三角矩阵U。这两种特殊矩阵在求解方程组的时候经常用到。上一节留下了一个公式:LU=PA,结合本讲可以知道。L是消元过程的乘子,是一个单位下三角矩阵;U是消元后最后得到的系数矩阵,它是一个上三角矩阵;P是一个排列矩阵。

        至此,准备工作结束,下一节开始讲解矩阵的LU分解。文章来源地址https://www.toymoban.com/news/detail-726040.html

到了这里,关于排列矩阵和三角矩阵——Matlab解线性方程组(2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab | Lab4——用LU 分解法、 Jacobi 迭代、 Gauss-Seidel 迭代 解线性病态方程组(系数矩阵为Hilbert矩阵)

    考虑线性方程组Hx=b,其中H为n阶Hilbert矩阵,即 通过先给 定解 (例如取x的各个分量为1),再计算出右端向量b的办法给出一个精确解已知的问题. (1)分别编写Doolittle LU 分解法、 Jacobi 迭代、 Gauss-Seidel 迭代的一般程序; (2) 取阶数n=6,分别用 LU 分解法、 Jacobi 迭代、 Gauss-S

    2024年02月11日
    浏览(31)
  • 【matlab】解线性方程组的迭代方法

    (一)矩阵 特征 多项式、特征值、特征向量,稀疏矩阵 1、测试函数eig,poly,poly2str format short g A=[1 2 3;4 5 6;7 8 9] A =      1     2     3      4     5     6      7     8     9 p=poly(A) p =             1          -15          -18  -1.7567e-14 poly2str(p,\\\'x\\\')

    2024年02月06日
    浏览(42)
  • matlab使用教程(6)—线性方程组的求解

            进行科学计算时,最重要的一个问题是对联立线性方程组求解。在矩阵表示法中,常见问题采用以下形式:给定两个矩阵 A 和 b,是否存在一个唯一矩阵 x 使 Ax = b 或 xA = b?         考虑一维示例具有指导意义。例如,方程         7x = 21         是否具

    2024年02月14日
    浏览(30)
  • 牛顿-拉普森法求解线性方程组原理及matlab程序

      在多变量微积分和矩阵理论的交叉点是求解非线性代数方程的迭代方法。设是的 n n n 个未知向量 x ,有 F ( x ) = 0 ∈ R n mathbf{F}left( mathbf{x} right) =0in text{R}^{text{n}} F ( x ) = 0 ∈ R n 就是求解 x 的 n n n 个非线性方程组,其中向量函数具有连续导数,并且雅可比矩阵 F x ( x

    2024年02月05日
    浏览(31)
  • 牛顿(Newton)迭代法求解非线性方程以及方程组的Matlab实现

    必做题目比较简单,写得有些随意,主要还是第二个拓展题目的难度比较高 传入题设数据有: 另附运行截图  

    2024年02月11日
    浏览(30)
  • 【数值分析实验】(五)线性方程组的迭代解法(含matlab代码)

            迭代法就是用某种极限过程去逐步逼近线性方程精确解的方法。迭代法具有需要计算机的存储单元较少、程序设计简单、原始系数矩阵在计算过程中始终不变等优点,但存在收敛性及收敛速度问题。 3.1.1 算法过程 3.1.2 代码 3.1.3 计算结果 3.2.1 算法过程 3.2.2 代码

    2024年02月03日
    浏览(32)
  • MATLAB数值分析学习笔记:线性代数方程组的求解和高斯消元法

    工程和科学计算的许多基本方程都是建立在守恒定律的基础之上的,比如质量守恒等,在数学上,可以建立起形如 [A]{x}={b} 的平衡方程。其中{x}表示各个分量在平衡时的取值,它们表示系统的 状态 或 响应; 右端向量{b}由无关系统性态的常数组成通常表示为 外部激励。 矩阵

    2023年04月15日
    浏览(52)
  • MATLAB数值分析学习笔记:线性代数方程组的求解和高斯-赛德尔方法

    迭代法是前面介绍的消元法的有效替代,线性代数方程组常用的迭代法有 高斯-赛德尔方法 和 雅克比迭代法, 下面会讲到二者的不同之处,大家会发现两者的实现原理其实类似,只是方法不同,本篇只重点介绍高斯-赛德尔方法。 看了我之前的笔记的同学应该已经对迭代法不

    2024年02月05日
    浏览(46)
  • 数值分析·学习 | 解线性方程组的直接方法(高斯消去法以及LU求解)matlab实现

    目录 一、前言: 二、算法描述: 三、实现代码: 1、高斯消去法: 2、高斯消去法-列主元消去法: 3、LU分解: 4、求逆矩阵: 四、总结: 个人学习内容分享 1、高斯消去法:         设有线性方程组         或写为矩阵形式

    2024年02月05日
    浏览(46)
  • 【线性代数】通过矩阵乘法得到的线性方程组和原来的线性方程组同解吗?

    如果你进行的矩阵乘法涉及一个线性方程组 Ax = b,并且你乘以一个可逆矩阵 M,且产生新的方程组 M(Ax) = Mb,那么这两个系统是等价的;它们具有相同的解集。这是因为可逆矩阵的乘法可以视为一个可逆的线性变换,不会改变方程解的存在性或唯一性。 换句话说,如果你将原

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包