24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 653  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 271求调剂 +34 2261744733 2026-04-11 40/2000 2026-04-13 23:15 by pies112
[考研] 332求调剂 +15 蕉蕉123 2026-04-10 15/750 2026-04-13 23:12 by pies112
[考研] 求调剂,985材料与化工348分 +9 涵竹刘 2026-04-11 14/700 2026-04-13 22:26 by 涵竹刘
[考研] 284求调剂 +16 让我上岸吧阿西 2026-04-09 16/800 2026-04-13 22:18 by pies112
[考研] 327求调剂 +21 Xxjc1107. 2026-04-13 23/1150 2026-04-13 21:53 by bljnqdcc
[考研] 085801电气专硕272求调剂 +12 电气李 2026-04-13 13/650 2026-04-13 21:12 by gretl
[考研] 食品与营养(0955)271求调剂 +9 升格阿达 2026-04-12 9/450 2026-04-13 14:12 by maddjdld
[考研] 339求调剂 +4 hanwudada 2026-04-12 4/200 2026-04-13 12:03 by 蓝云思雨
[考研] 考研二轮调剂 +10 故人?? 2026-04-09 10/500 2026-04-13 09:55 by szhize
[考研] 22408 352分求调剂 +5 努力的夏末 2026-04-09 5/250 2026-04-12 19:17 by wj165256
[考研] 295分求调剂 +13 ?要上岸? 2026-04-10 13/650 2026-04-12 15:37 by laoshidan
[考研] 293求调剂 +6 勇远库爱314 2026-04-08 6/300 2026-04-11 10:08 by zhq0425
[考研] 337求调剂 +4 研s. 2026-04-10 4/200 2026-04-11 08:57 by zhq0425
[考研] 284求调剂 +12 archer.. 2026-04-10 13/650 2026-04-11 08:44 by zhq0425
[考研] 342电子信息专硕求调剂 +9 你让我怎么荔枝 2026-04-10 10/500 2026-04-11 08:33 by zhq0425
[考研] 22408 366分,本科211,一志愿西工大 +4 Rubt 2026-04-09 4/200 2026-04-10 19:51 by chemisry
[考研] 本科西工大 0856 324求调剂 +10 wysyjs25 2026-04-09 11/550 2026-04-10 08:37 by 5268321
[考研] 085601初试330分找调剂 +10 流心奶黄包l 2026-04-09 10/500 2026-04-10 08:14 by Sammy2
[考研] 083200 初试305分 求调剂 暂不考虑跨专业 +15 Claireyyyy 2026-04-09 15/750 2026-04-09 16:11 by zhuimr
[考研] 286求调剂 +19 Faune 2026-04-08 20/1000 2026-04-09 08:36 by 哦哦123
信息提示
请填处理意见