Documents

RK4SystemEquations.pdf

Categories
Published
of 4
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Description
The 4th -order Runge-Kutta method for a system of ODEs ------------------------------------------------------ By Gilberto E. Urroz, Ph.D., P.E. January 2010 Problem description ------------------- Consider the case of a system of two first-order ODEs given by: f1 , y x f1 , 2 y 1 y x dx 1 dy f2 , y x f2 , 2 y 1 y x dx 2 dy subject to the initial conditions: 1 y 1 ys 1 xs and 2 y 2 ys 2 xs This system of equations can be re-written as a single ODE in which y and f are column ve
Transcript
  The 4th -order Runge-Kutta method for a system of ODEs------------------------------------------------------By Gilberto E. Urroz, Ph.D., P.E.January 2010Problem description-------------------Consider the case of a system of two first-order ODEs given by:f1 , yxf1 ,2y1yxdx1dyf2 , yxf2 ,2y1yxdx2dysubject to the initial conditions:1y1ys1xs and2y2ys2xsThis system of equations can be re-written as a single ODE inwhich y and f are column vectors, i.e.,2y1yyf , yxdxdyf2 , yxf1 , yxf , yx, with andys2ys1ysThe initial conditions are given by the vector:Once the system of equations is written as a single ODE, theRunge-Kutta algorithms presented for a single ODE can be usedto solve the equation. This illustrated in the followingexample.Example-------Solve the system of first-order ODEs:sin2ycos1ysin xdx1dysin2ycos xdx2dySubject to the initial conditions:1y1 0 and 1y2 0Solve the ODEs in the interval: 0  ≤  x  ≤  20 using 100 intervals. -1-  Solution (version 1):---------------------First, define the vector function f(x,y):sin2ycos xsin2ycos1ysin xf , yx11ysThe initial conditions are: 0xsThe end of the solution interval is: 20xeUse 100 intervals: 100nCalculate the increment size,  Δ x:evalnxsxe Δ x 0.2 Δ xCreate the x solution vector: eval , .. Δ xxs xexsxsol The y-solution vector gets initialized as follows:ysysol11ysolThe following for loop calculates the Runge-Kutta algorithm(version 1) to produce the solution:foraugment , y1ysolysoleval K4K32K22K1 61y0y1eval f , y1x1 Δ xK4eval1kxsolx1eval K3y0y1eval f , yMxM Δ xK3eval K221y0yMeval f , yMxM Δ xK2eval K121y0yMeval f , y0x0 Δ xK1eval  Δ x21x0xMeval col , kysoly0evalkxsolx0..n1kAfter completing the iterative process, the solution isstored in a row vector called ysol . This vector can betransposed to put together the graph of the two solutionsas illustrated here:Tysolysol -2-  augment , col , 1ysolxsolM1 augment , col , 2ysolxsolM2 M2M1 0 4 8 12 16 2043210-1 xyM2M1 0 4 8 12 16 2043210-1 xyThe plot to the left uses the Graph by lines option in the Plot palette, while the plot to the right uses the Graph by points option in the Plot palette.Solution (version 2):---------------------First, define the vector function f(x,y):sin2ycos xsin2ycos1ysin xf , yx11ysThe initial conditions are: 0xsThe end of the solution interval is: 20xeUse 100 intervals: 100nCalculate the increment size,  Δ x:evalnxsxe Δ x 0.2 Δ xCreate the x solution vector: eval , .. Δ xxs xexsxsol The y-solution vector gets initialized as follows:ysysol11ysolThe following for loop calculates the Runge-Kutta algorithm(version 1) to produce the solution: -3-  foraugment , y1ysolysoleval K4K33K23K1 81y0y1eval f , y1x1 Δ xK4eval1kxsolx1eval K3K2K1y0y1 eval f , y23x23 Δ xK3eval K231y13y23eval f , y13x13 Δ xK2eval K131y0y13eval f , y0x0 Δ xK1eval  Δ x32x0x23eval  Δ x31x0x13eval col , kysoly0evalkxsolx0..n1kAfter completing the iterative process, the solution isstored in a row vector called ysol . This vector can betransposed to put together the graph of the two solutionsas illustrated here:Tysolysolaugment , col , 1ysolxsolN1 augment , col , 2ysolxsolN2 N2N1 0 4 8 12 16 2043210  xy   N2N1 0 4 8 12 16 2043210  xyThe plot to the left uses the Graph by lines option in the Plot palette, while the plot to the right uses the Graph by points option in the Plot palette. -4-
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks