Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

(Not recommended) Solve nonlinear elliptic PDE problem

`pdenonlin`

is not recommended. Use `solvepde`

instead.

`u = pdenonlin(model,c,a,f)`

`u = pdenonlin(b,p,e,t,c,a,f)`

`u = pdenonlin(___,Name,Value)`

```
[u,res]
= pdenonlin(___)
```

solves
the nonlinear PDE`u`

= pdenonlin(`model`

,`c`

,`a`

,`f`

)

$$-\nabla \cdot \left(c\nabla u\right)+au=f$$

with geometry, boundary conditions, and finite element mesh
in `model`

, and coefficients `c`

, `a`

,
and `f`

. In this context, “nonlinear”
means some coefficient in `c`

, `a`

,
or `f`

depends on the solution `u`

or
its gradient. If the PDE is a system of equations (`model.PDESystemSize`

> 1), then `pdenonlin`

solves
the system of equations

$$-\nabla \cdot \left(c\otimes \nabla u\right)+au=f$$

,
for any previous arguments, modifies the solution process with `u`

= pdenonlin(___,`Name,Value`

)`Name`

, `Value`

pairs.

If the Newton iteration does not converge,

`pdenonlin`

displays the error message`Too many iterations`

or`Stepsize too small`

.If the initial guess produces matrices containing

`NaN`

or`Inf`

elements,`pdenonlin`

displays the error message`Unsuitable initial guess U0 (default: U0 = 0)`

.If you have very small coefficients, or very small geometric dimensions,

`pdenonlin`

can fail to converge, or can converge to an incorrect solution. If so, you can sometimes obtain better results by scaling the coefficients or geometry dimensions to be of order one.

The `pdenonlin`

algorithm is a Gauss-Newton
iteration scheme applied to the finite element matrices. For details,
see Nonlinear Equations.

Was this topic helpful?