24小时热门版块排行榜    

查看: 752  |  回复: 3

小丫鸭

铁虫 (初入文坛)

[求助] Fortran中的一个高斯程序已有1人参与

各个大神门  有没有见过下面这个程序的 可以给解答下这是求什么的吗 ?编写的什么公式???
subroutine gauss(n,ns,BB)
        implicit none
        integer i,j,k,n1,nt,n,ns,ip,i1
        double precision BB(2,3),x,AA(3,4)

        n1=n+1
        nt=n+ns
        do i=1,2
        do j=1,3
        aa(i+1,j+1)=bb(i,j)
        enddo
        enddo
        if (n.gt.1) then
          do 555 i=2,n
            ip=i
            i1=ip
            x=abs(aa(i1,i1))
            do 444 j=i+1,n+1
                  if (abs(aa(j,i1)).ge.x) then
                x=abs(aa(j,i1))
                ip=j
              endif
444            continue
       

                if (ip.ne.I1) then
              do 333 j=i1,nt+1
                        x=aa(i1,j)
                        aa(i1,j)=aa(ip,j)
                aa(ip,j)=x
333              continue
                endif

                do 222 j=i+1,n+1
                  if (abs(aa(i1,i1)).lt.1.d-10) then
                aa(i1,i1)=1.0
              endif
                        x=aa(j,i1)/aa(i1,i1)
                  do 111 k=i+1,nt+1
                        aa(j,k)=aa(j,k)-x*aa(i1,k)
111                  continue         
222                continue
555     continue       
        endif

      do 50 ip=1,n
          i=n1-ip+1
          do 40 k=n1+1,nt+1
            if (abs(aa(i,i)).lt.1.d-10) then
                  aa(i,i)=1.0
            endif
                  aa(i,k)=aa(i,k)/aa(i,i)
               
                if (i.ne.2) then
              i1=i-1
              do 30 j=2,i1
                        aa(j,k)=aa(j,k)-aa(i,k)*aa(j,i)
30                  continue
                endif
40          continue
50        continue       

      do i=1,n
        do j=1,n+1
        bb(i,j)=aa(i+1,j+1)
        enddo
        enddo
      end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nagami

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
从上往下看,有
1)列选主元;
2)判断主元是否在对角线上,然后行交换
3)一系列约化
整体的编号很乱,猜测是列主元Gauss消去,
但这个BB(2,3)就看不明白了,就算是增广矩阵,为什么要指定维数
觉得F77可读性太差。。。F90和C++哪个都比它强

» 本帖已获得的红花(最新10朵)

女靠衣装;男靠金装
2楼2015-11-04 15:50:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小丫鸭

铁虫 (初入文坛)

引用回帖:
2楼: Originally posted by nagami at 2015-11-04 15:50:01
从上往下看,有
1)列选主元;
2)判断主元是否在对角线上,然后行交换
3)一系列约化
整体的编号很乱,猜测是列主元Gauss消去,
但这个BB(2,3)就看不明白了,就算是增广矩阵,为什么要指定维数
觉得F77可 ...

非常感谢你的回复 问过老师 老师也不确定说是求逆 还是不太懂
3楼2015-11-04 16:56:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小丫鸭

铁虫 (初入文坛)

送红花一朵
引用回帖:
2楼: Originally posted by nagami at 2015-11-04 15:50:01
从上往下看,有
1)列选主元;
2)判断主元是否在对角线上,然后行交换
3)一系列约化
整体的编号很乱,猜测是列主元Gauss消去,
但这个BB(2,3)就看不明白了,就算是增广矩阵,为什么要指定维数
觉得F77可 ...

送朵小红花给你 哈哈
4楼2015-11-04 16:57:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小丫鸭 的主题更新
信息提示
请填处理意见