Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def Differentiation(x, X, f):
- n = np.shape(X)[0]
- # Проверка на принадлежность к одному из интервалов
- for i in range(0, n-2):
- if x == X[i]:
- d1 = (3*f[i]-4*f[i+1]+f[i+2])/2*(X[i+2]-X[i+1])
- d2 = (f[i]-2*f[i+1]+f[i+2])/(X[i+2]-X[i+1])**2
- if x > X[i] and x < X[i+1]:
- diff1_i1 = (f[i + 1] - f[i]) / (X[i + 1] - X[i])
- diff1_i2 = (f[i + 2] - f[i + 1]) / (X[i + 2] - X[i + 1])
- diff2 = (diff1_i2 - diff1_i1) / (X[i + 2] - X[i + 1])
- d1 = diff1_i1 + diff2 * (2 * x - X[i] - X[i + 1])
- d2 = diff2
- return d1, d2
- Xi = np.array([-1.0, 0.0, 1.0, 2.0, 3.0])
- fi = np.array([-0.7854, 0.0, 0.78540, 1.1071, 1.249])
- print("Значение 1-й производной в точке x = 1.0:", Differentiation(1.0, Xi, fi)[0])
- print("Значение 2-й производной в точке x = 1.0:", Differentiation(1.0, Xi, fi)[1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement