#python #numpy
#python #тупой
Вопрос:
Я принимаю эту ошибку в условии равенства. Я пробовал шаги в аналогичных вопросах, но все равно получаю ту же ошибку.
Мой сценарий выглядит следующим образом, и я использую Jupyter Notebook:
import numpy as np
import math
f1=np.array([-59,-28])
f3=np.array([-39,76,94])
f2=np.array([75])
a=0
b=0
c=0
x = np.array([1, 1, 3, 3, 3, 2]) # x coordinates in space
y = np.array([-59, -59, -39, -39, -39, 75]) # f(x)
def getNDDCoeffs(x, y):
n = np.shape(y)[0]
pyramid = np.zeros([n, n]) # Create a square matrix to hold pyramid
pyramid[::,0] = y # first column is y
for j in range(1,n):
for i in range(n-j):
# create pyramid by updating other columns
if np.logical_and(x[i j]==x[i],x[i]==f1):
a=a 1
pyramid[i][j] = f1[a-1]/math.factorial(a)
elif np.logical_and(x[i j]==x[i],x[i]==f3):
b=b 1
pyramid[i][j] = f3[a-1]/math.factorial(b)
elif np.logical_and(x[i j]==x[i],x[i]==f2):
c=c 1
pyramid[i][j] = f2[a-1]/math.factorial(c)
else:
pyramid[i][j] = (pyramid[i 1][j-1] - pyramid[i][j-1]) / (x[i j] - x[i])
return pyramid[0] # return first row
coeff_vector = getNDDCoeffs(x, y)
print(coeff_vector)
В скрипте я пытаюсь реализовать интерполяцию Эрмита в виде разрешения пирамиды метода разделенной разности Ньютона. f1 [0] означает начальное значение, f1 [1] — значение первой производной, а f1 [2] — вторая производная. То же самое справедливо для массивов f2 и f3.
В чем может быть проблема? Если вы можете мне помочь, я очень рад. Хорошего дня!
Комментарии:
1. похоже
f1
, что вы сравниваете с целыми числами, равнымиnp.array([-59,-28])
, так что в основном вы пытаетесь сравнить1
и ‘[-59,-28]
, что приводит к ValueError (то же самое для f2 и f3)2. Ах, это была очень глупая ошибка. Я понял, в чем проблема. Спасибо за помощь.