Как я могу применить дифференцированный оператор SymPy к другому оператору? - PullRequest
0 голосов
/ 18 мая 2018

Предположим, у меня есть что-то вроде этого:

from sympy.physics.quantum import *
from sympy import symbols, Function, Derivative, var
m = symbols('mu', positive=True)
var('x')
var('t')
f = Function('psi')
T = DifferentialOperator(-1 / (2 * m) * Derivative('psi(x,t)', x, x))
V = Operator('V(x)')
K = Operator('K(x)')

Как я могу получить выражение для [T, K] u (x, t) = T (K (u)) - K (T (и))?Здесь u - волновая функция, и T должен применить правило цепи к произведению K (u).

1 Ответ

0 голосов
/ 19 мая 2018

Хорошо, обходной путь:

from sympy import symbols, Function, Derivative, var, init_printing

def T(y):
    var('mu')
    return -1 / (2 * mu) * Derivative(y, x, x)

def V(y):
    var('x')
    V = Function('V', commutative=True)(x)
    return V * y

def comm(A, B):
    def comm(y):
        return A(B(y)) - B(A(y))
    return comm

var('x')
var('t')
f = Function('psi', commutative=False)
comm(T, V)(f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...