24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1301  |  回复: 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

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +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的回帖

zhaoshazhu

新虫 (小有名气)

引用回帖:
4楼: Originally posted by NicoleLas at 2015-01-06 19:19:39
估计1stOpt 4.0之后吧,直接支持微分方程拟合。...

老师说低版本的只要把四阶龙格库塔法编进去也可以计算出来呢,可是我的就是没有结果。
5楼2015-01-06 19:37:53
已阅   回复此楼   关注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的回帖

zhaoshazhu

新虫 (小有名气)

引用回帖:
6楼: Originally posted by NicoleLas at 2015-01-06 19:47:53
手册里确实有这样的例子。
   开头几句需要么?如果需要,去掉"//",否则将被注释掉,不起作用。
   如果还是不可以用,哈哈,这个我就不知道了,也许是因为不是正版的缘故吧。...

谢谢
7楼2015-01-06 20:59:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhaoshazhu 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料考研调剂 +26 云木达达 2026-04-11 28/1400 2026-04-12 14:29 by .卷心菜..
[考研] 本科南方医科大学 一志愿985 药学学硕284分 求调剂 +5 弱水听文 2026-04-09 5/250 2026-04-12 13:16 by shengxi123
[考研] 一志愿安大生物学07初试322、本科二本、调剂求助 +5 李多米lee. 2026-04-12 6/300 2026-04-12 09:59 by 雪山飞狐7233
[考研] 310求调剂 +12 666真好 2026-04-11 13/650 2026-04-12 08:40 by Sealedwind
[考研] 求调剂 +6 小聂爱学习 2026-04-11 9/450 2026-04-11 21:20 by 蓝云思雨
[考研] 085410 273分调剂 +4 X1999 2026-04-09 4/200 2026-04-11 13:05 by pies112
[考研] 085506-求调剂-285分 +3 雷欧飞踢 2026-04-08 3/150 2026-04-11 08:37 by zhq0425
[考研] 314求调剂 +18 xhhdjdjsjks 2026-04-09 19/950 2026-04-10 18:53 by HPUCZ
[考研] 求调剂 +11 翩翩一书生 2026-04-09 13/650 2026-04-10 10:27 by liuhuiying09
[考研] 江苏大学 工科调剂 捡漏 +3 Evan_Liu 2026-04-09 5/250 2026-04-10 10:22 by Evan_Liu
[考研] 初试分332,一志愿报考西北工业大学, +11 故人?? 2026-04-09 11/550 2026-04-09 21:54 by JineShine
[考研] 一志愿中国科学院上海有机所,有机化学356分找调剂 +11 Nadiums 2026-04-09 11/550 2026-04-09 18:04 by lijunpoly
[考研] 材料调剂 +10 18815505510 2026-04-09 11/550 2026-04-09 17:07 by 544594351
[考研] 一志愿武理车辆 281 求调剂 +5 上岸研究生. 2026-04-07 5/250 2026-04-09 15:56 by only周
[考研] 材料工程322 +18 哈哈哈吼吼吼哈 2026-04-07 19/950 2026-04-09 10:44 by cymywx
[考研] 264求调剂 +11 麦小叮当 2026-04-07 11/550 2026-04-08 16:05 by 一只好果子?
[考研] 一志愿吉大化学327求调剂 +12 王王白石 2026-04-06 13/650 2026-04-08 16:05 by luoyongfeng
[考研] 275 求调剂 +8 Lei812514 2026-04-07 8/400 2026-04-08 12:46 by chemisry
[考研] 263分B区求调剂 +6 李nihao 2026-04-08 6/300 2026-04-08 09:38 by 南开小綦
[考研] 一志愿太原理工大学计算机技术专硕348,求调剂指导 +3 nexious 2026-04-05 3/150 2026-04-07 08:19 by jp9609
信息提示
请填处理意见