Как получить кусочно-линейную функцию в Python - PullRequest
0 голосов
/ 23 октября 2018

Я бы хотел получить кусочно-линейную функцию из множества точек.Вот наглядный пример:

import matplotlib.pyplot as plt
x = [1,2,7,9,11]
y = [2,5,9,1,11]
plt.plot(x, y)
plt.show()

piecewise illustration

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

Я могу попытаться написать это сам, но задаюсь вопросом, есть ли что-то уже написанное.Пока что я нашел только код, возвращающий регрессию

1 Ответ

0 голосов
/ 23 октября 2018

попробуйте np.interp.Он интерполирует значения.

Вот небольшой пример.

>>> import matplotlib.pyplot as plt
>>> import numpy as np

>>> x = [1,2,7,9,11]
>>> y = [2,5,9,1,11]

>>> np.interp([1.5, 3], x, y)
array([ 3.5,  5.8])

Предупреждение: убедитесь, что для точек выборки убедитесь, что х увеличивается.

...