gpt4 book ai didi

python - 稀疏矩阵模式上的 Scipy 边界条件

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:37 25 4
gpt4 key购买 nike

我的系统最好用对角稀疏矩阵 (Poisson) 来描述。我有我的对角线稀疏矩阵,但是,我想将边界条件(即矩阵的“边缘”)更改为零。建模者想要在具有不同边界条件的稀疏对角矩阵中描述系统一定是一种常见的情况,是否有这样做的最佳实践?

[[0,0,0,0,..0],
[0,2,1,0,..0],
[0,1,2,1,..0],
...
[0,0,0,0,..0]]

最佳答案

这取决于您使用的稀疏矩阵格式。显然 lil_matrix and dok_matrix可以使用切片赋值。

To construct a matrix efficiently, use either lil_matrix (recommended) or dok_matrix. The lil_matrix class supports basic slicing and fancy indexing with a similar syntax to NumPy arrays.

这使得这相当容易:

In : x = scipy.sparse.lil_matrix(np.ones((6,6)))

In : x.todense()
Out:
matrix([[ 1., 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1., 1.]])

In : x[:, 0] = 0

In : x[:, -1] = 0

In : x[0, :] = 0

In : x[-1, :] = 0

In : x.todense()
Out:
matrix([[ 0., 0., 0., 0., 0., 0.],
[ 0., 1., 1., 1., 1., 0.],
[ 0., 1., 1., 1., 1., 0.],
[ 0., 1., 1., 1., 1., 0.],
[ 0., 1., 1., 1., 1., 0.],
[ 0., 0., 0., 0., 0., 0.]])

PS:仅供引用,您的矩阵称为 tridiagonal ,不是对角线。

关于python - 稀疏矩阵模式上的 Scipy 边界条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10340517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com