24小时热门版块排行榜    

CyRhmU.jpeg
查看: 904  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

飞扬123

新虫 (初入文坛)


[交流] 【求助】急需一个程序

急需:一个求解一元多次方程的Fortran程序,谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

553宿舍

新虫 (初入文坛)


呵呵,挺有意思的!
6楼2010-12-02 16:44:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答
自已写,或找现成的软件做……
2楼2010-11-30 10:05:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gsview

木虫 (小有名气)



余泽成(金币+1):谢谢参与应助,欢迎常来程序语言版! 2010-12-24 16:15:28
从书上给你找的!






        DIMENSION A(4,4),B(4),X(4),JS(4)
        DOUBLE PRECISION A,B,X
        DATA A/0.2368,0.1968,0.1582,1.1161,0.2471,0.2071,1.1675,0.1254
     *       ,0.2568,1.2168,0.1768,0.1397,1.2671,0.2271,0.1871,0.1490/
        DATA B/1.8471,1.7471,1.6471,1.5471/
        N=4
        CALL AGAUS(A,B,N,X,L,JS)
        IF (L.NE.0) THEN
          WRITE(*,10) (I,X(I),I=1,4)
        END IF
10        FORMAT(1X,'X(',I2,' )=',D15.6)
        END




        SUBROUTINE AGAUS(A,B,N,X,L,JS)
        DIMENSION A(N,N),X(N),B(N),JS(N)
        DOUBLE PRECISION A,B,X,T
        L=1
        DO 50 K=1,N-1
          D=0.0
          DO 210 I=K,N
          DO 210 J=K,N
            IF (ABS(A(I,J)).GT.D) THEN
              D=ABS(A(I,J))
              JS(K)=J
              IS=I
            END IF
210          CONTINUE
          IF (D+1.0.EQ.1.0) THEN
            L=0
          ELSE
            IF (JS(K).NE.K) THEN
              DO 220 I=1,N
                T=A(I,K)
                A(I,K)=A(I,JS(K))
                A(I,JS(K))=T
220              CONTINUE
            END IF
            IF (IS.NE.K) THEN
              DO 230 J=K,N
                T=A(K,J)
                A(K,J)=A(IS,J)
                A(IS,J)=T
230              CONTINUE
              T=B(K)
              B(K)=B(IS)
              B(IS)=T
            END IF
          END IF
          IF (L.EQ.0) THEN
            WRITE(*,100)
            RETURN
          END IF
          DO 10 J=K+1,N
            A(K,J)=A(K,J)/A(K,K)
10          CONTINUE
          B(K)=B(K)/A(K,K)
          DO 30 I=K+1,N
            DO 20 J=K+1,N
              A(I,J)=A(I,J)-A(I,K)*A(K,J)
20            CONTINUE
            B(I)=B(I)-A(I,K)*B(K)
30          CONTINUE
50        CONTINUE
        IF (ABS(A(N,N))+1.0.EQ.1.0) THEN
          L=0
          WRITE(*,100)
          RETURN
        END IF
        X(N)=B(N)/A(N,N)
        DO 70 I=N-1,1,-1
          T=0.0
          DO 60 J=I+1,N
            T=T+A(I,J)*X(J)
60          CONTINUE
          X(I)=B(I)-T
70        CONTINUE
100        FORMAT(1X,' FAIL ')
        JS(N)=N
        DO 150 K=N,1,-1
          IF (JS(K).NE.K) THEN
            T=X(K)
            X(K)=X(JS(K))
            X(JS(K))=T
          END IF
150        CONTINUE
        RETURN
        END
3楼2010-11-30 16:41:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009(金币+1):呵呵 2010-12-02 07:46:04
人家求的是一元多次方程,不是线性方程组,呵呵……

一元多次方程一般都是通过迭代的方法求解的,效率之间的差别会很大,但查一下书也应该都会有的。不管怎么样,这种事情还是应该自己动手……
4楼2010-11-30 21:52:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见