| 查看: 2761 | 回复: 23 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
maomao1210金虫 (正式写手)
|
[交流]
【分享】暑假闲来无事,与虫虫共同进步已有17人参与
|
||
|
暑假闲来无事, 有对写学术型代码感兴趣的虫子可以一起共同进步 [ Last edited by maomao1210 on 2010-7-28 at 18:53 ] |
» 猜你喜欢
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有7人回复
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有8人回复
申请2026年博士
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有5人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有5人回复
2025冷门绝学什么时候出结果
已经有7人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有6人回复
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有7人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
闲来无事不从容
已经有16人回复
【原创】请教一下夫妻两人同专业共同申请海外博士后的问题
已经有45人回复
高人能给指点下不?
★
小木虫(金币+0.5):给个红包,谢谢回帖交流
小木虫(金币+0.5):给个红包,谢谢回帖交流
|
第一次编矩阵里有复数的程序!够烦人啊! 思路:在外部定义一系列变量,t,w,f,pi为实型,fi为复型;矩阵h0为复型,要求它的特征值,h0由内部子程序调用得到,它又由几个小矩阵:c,a,b组合得到。首先将h0定义为全0矩阵,然后再对它内部片段矩阵赋值,c,a,b按照一定顺序排列在h0里面,得到h0的值后将其传回主程序求特征值。大家能否帮忙看下,不知道h0定义为复型好不好啊 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 田山东 on 2010-7-23 at 11:32 ] |

6楼2010-07-23 11:30:13













回复此楼