Проблема с Numpy дифференцированием и интеграцией Scipy в Python - PullRequest
0 голосов
/ 19 декабря 2018

У меня проблема с интеграцией дифференциации.Я пытался построить различное x x 2

plt.plot(0.5*(x[:-1]+x[1:]), np.diff(x**2, 1)/np.diff(x, 1))

И это сработало.После того, как я хотел найти интеграл от x ^ 2-кратного дифференцирования x ^ 2:

x = np.linspace(0, 1, 1000)     
result = spi.simps(x**2 * np.diff(x**2/np.diff(x,1)), x)
print(result)

Но я получил ValueError: операнды не могли быть переданы вместе с формами (1000,) (999,)

И я также попытался вместо x = np.linspace(0, 1, 1000) использовать x = 0.5*(x[:-1]+x[1:]), но без шансов.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 19 декабря 2018

x имеет размер 1000 сэмплов, в версии diff только 999 из-за различий границ.

Вы на самом деле знаете об этом факте, когда делаете 0.5*(x[:-1]+x[1:]).То же самое относится и к x**2 * np.diff(x**2/np.diff(x,1)).Возможно, что вы хотите сделать, это:

x_half = 0.5*(x[:-1]+x[1:])
result = spi.simps(x_half **2 * np.diff(x**2), x_half )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...