Форум сайта python.su
Мне нужно провести экстраполирование таблично-заданной функции путем построения экстраполяционного полинома. Как можно сделать, чтобы не использовать библиотеку scipy и саму интерполяцию, а нужно просто данную библиотеку расписать как-то математически в Python.
Есть пример 1, в котором нужно как-то это все расписать.
Пример 1)
from scipy import interpolate # Импорт файла
def extra(x, y, d): #Функция
x = # Мы вводим Х, разделяя её через пробел (разделитель) - разделяя их пробелом мы используем их как список чисел
y = # То же самое, как в Х
f = interpolate.interp1d(x, y, fill_value = “extrapolate”) # Это и есть Экстраполяция, вычислительная функция
return f(d) #Вывод
if __name__ == ‘__main__’: # Необходимый элемент для визуала
print(extra('1 2 3', ‘1 2 3’, 15)) # Пример
Есть и 2й пример, в котором используется библиотека numpy, которую мне можно как раз использовать. Как сделать .чтобы человек сам вводил числа, а не чтобы они были заданы массивом? Также нужно, чтобы ,когда искалась неизвестная точка, нужно сделать, чтобы полином проходил и через нее.
Пример 2)
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
def exponential_fit(x, a, b, c):
return a*np.exp(-b*x) + c
if __name__ == “__main__”:
x = np.array()
y = np.array()
fitting_parameters, covariance = curve_fit(exponential_fit, x, y)
a, b, c = fitting_parameters
next_x = 6
next_y = exponential_fit(next_x, a, b, c)
plt.plot(y)
plt.plot(np.append(y, next_y), ‘ro’)
plt.show()
Если есть идеи написания самого кода, буду благодарен, если поможете)
Офлайн
Ibereg_08А кто вам мешает скачать исходные тексты scipy и переписать нужные функции на питон?
а нужно просто данную библиотеку расписать как-то математически в Python.
Офлайн
doza_andКак я понял ,что на примере интерполяционного полинома лагранжа можно сделать мою экстраполяцию?
Офлайн
очнь условный пример
#example 1 """ > 1 2 3 [1, 2, 3] """ test = list(map(lambda x: int(x), input("> ").split())) print(test) #example 2 """ > 1 > 2 > 3 > end [1, 2, 3] """ test = [] while True: var = input("> ") if var == "end": break else: test.append(int(var)) print(test)
Отредактировано AD0DE412 (Апрель 20, 2021 21:49:47)
Офлайн
AD0DE412test = list(map(lambda x: int(x), input("> ").split()))
>>> lst = list(map(int, input('enter: ').split())) enter: 1 2 3 >>> lst [1, 2, 3] >>>
Отредактировано py.user.next (Апрель 20, 2021 23:27:38)
Офлайн