24小时热门版块排行榜    

查看: 646  |  回复: 1

lernen8

新虫 (初入文坛)

[求助] 求帮助!改Function中的可变系数进行循环计算的问题

没有金币了啊!!!希望发扬雷锋精神啊!求大神帮忙解决问题啊!
我想用Fortran 求解非线性方程组,程序是Monte Carlo法
程序由主程序,Function, Subroutine三部分组成。
Function给出了非线性方程组,通过subroutine进行计算非线性方程组,主程序给出了初始计算值X1,X2,X3。

问题是, Function 中有个系数M是变化的,
在subroutine(或者主程序)中,先设定了初始值M0,每次计算结束了X后,由X计算新的M=f(x).
如果新Mc 和旧M差别在1.0E-05内就结束计算,
否则重新赋予Function 系数M, 重新调用子程序循环计算X.

     DIMENSION X(N), Y( N)
     REAL NRND1
     External F
      Double precision R, M, M0, Mc
      Double precision R=1.0E-4; d=30.0E-3; k=383.0;
     * h=40000.0; T=303.0
        A= B
        K= 1
        R= 1.0E0
        M0=450.0
40      M=M0
       Z= F(X, N, M)
  10   IF (A. GE. EPS) THEN
      L= L+ 1
      DO 20 I= 1, N
  20  Y(I) = -A+ 2.0* A* NRND1(R) + X(I)
      Z1= F(Y, N, M)
      K= K+ 1
      IF ( Z1. GE. Z) THEN
      IF (K .GT. M) THEN
       K= 1
       A= A/2.0
      ENDIF
      GOTO 10
      ELSE
       K= 1
      DO 30 I= 1, N
  30   X(I) = Y( I)
       Z= Z1
       IF ( Z. GE. EPS) GOTO 10
      ENDIF
       ENDIF
      
      Mc=T+(1000.0*X(1)-M)*(d/k+1/h)/R
      IF(ABS(M-Mc) .GE. EPS) THEN
      M0=(M+Mc)/2
      GOTO 40   
      
      ENDIF
      END

上面程序是对subroutine的修改。倒数第6行直接调用X1对新的Mc计算,并赋值给M0,然后返回行40。
但是貌似根本就没有把新的M传递给方程F(X,N,M)进行循环计算。最后只有第一次的结果。

难道计算得到的X1不能直接调用,用于方程计算么?(尝试过把X1直接调出主程序计算倒数第6行的方程,方程结果根本就不对)
此子程序有否错误呢?
谢谢!
回复此楼

» 猜你喜欢

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

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

学虫dj

金虫 (正式写手)

看了半天没看懂~楼主最好把代码打包,问题说清楚~
穷则独善其事,达则兼济天下
2楼2014-05-26 16:40:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lernen8 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 269求调剂 +4 我想读研11 2026-03-23 4/200 2026-03-23 21:25 by pswait
[考研] 一志愿武理材料工程348求调剂 +6  ̄^ ̄゜汗 2026-03-19 9/450 2026-03-23 19:53 by pswait
[考研] 生物学一志愿985,分数349求调剂 +6 zxts12 2026-03-21 9/450 2026-03-23 18:37 by macy2011
[考研] 328求调剂,英语六级551,有科研经历 +7 生物工程调剂 2026-03-17 12/600 2026-03-23 18:18 by YMU施老师
[考研] 070300,一志愿北航320求调剂 +3 Jerry0216 2026-03-22 5/250 2026-03-23 09:16 by 。。堂堂
[考研] 315分,诚求调剂,材料与化工085600 +3 13756423260 2026-03-22 3/150 2026-03-22 20:11 by edmund7
[考研] 354求调剂 +7 Tyoumou 2026-03-18 10/500 2026-03-22 11:11 by 人来盛
[基金申请] 山东省面上项目限额评审 +4 石瑞0426 2026-03-19 4/200 2026-03-22 08:50 by Wei_ren
[考研] 化学调剂 +5 yzysaa 2026-03-21 5/250 2026-03-21 22:12 by peike
[考研] 求调剂 +4 要好好无聊 2026-03-21 4/200 2026-03-21 18:57 by 学员8dgXkO
[考研] 材料工程专硕 348分求调剂 +3 冬辞. 2026-03-17 5/250 2026-03-21 18:47 by 学员8dgXkO
[考研] 278求调剂 +9 烟火先于春 2026-03-17 9/450 2026-03-21 17:47 by 学员8dgXkO
[考研] 0703化学297求调剂 +3 Daisy☆ 2026-03-20 3/150 2026-03-21 17:45 by ColorlessPI
[考研] 材料与化工(0856)304求 B区 调剂 +3 邱gl 2026-03-21 3/150 2026-03-21 13:47 by lature00
[考研] 二本跨考郑大材料306英一数二 +3 z1z2z3879 2026-03-17 3/150 2026-03-21 02:29 by JourneyLucky
[考研] A区线材料学调剂 +5 周周无极 2026-03-20 5/250 2026-03-20 21:33 by laoshidan
[考研] 一志愿南理工085701环境302求调剂院校 +3 葵梓卫队 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
[考研] 一志愿中国海洋大学,生物学,301分,求调剂 +5 1孙悟空 2026-03-17 6/300 2026-03-19 23:46 by zcl123
[考研] 320求调剂0856 +3 不想起名字112 2026-03-19 3/150 2026-03-19 22:53 by 学员8dgXkO
[考研] 085600材料与化工调剂 324分 +10 llllkkkhh 2026-03-18 12/600 2026-03-19 14:33 by llllkkkhh
信息提示
请填处理意见