python 회색 예측 Verhulst 모델 구현
8926 단어 수학 모범
//Verhulst
import numpy as np
import math
def predict(data):
x1 = data.cumsum()
z = (x1[:len(x1) - 1] + x1[1:]) / 2.0
B = np.array([-z, z*z]).T
Y = data[1:]
u = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Y)
a, b = u[0], u[1]
return [a*data[0]/(b*data[0]+(a-b*data[0])*math.exp(a*i)) for i in range(len(data))]
if __name__ == '__main__':
data = np.array([4.93, 2.33, 3.87, 4.35, 6.63, 7.15, 5.37, 6.39, 7.81, 8.35])
predict_data = predict(data) # x1
result = np.ediff1d(predict_data) #
print(' :', data[1:])
print(' :', result)
print(' :', (np.array(result[:len(data)]) - np.array(data[1:len(data)])) / np.array(data[1:len(data)]))
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
수학 모델링 처리 데이터텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.