解决三对角系统。
项目描述
tridiax
tridiax
实现了在jax中的三对角系统求解器。所有求解器都支持CPU和GPU,与jit
编译兼容,并且可以使用grad
进行微分。
实现的求解器
通常,Thomas算法在CPU上会更快,而分而治之算法和Stone算法在GPU上会更快。
已知限制
目前,所有求解器仅针对维度是2
的指数的系统进行了测试。
使用方法
from tridiax import thomas_solve, divide_conquer_solve, stone_solve
dim = 1024
diag = jnp.asarray(np.random.randn(dim))
upper = jnp.asarray(np.random.randn(dim - 1))
lower = jnp.asarray(np.random.randn(dim - 1))
solve = jnp.asarray(np.random.randn(dim))
solution = thomas_solve(lower, diag, upper, solve)
如果许多相同大小的系统需要求解且使用分而治之算法,则预先计算重排索引会很有帮助
from tridiax import divide_conquer_solve, divide_conquer_index
dim = 1024
diag = jnp.asarray(np.random.randn(dim))
upper = jnp.asarray(np.random.randn(dim - 1))
lower = jnp.asarray(np.random.randn(dim - 1))
solve = jnp.asarray(np.random.randn(dim))
indexing = divide_conquer_index(dim)
solution = divide_conquer_solve(lower, diag, upper, solve, indexing=indexing)
安装
git clone https://github.com/mackelab/tridiax.git
cd tridiax
pip install -e .
项目详细信息
下载文件
下载适用于您的平台的文件。如果您不确定选择哪一个,请了解有关 安装包 的更多信息。
源代码发行版
tridiax-0.1.0.tar.gz (11.0 kB 查看哈希值)
构建发行版
tridiax-0.1.0-py3-none-any.whl (11.5 kB 查看哈希值)
关闭
tridiax-0.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1eb84e1dcff299f2dfd440c229098500f745558209f7e25c3b3c95b6193e2411 |
|
MD5 | f51f333b0cf48fd88b8948a322c9f07b |
|
BLAKE2b-256 | a5d77c18868dc684516b1853961a22ce1d77e4833f86e9403fd5e4e0f107b0b1 |
关闭
tridiax-0.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9748032ed963a9c2c465d595559f5670aaf8fcea4040f3f45edcca89f3cbd16d |
|
MD5 | 18fa69214d38ddde056f3e47bfd0adad |
|
BLAKE2b-256 | cbac8712692ce2478472eaef18ac710e7f0e4abb7ac60b3edd25a40f7a48208b |