Matlab --- 用Matlab求解线性方程组Ax=b的计算流程(叹为观止)

2024-01-31 04:50

本文主要是介绍Matlab --- 用Matlab求解线性方程组Ax=b的计算流程(叹为观止),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        众所周知,在求解矩阵的线性方程Ax=b时。我们往往会先求出矩阵A的逆,然后再根据公式Ax = b ~~~> x = A^{-1}b 求出x。(这是求解线性方程组的方法之一) 

        但是,如果你要是在matlab中,用这种方法计算x(即,调用matlab自带函数inv(A)),matlab就会提醒你,建议你用x=A\b来计算x,而不是先求逆,因为如果先求逆再求解线性方程组的话,会极大的增加计算误差。那么Matlab中的A\b究竟是什么呢?


Matlab的做法

        首先,Matlab会优先判断矩阵A是稠密矩阵也叫满矩阵(dense matrix),还是稀疏矩阵(sparse matrix)?然后,matlab会基于这一判断的结果分出两条主线。

A:求解稠密矩阵线性方程组的计算流程

在这里插入图片描述


B:求解稀疏矩阵线性方程组的计算流程

在这里插入图片描述




 



补充知识点:

1,稀疏矩阵和稠密矩阵

2,三角矩阵
在这里插入图片描述

注:点击图片看大图


三角矩阵的性质
在这里插入图片描述

注:点击图片看大图


3,伴随矩阵
在这里插入图片描述

注:点击图片可放大

在这里插入图片描述

4,置换矩阵(permutation matrix)

在这里插入图片描述

5,埃尔米特矩阵(Hermitian)
在这里插入图片描述


6,黑森贝格矩阵(Hessenberg matrix)

注:点击图片可放大

最后:
        首先,要设计不同矩阵类型的线性方程组的解法,本身就不是一件容易的事情。更加难得的是,matlab还设计了一系列的自动判断矩阵类型的算法,我觉得这又是一件难事。

 (全文完)

作者 --- 松下J27

2021年9月22日

格言摘抄:

心怀二意的人哪,要清洁你们的心。--- 《圣经》雅各书4章8节

Cleanse your hands, ye sinners; and purify your hearts, ye double minded.(KJV)

参考文献:
1,求解关于 x 的线性方程组 Ax = B - MATLAB mldivide \- MathWorks 中国此 MATLAB 函数 对线性方程组 A*x = B 求解。矩阵 A 和 B 必须具有相同的行数。如果 A 未正确缩放或接近奇异值,MATLAB 将会显示警告信息,但还是会执行计算。https://ww2.mathworks.cn/help/matlab/ref/mldivide.html

2,维基百科

(配图与本文无关)

版权声明:所有的笔记,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27

这篇关于Matlab --- 用Matlab求解线性方程组Ax=b的计算流程(叹为观止)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/662603

相关文章

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87