24小时热门版块排行榜    

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

caoweiyue

新虫 (小有名气)

[求助] 刚开始学Fortran 帮忙看一下这个程序 为什么算不出结果

下面的程序算的是全选主元的高斯消去法, 我是照徐士良的算法集编的,但是结果都是0
program main
implicit none
integer::i,L
integer,parameter::n=4
real::A(n,n),b(n),x(n)
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 /
call agaus(A,b,n,L)
if(L==0) then
  write(*,*) "fail"
else
  do i=1,n
    write(*,"('x',i1,'=',f6.4)" i,x(i)
  end do
end if
stop
end program

subroutine agaus(A,b,n,L)
implicit none
integer:: i,j,k,n,is,js,L
real:: D, T
real:: A(n,n),b(n),x(n)

L=1
do k=1,n-1
  D=0.0
!选出了最大的,并保存其位置
   do i=k,n
     do j=k,n
           if( abs(A(i,j))>D ) then
           D=A(i,j)
                   is=i
                    js=j
           end if  
     end do
   end do
  if(D+1.0==1.0) then
    L=0
    return
  end if
!列交换
  if(js/=k) then
    do i=1,n
          T=A(i,k)
          A(i,k)=A(i,js)
      A(i,js)=T
    end do
  end if
!行交换
  if(is/=k) then
    do j=k,n
          T=A(k,j)
          A(k,j)=A(is,j)
          A(is,j)=A(k,j)
        end do
        T=b(k)
        b(k)=b(is)
        b(is)=b(k)
  end if
!化成三角矩阵
  do i=k+1,n
    do j=k,n
          A(i,j)=A(i,j)-A(i,k)/A(k,k)*A(k,j)
        end do
        b(i)=b(i)-A(i,k)/A(k,k)*b(k)
  end do
end do
if(A(n,n)+1.0==1.0) then
  L=0
  return
end if
!回代
x(n)=b(n)/A(n,n)
  do i=n-1,1,-1
    T=0.0
          do j=i+1,n
            T=T+A(i,j)*x(j)
          end do
        x(i)=(b(i)-T)/A(i,i)
  end do
  return
end subroutine agaus
回复此楼

» 猜你喜欢

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

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

daizhijuan

新虫 (初入文坛)

【答案】应助回帖

write(*,"('x',i1,'=',f6.4)" i,x(i)
少了右边的括号
real:: A(n,n),b(n),x(n)
子程序中的这句之前最好也给n一个值:比如 parameter(n=4)
4楼2012-12-13 16:52:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

Jasonluo

至尊木虫 (知名作家)

中央书籍处书记

【答案】应助回帖

感谢参与,应助指数 +1
楼主中间那个害羞的表情是啥意思啊?呵呵
朝为田舍郎,暮登天子堂。将相本无种,学子当自强!
2楼2012-05-16 20:59:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jwwang_lq

铁虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
write语句里应该输出b(i),而不是x(i)
老实人
3楼2012-05-17 08:51:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 调剂 +3 13853210211 2026-03-24 3/150 2026-03-24 18:16 by jhhcooi
[考研] 300分,材料,求调剂,英一数二 +3 超赞的 2026-03-24 3/150 2026-03-24 17:15 by 连洋洋洋
[考研] 收08调剂生 +4 komorebi69 2026-03-18 4/200 2026-03-24 16:53 by 不知名小学生
[考研] 求材料,环境专业调剂 +3 18567500178 2026-03-18 3/150 2026-03-23 23:50 by 热情沙漠
[考研] 材料/农业专业,07/08开头均可,过线就行 +3 呵唔哦豁 2026-03-23 4/200 2026-03-23 22:30 by 汪!?!
[考研] 工科0856求调剂 +5 沐析汀汀 2026-03-21 5/250 2026-03-23 17:56 by 海瑟薇-
[考研] 328求调剂 +4 LHHL66 2026-03-23 4/200 2026-03-23 14:55 by lbsjt
[考研] 北科281学硕材料求调剂 +8 tcxiaoxx 2026-03-20 9/450 2026-03-23 12:16 by tcxiaoxx
[考研] 333求调剂 +6 87639 2026-03-21 10/500 2026-03-23 10:41 by Iveryant
[考研] 293求调剂 +3 涛涛Wjt 2026-03-22 5/250 2026-03-22 22:21 by jiangpengfei
[考研] 一志愿中南化学(0703)总分337求调剂 +9 niko- 2026-03-19 10/500 2026-03-22 16:08 by ColorlessPI
[考研] 354求调剂 +7 Tyoumou 2026-03-18 10/500 2026-03-22 11:11 by 人来盛
[考研] 286分人工智能专业请求调剂愿意跨考! +4 lemonzzn 2026-03-17 8/400 2026-03-21 22:49 by lemonzzn
[考研] 297求调剂 +11 戏精丹丹丹 2026-03-17 12/600 2026-03-21 17:47 by ColorlessPI
[考研] 311求调剂 +3 勇敢的小吴 2026-03-20 3/150 2026-03-21 17:40 by ColorlessPI
[考研] 268求调剂 +9 简单点0 2026-03-17 9/450 2026-03-21 15:37 by lature00
[考研] 一志愿重庆大学085700资源与环境专硕,总分308求调剂 +3 墨墨漠 2026-03-18 3/150 2026-03-21 00:39 by JourneyLucky
[考研] 南京大学化学376求调剂 +3 hisfailed 2026-03-19 6/300 2026-03-20 23:43 by hisfailed
[考研] 294求调剂材料与化工专硕 +15 陌の森林 2026-03-18 15/750 2026-03-20 23:28 by JourneyLucky
[考研] 一志愿苏州大学材料求调剂,总分315(英一) +5 sbdksD 2026-03-19 5/250 2026-03-20 22:10 by luoyongfeng
信息提示
请填处理意见