Алгебраическая рекурсия с использованием Sympy - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу получить алгебраический член многочлена, который можно определить рекурсивно и с помощью SymPy.

В качестве примера с использованием Maple полиномы Эрмита можно определить как

H(0,x):=1;
H(1,x):=2*x;
for n from 1 to 6 do
    H(n_1,x):= 2*x*H(n,x) - 2*n*H(n-1,x);
    print( simplify(%) );
end do:

, который производит требуемые алгебраические термины, однако я не могу найти в SymPy способа сделать то же самое.Пожалуйста, вы можете помочь?

1 Ответ

0 голосов
/ 28 января 2019

Как и в Maple, вы можете зацикливаться, но здесь кажется разумным использовать функцию.Вы можете использовать стандартные функции Python:

def coefs(x):
    m = Matrix([1, 2*x, 0 ,0, 0, 0])
    for k in range(3):
        m[k+2] = -2*(k+1)*m[k]+2*x*m[k+1]
        print(k)
    return m

Вы можете, конечно, просто упростить функцию, если хотите этого.Однако, поскольку это может привести к выражениям, которые не отменяются, я бы упростил только один раз внизу вашего скрипта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...