24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1297  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 322求调剂 +5 123安康 2026-04-12 5/250 2026-04-12 11:24 by ajpv风雷
[考研] 280求调剂 +13 wzzz王 2026-04-09 13/650 2026-04-12 00:31 by 勇攀高峰0126
[考研] 求调剂 +6 小聂爱学习 2026-04-11 9/450 2026-04-11 21:20 by 蓝云思雨
[考研] 283求调剂 086004考英二数二 +17 那个噜子 2026-04-10 18/900 2026-04-11 16:27 by 明月此时有
[考研] 281求调剂 +11 觉得好的吧 2026-04-10 11/550 2026-04-11 09:35 by 逆水乘风
[考研] 346,工科0854求调剂,专硕 +7 moser233 2026-04-10 8/400 2026-04-11 08:52 by 猪会飞
[考研] 材料与化工调剂 +12 否极泰来2026 2026-04-10 13/650 2026-04-11 00:28 by wangjihu
[考研] 302分求调剂 +9 凡语祈愿 2026-04-08 10/500 2026-04-10 23:26 by 314126402
[考研] 本科西工大 324求调剂 +4 wysyjs25 2026-04-10 4/200 2026-04-10 20:00 by 来看流星雨10
[考研] 材料专业344求调剂 +16 hualkop 2026-04-10 21/1050 2026-04-10 17:28 by laoshidan
[考研] 初试261 +3 Asht少 2026-04-10 6/300 2026-04-10 16:38 by Asht少
[考博] 博士自荐 +7 可可小胖 2026-04-08 7/350 2026-04-10 08:28 by kimhero
[考研] 一志愿武理车辆 281 求调剂 +5 上岸研究生. 2026-04-07 5/250 2026-04-09 15:56 by only周
[考研] 085501机械英二77总分294求调剂,接受跨专业学习 +6 守法公民亓纪 2026-04-08 6/300 2026-04-09 15:55 by wp06
[考研] 293分求调剂,外语为俄语 +7 加一一九 2026-04-07 10/500 2026-04-08 20:14 by yutian743
[考研] 22408 266求调剂 +11 masss11222 2026-04-07 14/700 2026-04-08 11:06 by yulian1987
[考研] 22408 一志愿双一流人工智能300分 四六级,数据分析国奖 +4 zzfeng123 2026-04-06 6/300 2026-04-07 21:02 by zzfeng123
[考研] 071000生物学,一志愿深圳大学296分,求调剂 +12 TIckLw 2026-04-06 13/650 2026-04-07 20:34 by lijunpoly
[考研] 297分083200求助 +9 aekx 2026-04-05 9/450 2026-04-06 20:57 by flysky1234
[考研] 生物学学硕求调剂:351分一志愿南京师范大学生物学专业 +6 …~、王…~ 2026-04-06 7/350 2026-04-06 18:54 by macy2011
信息提示
请填处理意见