ODES: ValueError: установка элемента массива с последовательностью - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь определить следующую систему ODES в python: the following system of ODES in python

следующим образом:

def rhs(t, P):
    dP = np.zeros_like(P)
    dP[0] = np.sqrt((1 - 3 / P) * (2 + 4 / P**2))
    dP[1] = 1 / math.pow(P,2)
    return dP

Однако я получаю ошибку:

ValueError: установка элемента массива с последовательностью.

Я не уверен, в чем проблема ... Был бы признателен за любую помощь с этим!

1 Ответ

0 голосов
/ 27 февраля 2020

Очевидно, что ваше состояние P имеет 2 компонента. Таким образом, выражения, которые вы вычисляете из P, будут иметь два компонента. Затем вы пытаетесь присвоить эти кортежи одной ячейке в массиве dP, что невозможно и приводит к появлению этого сообщения об ошибке.

Возможно, вы захотите заменить P его первым элементом P[0] в этих выражениях. Или используйте

def rhs(t, u):
    P,phi = u
    dP = ...
    dphi = ...
    return [dP, dphi]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...