Pycharm:OverflowError: (34, 'Result too large')

Traceback (most recent call last):line 24 , in <module>
    deta_h = np.abs(h(b) - h(a))
 

 line 12, in h
    - 0.000888 * 3 * x ** 2 + 0.03487 * 2 * x + 0.00239
OverflowError: (34, 'Result too large')

小白求解,应该怎么改
 

import numpy as np


def f(x):
    return -0.0007348 * x ** 8 - 0.0003244 * x ** 7 + 0.004126 * x ** 6 + 0.001076 * x ** 5 \
           - 0.00814 * x ** 4 - 0.0008882 * x ** 3 + 0.03487 * x ** 2 + 0.002393 * x + 0.1168


def h(x):
    return -0.0007348 * 8 * x ** 7 - 0.0003244 * 7 * x ** 6 + 0.004126 * 6 * x ** 5 \
           + 0.001076 * 5 * x ** 4 - 0.00814 * 4 * x ** 3 \
           - 0.000888 * 3 * x ** 2 + 0.03487 * 2 * x + 0.00239  //这里数据太大怎么解决


a = 113109036.345448  # 初始点(初始横坐标)
step = 1  # (步长)
count: int = 0  # 记录迭代次数
deta_h = h(a)  # a更新前后的差值(初始值设定为起始点,也可以设置为大于阈值的任意的数)
print(deta_h)
error_rate = 1e-5  # 给定的阈值
while deta_h < error_rate:
    b = a - step * h(a)  # 更新a,用新的变量接收

    deta_h = np.abs(h(b) - h(a))                         //这也有问题?
    count += 1
    a = b - step * h(b)
    y = f(b)

    print('迭代次数%d' % count)
    print(a)
    print(y)
    print('极值点为(%f,%f)' % (a, y))

 

看看这样满足大小没

http://www.cocoachina.com/articles/54423