我的任务是模拟量子进化。为此,我需要执行此操作
在哪里是一个稀疏矩阵并且是初始列向量。我想知道是否有办法计算矢量不评估 MatrixExp?我的意思是:如果真的很小(时间步长)是否有某种仅使用矩阵向量乘法的算法(稳定且准确)?
例如:
我不知道,更换
一件事应该保持不变:向量的范数
我的任务是模拟量子进化。为此,我需要执行此操作
在哪里是一个稀疏矩阵并且是初始列向量。我想知道是否有办法计算矢量不评估 MatrixExp?我的意思是:如果真的很小(时间步长)是否有某种仅使用矩阵向量乘法的算法(稳定且准确)?
例如:
我不知道,更换
一件事应该保持不变:向量的范数
除了 Godric Seer 的建议,您还可以对指数使用有理逼近,例如
,
为矩阵指数设计更准确的近似值:
.
这种近似具有作为酉算子的优点,因此在精确算术中 remains unchanged. Of course you have to watch out in floating point arithmetic if the condition number of is very large.
The paper 19 Dubious Ways to Compute the Exponential of a Matrix is worth a read, and if you want to dig deeper, Saad's book is both very readable and very comprehensive.
By definition
which is easily approximated by truncating the sum after a number of terms. Ideally you would want to use only two terms so that
What that means is that must have a small effect on the solution. Assuming has eigenvalues , then you need for every eigenvalue. As long as you choose a small enough that this is true, you can avoid the matrix exponential with only the first two terms of the sum.
Is H time-dependent? If not, can not you just diagonalize H, and then express your initial vector "v" as a linear combination of the eigenvectors of H, and then propagate those?
If H is time-dependent, another technique (in addition to those already mentioned) would be to use a split operator technique like the Trotter decomposition.