Вы можете добавить степень к полиномиальному поиску.Попробуйте 4 вместо 3 для примера, это не будет превышать 100
import numpy as np
import matplotlib.pyplot as plt
from numpy.polynomial import Polynomial as P
points = np.array([(0, 0), (3, 0), (7, 55), (14, 88)])
x = points[:,0]
y = points[:,1]
y_fit = P.fit(x, y, 4)
x_new = np.linspace(x[0], x[-1], 50)
plt.plot(x,y,'o', x_new, y_fit(x_new))
plt.xlim([x[0]-1, x[-1] + 1 ])
plt.axhline(100)
plt.show()

Если вы действительно хотите попытаться приблизиться, когда он достигнет100 с 4-м порядком:
import numpy as np
import matplotlib.pyplot as plt
from numpy.polynomial import Polynomial as P
points = np.array([(0, 0), (3, 0), (7, 55), (14, 88)])
# get x and y vectors
x = points[:,0]
y = points[:,1]
y_fit = P.fit(x, y, 4)
x_new = np.linspace(0, 20, 100)
plt.plot(x,y,'o', x_new, y_fit(x_new))
plt.axhline(100)
plt.show()

Но ничто не может гарантировать истинность этой тенденции, поскольку ее также можно аппроксимировать любым другим заказом или любымдругая функция