24小时热门版块排行榜    

查看: 1232  |  回复: 3

田山东

捐助贵宾 (著名写手)

[交流] 【求助】高人能给指点下不?【已解决】 已有2人参与

第一次编矩阵里有复数的程序!够烦人啊!
思路:在外部定义一系列变量,t,w,f,pi为实型,fi为复型;矩阵h0为复型,要求它的特征值,h0由内部子程序调用得到,它又由几个小矩阵:c,a,b组合得到。首先将h0定义为全0矩阵,然后再对它内部片段矩阵赋值,c,a,b按照一定顺序排列在h0里面,得到h0的值后将其传回主程序求特征值。大家能否帮忙看下,不知道h0定义为复型好不好啊
程序见这里:注意,请将后面的.jpg删除后就是f90格式了



program main
use IMSL
implicit none
real,parameter::pi=3.1415927
complex,parameter::fi=(0.0,1.0)
complex q
real t,f,w
  
complex, allocatable::h0(:,: )
real, allocatable:: eigenvalue(: )  
integer :: i,n
read*,n  
allocate(h0(4*n,4*n))
allocate(eigenvalue(n))
w=0.0
t=1.0
f=0.25
call hmatr(h0,n)  
eigenvalue=eig(h0)
do i=1,4*n
   write(*,"('eigenvalue=',f10.7)" )eigenvalue(i)  
end do
stop

contains
subroutine hmatr(h0,n)
integer n,i,j,n0
complex h0

complex,dimension(:,: )::c(4,4),a(4,4),b(4,4)
h0=0.0
a=reshape((/0.0,0.0,0.0,t,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0/),(/4,4/))
b=transpose(a)
do n0=1,2*n-1,2
    c=((/w,t*cmplx(exp(-fi*(-pi+2*pi/3*f*(1.5*n0+1/4)))),0,0,t*exp(fi*(-pi+2*pi/3*f*(1.5*n0+1/4))),w,t,0,0,t,w,t*exp(fi*(-pi+2*pi/3*f*(1.5*(n0+1)+1/4))),0,0,t*exp(-fi*(-pi+2*pi/3*f*(1.5*(n0+1)+1/4))),w/),(/4,4/))
     j=2*n0-1
      do j=1,4*n-3,4
       h0(j:j+3,j:j+3)=c
         if(j==1) then
          h0(j:j+3,j+4:j+7)=b;
          h0(j:j+3,4*n-3:4*n)=a;
        else if(j>=5.and.j<4*n-3) then
          h0(j:j+3,j+4:j+7)=b;
          h0(j:j+3,j-4:j-1)=a;
        else
          h0(4*n-3:4*n,1:4)=b;
          h0(j:j+3,j-4:j-1)=a;
        end if
      end do
end do
end subroutine hmatr
end

出错信息:
1)Error: The shape matching rules of actual arguments and dummy arguments have been violated.   [H0]
call hmatr(h0,n)  
-----------^
2)E:\matlabxuexi\yyuu.f90(36) : Error: A constant or named constant is required in this context.
    c=((/w,t*cmplx(exp(-fi*(-pi+2*pi/3*f*(1.5*n0+1/4)))),0,0,t*exp(fi*(-pi+2*pi/3*f*(1.5*n0+1/4))),w,t,0,0,t,w,t*exp(fi*(-pi+2*pi/3*f*(1.5*(n0+1)+1/4))),0,0,t*exp(-fi*(-pi+2*pi/3*f*(1.5*(n0+1)+1/4))),w/),(/4,4/))
---------^
3)E:\matlabxuexi\yyuu.f90(36) : Error: An INTEGER or REAL data type is required in this context.
    c=((/w,t*cmplx(exp(-fi*(-pi+2*pi/3*f*(1.5*n0+1/4)))),0,0,t*exp(fi*(-pi+2*pi/3*f*(1.5*n0+1/4))),w,t,0,0,t,w,t*exp(fi*(-pi+2*pi/3*f*(1.5*(n0+1)+1/4))),0,0,t*exp(-fi*(-pi+2*pi/3*f*(1.5*(n0+1)+1/4))),w/),(/4,4/))
---------^
4)E:\matlabxuexi\yyuu.f90(39) : Error: The syntax of this substring is invalid.   [H0]
       h0(j:j+3,j:j+3)=c
-------^
Error executing df.exe.

yyuu.obj - 4 error(s), 0 warning(s)

[ Last edited by nono2009 on 2010-8-3 at 09:59 ]
回复此楼

» 猜你喜欢

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

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

pdce218

金虫 (正式写手)

好长啊!看不过来哦,希望早日找到解决方案哦,我刚开始学Fortran,看不懂。
明天会更好……
2楼2010-08-03 00:20:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

nono2009:欢迎分享解决方案。 2010-08-03 09:59:16
已经解决了哈哈
everythinghasitsseason.enjoyyourlife.
3楼2010-08-03 07:31:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)


resonant(金币+1):感谢分享:-) 2010-08-08 09:41:04
应该化成c(1,1),c(1,2),...,c(4,4),然后把它带入到h里去
everythinghasitsseason.enjoyyourlife.
4楼2010-08-08 09:33:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 田山东 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 化学调剂 +5 yzysaa 2026-03-21 5/250 2026-03-21 22:12 by peike
[考研] 0703化学调剂 +11 妮妮ninicgb 2026-03-15 15/750 2026-03-21 19:15 by ColorlessPI
[考研] 材料工程专硕 348分求调剂 +3 冬辞. 2026-03-17 5/250 2026-03-21 18:47 by 学员8dgXkO
[考研] 生物学一志愿985,分数349求调剂 +3 zxts12 2026-03-21 3/150 2026-03-21 16:34 by 33来了真来了
[考研] 材料学学硕080502 337求调剂-一志愿华中科技大学 +4 顺顺顺mr 2026-03-18 5/250 2026-03-21 10:22 by luoyongfeng
[考研] 310求调剂 +3 baibai1314 2026-03-16 3/150 2026-03-21 03:56 by JourneyLucky
[考研] 085700资源与环境308求调剂 +12 墨墨漠 2026-03-18 13/650 2026-03-21 01:42 by JourneyLucky
[考研] 华东师范大学-071000生物学-293分-求调剂 +3 研究生何瑶明 2026-03-18 3/150 2026-03-21 01:30 by JourneyLucky
[考研] 一志愿中海洋材料工程专硕330分求调剂 +8 小材化本科 2026-03-18 8/400 2026-03-20 23:16 by JourneyLucky
[考研] 一志愿中国海洋大学,生物学,301分,求调剂 +5 1孙悟空 2026-03-17 6/300 2026-03-19 23:46 by zcl123
[考研] 081700化工学硕调剂 +3 【1】 2026-03-16 3/150 2026-03-19 23:40 by edmund7
[考研] 085601材料工程专硕求调剂 +10 慕寒mio 2026-03-16 10/500 2026-03-19 15:26 by 丁丁*
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考研] 材料考研调剂 +3 xwt。 2026-03-19 3/150 2026-03-19 11:22 by w沐阳w
[考研] 328求调剂,英语六级551,有科研经历 +4 生物工程调剂 2026-03-16 12/600 2026-03-19 11:10 by 生物工程调剂
[考研] 344求调剂 +6 knight344 2026-03-16 7/350 2026-03-18 20:13 by walc
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 有没有道铁/土木的想调剂南林,给自己招师弟中~ +3 TqlXswl 2026-03-16 7/350 2026-03-17 15:23 by TqlXswl
[考博] 26申博 +4 八6八68 2026-03-16 4/200 2026-03-17 13:00 by 轻松不少随
[考研] 一志愿,福州大学材料专硕339分求调剂 +3 木子momo青争 2026-03-15 3/150 2026-03-17 07:52 by laoshidan
信息提示
请填处理意见