高斯消去法解线性方程组的fortran程序实现

这篇具有很好参考价值的文章主要介绍了高斯消去法解线性方程组的fortran程序实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

高斯消去法解方程组的fortran程序实现

许多实际问题的解决,常常要化为求解线性代数方程组;例如,用最小二乘法处理测量结果和用差分法求解偏微分方程时,都会得到线性方程组;同时,很多物理学的问题最后也要归结到求矩阵的特征值和特征向量。因此,线性代数代数计算方法是一类很重要,应用很普遍的计算方法。
解线性方程组的各种方法中,高斯消去法具有通用性好,运算量小的优点,在编程解线性方程组方面应用广泛。
例如,用高斯法求解下面线性代数方程组:
A x = b ( 1 ) Ax= b \qquad(1) Ax=b(1)
其中, A A A n × n n\times n n×n矩阵,x是解向量,b是方程组右边n维列向量。

程序参数说明:
A:
输入参数,N*N1个元素的二维实数组,存放由(1)式的系数矩阵和右端的列向量所组成的增广矩阵,存储方式是按列存放,该参数也是输出参数,其N1列存放解向量。
N:
整变量,输入参数,方程组的阶数。
N1:
整变量,输入参数,N1=N+1
EP:
实参数,输入参数,控制常数,通常为比较小的正实数
KWJI:
整变量,输出参数,标志。当矩阵 A ( k − 1 ) A^{(k-1)} A(k1)(其意义见下面内容)的第k列元素 a k k ( k − 1 ) a_{kk}^{(k-1)} akk(k1) a k + 1 , k ( k − 1 ) a_{k+1,k}^{(k-1)} ak+1,k(k1),…, a n , k ( k − 1 ) a_{n,k}^{(k-1)} an,k(k1)的绝对值均小于EP时,令KWJI=1,这时认为组(1)无解;否则令KWJI=0.

方法简介:
高斯消去法有两部分组成,向前过程和回代过程。在向前过程中,用一系列初等变换作用于A,把A化成单位上三角阵U.
高斯消去法的向前过程由n步组成,令 A k − 1 A^{k-1} Ak1是第k步开始的矩阵,令 A 0 = A A^{0}=A A0=A A n = U A^{n}=U An=U;又令 a i j ( k − 1 ) a_{ij}^{(k-1)} aij(k1)表示矩阵 A ( k − 1 ) A^{(k-1)} A(k1)的第i行第j列的元素(即(i,j)元素);假设向前过程已经进行了k-1步,得到矩阵 A ( k − 1 ) A^{(k-1)} A(k1),有形式:
fortran 高斯消元法,线性代数,矩阵
右端项为:
fortran 高斯消元法,线性代数,矩阵
于是向前过程的第k步得到的矩阵 A k A^{k} Ak及右端项 b k b^{k} bk的元素由下列公式确定:
fortran 高斯消元法,线性代数,矩阵
按这种步骤进行到k=n,则矩阵 A ( n ) A^{(n)} A(n)为为单位上三角矩阵;
回代过程的目的是求出组(1)的解。其计算公式如下:
fortran 高斯消元法,线性代数,矩阵
(4)式中的元素 a k k ( k − 1 ) a_{kk}^{(k-1)} akk(k1)叫做向前过程第k步上的主元。在计算过程中,他可能为零,使得计算无法进行。因此本程序采用从 a k k ( k − 1 ) a_{kk}^{(k-1)} akk(k1)开始按次序在 a k k ( k − 1 ) a_{kk}^{(k-1)} akk(k1) a k + 1 , k ( k − 1 ) a_{k+1,k}^{(k-1)} ak+1,k(k1),…, a n , k ( k − 1 ) a_{n,k}^{(k-1)} an,k(k1)中寻找第一份非0元作为主元,用行交换来完成。

程序代码:
fortran 高斯消元法,线性代数,矩阵
参考资料:刘德贵-《fortran算法汇编》文章来源地址https://www.toymoban.com/news/detail-724881.html

到了这里,关于高斯消去法解线性方程组的fortran程序实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包