Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 20, 2021 07:42:57

Ibereg_08
Зарегистрирован: 2021-04-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с функцией.

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

Если есть идеи написания самого кода, буду благодарен, если поможете)

Офлайн

#2 Апрель 20, 2021 08:42:25

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Нужна помощь с функцией.

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

Ну или смотрите интерполяционный полином лагранжа, Интерполяционный метод ньютона



Офлайн

#3 Апрель 20, 2021 09:14:55

Ibereg_08
Зарегистрирован: 2021-04-20
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с функцией.

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

Офлайн

#4 Апрель 20, 2021 20:16:59

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Нужна помощь с функцией.

очнь условный пример

 #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)



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Апрель 20, 2021 21:49:47)

Офлайн

#5 Апрель 20, 2021 23:26:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9897
Репутация: +  855  -
Профиль   Отправить e-mail  

Нужна помощь с функцией.

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]
>>>



Отредактировано py.user.next (Апрель 20, 2021 23:27:38)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version