24小时热门版块排行榜    

Znn3bq.jpeg
查看: 848  |  回复: 1

petersonic

铁虫 (初入文坛)

[求助] Fortan 反幂法求解矩阵按模最小特征值问题

本人用fortran反幂法求解最小特征值,其中求解线性方程组的部分由于是带状阵,因此采用了压缩空间的存储方式C(m,n)
但是子程序单独调试都能通过,放在一起就有问题了,哪位大神帮忙看看

program homework

implicit none
!定义
Integer , parameter :: p = SELECTED_REAL_KIND(8)  
real(p) ::        a(501),db=0.16,dc=-0.064,mc(5,501)
real(p)    :: Rs
integer :: i,n=501,m=5

!a初始化
do i=1,n
a(i)=(1.64-0.024*i)*sin(0.2*i)-0.64*exp(0.1/i)
end do
!给C赋初值5*501
mc(1,=dc
mc(2,=db
do i=1,n
mc(3,i)=a(i)
end do
mc(4,=db
mc(5,=dc
mc(1,1)=0.0
mc(1,2)=0.0
mc(2,1)=0.0
mc(5,n)=0.0
mc(4,n)=0.0
mc(5,n-1)=0.0


!求Rs(即按模最小的特征值),反幂法
call InPowoe(mc,m,n,Rs)
write(*,*)
write(*,*) "Rs===============",Rs
end program homework


!*****************************************************
!子程序反幂法求特征值(Inverse power of eigenvalue)         *
!*****************************************************
subroutine InPowoe(c,m,n,r)
implicit none
Integer , parameter :: p = SELECTED_REAL_KIND(8)
integer :: m,n
real(p) :: r,c(m,n)
real(p) :: u(n),y(n),t,max,flag
real(p) :: sum
integer :: i
sum=0.0
max=1.0
flag=1.0
u(1)=1.0
do i=2,n
u(i)=1.0
end do

!计算
do while(flag>=0.00001)
  do i=1,n
    sum=sum+u(i)*u(i)
  end do
   t=sqrt(sum)
   sum=0.0

  do i=1,n
    y(i)=u(i)/t
  end do

  !A*u=y,求解带状线性方程组
   call LU(c,u,y,m,n)
  !特征值
  do i=1,n
    sum=sum+y(i)*u(i)
  end do
    r=sum
        sum=0.0
  !结束判断
  flag=abs(r-max)/abs(r)
  max=r
end do
r=1.0/r
end subroutine         InPowoe


subroutine LU(a,x,b,m,n)
implicit none
Integer , parameter :: p = SELECTED_REAL_KIND(8)
integer :: i,j,k,r,s,t,m,n
real(p) :: a(m,n),x(n),b(n),c(m,n)
real(p) :: sum
sum=0.0
r=2
s=2

do i=1,m
  c(i,=a(i,
end do
!分解
do k=1,n
  do j=k,min(k+s,n)
    do t=max(1,k-r,j-s),k-1
          sum=sum+c(k-t+s+1,t)*c(t-j+s+1,j)
        end do
        c(k-j+s+1,j)=c(k-j+s+1,j)-sum
        sum=0.0
  end do
  
  if(k<n) then
  do i=k+1,min(k+r,n)
    do t=max(1,i-r,k-s),k-1
          sum=sum+c(i-t+s+1,t)*c(t-k+s+1,k)
        end do
        c(i-k+s+1,k)=(c(i-k+s+1,k)-sum)/c(s+1,k)
        sum=0.0
  end do
  end if
end do

!求解
do i=2,n
  do t=max(1,i-r),i-1
     sum=sum+c(i-t+s+1,t)*b(t)  
  end do
  b(i)=b(i)-sum
  sum=0.0
end do
x(n)=b(n)/c(s+1,n)
do i=n-1,1,-1
   do t=i+1,min(i+s,n)
      sum=sum+c(i-t+s+1,t)*x(t)
   end do
   x(i)=(b(i)-sum)/c(s+1,i)
   sum=0.0
end do
end subroutine LU
回复此楼

» 猜你喜欢

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

petersonic

铁虫 (初入文坛)

笑脸地方为  
2楼2014-11-09 12:42:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 petersonic 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[文学芳草园] 献血感触 +4 呀呀好傻 2026-05-19 4/200 2026-05-19 15:09 by seaskyy
[有机交流] 反应很差,大量原料没有反应 5+3 Mr.Zot 2026-05-19 3/150 2026-05-19 13:56 by xtlilibin
[教师之家] 上海大学实验技术岗位非升即走 +10 嘻嘻哈哈乐呵呵 2026-05-15 11/550 2026-05-19 10:03 by 嘻嘻哈哈乐呵呵
[考博] 26/27申博自荐-锂/钠电池方向 5+3 狗头军师. 2026-05-15 4/200 2026-05-19 09:10 by moonboat
[考博] 26/27博士推荐 +4 1木头人13949 2026-05-13 4/200 2026-05-19 08:29 by zhyzzh
[考博] 2026博士还有哪些学校有名额 +7 小王求读研 2026-05-15 8/400 2026-05-19 08:27 by zhyzzh
[基金申请] 面上本子正文33页,违规吗?会被低分嘛? +8 1234567wang 2026-05-17 10/500 2026-05-18 18:52 by zzahkj
[基金申请] 今年审到国自然15份,谈谈感受 +16 国自然国社科中 2026-05-17 16/800 2026-05-18 14:58 by gy116024
[基金申请] 重磅!青年科学基金项目(C类)资助增幅预计超过50% +7 水和泥不是水泥 2026-05-13 10/500 2026-05-18 07:50 by 水和泥不是水泥
[文学芳草园] 半夜喝咖啡 +3 myrtle 2026-05-15 5/250 2026-05-18 01:03 by 小沈2018
[考博] 光量子物理方向 博士招生 1人(2026.09) +3 sandyworld 2026-05-15 4/200 2026-05-17 14:38 by sandyworld
[高分子] 本人最近太闲了,谁有问题可以提,每天会统一回复 +9 一切都是空工 2026-05-12 20/1000 2026-05-16 19:52 by Equinoxhua
[有机交流] 求有机合成大神指点三硫酸乙烯酯(CAS:2793408-99-6)的合成路线 30+3 Leekmid 2026-05-13 10/500 2026-05-16 16:37 by czyzsu
[有机交流] 如何实现卤原子转化 +3 BT20230424 2026-05-15 5/250 2026-05-16 16:20 by czyzsu
[硕博家园] 申请博士 +3 呃?呃 2026-05-15 3/150 2026-05-16 11:01 by a4742549
[文学芳草园] 风把牡丹吹跑了 +5 myrtle 2026-05-12 9/450 2026-05-15 15:27 by myrtle
[教师之家] 教学课件你会给同学吗 +8 硕士研究生吗 2026-05-13 8/400 2026-05-14 22:23 by 常规沥青
[考博] 26应届毕业生考博求助 +3 wo一定上岸 2026-05-13 3/150 2026-05-14 21:47 by 明海天涯
[考博] 材料类只有一篇综述能申博么 +4 乐逍遥谷 2026-05-13 4/200 2026-05-14 12:05 by zhyzzh
[论文投稿] 求助大佬sci投稿哪个好中 +3 江沅188 2026-05-12 4/200 2026-05-13 14:35 by 江沅188
信息提示
请填处理意见