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

Seite - 280 - in Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python 3.6, Band Second Edition

Bild der Seite - 280 -

Bild der Seite - 280 - in Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python 3.6, Band Second Edition

Text der Seite - 280 -

280 8 SolvingOrdinaryDifferentialEquations Exercise8.16:The Runge-KuttaThird OrderMethod AgeneralODEproblemu′(t)=f(u,t),u(0)=U0,maybesolvednumericallyby the thirdorderRunge-Kuttamethod.Thecomputationalschemereads un+1 =un+Δt 6 (k1+4k2+k3) , n=0,1,.. .,Nt −1, k1 =f(un,tn), k2 =f(un+Δt 2 ,tn+Δt 2 ), k3 =f(un−Δtk1+2Δtk2,tn+Δt), withu0 =U0. a) Implement the scheme in a functionRK3 that takes appropriate parameters, so that it is easy to importandusewheneverneeded. b) Write a functioncompare_FE_RK3 that comparesgraphically the solutionspro- duced by the Forward Euler and RK3 methods, when they solve the population growthmodelu′ = 0.1u,withu(0)= 100. Let the total time spanT = 20, and use a time stepdt = 2. In the plot produced, include also the exact solution, so that the numericalsolutionscanbeassessed. c) Suggest a reasonable asymptotic error model before you write a proper test functiontest_convergence_ratesthatmaybeusedtocomputeandcheckthe convergence rates of the implemented RK3 method. However, the test function should take appropriate input parameters, so that it can be used also for other ODE solvers, in particular the ode_FE implemented previously (if you already have written this test function when doing Exercise 8.15, you may prefer to import the function). Include your test function in a program, together with the two functions you definedpreviously(RK3andcompare_FE_RK3).Writethecodewithatestblock, so that it gets easy to either import functions from the module, or to run it as a program. Finally, run the program (so that compare_FE_RK3 gets called, as well as test_convergence_ratesfor bothFE andRK3) andconfirmthat it worksas expected. In particular,does the plot look good,anddo youget the convergence ratesyouexpectedforForwardEulerandRK3? Filename:runge_kutta_3.py. Exercise8.17:The Two-StepAdams-BashforthMethod Differingfromthe single-stepmethodspresented in thischapter,wehave themulti- step methods, for example the Adams-Bashforth methods. With the single-step methods, un+1 is computed by use of the solution from the previous time step, i.e.un. In multi-step methods, the computed solutions from several previous time steps, e.g., un, un−1 and un−2 are used to estimate un+1. How many time steps that are involved in the computing of un+1, and how the previous solutions are
zurück zum  Buch Programming for Computations – Python - A Gentle Introduction to Numerical Simulations with Python 3.6, Band Second Edition"
Programming for Computations – Python A Gentle Introduction to Numerical Simulations with Python 3.6, Band Second Edition
Titel
Programming for Computations – Python
Untertitel
A Gentle Introduction to Numerical Simulations with Python 3.6
Band
Second Edition
Autoren
Svein Linge
Hans Petter Langtangen
Verlag
Springer Open
Datum
2020
Sprache
englisch
Lizenz
CC BY 4.0
ISBN
978-3-319-32428-9
Abmessungen
17.8 x 25.4 cm
Seiten
356
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