Fortran Coder

求助Gauss消元法求解线性方程组的数值不稳定问题

查看数: 776 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
Yjc
发布时间: 2024-3-28 12:30

正文摘要:

各位老师好,我在学习数值算法的时候写了一个用Gauss消元法求解线性方程组的Fortran代码,并重复了徐士良老师《Fortran常用算法程序集》中的例子(见下图);这段代码编译过程正常,但求解出的X1和X2与书中给出的答 ...

回复

Yjc 发表于 2024-3-28 21:36:09
Transpose 发表于 2024-3-28 13:55
[mw_shl_code=fortran,true]   !ans=0 这个ans的位置错误
    X(4) = B(4)/A(4,4)
    X(3) = (B(3)-A(3,4 ...

感谢老师指正,我搞错了ans赋值语句的位置,现在程序运行正常了。
还想麻烦老师帮忙看看这个程序在数值算法和语法规范等方面有没有可以优化的地方,非常感谢!
Transpose 发表于 2024-3-28 13:55:29
[Fortran] 纯文本查看 复制代码
   !ans=0 这个ans的位置错误 
    X(4) = B(4)/A(4,4)
    X(3) = (B(3)-A(3,4)*X(4))/A(3,3)
    X(2) = (B(2)-A(2,4)*X(4)-A(2,3)*X(3))/a(2,2)

    do j=3,1,-1
        ans = 0 !应该在这里
        do i=j+1,4,1
            ans = ans + A(j,i)*X(i)
        end do
        X(j) = (B(j)-ans)/A(j,j)
    end do

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-22 05:02

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表