Professional Documents
Culture Documents
Вар 5 Py
Вар 5 Py
1) Задача:
Задана таблиця значень функції в 9-ти
вузлових точках:
x -0.1 0.21 0.63 0.82 0.9 1.29 1.54 1.76 2.13
2) Математичний апарат:
Інтерполяційний многочлен Лагранжа.
3) Код(Python):
import math
from numpy import arange
f'(x) = 2*math.sin(x)+x*math.cos(x)
f"(x) = 3*math.cos(x)-x*math.sin(x)
"""
a = 0
b = 2
h = 0.08
list_x = []
list_y = []
list_kusk_int = []
list_glob_int = []
list_diff1 = []
list_diff1_int = []
list_diff2 = []
list_diff2_int = []
def function(x):
y = 0
y = x*math.sin(x)-math.cos(x)
return y
def kusk_int(x):
y = 0
for i in range(0,len(xl),2):
if x >= xl[i] and x <= xl[i+2]:
y = round(fl[i]*((x - xl[i+1])*(x-xl[i+2]) / ((xl[i] - xl[i+1])*(xl[i]-
xl[i+2]))) + fl[i+1]*((x - xl[i])*(x-xl[i+2]) / ((xl[i+1] - xl[i])*(xl[i+1]-
xl[i+2]))) + fl[i+2]*((x - xl[i])*(x-xl[i+1]) / ((xl[i+2] - xl[i])*(xl[i+2]-
xl[i+1]))), 6)
break
return y
def diff1(x):
y = 0
y = round(2*math.sin(x)+x*math.cos(x), 6)
return y
def diff1_int(x):
y = 0
if x == a:
y = round((function(a+h) - function(a)) / h, 6)
return y
if x == b:
y = round((function(b) - function(b - h)) / h, 6)
return y
for i in arange(a, b + h, h):
if x == i:
y = round((function(i + h) - function(i - h)) / (2 * h), 6)
return y
def diff2(x):
y = 0
y = round(3*math.cos(x)-x*math.sin(x), 6)
return y
def diff2_int(x):
y = 0
y = round((function(x + h) + function(x - h) - 2 * function(x)) / (h ** 2), 6)
return y
5) Висновок