24小时热门版块排行榜    

查看: 510  |  回复: 0

chaoszero253

新虫 (初入文坛)

[求助] 关于Jacobi法矩阵对角化

想用fortran语言通过Jacobi方法对角化一个对称矩阵,但是求出来的结果和matlab内置的对角化程序员结果不一样。请问我的对角化程序是哪里出问题了。

subroutine SOLVE(A,N,tezheng,tol)
      !jacobi法对角化
      implicit real*8(a-z)
      integer::N
      real*8::A(N,N),tezheng(N)
      real*8::A1(N,N),R(N,N),RT(N,N),U(N,N),thi(N,N)
      integer::i,j,k,m,c,b,z,t
      integer::p,q,x,y
      real*8 sum
      do i=1,N
          do j=1,N
              A1(i,j)=A(i,j)
          end do
      end do
      k=0
      p=0
      m=1
      do while(m==1)
          m=0
          do i=1,N-1
              do j=i+1,N
                  R=0
                  do q=1,N
                      R(q,q)=1
                  end do
                  if(abs(A1(i,j))>tol) then
                      m=1
!         判断非对角矩阵元是否大于给出的阈值,如果是则建立旋转矩阵R来归零矩阵元
                      if(A1(i,i)==A1(j,j))then
                          R(i,i)=1/1.41421356
                          R(j,j)=1/1.41421356
                          R(i,j)=1/1.41421356
                          R(j,i)=-1/1.41421356
                      else
                          thi(i,j)=0.5*atan(2*A1(i,j)/(A1(i,i)-A1(j,j)))
                          R(i,i)=cos(thi(i,j))
                          R(j,j)=cos(thi(i,j))
                          R(i,j)=-sin(thi(i,j))
                          R(j,i)=sin(thi(i,j))
                      end if
                      do x=1,N
                          do y=1,N
                              RT(x,y)=R(y,x)
                          end do
                      end do
                      U=matmul(RT,A1)
                      A1=matmul(U,R)
                  end if
              end do
          end do
          p=p+1
          print *,p
          if (p==100) exit
      end do
      do i=1,N
          tezheng(i)=A1(i,i)
      end do
    end subroutine SOLVE
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 chaoszero253 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求调剂,总分315,考的生物医药,一志愿湖南师范大学。调剂到任何专业都可以 +4 小丁想进步 2026-03-11 5/250 2026-03-17 16:05 by 外星文明
[考研] 070300化学319求调剂 +3 锦鲤0909 2026-03-17 3/150 2026-03-17 15:01 by 我的船我的海
[考研] 268求调剂 +7 一定有学上- 2026-03-14 8/400 2026-03-17 13:10 by zz820
[考研] 302求调剂 +4 小贾同学123 2026-03-15 8/400 2026-03-17 10:33 by 小贾同学123
[考研] 材料与化工304求B区调剂 +7 邱gl 2026-03-11 8/400 2026-03-17 09:36 by 努力学习赚彩礼
[考研] [导师推荐]西南科技大学国防/材料导师推荐 +3 尖角小荷 2026-03-16 6/300 2026-03-16 23:21 by 尖角小荷
[考研] 0856求调剂 +3 刘梦微 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
[考研] 070305求调剂 +3 mlpqaz03 2026-03-14 4/200 2026-03-15 11:04 by peike
[考研] 085601材料工程315分求调剂 +3 yang_0104 2026-03-15 3/150 2026-03-15 10:58 by peike
[考研] 材料工程327求调剂 +3 xiaohe12w 2026-03-11 3/150 2026-03-14 20:20 by ms629
[考研] 330求调剂 +3 ?酱给调剂跪了 2026-03-13 3/150 2026-03-14 10:13 by JourneyLucky
[考研] 求调剂(材料与化工327) +4 爱吃香菜啦 2026-03-11 4/200 2026-03-13 22:11 by JourneyLucky
[考研] 求材料调剂 +5 隔壁陈先生 2026-03-12 5/250 2026-03-13 22:03 by 星空星月
[考研] 0703化学一志愿211 总分320求调剂 +5 玛卡巴卡啊哈 2026-03-11 5/250 2026-03-13 21:40 by JourneyLucky
[考研] (081700)化学工程与技术-298分求调剂 +12 11啦啦啦 2026-03-11 35/1750 2026-03-13 21:25 by JourneyLucky
[考研] 315求调剂 +9 小羊小羊_ 2026-03-11 10/500 2026-03-13 21:13 by SXNU李老师
[考研] 土木第一志愿276求调剂,科研和技能十分丰富,求新兴方向的导师收留 +3 土木小天才 2026-03-12 3/150 2026-03-13 15:01 by JourneyLucky
[考研] 0856化学工程280分求调剂 +4 shenzxsn 2026-03-11 4/200 2026-03-13 11:55 by ymwdoctor
[考研] 0817化学工程与技术考研312分调剂 +3 T123 tt 2026-03-12 3/150 2026-03-13 10:49 by houyaoxu
[考研] 321求调剂(食品/专硕) +3 xc321 2026-03-12 6/300 2026-03-13 08:45 by xc321
信息提示
请填处理意见