Given a domain $\Omega \subset \Bbb R^n$ and $\Delta\varphi=f$ where $\varphi:\Bbb R^n \to \Bbb R$ is unknown and $f:\Omega\to \Bbb R$ is a blackbox function (for each $\bf x$ it provides $f({\bf x})$, but we don't know what $f$ actually is), and in addition we may know one of the following,

  1. discrete data points $({\bf x}_1,\varphi_1({\bf x})),...,({\bf x}_k,\varphi_k({\bf x}))$
  2. boundary values $\varphi({\bf x})$ for any ${\bf x}\in\partial \Omega$

The task is to evaluate $\varphi({\bf x})$ given an ${\bf x}\in \Omega$ using an iterative algorithms. Please help suggest potential iterative algorithms, any references to books or publications is helpful. Thanks!

  • 3
    $\begingroup$ this question might be well suited for Computational Science SE: scicomp.stackexchange.com $\endgroup$ – Anton Mar 14 '18 at 5:20

In the first case, when you are given a finite set of points, your problem is not well defined. There are in general arbitrarily many solutions if you are just given a finite set of function values.

In the second case you have to perform two steps. First you discretize your problem, then you solve the resulting linear system using an iterative method.

If your domain is not too compilcated, you can use a simple finite difference method to discretize the Poisson equation. If your domain is more complicated, you can use the finite element or finite volume method. In both cases you end up with a large, sparse linear system that you have to solve.

To solve this linear system iteratively, you can use various methods. Some famous choices would be the conjugate gradient method (for symmetric positive definite matices) or the GMRES method.

Both methods and many more are discussed in the book Iterative methods for sparse linear systems by Y. Saad, which you can find here. The book contains also a very brief introduction into the finite difference method.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.