Download presentation
Presentation is loading. Please wait.
1
Sec:5.4 RUNGE-KUTTA METHODS
2
Sec:5.4 RUNGE-KUTTA METHODS
1) Euler Method 2) Modified Euler Method 3) Midpoint Method 4) Heun's Method 5) RK4 Method Computational Examples MATLAB Derivations
3
Sec:5.4 RUNGE-KUTTA METHODS
Initial Value Problem Eulerβs Method π¦ β² =π π‘,π¦ π¦(π) =πΌ π€ π+1 = π€ π +βπ π‘ π , π€ π π€ =πΌ πβ€ π‘ β€π, Modified Euler Method Eulerβs Method π€ π+1 = π€ π + β 2 π² π + π² π π€ =πΌ π€ π+1 = π€ π +β π² π π€ =πΌ π² π =π π‘ π , π€ π π² π =π π‘ π , π€ π π² π =π π‘ π +β, π€ π + π² π β Modified Euler Method π€ π+1 = π€ π + β 2 π π π , π π +π π‘ π +β, π€ π +βπ π π , π π π€ =πΌ
4
Sec:5.4 RUNGE-KUTTA METHODS
Modified Euler Method Example π€ π+1 = π€ π + β 2 π² π + π² π π€ =πΌ Use the Modified Euler method h = 0.5, to approximate π¦(1) π¦ β² =π¦β π‘ 2 +1 0β€ π‘ β€4, π¦(0) = 0.5 π² π =π π‘ π , π€ π π² π =π π‘ π +β, π€ π + π² π β π(π‘,π¦)=π¦β π‘ 2 +1 π² π =π π‘ 1 , π€ 1 π² π =π π‘ 0 , π€ 0 =π 0.5,1.375 =2.125 π² π =π π‘ 1 +β, π€ 1 + π² π β =π 0,0.5 =1.5 =π 1,1.375+π.πππβ0.5 π² π =π π‘ 0 +β, π€ 0 + π² π β =2.4375 =π 0.5,0.5+π.πβ0.5 =2 π π =π.πππ+ π π βπ.πππ + π π βπ.ππππ π.π π€ 1 = βπ.π+ 1 2 βπ 0.5 π€ 2 = π€ 1 =1.375 βπ(π)βπ.ππππππ βπ(π.π)βπ.πππ
5
Sec:5.4 RUNGE-KUTTA METHODS
1) Euler Method 2) Modified Euler Method 3) Midpoint Method 4) Heun's Method 5) RK4 Method
6
Sec:5.4 RUNGE-KUTTA METHODS
Example Midpoint method Use the Midpoint method h = 0.5, to approximate π¦(0.5) π€ π+1 = π€ π + βπ² π π€ =πΌ π¦ β² =π¦β π‘ 2 +1 0β€ π‘ β€4, π¦(0) = 0.5 π² π =π π‘ π , π€ π π² π =π π‘ π + β 2 , π€ π + β 2 π² π Midpoint method π€ π+1 = π€ π +ππ π‘ π + β 2 , π€ π + β 2 π π‘ π , π€ π π€ =πΌ π² π =π π‘ ββ, π€ βπ² π β π(π‘,π¦)=π¦β π‘ 2 +1 π² π =π π‘ 0 , π€ 0 =π 0.5, βπ.πβ0.5 =1.8125 =π 0,0.5 =1.5 π€ 1 =0.5+ π.ππππ 0.5 = βπ(π.π)βπ.πππππ
7
Sec:5.4 RUNGE-KUTTA METHODS
1) Euler Method 2) Modified Euler Method 3) Midpoint Method 4) Heun's Method 5) RK4 Method
8
Sec:5.4 RUNGE-KUTTA METHODS
Heun's Method Example π€ π+1 = π€ π + β 4 π² π +3 π² π π€ =πΌ Use the Heun's method with h = 0.2, to approximate π¦(0.2) π¦ β² =π¦β π‘ 2 +1 0β€ π‘ β€2, π¦(0) = 0.5 π² π =π π‘ π , π€ π π² π =π π‘ π + β 3 , π€ π + β 3 π² π π² π =π π‘ π + 2β 3 , π€ π + 2β 3 π² π π(π‘,π¦)=π¦β π‘ 2 +1 π² π =π π‘ 0 +2/15, π€ 0 +(2/15)(1.5956) π² π =π π‘ 0 , π€ 0 = =π 0,0.5 =1.5 π€ 1 = π.π+3βπ π² π =π π‘ 0 +1/15, π€ /15 =1.5956 π€ 1 = βπ(π.π)βπ.πππππ
9
Sec:5.4 RUNGE-KUTTA METHODS
πΆ(π) 1) Euler Method πΆ( π π ) 2) Modified Euler Method πΆ( π π ) 3) Midpoint Method πΆ( π π ) 4) Heun's Method πΆ( π π ) 5) RK4 Method
10
Sec:5.4 RUNGE-KUTTA METHODS
Modified Euler Method Eulerβs Method π€ π+1 = π€ π +β π² π π€ =πΌ π€ π+1 = π€ π + β 2 π² π + π² π π€ =πΌ π² π =π π‘ π , π€ π π² π =π π‘ π , π€ π Heun's Method π² π =π π‘ π +β, π€ π + π² π β π€ π+1 = π€ π + β 4 π² π +3 π² π π€ =πΌ Midpoint method π€ π+1 = π€ π + βπ² π π€ =πΌ π² π =π π‘ π , π€ π π² π =π π‘ π + β 3 , π€ π + β 3 π² π π² π =π π‘ π , π€ π π² π =π π‘ π + β 2 , π€ π + β 2 π² π π² π =π π‘ π + 2β 3 , π€ π + 2β 3 π² π
11
Sec:25.3 RUNGE-KUTTA METHODS
clear; clc; y-t.^2+1; h=0.2; alpha = 0.5; tspan = 0:h:4 [w] = midpoint(f,tspan,alpha); [tspan;w]' plot(tspan,w, '-ro'); grid on function [w] = midpoint(f,tspan,alpha) w(1)=alpha; t(1)=tspan(1); n1=length(tspan)-1; h=tspan(2)-tspan(1); for i=1:n1 K1 = f(t(i),w(i)); K2 = f(t(i)+0.5*h,w(i)+0.5*h*K1) w(i+1)=w(i)+(K2)*h t(i+1)=t(i)+h; end; end
12
Sec:5.4 RUNGE-KUTTA METHODS
1) Euler Method 2) Modified Euler Method 3) Midpoint Method 4) Heun's Method 5) RK4 Method Computational Examples MATLAB Derivations
13
Fourth-Order Runge-Kutta Methods
Sec:25.3 RUNGE-KUTTA METHODS π«πππππππππ The most popular method is the fourth order Runge-Kutta method, or RK4 method Fourth-Order Runge-Kutta Methods π π+1 = π π + π π π² π + ππ² π + ππ² π + π² π π =πΌ π² π =β πΉ π‘ π , π π π² π =β πΉ π‘ π + β 2 , π π π² π π² π =β πΉ π‘ π + β 2 , π π π² π π² π =β πΉ π‘ π+1 , π π + π² π
14
Fourth-Order Runge-Kutta Methods
Sec:5.4 RUNGE-KUTTA METHODS Fourth-Order Runge-Kutta Methods Example Use the RK4 method with h = 0.2, to approximate π¦(0.2) π π+1 = π π + π π π² π + ππ² π + ππ² π + π² π π =πΌ π² π =β πΉ π‘ π , π π π¦ β² =π¦β π‘ 2 +1 0β€ π‘ β€2, π¦(0) = 0.5 π² π =β πΉ π‘ π + β 2 , π π π² π π² π =β πΉ π‘ π + β 2 , π π π² π π² π =β πΉ π‘ π+1 , π π + π² π
15
Sec:5.4 RUNGE-KUTTA METHODS
16
Implicit Eulerβs Method Explicit Eulerβs Method
Sec:5.4 RUNGE-KUTTA METHODS Explicit and Implicit Euler Implicit Eulerβs Method called implicit because the unknown appears on both sides of the equation. π€ π+1 = π€ π +βπ π‘ π+π , π€ π+π π€ =πΌ Example Use Implicit Eulerβs method with h = 1, to approximate π¦(2) Explicit Eulerβs Method π¦ β² = π‘ 1+ π¦ β€ π‘ β€4, π¦(1) =1 π€ π+1 = π€ π +βπ π‘ π , π€ π π€ =πΌ Implicit Euler π€ π+1 = π€ π + β π‘ π π€ π+1 2 π€ 1 = π€ 1 2 you need to solve nonlinear equation
17
Sec:5.4 RUNGE-KUTTA METHODS
Explicit and Implicit Euler Explicit Eulerβs Method π€ π+1 = π€ π +βπ π‘ π , π€ π π€ =πΌ Implicit Eulerβs Method Implicit 2ed order Method Implicit 2ed order Method π€ π+1 = π€ π +β π π π π‘ π , π€ π + π π π π‘ π+π , π€ π+π π€ =πΌ π€ π+1 = π€ π +βπ π‘ π+π , π€ π+π π€ =πΌ predictor-corrector method we will use a predicted value, π π+π β obtained with Explicit Euler to evaluate an approximation to the value π π+π at the new point. Predictor: π π+π β = π€ π +βπ π‘ π , π€ π π π+π = π€ π +β π π π π‘ π , π€ π + π π π π‘ π+π , π π+π β Corrector:
18
Sec:5.4 RUNGE-KUTTA METHODS
ODE Solver in MATLAB Ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb, ode15i, Example Example π¦ β² =πβ π π +π πβ€ π β€π, π¦(0) = π.π [t,y] = ode23(odefun,tspan,y0) y-t^2+1,[0 4],0.5); plot(t,y);grid on
19
Sec:5.4 RUNGE-KUTTA METHODS
ODE Solver in MATLAB Ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb, ode15i, Example Example π π β² = π π [t,y] = ode45(odefun,tspan,y0) π π β² = πβ π π π π π β π π πβ€ π β€ππ, π π (π) π π (π) = π π F [y(2); (1-y(1)^2)*y(2)-y(1)]; [t,y] = ode45(F,[0 20],[2; 0]); plot(t,y(:,1),'-o',t,y(:,2),'-o')
20
Sec:25.3 RUNGE-KUTTA METHODS
Solver Problem Type Accuracy When to Use ode45 Nonstiff Medium Most of the time.Β ode45Β should be the first solver you try. ode23 Low ode23Β can be more efficient thanΒ ode45Β at problems with crude tolerances, or in the presence of moderate stiffness. Low to High ode113Β can be more efficient thanΒ ode45Β at problems with stringent error tolerances, or when the ODE function is expensive to evaluate. ode113 ode15s Stiff Low to Medium TryΒ ode15sΒ whenΒ ode45Β fails or is inefficient and you suspect that the problem is stiff. Also useΒ ode15sΒ when solving differential algebraic equations (DAEs). ode23sΒ can be more efficient thanΒ ode15sΒ at problems with crude error tolerances. It can solve some stiff problems for whichΒ ode15sΒ is not effective. ode23sΒ computes the Jacobian in each step, so it is beneficial to provide the Jacobian viaΒ odesetto maximize efficiency and accuracy. If there is a mass matrix, it must be constant. ode23s ode23t UseΒ ode23tΒ if the problem is only moderately stiff and you need a solution without numerical damping.Β ode23tΒ can solve differential algebraic equations (DAEs). ode23tb LikeΒ ode23s, theΒ ode23tbΒ solver might be more efficient thanΒ ode15sΒ at problems with crude error tolerances. ode15i Fully implicit UseΒ ode15iΒ for fully implicit problemsΒ f(t,y,yβ)Β =Β 0Β and for differential algebraic equations (DAEs) of index 1. Sec:25.3 RUNGE-KUTTA METHODS
21
Sec:5.4 RUNGE-KUTTA METHODS
22
Sec:5.4 RUNGE-KUTTA METHODS
The motion of a swinging pendulum under certain simplifying assumptions is described by the second-order differential equation π
π π½ π
π π + π π³ π¬π’π§ π½=π where L=2 is the length of the pendulum, g β ft/s2 is the gravitational constant of the earth, and ΞΈ is the angle the pendulum makes with the vertical. If, in addition, we specify the position of the pendulum when the motion begins, π( π‘ 0 ) = π 6 , and its velocity at that point, πβ²( π‘ 0 ) =0, we have what is called an initial-value problem. Use midpoint method with h = 0.1 s, compute the angle ΞΈ obtained for this initial-value problems at t = 0, 1, and 2 s.
23
Convert into system of 1st order ode
Sec:5.4 RUNGE-KUTTA METHODS π
π π½ π
π π + π π³ π¬π’π§ π½=π Convert into system of 1st order ode π¦ 1 =π π¦ 2 = ππ ππ‘ π π¦ 1 ππ‘ = ππ ππ‘ π π¦ 2 ππ‘ = π 2 π π π‘ 2 π π¦ 1 ππ‘ = π¦ 2 π π¦ 2 ππ‘ =β π πΏ sin π¦ 1 πβ² π‘ = π π¦ 1 ππ‘ π π¦ 2 ππ‘ π π‘ = π¦ 1 (π‘) π¦ 2 (π‘) πβ² π‘ =πΉ(π‘,π) π(0) = π 6 πΉ π‘,π = π¦ 2 β π πΏ sin π¦ 1 πβ²(0) =0 π 0 = π/6 0
24
Sec:5.4 RUNGE-KUTTA METHODS
π
π π½ π
π π + π π³ π¬π’π§ π½=π πβ² π‘ =πΉ(π‘,π) πΉ π‘,π = π¦ 2 β π πΏ sin π¦ 1 π½(π) = π
π π½β²(π) =π π 0 = π/6 0 Midpoint method π π+1 = π π + π² π β π =πΌ π π is a vector of size 2Γ1 π² π , π² π and πΆ are vector of size 2Γ1 π² π =πΉ π‘ π , π π β and π‘ π are scalars π² π =πΉ π‘ π β, π π π² π β πΉ: π‘, π¦ 1 π¦ β
25
Remark: use this modified for system
Sec:5.4 RUNGE-KUTTA METHODS Midpoint method clear; clc; L = 2; g=32.17; [ Y(2) ; ... -(g/L)*sin(Y(1))]; t0=0; tf=2; n=1000; h=(tf-t0)/n; alpha = [ pi/6 ; 0 ]; tspan = t0:h:tf; [w] = midpoint(F,tspan,alpha); [tspan',w']; plot(tspan,w(1,:));grid on π π+1 = π π + π² π β π =πΌ π² π =πΉ π‘ π , π π π² π =πΉ π‘ π β, π π π² π β function [w] = midpoint(f,tspan,alpha) w(:,1)=alpha; t(1)=tspan(1); n1=length(tspan)-1; h=tspan(2)-tspan(1); for i=1:n1 K1 = f(t(i),w(:,i)); K2 = f(t(i)+0.5*h,w(:,i)+0.5*h*K1); w(:,i+1)=w(:,i)+(K2)*h; t(i+1)=t(i)+h; end; end πβ² π‘ =πΉ(π‘,π) πΉ π‘,π = π¦ 2 β π πΏ sin π¦ 1 Remark: use this modified for system π 0 = π/6 0
26
Sec:5.4 RUNGE-KUTTA METHODS
π
π π½ π
π π + π π³ π¬π’π§ π½=π t(:) w(1,:) w(2,:) π½(π) = π
π π½β²(π) =π π½ π½β²
27
Sec:5.4 RUNGE-KUTTA METHODS
clear; clc; L = 2; g=32.17; [ Y(2) ; ... -(g/L)*sin(Y(1))]; t0=0; tf=10; n=1000; h=(tf-t0)/n; alpha = [ pi/4 ; 0 ]; tspan = t0:h:tf; [w] = midpoint(F,tspan,alpha); [tspan',w']; plot(tspan,w(1,:));grid on function [w] = midpoint(f,tspan,alpha) w(:,1)=alpha; t(1)=tspan(1); n1=length(tspan)-1; h=tspan(2)-tspan(1); for i=1:n1 K1 = f(t(i),w(:,i)); K2 = f(t(i)+0.5*h,w(:,i)+0.5*h*K1); w(:,i+1)=w(:,i)+(K2)*h; t(i+1)=t(i)+h; end; end πβ² π‘ =πΉ(π‘,π) πΉ π‘,π = π¦ 2 β π πΏ sin π¦ 1 π 0 = π
/π 0 π π =ππ
28
Sec:5.4 RUNGE-KUTTA METHODS
29
Theorem 513 (nth Taylor polynomial in two variables)
Sec:5.4 RUNGE-KUTTA METHODS nth Taylor polynomial in two variables π π₯ =π π₯ 0 +(π₯β π₯ 0 )πβ² π₯ (π₯β π₯ 0 ) 2 πβ²β² π₯ (π₯β π₯ 0 ) 3 πβ²β²β² π₯ 0 +β― Theorem 513 (nth Taylor polynomial in two variables) 1st derivatives 2ed nth derivatives
30
Sec:5.4 RUNGE-KUTTA METHODS
π«πππππππππ Taylorβs Series Methods Initial Value Problem Eulerβs Method π€ π+1 = π€ π +βπ π‘ π , π€ π π€ =πΌ π¦ β² =π π‘,π¦ π¦(π) =πΌ (*) πβ€ π‘ β€π, We will use Taylorβs Theorem to derive Eulerβs method. Suppose that π(π), the unique solution to (*) Taylorβs Series Methods π¦ π‘ π+1 =π¦ π‘ π π π+π βπ π π β² π π π‘ π+1 βπ‘ π π π¦ β²β² π π +β― π¦ π‘ π+1 =π¦ π‘ π π π+π βπ π π β² π π + π‘ π+1 βπ‘ π π π¦ β²β² π π π¦ π‘ π+1 =π¦ π‘ π +ππβ² π π π 2 πβ²β² π π +β― π¦ π‘ π+1 =π¦ π‘ π +ππ π π ,π¦ π‘ π π π πβ² π π ,π¦ π‘ π +β― π¦ π‘ π+1 =π¦ π‘ π +ππβ² π π + π 2 π¦ β²β² π π π β² π π ,π π π = π ππ π π π ,π¦ π‘ π = π π + π π πβ² π¦ π‘ π+1 =π¦ π‘ π +ππ π π ,π¦ π‘ π + π π π¦ β²β² π π π¦ π‘ π+1 βπ¦ π‘ π +ππ π π ,π¦ π‘ π π¦ π‘ π+1 =π¦ π‘ π +ππ π π ,π¦ π‘ π π π π π + π π π +β― π€ π+1 = π€ π + ππ π π , π π π¦ π‘ π+1 βπ¦ π‘ π +ππ π π ,π¦ π‘ π π π π π + π π π One way to reduce the error of Eulerβs method would be to include higher-order terms of the Taylor series expansion in the solution. π€ π+1 = π€ π +ππ π π , π€ π π π π π + π π π π π , π€ π Higher-order derivatives become increasingly more complicated
31
Sec:5.4 RUNGE-KUTTA METHODS
Taylorβs Series Methods π«πππππππππ Taylorβs Series Methods π π π+π =π π π +π π β² π π + π π π π π β²β² π π + π π π π π β²β²β² π π +β― π π π+π =π π π +ππ+ π π π π π β² + π π π π π β²β² +β― π π π+π =π π π +π π+ π π π π β² + π π π π π β²β² +β― Taylorβs Series Method of order one π π π+π =π π π +π π+ π π π π β² + π π π π π β²β² +β― Eulerβs Method Taylorβs Series Method of order two π β² = π π + π π πβ² = π π + π π π π π ,π π π π π π+π =π π π +π π+ π π π π β² + π π π π π β²β² +β― π π+π = π π +π π+ π π π π π + π π ππ π π π π , π π
32
Taylor series in 2-dimension
Sec:5.4 RUNGE-KUTTA METHODS Midpoint method Mod EulerMethod π€ π+1 = π€ π +β π² π π² π π€ π+1 = π€ π +β π² π π² π =π π‘ π , π€ π π² π =π π‘ π , π€ π π² π =π π‘ π β, π€ π π² π β π² π =π π‘ π +β, π€ π + π² π β π² π =π π π , π π Taylorβs Series Method of order two π² π =π π π + π π π, π π + π ππ π² π π π π+π = π π +π π+ π π π π π + π π ππ π π π π , π π π π+π = π π +π π π π² π + π π π² π Taylor series in 2-dimension + <2ed deriv>+β― =π π π , π π + π π π π π π π , π π + π ππ π² π π π π π π , π π π² π π π π² π + π π π² π = π π π+ π π π+ π π π π π π π + π π π ππ π² π π π π +β― Matching the coefficients of f and its derivatives π π π π = π π π π π ππ = π π π π + π π =π
33
Sec:5.4 RUNGE-KUTTA METHODS
π«πππππππππ π² π =π π π , π π Matching the coefficients of f and its derivatives π² π =π π π + π π π, π π + π ππ π² π π π π + π π =π π π+π = π π +π π π π² π + π π π² π π π π π = π π three equations four unknown We have infinite number of solutions , there are an infinite number of second-order RK methods. π π π ππ = π π We present two of the most commonly used and preferred versions: π π = π π π π =π Modefied Euler Method Midpoint method
34
Sec:5.4 RUNGE-KUTTA METHODS
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.