I face to the following problem:
$$(1+u_x^2)u_{yy} - 2u_xu_yu_{xy} + (1+u_y^2)u_{xx}=0.$$ It should be discretized by finite differences.
Does anybody know, how to proceed? Or does anybody know about any book/ reference in order to understand problem better ?
Every suggestion is welcomed! Thanks!
You can first attempt to solve the problem using standard finite difference method. You can find several books on finite difference technique and online documents. For example take a look at this document) Particularly section 2 describes what you need.
The standard procedure for non-linear PDEs is to use iterative schemes, first you can discretize the equation, then proceed with a Gauss-Seidel relaxation to see if it converge. This process is the same as solving Poisson equation, but you implement an iterative algorithm that can also apply for non-linear problems.
There is a pretty good chance that Gauss-Seidel will converge and you'd get your solution. If not you can attempt a technique called continuation method where you first create a solver that can effectively solve a linear problem, in your case, lets write your equation as: $$ (1+\alpha u_x^2)u_{yy} -2 \beta u_x u_y u_{xy} + (1+\alpha u_y^2)u_{xx} = 0 $$ Where, $\alpha =1$ and $\beta = 1$ is your equation. As you can see, setting: $\alpha = 0$ and $\beta = 0$ the equation reduces to a linear Poisson equation. Therefore your iterative solver can first solve the linear solution (which shouldn't be a problem) then have that solution of the linear problem as a good initial guess for a new problem where you can choose a small (non-zero now) value for $\alpha$ and $\beta$, let's say $\alpha = 0.1$ and $\beta = 0.1$ therefore, now you have a PDE that is slightly different than linear problem, and the solver will have a much better chance to converge, after solving that problem, you can use that solution as an initial guess for a new problem where now $\alpha$ and $\beta$ are even higher, say $\alpha=0.2$ and $\beta = 0.2$, so as you can see by "continuation" you approach to your desired problem and your solver should be able to converge during this continuous process.
There is also a finite difference toolkit available (written in Maple programming language) that you can use. See the user manual and tutorials section. It provides all the tools you need to implement a Newton-Gauss-Seidel relaxation routine, assuming that you are familiar with programming in C and Fortran, and also somewhat familiar with Maple software.
In some cases that the non-linear problem is very hard to deal with (which I doubt your equation would be such case) then you need to implement more advanced algorithm such as Pseudo-Spectral method