Найти - Пользователи
Полная версия: Нужна помощь с функцией.
Начало » Центр помощи » Нужна помощь с функцией.
1
Ibereg_08
Мне нужно провести экстраполирование таблично-заданной функции путем построения экстраполяционного полинома. Как можно сделать, чтобы не использовать библиотеку 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()

Если есть идеи написания самого кода, буду благодарен, если поможете)
doza_and
Ibereg_08
а нужно просто данную библиотеку расписать как-то математически в Python.
А кто вам мешает скачать исходные тексты scipy и переписать нужные функции на питон?

Ну или смотрите интерполяционный полином лагранжа, Интерполяционный метод ньютона
Ibereg_08
doza_and
Как я понял ,что на примере интерполяционного полинома лагранжа можно сделать мою экстраполяцию?
И еще вопрос, как можно сделать ввод значений по X и Y вручную, чтобы можно было взять 3, 4, 5 значений и т.д., а он бы искал т как раз не известное значение при X=4, 5, 6 и т.д.? Просто через input мы введем только одно значение, а как несколько сделать?
AD0DE412
очнь условный пример

 #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)
py.user.next
AD0DE412
  
test = list(map(lambda x: int(x), input("> ").split()))
  
>>> lst = list(map(int, input('enter: ').split()))
enter: 1 2 3
>>> lst
[1, 2, 3]
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB