ITADN

FFTOperators on sparse operators gives wrong answers

#186OpenAmitRotem 创建于 2025-03-13
A
AmitRotemcommented
While going for a FFT style momentum operation in the position basis i noticed the FFT fails on sparse matrices; ``` x_basis = PositionBasis(-1,1,10); p_basis = MomentumBasis(x_basis); # momentum operator in position basis p_in_x_basis = transform(x_basis, p_basis) * momentum(p_basis) * transform(p_basis, x_basis); p_in_x_basis ≈ momentum(x_basis) # false ``` The lhs is a diagonal matrix `Diagonal(p_in_x_basis.data) == (p_in_x_basis).data # true` The definition in the code is similar, but with a dense operator `transform(x_basis, p_basis) * dense(momentum(p_basis)) * transform(p_basis, x_basis) == momentum(x_basis) # true` My motivation was to get `LazyProduct( transform(x_basis, p_basis), momentum(p_basis)^2, transform(p_basis, x_basis) )` Working with QuantumOpticsBase v0.5.4
4 条评论