| 查看: 505 | 回复: 1 | ||
[求助]
求助:迭代计算有问题
|
|
编的程序迭代部分代码如下,在运行的时候出现问题,无论开始给一维数组A3赋非0的任何值,程序都只是迭代计算2次,而且结果也不太对,想请教一下各位大神,这段代码中哪里出现了问题?事关毕业,麻烦各位了! ******************************************************** !1)赋初值给A3 A3=1.D0 ! !2)计算U3XT,U3YT:含有待求系数列阵A3和边界位移列阵U3B itera_of_A3 OU3X=MATMUL(EX,U3B)+MATMUL(DX,A3) U3Y=MATMUL(EY,U3B)+MATMUL(DY,A3) DO i=1,M DO t=1,M IF(i==t)THEN U3XT(i,t)=U3X(i) U3YT(i,t)=U3Y(i) ELSE U3XT(i,t)=0 U3YT(i,t)=0 END IF END DO END DO ! !3)计算系数矩阵C1和C2:含有待求的系数列阵A3 temp1C1=MATMUL(U3XT,temp1B1) C1A=MATMUL(temp1C1,U3B) temp3C1=MATMUL(U3XT,A11) C1B=MATMUL(temp3C1,A3) temp2C1=MATMUL(EXY,U3B)+MATMUL(DXY,A3) C1C=0.5*(1.+MIU)*MATMUL(U3YT,temp2C1) C1=-C1A-C1B-C1C ! temp1C2=MATMUL(U3YT,temp2B2) C2A=MATMUL(temp1C2,U3B) temp2C2=MATMUL(U3YT,A22) C2B=MATMUL(temp2C2,A3) C2C=0.5*(1.D0+MIU)*MATMUL(U3XT,temp2C1) C2=-C2A-C2B-C2C ! !4)A1,A2:两个待求的系数矩阵 !A1 A1A=A11-MATMUL(A12,A22N) temp1A1=MATMUL(A12,A22N) temp2A1=C2-B2 temp3A1=MATMUL(temp1A1,temp2A1) A1B=C1-B1-temp3A1 A1=MATMUL(A1A,A1B) ! !A2 A2B=C1-B1-MATMUL(A11,A1) A2=MATMUL(A12N,A2B) ! !5)U1XT,U1YT,U2XT,U2YT,U3,U3XX,U3YY,U3XY U1X=MATMUL(EX,U1B)+MATMUL(DX,A1) U1Y=MATMUL(EY,U1B)+MATMUL(DY,A1) U2X=MATMUL(EX,U2B)+MATMUL(DX,A2) U2Y=MATMUL(EY,U2B)+MATMUL(DY,A2) U3=MATMUL(E,U3B)+MATMUL(D,A3) U3XX=MATMUL(EXX,U3B)+MATMUL(DXX,A3) U3YY=MATMUL(EYY,U3B)+MATMUL(DYY,A3) U3XY=MATMUL(EXY,U3B)+MATMUL(DXY,A3) DO i=1,M DO t=1,M IF(i==t)THEN U1XT(i,t)=U1X(i) U1YT(i,t)=U1Y(i) U2XT(i,t)=U2X(i) U2YT(i,t)=U2Y(i) ELSE U1XT(i,t)=0 U1YT(i,t)=0 U2XT(i,t)=0 U2YT(i,t)=0 END IF END DO END DO ! !6)利用简单迭代法x=f(x)计算 DD1=U1XT+0.5*MATMUL(U3XT,U3XT)+MIU*U2YT+0.5*MIU*MATMUL(U3YT,U3YT) DD2=(1.D0-MIU)*(U1YT+U2XT+MATMUL(U3XT,U3YT)) DD3=U2YT+0.5*MATMUL(U3YT,U3YT)+MIU*U1XT+0.5*MIU*MATMUL(U3XT,U3XT) DD4=MATMUL(DD1,EXX)+MATMUL(DD2,EXY)+MATMUL(DD3,EYY) K1=MATMUL(DD4,U3B) DD5=MATMUL(DD1,DXX)+MATMUL(DD2,DXY)+MATMUL(DD3,DYY) K2=(1.D0/D0)*(q-2.D0*ks*U3) K3=K1+K2 ! !求DD5的逆阵DD5N DWZ_DD5=DD5 ! !生成单位阵 EDD5=0 DO i=1,M EDD5(i,i)=1 END DO DD5N=EDD5 !调用子程序 CALL gaussr_inverse(DWZ_DD5,M,M,DD5N,M,M) ! !判断逆矩阵是否有效 DWZ_DD5=MATMUL(DD5,DD5N) dm_DD5=0 DO i=1,M DO t=1,M d_DD5=DWZ_DD5(i,t)-EDD5(i,t) IF(abs(d_DD5) > abs(dm_DD5) ) THEN dm_DD5=d_DD5 END IF END DO END DO IF(ABS(dm_DD5)<error_inverse) GO TO 74 WRITE(*,*)'Error of DD5 inverse' 74 CONTINUE ! !迭代式 A3I=-MATMUL(DD5N,K3) MAX_A3L=0 DO i=1,M A3L=A3(i)-A3I(i) IF(ABS(A3L)>ABS(MAX_A3L))THEN MAX_A3L=A3L END IF END DO n_itera=n_itera+1 IF(MAX_A3L<=itera_A3_error)EXIT itera_of_A3 A3=A3I END DO itera_of_A3 |
» 猜你喜欢
EST投稿状态问题
已经有6人回复
职称评审没过,求安慰
已经有15人回复
垃圾破二本职称评审标准
已经有11人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有16人回复
谈谈两天一夜的“延安行”
已经有14人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
聘U V热熔胶研究人员
已经有10人回复
求助文献
已经有3人回复
投稿返修后收到这样的回复,还有希望吗
已经有8人回复
三无产品还有机会吗
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
求助,大神帮忙看看我的UDF代码错误在哪里,关于出口温度调用到进口温度
已经有7人回复
高斯运行出现问题,请各位帮看下
已经有6人回复
comsol求解报错,求助!
已经有10人回复
按照ansys官方教程一步步练习,求解时经常出现问题,求大神分析
已经有14人回复
fluent非稳态计算两秒后出现不收敛,求指点,谢谢哦
已经有19人回复
FLUENT,UDF加载之后提示Divergence detected in AMG solver错误,求解!
已经有12人回复
matlab数值计算时迭代项分母为零的时候怎么办?
已经有15人回复
求助【COMSOL计算报错】
已经有9人回复
求大神帮我改一下下面的程序!matlab迭代法的 不知道错在哪里!
已经有7人回复
fluent6.3能算,到14.0反而算不了
已经有9人回复
fluent无法迭代计算,没有响应
已经有13人回复
Fluent工程师针对湍流粘性比超过限制问题的解答
已经有14人回复
[求助] fluent设置参数时,工作区出现错误提示信息,求助是什么原因造成的?
已经有7人回复
怎样解决FLUENT received fatal signal (ACCESS_VIOLATION)的错误?
已经有20人回复
CASTEP计算出错
已经有7人回复
声子计算又负频的出现!!!
已经有24人回复
fluent迭代时候出现的问题
已经有7人回复
【求助】问一个计算数学就业方向的问题。
已经有21人回复
【求助】FLuent计算时出现错误
已经有4人回复
【求助】fluent的传热问题,计算结果有没有问题,请大家帮忙看看。【已解决】
已经有10人回复
【求助】态密度计算究竟是自洽计算,还是非自洽计算?
已经有24人回复













O
回复此楼