数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)

先上干货百度云(纯手写,纯HTML,可直接打开),如下:数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)_第1张图片

链接:https://pan.baidu.com/s/1LxZptQ6Wz0ROYnyT1x-u4g 密码:r7qd

注:参考书籍《数值分析》北京航空航天大学出版社

一、顺序GUASS消去法

点进去如下,先输入要解的N阶矩阵:

比如,我们输入3:

数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)_第2张图片

出现下方的矩阵框,为(N+1)*N的增广矩阵,输入待计算的矩阵,然后点击计算即可,比如:

 

数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)_第3张图片

所代表的含义即:

X1+X2+2X3=4

2X1+3X2+5X3=12

4X1+X2+2X3=2

之后所有的界面也雷同,只是计算算法不一样

顺序GAUSS消去法算法:通过最传统的方式将矩阵化为上三角模式,这个过程叫消元,然后从最后一行开始进行回代计算,称之为回代过程。

通过记事本打开HTML或者在浏览器中按F12即可查看源代码,纯开源:

数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)_第4张图片

顺序GAUSS消去法算法较简单但注意失效条件,实质是满足Cramer法则

附带一个可设置有效数字的顺序GAUSS法(就是在迭代过程加了设置有效数字)

二、列主元素的GAUSS消去法

主界面没变化,如图:

数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)_第5张图片

列主元的GAUSS消去与GAUSS消去大致步骤一致,只是在消元过程中,需要进行将k,k+1,....N行的矩阵进行大小排列,这样做是为了减少舍入误差,否则在数量级有差异的矩阵计算时就会出现较大的误差(但其实,由于计算精度的提高,这些都很难造成影响,比如现在的精度是小数点后12位,那么只有在数量级相差12以上才可能造成误差,如10的12次方和0.1这种,也仅仅是可能,还要考虑计算过程中实际情况)

源码就不贴图了,直接下载HTML自行查看吧= = 。

三、Doolittle分解法和Crout分解法

这两种方法都是直接三角分解法,利用的原理是A=LU,矩阵可分解为上三角矩阵和下三角矩阵的乘积。界面有微小变化,展示分解矩阵与中间过程的y向量。如下:

数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)_第6张图片

其中分解矩阵为:

数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)_第7张图片

利用分解矩阵减少矩阵计算过程中的计算量。

Crout分解和Doolittle分解大同小异,只是前者是单位下三角阵×上三角,后者是下三角阵×单位上三角

四、选主元的Doolittle分解

总的来说,选主元的思路都是一样的,都是把对角线上大的数放在前面,减少舍入误差。

注意:由于这部分学的并不好,so sorry,打开“选主元Doolittle分解法.html”时给出了提示,需要执行两次,第一次相当于改变方程组顺序,第二次才是计算过程。如果有大神,欢迎自行去除BUG

五、追赶法求解三对角线方程组

三对角线矩阵即只有对角线上3条线有非零实数,上图:

数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)_第8张图片

提供自动补零功能,计算示意:

数值分析--线性方程组解的算法(6种)(附算法百度云链接,纯手写原创)_第9张图片

因为此类型矩阵太过于稀疏,所以采用3个n长度的数组来分别储存三条对角线上的参数,减少存储消耗。其核心仍是crout分解法,相当于crout分解法在三对角线矩阵时的应用。

 

 

本篇文章没有具体算法步骤,但是在程序源代码里都有展示。具体算法参见《数值分析(第四版)》颜庆津 编著。此文主要是我的浅显理解,莫怪莫怪!

 

 

你可能感兴趣的:(#,其他)