Professional Documents
Culture Documents
Бурба 3 Py
Бурба 3 Py
1. Варіант 3
2. Математичний апарат:
- Поліном Лагранжа:
n
( x−x 0 ) ( x−x 1 ) … ( x−x i−1 )( x−xi +1 ) …( x−x n )
Ln ( x ) =∑ y i
i=0 ( x i−x 0 ) ( x i−x 1 ) … ( xi −xi−1 ) ( x i−x i+1 ) …(x i−x n )
y i +1− y i
- Права різницева похідна: h
ẏ i ≈
i=[0 , n]
y−y
- Ліва різницева похідна: ẏ i ≈ i h i −1 i=[0 , n]
y −y
- Центральна різницева похідна: ẏ i ≈ i +12 h i−1 i=[0 , n]
y i +1+ yi −2 y i
- Друга похідна: ÿ i ≈ 2
i=[ 0 ,n ]
h
3. Код програми - Python:
import numpy as np
xnew = list()
y_interp = list() #функцфя
y_localinterp = list() #локальна інтерполяція
y_globalinterp = list() #глобальнаа інтерполяція
differentiated_first = list() #перша похідна
differentiated_second = list() #друга похідна
differentiated_chisl_first = list() #числова перша
differentiated_chisl_second = list() #числова друга
def differ_1(arg):
return (2 * arg * (np.e ** (-(arg ** 2)))) - 2 * (arg ** 3) * (np.e ** (-(arg ** 2)))
def differ_2(arg):
return (2 * np.e ** (-arg ** 2)) - (10 * (arg ** 2) * np.e ** (-(arg ** 2))) + 4 * (arg ** 4) * np.e ** (-(arg **
2))
# завдання 2а
for i in range(0, len(xnew)):
y_interp.append(function(xnew[i]))
# завдання 2б
y_localinterp = [localPolinom(Xc, Yc, t) for t in xnew]
# завдання 2в
y_globalinterp = [interpolacia(Xc, Yc, i) for i in xnew]
# завдання 3а
for j in range(0, len(xnew)):
differentiated_first.append(differ_1(xnew[j]))
differentiated_second.append(differ_2(xnew[j]))
# завдання 3Б
differentiated_chisl_first = derivative_chisl(xnew, y_globalinterp, step)
differentiated_chisl_second = derivative_chisl(xnew, differentiated_chisl_first, step)
# таблиця
print("\n x f(x) f(x) localinterp f(x) interp")
for i in range(0, len(xnew)):
print(xnew[i], ' ', y_interp[i], ' ', y_localinterp[i], ' ', y_globalinterp[i])
4. Виконання програми:
5. Висновок:
Під час виконання лабораторної роботи було вивчено
формули полінома Лагранжа, формули числового
диференціювання першого та другого порядку. Було
апроксимовано функцію, використовуючи кускову та та
глобальну інтерполяцію на заданих вузлах інтерполяції.
Було здобуто навички приблизного знаходження першої та
другої похідних функції. Були покращені навички
програмування мовою програмування Python