import matplotlib.pyplot as plt
import numpy as np
x0=0
y0=1
t=0.1
yb=1
x=np.zeros(100)
y=np.zeros(100)
X=np.zeros(100)
Y=np.zeros(100)
for i in range(1,100):
y0=1.1*y0-0.2*x0/y0
x0=x0+t
x1=x0+t
k0=y0-2*x0/y0
yb=y0+t*k0
k1=yb-2*x1/yb
y1=y0+t*(k0+k1)/2
print(x0,y1)
x[i]=x0
y[i]=y0
X[i]=x1
Y[i]=y1
plt.plot(X,Y,color='blue') #蓝线表示改进后
plt.scatter(X,Y) #画点
plt.plot(x,y,color='orange') #改进前用黄线表示
plt.show()
其中蓝点蓝线为改进后,黄线为改进前。对比如下。
图像只能看到微小差别,具体可以通过数据体现出来。
显然改进后更加精确。
改进后:
0.1 1.1887189168573609
0.2 1.2750153906892359
0.30000000000000004 1.3562853761862597
0.4 1.4335894265633111
0.5 1.5077355781565076
0.6 1.5793748423070222
0.7 1.649058792757653
0.7999999999999999 1.7172771317728477
0.8999999999999999 1.7844840294711586
0.9999999999999999 1.851117928821137
1.0999999999999999 1.9176174915642807
1.2 1.9844352968084187
1.3 2.052050308084143
1.4000000000000001 2.1209797702035393
1.5000000000000002 2.1917909719675155
1.6000000000000003 2.26511315563987
1.7000000000000004 2.341649736890182
1.8000000000000005 2.4221909018380314
1.9000000000000006 2.5076265618660933
2.0000000000000004 2.5989595689952942
2.1000000000000005 2.697319026566941
2.2000000000000006 2.8039734774526153
2.3000000000000007 2.9203437237588057
2.400000000000001 3.0480150383237907
2.500000000000001 3.1887485788219196
2.600000000000001 3.344491915895019
2.700000000000001 3.517388736426386
2.800000000000001 3.7097879715064757
2.9000000000000012 3.9242528055109887
3.0000000000000013 4.163570219961383
3.1000000000000014 4.430761882742317
3.2000000000000015 4.729097283437355
3.3000000000000016 5.062110023906614
3.4000000000000017 5.433618100385905
3.5000000000000018 5.847748875971905
3.600000000000002 6.308969268899691
3.700000000000002 6.82212150578518
3.800000000000002 7.392464640246696
3.900000000000002 8.025721937323548
4.000000000000002 8.728134182510999
4.100000000000001 9.506518989697426
4.200000000000001 10.36833624557774
4.300000000000001 11.321759926054735
4.4 12.375756639239123
4.5 13.54017137861085
4.6 14.825821100777791
4.699999999999999 16.244596870639658
4.799999999999999 17.80957544118423
4.899999999999999 19.53514125631576
4.999999999999998 21.43711998509057
5.099999999999998 23.53292481724034
5.1999999999999975 25.841716875846338
5.299999999999997 28.384581236378065
5.399999999999997 31.18472018473738
5.4999999999999964 34.267665502952596
5.599999999999996 37.66151174206556
5.699999999999996 41.3971726297487
5.799999999999995 45.50866296742794
5.899999999999995 50.03340860033808
5.999999999999995 55.01258729624973
6.099999999999994 60.49150364696352
6.199999999999994 66.52000141363698
6.299999999999994 73.15291707538634
6.399999999999993 80.45057871345081
6.499999999999993 88.47935477388086
6.5999999999999925 97.31225770392207
6.699999999999992 107.02960795508685
6.799999999999992 117.71976439383678
6.8999999999999915 129.47992776379175
6.999999999999991 142.4170245068955
7.099999999999991 156.6486789810136
7.19999999999999 172.30428291463633
7.29999999999999 189.526171822995
7.39999999999999 208.47091908199465
7.499999999999989 229.31075942574736
7.599999999999989 252.2351548098705
7.699999999999989 277.45251687678314
7.799999999999988 305.19210168274714
7.899999999999988 335.7060939122955
7.999999999999988 369.27189952820277
8.099999999999987 406.19466769993176
8.199999999999987 446.8100649377666
8.299999999999986 491.48732665255477
8.399999999999986 540.6326138829767
8.499999999999986 594.6927057064602
8.599999999999985 654.1590609014853
8.699999999999985 719.5722857858154
8.799999999999985 791.527048847667
8.899999999999984 870.6774868485537
8.999999999999984 957.7431515444372
9.099999999999984 1053.515551086507
9.199999999999983 1158.865345569068
9.299999999999983 1274.7502621387862
9.399999999999983 1402.223801620994
9.499999999999982 1542.4448158143534
9.599999999999982 1696.6880425203187
9.699999999999982 1866.3556940805242
9.799999999999981 2052.990204772538
9.89999999999998 2258.2882529495027
改进前:
0.1 1.1
0.2 1.191818181818182
0.30000000000000004 1.277437833714722
0.4 1.35821259956029
0.5 1.4351329186577972
0.6 1.5089662535663324
0.7 1.580338237655218
0.7999999999999999 1.6497834310477122
0.8999999999999999 1.717779347860088
0.9999999999999999 1.7847708324979834
1.0999999999999999 1.8511887110822296
1.2 1.917465025144291
1.3 1.984046272046332
1.4000000000000001 2.0514055684725467
1.5000000000000002 2.1200543441219546
1.6000000000000003 2.190553971934533
1.7000000000000004 2.2635275998130764
1.8000000000000005 2.339672339345207
1.9000000000000006 2.419771873967288
2.0000000000000004 2.504709464330856
2.1000000000000005 2.595481249764899
2.2000000000000006 2.6932096736597324
2.3000000000000007 2.7991568033689833
2.400000000000001 2.914737281245499
2.500000000000001 3.0415306441486285
2.600000000000001 3.181292795402083
2.700000000000001 3.335966513495211
2.800000000000001 3.507691036387956
2.9000000000000012 3.6988109593575618
3.0000000000000013 3.9118849066249957
3.1000000000000014 4.149694651664416
3.2000000000000015 4.415255533297773
3.3000000000000016 4.711829113820219
3.4000000000000017 5.042939033576937
3.5000000000000018 5.412390933993009
3.600000000000002 5.824297167194873
3.700000000000002 6.283106817950801
3.800000000000002 6.793641370604512
3.900000000000002 7.36113619361956
4.000000000000002 7.991287909888882
4.100000000000001 8.690307681027537
4.200000000000001 9.464980455133118
4.300000000000001 10.322730298367317
4.4 11.271692036022365
4.5 12.320789553742157
4.6 13.479821242455882
4.699999999999999 14.759553203479546
4.799999999999999 16.1718209590997
4.899999999999999 17.72964053779977
4.999999999999998 19.447329923268757
5.099999999999998 21.340641974831755
5.1999999999999975 23.42691004691238
5.299999999999997 25.725207659648923
5.399999999999997 28.256523704780307
5.4999999999999964 31.04395481310721
5.599999999999996 34.11291666469445
5.699999999999996 37.491376192797986
5.799999999999995 41.21010681943666
5.899999999999995 45.30296906669943
5.999999999999995 49.80721911541924
6.099999999999994 54.76384813397673
6.199999999999994 60.217955477080224
6.299999999999994 66.21915915995032
6.399999999999993 72.82204735019371
6.499999999999993 80.08667499082237
6.5999999999999925 88.07911007670793
6.699999999999992 96.87203455693935
6.799999999999992 106.54540533113622
6.8999999999999915 117.18718135323435
6.999999999999991 128.89412345653736
7.099999999999991 141.77267417434913
7.19999999999999 155.93992555725364
7.29999999999999 171.52468378767807
7.39999999999999 188.66864027201905
7.499999999999989 207.52765985831195
7.599999999999989 228.2731978919703
7.699999999999989 251.0938589931828
7.799999999999988 276.19711172777073
7.899999999999988 303.8111747603836
7.999999999999988 334.18709163772365
8.099999999999987 367.60101306420745
8.199999999999987 404.3567074186819
8.299999999999986 444.7883223356561
8.399999999999986 489.26342245685134
8.499999999999986 538.1863309694535
8.599999999999985 592.0018053091021
8.699999999999985 651.199080443467
8.799999999999985 716.3163164938686
8.899999999999984 787.9454911281639
8.999999999999984 866.7377812014655
9.099999999999984 953.4094825689436
9.199999999999983 1048.748521887409
9.299999999999983 1153.6216196040705
9.399999999999983 1268.982169250727
9.499999999999982 1395.878904673502
9.599999999999982 1535.4654339912613
9.699999999999982 1689.0107269552052
9.799999999999981 1857.9106510493766
9.89999999999998 2043.7006612058437