nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Interops.Visualize.Phylip / ReversibleMatrixExponential

ReversibleMatrixExponential

Full name SMRUCC.genomics.Interops.Visualize.Phylip.Evolution.MaximumLikelihood.ReversibleMatrixExponential Assembly SMRUCC.genomics.Interops.Visualize.Phylip Members 4

时间可逆(time-reversible)替换模型的转移概率矩阵计算:P(t) = e^{Qt}。

00 Remarks

基础数学库中没有矩阵指数实现,这里利用时间可逆模型的对称性把 Q 对称化之后再做一次特征分解:

令 D = diag(π),B = D^{1/2} Q D^{-1/2} 为对称矩阵(因为 Q_ij = S_ij π_j 且 交换率矩阵 S 对称),于是:

Q = D^{-1/2} B D^{1/2},B = U Λ Uᵀ,P(t) = e^{Qt} = D^{-1/2} U diag(e^{λt}) Uᵀ D^{1/2}

这样每个替换模型只需要做一次特征分解,之后各分支可以按分支长度 t 快速求出 P(t)。 特征分解复用基础库 MatrixOps.JacobiEigen()(Jacobi 旋转法,专门针对对称矩阵)。

01 Syntax

SMRUCC.genomics.Interops.Visualize.Phylip.Evolution.MaximumLikelihood.ReversibleMatrixExponential

02 Methods

NameOverloadsSummary
.ctor 1 由对称交换率矩阵(对角线为零)与平衡频率构建。
Evaluate 1 计算转移概率矩阵 P(t)。

03 Properties

NameOverloadsSummary
Eigenvalues 1 特征值(应为非正值,其中一个为 0)
Dimension 1

04 Members

method .ctor #
#ctor(Double()(), Double())

由对称交换率矩阵(对角线为零)与平衡频率构建。

Parameters
NameTypeDescription
exchangeabilityDouble()()

对称的交换率矩阵 S(对角为 0)

piDouble()

平衡频率向量(和为 1,全部为正)

method Evaluate #
Evaluate(Double)

计算转移概率矩阵 P(t)。

property Eigenvalues #
Eigenvalues

特征值(应为非正值,其中一个为 0)

property Dimension #
Dimension