|
- The SOR-Newton method is meant for the solution of large nonlinear
systems of equations F(x)=0.
- It is a combination of the ideas of Newton's method and the SOR method for linear
systems, in the form first relax then linearize.
- Given an approximation xk for the zero x*
in a cycle of n substeps new coordinates are computed as
xk+1,i = xk,i
-ω*Fi(xk+1,1,..,xk+1,i-1,xk,i,..,xk,n)/((d/d xi)
Fi(xk+1,1,..,xk+1,i-1,xk,i,..,xk,n)), i=1,...,n
that means we take a onedimensional Newton's step with stepsize variation for the
i-th equation, considered as a function of the i-th variable only.
- The relaxation parameter ω has the same role as in the linear case.
- If F(x)=Ax-b, then this is identical to the SOR method for linear equations.
- Proofs of local convergence are possible under the same assumptions on the Jacobian of F at
x* as used in the linear case. Global convergence can be shown if F is the
gradient of an uniformly convex function on Rn (this means that the
Jabobian is symmetric and its eigenvalues have a globally valid upper and lower bound > 0).
In addition ω needs to be ''sufficiently small'' or otherwise
one needs to use a test for sufficient decrease of the principal function of F.
Even if this principal function is available its computation (for each k,i) is as costly
as a complete cycle in this iteration.
- The advantage of this method is the fact that it is completely ''matrix free'',
the required diagonal of the Jacobian might well be approximated by finite differences.
- The convergence conditions however are very restrictive.
|
|
- For the nonlinear system F(x) =
(F1(x1,x2) ,
F2(x1,x2)) = 0 there is a predefined case
and you have the possibility to specify the two components of
F as formulas following FORTRAN rules.
- The initial point (x0,1,x0,2).
- The relaxation parameter ω. Important: 0 < ω <
2 ! This does not necessarily yield convergence!
- The required precision in the two components of F (as absolute bounds).
- The maximum number of iterations allowed. Important: 50 <= iter <= 1000.
- fac, a safety parameter for detecting divergence: we finish if
||F(xk)|| >= fac*||F(x0)||
- Since we show a 3D plot showing the two components of x and ||F||
you must specify your view point via two rotation angles for the x- and the z-axis.
|