常微分方程方程解为什么延长积分区间结果会溢出。。
函数function dy=ODE1(z,y)
dy=zeros(3,1);
r=0.05;H1=206000;H2=165000;Cp=35.77;F=0.096;Fco=0.00672;Fco2=0.00192;pb=1175000;
dy(1)=(pi*r*r/Fco)*22656346.5*exp(-84816.7/8.314/y(3))*(70*(1-y(1))/(100-14*y(1)-4*y(2)))^0.4734;
dy(2)=(pi*r*r/Fco2)*1070043499*exp(-105802.4/8.314/y(3))*(20*(1-y(2))/(100-14*y(1)-4*y(2)))^0.000945;
dy(3)=(pi*r*r/F/Cp)*(22656346.5*exp(-84816.7/8.314/y(3))*(70*(1-y(1))/(100-14*y(1)-4*y(2)))^0.4734*H1+1070043499*exp(-105802.4/8.314/y(3))*(20*(1-y(2))/(100-14*y(1)-4*y(2)))^0.000945*H2);
当命令为
X0=; tspan=; =ode45(@ODE1,tspan,X0)
还有结果,当命令为
X0=; tspan=; =ode45(@ODE1,tspan,X0)
就没有结果,结果溢出了,谁给解释下。。。 有结果,有警告信息:
Warning: Imaginary parts of complex X and/or Y arguments ignored
方程有问题,与tspan及算法没关系。仔细核对一下微分方程吧。 那为什么我第一个有结果,第二个就溢出了。。
x =
0
0.0013
0.0026
0.0039
0.0052
0.0117
0.0182
0.0247
0.0312
0.0637
0.0962
0.1287
0.1612
0.2012
0.2412
0.2812
0.3212
0.3612
0.4012
0.4412
0.4812
0.5212
0.5612
0.6012
0.6412
0.6812
0.7212
0.7612
0.8012
0.8412
0.8812
0.9212
0.9612
1.0012
1.0412
1.0812
1.1212
1.1612
1.2012
1.2412
1.2812
1.3212
1.3612
1.4012
1.4412
1.4567
1.4722
1.4877
1.5032
1.5187
1.5342
1.5497
1.5652
1.5717
1.5781
1.5846
1.5910
1.5933
1.5955
1.5978
1.6000
y =
0 0500.0000
0.0000 0.0001500.0208
0.0001 0.0001500.0416
0.0001 0.0002500.0624
0.0002 0.0002500.0833
0.0004 0.0005500.1877
0.0006 0.0007500.2927
0.0008 0.0010500.3981
0.0010 0.0012500.5040
0.0020 0.0025501.0407
0.0031 0.0039501.5899
0.0041 0.0053502.1522
0.0052 0.0067502.7280
0.0066 0.0085503.4564
0.0081 0.0104504.2078
0.0095 0.0123504.9836
0.0111 0.0143505.7853
0.0126 0.0164506.6147
0.0143 0.0186507.4737
0.0160 0.0209508.3643
0.0177 0.0233509.2889
0.0195 0.0259510.2501
0.0214 0.0285511.2506
0.0233 0.0313512.2938
0.0254 0.0342513.3833
0.0275 0.0373514.5231
0.0297 0.0405515.7179
0.0320 0.0440516.9730
0.0345 0.0477518.2945
0.0370 0.0516519.6895
0.0397 0.0558521.1663
0.0426 0.0603522.7345
0.0456 0.0652524.4057
0.0489 0.0704526.1936
0.0523 0.0762528.1148
0.0560 0.0824530.1896
0.0600 0.0894532.4440
0.0644 0.0971534.9103
0.0692 0.1057537.6284
0.0744 0.1155540.6540
0.0803 0.1268544.0629
0.0869 0.1400547.9671
0.0946 0.1557552.4956
0.1036 0.1751557.8949
0.1145 0.1999564.5827
0.1194 0.2116567.6516
0.1248 0.2249571.0753
0.1309 0.2402574.9448
0.1379 0.2582579.3900
0.1459 0.2799584.6278
0.1553 0.3065590.8652
0.1667 0.3407598.6361
0.1815 0.3883608.9948
0.1892 0.4144614.4985
0.1981 0.4461621.0190
0.2089 0.4863629.0623
0.2225 0.5409639.5901
0.2282 0.5649644.1108
0.2346 0.5927649.2589
0.2419 0.6256655.2350
0.2504 0.6656662.3501 X0=; tspan=; =ode45(@ODE1,tspan,X0)
结果为
x =
0
0.0013
0.0026
0.0039
0.0052
0.0117
0.0182
0.0247
0.0312
0.0637
0.0962
0.1287
0.1612
0.2037
0.2462
0.2887
0.3312
0.3737
0.4162
0.4587
0.5012
0.5437
0.5862
0.6287
0.6712
0.7137
0.7562
0.7987
0.8412
0.8837
0.9262
0.9687
1.0112
1.0537
1.0962
1.1387
1.1812
1.2237
1.2662
1.3087
1.3512
1.3937
1.4362
1.4787
1.5212
1.5322
1.5432
1.5543
1.5653
1.5696
1.5739
1.5782
1.5826
1.5869
1.5912
1.5956
1.5999
1.6004
1.6009
1.6014
1.6019
1.6024
1.6029
1.6034
1.6039
1.6041
1.6044
1.6046
1.6049
1.6051
1.6054
1.6056
1.6059
1.6068
1.6076
1.6085
1.6094
1.6095
1.6096
1.6097
1.6098
1.6099
1.6100
1.6101
1.6102
1.6104
1.6106
1.6108
1.6110
1.6112
1.6113
1.6114
1.6115
1.6116
1.6117
1.6119
1.6120
1.6120
1.6120
1.6120
1.6120
1.6120
1.6121
1.6121
1.6121
1.6121
1.6122
1.6122
1.6122
1.6122
1.6122
1.6123
1.6123
1.6123
1.6123
1.6123
1.6123
1.6123
1.6123
1.6123
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6124
1.6125
1.6125
1.6125
1.6125
1.6125
1.6126
1.6126
1.6127
1.6128
1.6129
1.6131
1.6134
1.6136
1.6139
1.6147
1.6156
1.6164
1.6172
1.6204
1.6236
1.6268
1.6299
1.6429
1.6559
1.6688
1.6818
1.6863
1.6909
1.6954
1.7000
y =
1.0e+010 *
0 0 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
0.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 - 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 - 0.0000i 0.0000 + 0.0000i
0.0000 - 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 - 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0001 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0001 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0001 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0001 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0001 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0001 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0002 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0003 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0003 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0004 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0005 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0006 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0008 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0009 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0013 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0016 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0020 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0023 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0034 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0044 + 0.0000i
0.0000 + 0.0000i 0.0001 + 0.0000i 0.0054 + 0.0000i
0.0000 + 0.0000i 0.0001 + 0.0000i 0.0065 + 0.0000i
0.0000 + 0.0000i 0.0001 + 0.0000i 0.0096 + 0.0000i
0.0000 + 0.0000i 0.0001 + 0.0000i 0.0127 + 0.0000i
0.0000 + 0.0000i 0.0002 + 0.0000i 0.0158 + 0.0000i
0.0000 + 0.0000i 0.0002 + 0.0000i 0.0189 + 0.0000i
0.0000 + 0.0000i 0.0003 + 0.0000i 0.0289 + 0.0000i
0.0000 + 0.0000i 0.0004 + 0.0000i 0.0388 + 0.0000i
0.0000 + 0.0000i 0.0005 + 0.0000i 0.0488 + 0.0000i
0.0000 + 0.0000i 0.0006 + 0.0000i 0.0588 + 0.0000i
0.0000 + 0.0000i 0.0010 + 0.0000i 0.0932 + 0.0000i
0.0000 + 0.0000i 0.0014 + 0.0000i 0.1277 + 0.0000i
0.0000 + 0.0000i 0.0018 + 0.0000i 0.1622 + 0.0000i
0.0000 + 0.0000i 0.0021 + 0.0000i 0.1966 + 0.0000i
0.0000 + 0.0000i 0.0035 + 0.0000i 0.3255 + 0.0000i
0.0000 + 0.0000i 0.0049 + 0.0000i 0.4543 + 0.0000i
0.0000 + 0.0000i 0.0063 + 0.0000i 0.5832 + 0.0000i
0.0000 + 0.0000i 0.0077 + 0.0000i 0.7120 + 0.0000i
0.0000 + 0.0000i 0.0134 + 0.0000i 1.2377 + 0.0000i
0.0000 + 0.0000i 0.0190 + 0.0000i 1.7634 + 0.0000i
0.0000 + 0.0000i 0.0247 + 0.0000i 2.2891 + 0.0000i
0.0000 + 0.0000i 0.0304 + 0.0000i 2.8148 + 0.0000i
0.0000 + 0.0000i 0.0324 + 0.0000i 2.9998 + 0.0000i
0.0000 + 0.0000i 0.0344 + 0.0000i 3.1849 + 0.0000i
0.0000 + 0.0000i 0.0364 + 0.0000i 3.3699 + 0.0000i
0.0000 + 0.0000i 0.0384 + 0.0000i 3.5550 + 0.0000i 可以帮忙解决下不,谢谢啊 可能是你的方程在t=1.7时,方程会出现复数,比如负数开偶次方。 5# lxx244lxx
提示pb已赋值,但没用上。
再仔细检查一下,如果确信微分方程没有问题的话,可以通过odeset改变一下ode45,ode23s等函数的参数,如最大步长等。。。
odeset
AbsTol: [ positive scalar or vector {1e-6} ]
RelTol: [ positive scalar {1e-3} ]
NormControl: [ on | {off} ]
NonNegative: [ vector of integers ]
OutputFcn: [ function_handle ]
OutputSel: [ vector of integers ]
Refine: [ positive integer ]
Stats: [ on | {off} ]
InitialStep: [ positive scalar ]
MaxStep: [ positive scalar ]
BDF: [ on | {off} ]
MaxOrder: [ 1 | 2 | 3 | 4 | {5} ]
Jacobian: [ matrix | function_handle ]
JPattern: [ sparse matrix ]
Vectorized: [ on | {off} ]
Mass: [ matrix | function_handle ]
MStateDependence: [ none | {weak} | strong ]
MvPattern: [ sparse matrix ]
MassSingular: [ yes | no | {maybe} ]
InitialSlope: [ vector ]
Events: [ function_handle ] 谢谢啊,我用四阶龙格库特法算选用定步长的时候也是这样,不知道怎么回事。莫非真的是方程问题。。 您好,我知道溢出的原因了,是因为积分到一定程度,y(2)的值超过1会产生负数,我想能不能当y(2)=1时,y(2)停止积分,就让他=1,让y(1)和y(3)继续积分,不知道这样应该怎么处理。
close all;
clear all;
X0 = [ 0; 0; 500 ];
tspan = [ 0 1.7 ];
[ x, y ] = ode45(@ODE1, tspan, X0);
plot(x, y);
figure(gcf);
y(:,2)
function dy = ODE1(x, y)
dy = zeros(3,1);
r = 0.05;
H1 = 206000;
H2 = 165000;
Cp = 35.77;
F = 0.096;
Fco = 0.00672;
Fco2 = 0.00192;
pb = 1175000;
dy(1) = (pi*r*r/Fco)*22656346.5*exp( -84816.7/8.314/y(3)) * (70*(1 - y(1))/(100 - 14*y(1) - 4*y(2)))^0.4734;
if y(2) <= 1
dy(2) = (pi*r*r/Fco2)*1070043499*exp( -105802.4/8.314/y(3)) * (20*(1 - y(2))/(100 - 14*y(1) - 4*y(2)))^0.000945;
else
dy(2) = 0;
end
dy(3) = (pi*r*r/F/Cp) * (22656346.5*exp( -84816.7/8.314/y(3)) * (70*(1 - y(1))/(100 - 14*y(1) - 4*y(2)))^0.4734*H1 + ...
1070043499*exp( -105802.4/8.314/y(3)) * (20*(1 - y(2))/(100 - 14*y(1) - 4*y(2)))^0.000945*H2);
谢谢啊,可以了,虽然稍微有点不准
页:
[1]