24小时热门版块排行榜    

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

木虫 (正式写手)

引用回帖:
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的回帖
查看全部 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的回帖

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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 279学硕食品专业求调剂院校 20+3 孤独的狼爱吃羊 2026-04-12 15/750 2026-04-12 16:52 by ajpv风雷
[考研] 一志愿085802 323分求调剂 +9 drizzle_9 2026-04-12 10/500 2026-04-12 14:51 by drizzle_9
[考研] 材料相关专业344求调剂双非工科学校或课题组 +7 hualkop 2026-04-12 7/350 2026-04-12 14:09 by 380984326
[考研] 电气工程专硕320求调剂 +5 小麻子111 2026-04-10 5/250 2026-04-12 10:47 by zhouyuwinner
[考研] 268分085602化学工程调剂 +28 月照花林。 2026-04-09 28/1400 2026-04-12 02:38 by 秋豆菜芽
[考研] 一志愿新疆大学085401,314分 +4 咔咔咔咔9 2026-04-05 4/200 2026-04-12 02:21 by 秋豆菜芽
[考研] 290求调剂 +13 luoziheng 2026-04-10 13/650 2026-04-11 23:15 by labixiaoqiao
[考研] 药学专硕调剂 +8 ? 一路生?花? 2026-04-10 10/500 2026-04-11 21:21 by zhouxiaoyu
[考研] 343求调剂 +9 王国帅 2026-04-10 9/450 2026-04-11 20:31 by dongdian1
[考研] 本人女孩 +7 吼吼, 2026-04-10 9/450 2026-04-11 14:45 by ACS Nano——
[考研] 一志愿985机械学硕380求调剂 +5 关关雎鸠10 2026-04-11 5/250 2026-04-11 10:10 by 知念。A
[考研] 293求调剂 +6 勇远库爱314 2026-04-08 6/300 2026-04-11 10:08 by zhq0425
[考研] 一志愿211,化学学硕,310分,本科重点双非,求调剂 +17 努力奋斗112 2026-04-06 20/1000 2026-04-11 00:31 by wangjihu
[考研] 化学工程与技术324调剂 +23 孙常华 2026-04-09 25/1250 2026-04-11 00:07 by 骑牛渡寒江
[考研] 求调剂288 +6 ioodiiij 2026-04-10 8/400 2026-04-10 21:07 by zhouxiaoyu
[考研] 调剂 +19 2261744733 2026-04-08 19/950 2026-04-09 19:11 by vgtyfty
[考研] 086000生物与医药调剂 +7 awwwwwooooo 2026-04-09 7/350 2026-04-09 13:31 by 北极159263
[考研] 材料工程专业日语生求调剂 +9 111623 2026-04-07 9/450 2026-04-07 23:31 by 一只好果子?
[考研] 22408 318分求调剂 +4 勤奋的小笼包 2026-04-06 6/300 2026-04-07 15:05 by 纸鹤555
[考研] 312求调剂 +4 LR6 2026-04-06 4/200 2026-04-07 08:42 by jp9609
信息提示
请填处理意见