Web-Books
im Austria-Forum
Austria-Forum
Web-Books
Informatik
Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python
Seite - 205 -
  • Benutzer
  • Version
    • Vollversion
    • Textversion
  • Sprache
    • Deutsch
    • English - Englisch

Seite - 205 - in Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python

Bild der Seite - 205 -

Bild der Seite - 205 - in Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python

Text der Seite - 205 -

6.6 SolvingMultipleNonlinearAlgebraicEquations 205 6.6.3 Newton’sMethod TheideaofNewton’smethodis thatwehavesomeapproximationxi to therootand seek a new (andhopefully better) approximationxiC1 byapproximatingF.xiC1/ by a linear function and solve the corresponding linear systemof algebraic equa- tions.Weapproximate thenonlinearproblemF.xiC1/D0by the linearproblem F.xi/CJ.xi/.xiC1 xi/D0; (6.13) whereJ.xi/ is just another notation forrF.xi/. The equation (6.13) is a linear systemwith coefficientmatrixJ and right-hand side vectorF.xi/. We therefore write this systemin themore familiar form J.xi/ı D F.xi/; wherewehave introducea symbolı for theunknownvectorxiC1 xi thatmulti- plies the JacobianJ. The i-th iteration ofNewton’smethod for systems of algebraic equations con- sists of twosteps: 1. Solve the linear systemJ.xi/ı D F.xi/with respect toı. 2. SetxiC1 Dxi Cı. Solving systemsof linear equationsmustmakeuseof appropriate software. Gaus- sian elimination is themost common, and in general themost robust, method for this purpose. Python’s numpy package has a module linalg that interfaces the well-knownLAPACKpackagewith high-quality andverywell tested subroutines for linearalgebra. Thestatementx = numpy.linalg.solve(A, b)solvesasys- temAxDbwithaLAPACKmethodbasedonGaussian elimination. Whennonlinear systemsof algebraicequationsarise fromdiscretizationofpar- tialdifferentialequations, theJacobianisveryoftensparse, i.e.,mostofitselements are zero. In such cases it is important to use algorithms that can take advantageof themany zeros. Gaussian elimination is then a slowmethod, and (much) faster methodsarebasedon iterative techniques. 6.6.4 Implementation Here isaverysimple implementationofNewton’smethodforsystemsofnonlinear algebraicequations: import numpy as np def Newton_system(F, J, x, eps): """ Solve nonlinear system F=0 by Newton’s method. J is the Jacobian of F. Both F and J must be functions of x. At input, x holds the start value. The iteration continues until ||F|| < eps. """
zurück zum  Buch Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python"
Programming for Computations – Python A Gentle Introduction to Numerical Simulations with Python
Titel
Programming for Computations – Python
Untertitel
A Gentle Introduction to Numerical Simulations with Python
Autoren
Svein Linge
Hans Petter Langtangen
Verlag
Springer Open
Datum
2016
Sprache
englisch
Lizenz
CC BY-NC 4.0
ISBN
978-3-319-32428-9
Abmessungen
17.8 x 25.4 cm
Seiten
248
Schlagwörter
Programmiersprache, Informatik, programming language, functional, imperative, object-oriented, reflective
Kategorie
Informatik
Web-Books
Bibliothek
Datenschutz
Impressum
Austria-Forum
Austria-Forum
Web-Books
Programming for Computations – Python