24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1300  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhaoshazhu

新虫 (小有名气)

[求助] 求1stopt指点 已有1人参与

下面是我利用低版本的1stopt编写四阶龙格库塔法计算动力学方程,但是程序或许有问题我没有算出结果,请指点;
Title "Kinetics";
//Parameters k1,k2,k3,k4,k5,k6,k7,k8,k9;
//Variable t,F0,F,yH2,yDMM,yMe,yH2in,yDMMin,yMein;
//Variable  y1[output],y2[output],y3[output];
StartProgram  [VB];
Dim iter As  Integer
dim yHPMin As  Double
dim yPDOin As  Double
dim yNPAin As  Double
dim F0 As  Double
dim F As  Double
Dim RK_i As  Integer
Dim h As  Double
Dim i As  Integer
dim j As  Integer
dim c As  Double
dim r1 As  Double
dim r2 As  Double
dim r3 As  Double
dim n_H2 As  Double
dim n_DMM As  Double
dim n_Me As  Double
dim y_H2 As  Double
dim y_DMM As  Double
dim y_Me As  Double
dim y_HPM As  Double
dim y_PDO As  Double
dim y_NPA As  Double
dim k1 As  Double
dim k2 As  Double
dim k3 As  Double
dim k4 As  Double
dim k5 As  Double
dim k6 As  Double
dim k7 As  Double
dim k8 As  Double
dim k9 As  Double
dim Y_Y01 As  Double
dim Y_Y02 As  Double
dim Y_Y03 As  Double
dim Y_Y04 As  Double
dim Y_Y05 As  Double
dim Y_Y06 As  Double
dim y_y1 As  Double
dim y_y2 As  Double
dim y_y3 As  Double
dim x_x1 As  Double
dim x_x2 As  Double
dim x_x3 As  Double
dim d_d1 As  Double
dim d_d2 As  Double
dim d_d3 As  Double
dim e_e1 As  Double
dim e_e2 As  Double
dim e_e3 As  Double
dim e_e4 As  Double
dim e_e5 As  Double
for  iter to Datalenth-1
     yHPMin=0
     yPDOin=0
     yNPAin=0
     h=1.0008/20
     Y_Y01=yHPMin
     Y_Y02=yPDOin
     Y_Y03=yNPAin
     Y_Y04=yH2in(iter)
     Y_Y05=yDMMin(inter)
     Y_Y06=yMein(inter)

     For  RK_i=1  to 20
          e_e1=0.5
          e_e2=0.5
          e_e3=1
          e_e4=1
          e_e5=0.5
          x_x1=Y_Y01
          x_x2=Y_Y02
          x_x3=Y_Y03
          For j=1 To 4
              y_HPM=x_x1
              y_PDO=x_x2
              y_NPA=x_x3
              n_H2=F0*yH2- 2*F*(y_HPM+y_PDO+y_NPA )
              n_DMM=F0*yDMM- F*(y_HPM+y_PDO+y_NPA )
              n_Me=F0*yMe+F*(y_HPM+y_PDO)
              y_H2= n_H2/F
              y_DMM= n_DMM/F
              y_ME= n_Me/F
              r1 = k7*k1*k2*y_H2*y_DMM /(1+k1*y_H2+k2*y_DMM+k3*y_Me+k4*y_HPM+k5*y_PDO+k6*y_NPA)^2
              r2 = k8*k1*k4*y_H2*y_HPM/((1+k1*y_H2+k2*y_DMM+k3*y_Me+k4*y_HPM+k5*y_PDO+k6*y_NPA)^2
              r3 = k9*k1*k5*y_H2*y_PDO/((1+k1*y_H2+k2*y_DMM+k3*y_Me+k4*y_HPM+k5*y_PDO+k6*y_NPA)^2
              d_d1 = r1-r2
              d_d2= r2-r3
              d_d3 = r3

              c=h*d_d1
              if j=1 then
                 x_x1=Y_Y01+e_e1*c
                 y_y1=y_y1+e_e2*c/3
              elseif j=2 then
                 x_x1=Y_Y01+e_e2*c
                 y_y1=y_y1+e_e3*c/3
              elseif j=3 then
                 x_x1=Y_Y01+e_e3*c
                 y_y1=y_y1+e_e4*c/3
             elseif j=4 then
                 x_x1=Y_Y01+e_e4*c
                 y_y1=y_y1+e_e5*c/3
             end if
             c=h*d_d2
             if j=1 then
                 x_x2=Y_Y02+e_e1*c
                 y_y2=y_y2+e_e2*c/3
              elseif j=2 then
                 x_x2=Y_Y02+e_e2*c
                 y_y2=y_y2+e_e3*c/3
              elseif j=3 then
                 x_x2=Y_Y02+e_e3*c
                 y_y2=y_y2+e_e4*c/3
             elseif j=4 then
                 x_x2=Y_Y02+e_e4*c
                 y_y2=y_y2+e_e5*c/3
             end if
             c=h*d_d3
             if j=1 then
                 x_x3=Y_Y03+e_e1*c
                 y_y3=y_y3+e_e2*c/3
              elseif j=2 then
                 x_x3=Y_Y03+e_e2*c
                 y_y3=y_y3+e_e3*c/3
              elseif j=3 then
                 x_x3=Y_Y03+e_e3*c
                 y_y3=y_y3+e_e4*c/3
             elseif j=4 then
                 x_x3=Y_Y03+e_e4*c
                 y_y3=y_y3+e_e5*c/3
             end if

          Next
          Y_Y01=y_y1
          Y_Y02=y_y2
          Y_Y03=y_y3

       Next
       y1(inter)=y_y1
       y2(inter)=y_y2
       y3(inter)=y_y3

Next
EndProgram;
Data;
2.05         0.48911        0.48786        0.92932        0.00258        0.06810        0.000031         0.00116         0.001137
1.37         0.73291        0.73179        0.93029        0.00155        0.06817        0.000078         0.00135         0.000573
1.62         0.61922        0.61815        0.91758        0.00173        0.08068        0.000104         0.00173         0.000475
1.98         0.50545        0.50453        0.89928        0.00187        0.09884        0.000289         0.00236         0.000444
1.21         0.82549        0.82425        0.91772        0.00158        0.08070        0.000414         0.00190         0.000280
1.49         0.67418        0.67281        0.89895        0.00224        0.09881        0.000641         0.00202         0.000292
2.70         0.37162        0.36991        0.81544        0.00531        0.17925        0.001304         0.00232         0.000368
1.02         0.97819        0.97574        0.92936        0.00254        0.06810        0.000206         0.00178         0.000361
0.82         1.22297        1.21986        0.92918        0.00273        0.06809        0.000465         0.00161         0.000189
0.97         1.03243        1.03056        0.91722        0.00213        0.08065        0.000790         0.00138         0.000149
1.19         0.84404        0.84146        0.89756        0.00379        0.09865        0.000972         0.00173         0.000210
2.16         0.46514        0.46287        0.81436        0.00663        0.17902        0.001744         0.00212         0.000349
回复此楼

» 猜你喜欢

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

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

NicoleLas

木虫 (正式写手)

引用回帖:
5楼: Originally posted by zhaoshazhu at 2015-01-06 19:37:53
老师说低版本的只要把四阶龙格库塔法编进去也可以计算出来呢,可是我的就是没有结果。...

手册里确实有这样的例子。
   开头几句需要么?如果需要,去掉"//",否则将被注释掉,不起作用。
   如果还是不可以用,哈哈,这个我就不知道了,也许是因为不是正版的缘故吧。
Be water, my friend.
6楼2015-01-06 19:47:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

NicoleLas

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
1stOpt 1.5**版似乎不支持你的要求,而且你未去掉注释符号"//"
Be water, my friend.
2楼2015-01-06 18:57:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhaoshazhu

新虫 (小有名气)

引用回帖:
2楼: Originally posted by NicoleLas at 2015-01-06 18:57:32
1stOpt 1.5**版似乎不支持你的要求,而且你未去掉注释符号"//"

哪个版本支持啊?
3楼2015-01-06 19:11:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

引用回帖:
3楼: Originally posted by zhaoshazhu at 2015-01-06 19:11:33
哪个版本支持啊?...

估计1stOpt 4.0之后吧,直接支持微分方程拟合。
Be water, my friend.
4楼2015-01-06 19:19:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求调剂,262机械专硕 +8 嗯yyl 2026-04-08 8/400 2026-04-12 02:31 by 秋豆菜芽
[考研] 22408调剂315分 +3 zhuangyan123 2026-04-09 3/150 2026-04-12 00:25 by 蓝云思雨
[考研] 291分调剂 +5 上岸小莹加油 2026-04-09 6/300 2026-04-11 21:06 by 逆水乘风
[考研] 求调剂,一志愿大连理工大学354分 +5 雨声余生 2026-04-11 6/300 2026-04-11 16:12 by 雨声余生
[考研] 085600材料与化工329分求调剂 +16 叶zilin 2026-04-10 16/800 2026-04-11 11:04 by may_新宇
[考研] 调剂 +4 电气300求调剂不 2026-04-08 7/350 2026-04-11 10:44 by 紫曦紫棋
[考研] 考研调剂 +26 硕星赴 2026-04-09 27/1350 2026-04-10 22:24 by 猪会飞
[考研] 287求调剂 +15 Fnhc 2026-04-07 21/1050 2026-04-10 19:09 by chemisry
[考研] 293调剂 +25 yj1221 2026-04-08 26/1300 2026-04-10 15:02 by 柴小白
[考研] 调剂申请086000一志愿西北农林科技大学生物与医药320分-本科齐鲁工业大学 +3 美美女士 2026-04-09 3/150 2026-04-10 10:31 by liuhuiying09
[考研] 314求调剂 +14 weltZeng 2026-04-09 14/700 2026-04-09 23:14 by wolf97
[考研] 一志愿中科院105500专业总分315求调剂 +6 lallalh 2026-04-09 7/350 2026-04-09 17:51 by lallalh
[考研] 材料调剂 +10 18815505510 2026-04-09 11/550 2026-04-09 17:07 by 544594351
[论文投稿] 求助文献原文 10+3 18500821399 2026-04-08 3/150 2026-04-09 16:56 by 北京莱茵润色
[考研] 322求调剂,08工科 +3 今天是个小号 2026-04-08 3/150 2026-04-09 15:53 by wp06
[考研] 086004 求调剂 309 +7 Yin DY 2026-04-08 7/350 2026-04-09 13:59 by Delta2012
[考研] 材料307分求大佬组收留 +17 Hll胡 2026-04-07 17/850 2026-04-09 10:53 by liuhuiying09
[考研] 0703化学调剂 348分 +14 唉我超真没招了 2026-04-06 15/750 2026-04-08 19:16 by 我减肥1
[考研] 22408 一志愿双一流人工智能300分 四六级,数据分析国奖 +4 zzfeng123 2026-04-06 6/300 2026-04-07 21:02 by zzfeng123
[考研] 308求调剂 +3 终不似从前 2026-04-05 3/150 2026-04-05 20:07 by 啵啵啵0119
信息提示
请填处理意见