学习目标:
改进欧拉算法 拟合曲线
学习内容:
算法:
import numpy as np
import random
import math
class Oula():
def __init__(self):
self.x = 0 #初始x0
self.y = 1 #初始y0
self.zk = 1 #暂时的k
self.k = 1 #初始x0y0的k即改进的k
def dian(self):
y = [1]
x = [0]
a = 0
for i in range(100):
i += 1
x.append(0.1*i) #x[i+1]
a = y[i-1] + self.k*0.1 #求暂时的y[i]
y.append(a) #暂存y[i+1]
self.zk = y[i] - 2*x[i]/y[i] #求暂时的k y憋 = y - 2x/y
y[i] = y[i-1] + (1/2)*(self.k + self.zk)*0.1 #求改进的y
self.k = y[i] - 2*x[i]/y[i] #更新改进的k
print(x[i],y[i])
return self.k
if __name__ == '__main__':
a = Oula()
a.dian()