'''
改进欧拉算法
'''
import numpy as np
import math
#定义函数
def f(x,y):
return 1.1*y-0.2*x/y
def f1(x,y):
return y-2*x/y
#构造Euler
def Euler(x0,y0,t,f,f1):
yi=y0
xi=x0
for i in range(1,100):
x=xi+t*i
yp=yi+t*f(xi,yi)
yc=yi+t*f(x,yp)
y=(yp+yc)/2
yi=f1(x)
eps=abs(yi-y)
print( "{0:.0f}".format(n), "{0:.4f}".format(x), "{0:.4f}".format(y),"{0:.4f}".format(yn), "{0:.4f}".format(eps))
x0=0
y0=1
t=0.1
Euler(x0,y0,t,f,f1)
0.1000
0.0055
0.0052
0.0003
0.2000
0.0167
0.0213
0.0046
0.3000
0.0387
0.0492
0.0104
0.4000
0.0725
0.0897
0.0172
0.5000
0.1187
'''
数没显示完,后边还有,导出的时候没导下来
'''