改进 欧拉算法

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值