Добрый день! Второй день бьюсь над задачей, но она все никак не выходит.
Задача состоит в следующем: даны n узлов и n значений , необходимо написать функцию, которая бы строила полином первой степени на каждом интервале [x(i);x(i+1)] (линейная интерполяция), графиком должна быть, соответственно кусочно-линейная функция.
Знаю, что в numpy есть numpy.interp, которая делает это все в несколько строчек, но задание состоит в том, чтобы написать свой интерполятор.
Вот мои попытки:
def lin(x,y,t):
for i in range(len(x)):
if x[i]==t:
return (f(t))
break
elif x[i]>t:
max=x[i]
break
elif x[i]<t:
min=x[i]
break
c=(f(max)-f(min))*(t-min)/(max-min)+f(min)
return c
ylin=[lin(x, y, i) for i in x]
plt.plot(x,ylin, 'm')
plt.grid(True)
plt.show()
Здесь
-это x(i+1), a
-x(i).
При запуске данного кода, выдается ошибка:
return c
^
IndentationError: unindent does not match any outer indentation level
Хотя вроде бы, все пробелы и табуляции соблюдены.
Надеюсь, смогу здесь найти помощь и буду очень благодарен за любые советы.
Заранее спасибо!