# kNaN Documentation

## Introduction

kNaN is a solver for systems of nonlinear equations based on Newton's Method with line search backtracking.

## Features

Currently the solver can only work with explicit definitions of f() and jf() .

## Future Work

Following methods are planned to be implemented:
• krylov
• matrix-free
• preconditioning
• freezed jacobian
• diffusion jacobian
• diffusion + freezed jacobian
• low order approximation to high order nonlinear system
• inexact newton
• multigrid
• numerical jacobian
• continuation
• fokkema vorst: store resulting F vectors
• singular systems

## To do list for version 1.3:

• deltax'e gore de durma kriteri - s based
1. absolute
2. relative
• introduce analytical jacobian, numerical(one by one and column based)
• introduce jacobian vector multiplication - either directional derivative, full, or sparse storage schemes.
1. always compare with the exact value for scaled, small and large for both F and X.
• rename mybeta as beta after numerical_libraries are excluded with the implementation of Krylov Solvers or LU decomposition routines

## To do list for version 1.2:

• initial guess function (either parameter continuation or interpolation or just initialization)
• introduce analytical jacobian, numerical(one by one and column based)
• define weighted norm as a convergence option-option to compare different grids
• give a detailed analysis file with information on the iterations including the mesh size and weighted norm
• if relative residual is used then it is like weighted norms are used!
• reduce the number of extra F1 and F2 vectors. either by pointers or overwrites
• find a name for this version. this 1.2a - a letter might help :) !
• lambda plot!

## Version History

### version 1.2b - Multiplier

code changes

basic inexact newton is implemented

separate matrix vector multiplier MatVecMult() is added

bicgstab is added as a solver (matmul - no precon)

bicgstab_no_s is added as the default bicgstab solver (matmul- no precon)

### version 1.1 - Expansion

absolute and relative tolerances are introduced. convergence options are introduced.

solverParameters and physicalParameters modules are added.

Debugging related extra information parameters are added.

are carried into this module.

machineps: machineps() - scalar function
calculates the machine eps

### version 1.0 - Inception

In this version the most basic form of a line search backtracking algorithm is implemented. In this program the example problem 6.5.1 given in [1] is examined

### References

[1] Numerical Methods for Unconstrained Optimization and Nonlinear Equations - J.E. Dennis, R.B. Schnabel - SIAM - 1996 corrected edition
[2] Iterative Methods for Linear and Nonlinear Equations - C.T. Kelley - SIAM - 1995 [3] Testing Unconstrained Optimization Software - J.J. Moré, B.S. Garbow, K.E. Hillstorm - TOMS 7 pp 136-140 - 1981