改进欧拉公式例题20210924

在这里插入图片描述
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
x = 0
y = 1
m = 0
n = 1
t = 0.1
list_1=[]
list_2=[]
list_3=[]
list_4=[]

for i in range(100):
    print(x,y) #改进欧拉公式
    k1 = t*(y - (2*x)/y)
    k2 = t/2*(y + k1 - (2*(x+t)/(y+k1)))
    y = y + (k1+k2)/2
    x = x + t
    line1 = y #line为每一次获取的数据
    line2 = x    
    list_1.append(line1) #将每一次获取到的数据存放到总的列表中
    list_2.append(line2)
    
    n = 1.1*n - (0.2*m)/n #原欧拉公式
    m = m + t
    line3 = n 
    line4 = m 
    list_3.append(line3) 
    list_4.append(line4)

    
fig1=plt.figure()#创建一个绘图对象  
plt.title("Euler") #图像标题
plt.plot(list_2, list_1, color='green')
plt.plot(x,y)
plt.plot(list_4, list_3, color='red')
plt.plot(m,n)#绘制两个图象进行数据准确度比较
plt.show()
0 1
0.1 1.0729545454545455
0.2 1.1377137182573087
0.30000000000000004 1.195096249520735
0.4 1.2455407289034541
0.5 1.2892054523239507
0.6 1.3260173914180322
0.7 1.3556905471756195
0.7999999999999999 1.377722025569833
0.8999999999999999 1.3913677271060063
0.9999999999999999 1.3955945998433346
1.0999999999999999 1.3890005658643836
1.2 1.3696836131156123
1.3 1.33502231983849
1.4000000000000001 1.281286145966182
1.5000000000000002 1.2028789435062344
1.6000000000000003 1.0906620072365674
1.7000000000000004 0.9273684370676492
1.8000000000000005 0.6690344268178161
1.9000000000000006 -0.04177632257223174
2.0000000000000004 4.719368715529461
2.1000000000000005 5.020060480624651
2.2000000000000006 5.344964865232982
2.3000000000000007 5.696144032435737
2.400000000000001 6.075796320807187
2.500000000000001 6.486267640229576
2.600000000000001 6.930063951568916
2.700000000000001 7.409864882212422
2.800000000000001 7.928538528630943
2.9000000000000012 8.489157499382442
3.0000000000000013 9.095016256964799
3.1000000000000014 9.74964982422964
3.2000000000000015 10.456853930237308
3.3000000000000016 11.220706681049524
3.4000000000000017 12.045591852664637
3.5000000000000018 12.936223915823275
3.600000000000002 13.897674915555351
3.700000000000002 14.935403341987865
3.800000000000002 16.05528514304141
3.900000000000002 17.26364704422396
4.000000000000002 18.567302355840187
4.100000000000001 19.973589463663615
4.200000000000001 21.490413215580382
4.300000000000001 23.126289434037236
4.4 24.890392802451323
4.5 26.792608393211903
4.6 28.84358712567441
4.699999999999999 31.05480546476909
4.799999999999999 33.438629694677175
4.899999999999999 36.008385127628316
4.999999999999998 38.77843063541028
5.099999999999998 41.76423892082843
5.1999999999999975 44.98248297828892
5.299999999999997 48.4511292270959
5.399999999999997 52.18953783815045
5.4999999999999964 56.21857081473112
5.599999999999996 60.560708431150886
5.699999999999996 65.24017467956716
5.799999999999995 70.28307242533172
5.899999999999995 75.7175290252867
5.999999999999995 81.57385322164382
6.099999999999994 87.88470418685179
6.199999999999994 94.68527366251031
6.299999999999994 102.0134822083071
6.399999999999993 109.91019065554183
6.499999999999993 118.41942794449557
6.5999999999999925 127.58863661617843
6.699999999999992 137.46893732735
6.799999999999992 148.1154138637039
6.8999999999999915 159.5874202403306
6.999999999999991 171.94891160165756
7.099999999999991 185.26880076569833
7.19999999999999 199.6213424003614
7.29999999999999 215.0865469735723
7.39999999999999 231.75062678490542
7.499999999999989 249.7064765652327
7.599999999999989 269.0541913235667
7.699999999999989 289.90162432788554
7.799999999999988 312.3649883304264
7.899999999999988 336.56950338897855
7.999999999999988 362.6500948954294
8.099999999999987 390.7521457026746
8.199999999999987 421.03230654255043
8.299999999999986 453.6593692523647
8.399999999999986 488.81520767770644
8.499999999999986 526.6957914964491
8.599999999999985 567.5122786153362
8.699999999999985 611.4921922285143
8.799999999999985 658.8806890993012
8.899999999999984 709.9419261349668
8.999999999999984 764.9605328722162
9.099999999999984 824.2431980814241
9.199999999999983 888.1203793337988
9.299999999999983 956.9481450610697
9.399999999999983 1031.110159375838
9.499999999999982 1111.0198207165097
9.599999999999982 1197.1225662381808
9.699999999999982 1289.8983547947537
9.799999999999981 1389.864342353069
9.89999999999998 1497.577764752502

绿色为改进,红色为原版。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值