如何在 PETSc 中访问线性系统的解决方案?

计算科学 线性求解器 宠物
2021-11-30 02:25:09

我刚开始使用 PETSc,因此这似乎是一个非常愚蠢的问题,但我在手册中找不到任何答案。调用 KSPSolve 后,我在哪里可以访问我的线性系统的解决方案?矩阵示例:

(210121012)(xyz)=(101)

我想得到矢量图

(3/41/21/4)
背部。KSP Solve 的文档说x - the solution (this may be the same vector as b, then b will be overwritten with answer)

但我不断得到x向量

(111)

我的理解有问题吗?

1个回答

您解决 PETSc 中的系统之前,您存储矩阵A和 RHSb. 来自 PETSc 的消息说,系统解决后,解决方案可能会被覆盖为b,最初存储 RHS 的位置。这就是它的意思。

对于原始方程组:

(210121012)(xyz)=(101)
正确的解决方案确实是(正如@JedBrown 所指出的)
(111)

如果您打算(出于任何正当理由)获得 这仅意味着您有您的矩阵或 RHS 中的错字。假设您的矩阵是正确的,您将获得以下系统所需的解决方案(稍微更改 RHS):

(3/41/21/4)
(210121012)(xyz)=(11/21)