Lecture 8 slides

Download Report

Transcript Lecture 8 slides

Differential equations:
Numerical solutions

Equation:

Euler's method: xi+ 1 = xi + f ( x i , t i )Δ t
ẋ = f ( x , t)
x
xi+1
xi
t0 t1
t2
t3
ti
ti+1
xi+ 1− x i
f ( x i , t i )=
Δt
t
Step errors
Taylor expansion of x(t) about t=ti
x(t i+ 1)= x(t i )+ ẋ(t i )Δ t + O(Δ t 2 )
xi+ 1 = x(t i )+ f ( xi , t i )Δ t + e local
e local =
Use small Dt !!
Local truncation error
Global errors

Errors will add up...
E: Global error
E = O(D t )
Midpoint method

For smaller step errors:
Δt
Δt
3
x i+ 1= x i + f ( x i + f ( xi ,t)
,t i +
)Δ t+ O (Δ t )
2
2
k 1 = Δ t f ( x i ,t i )
1
1
k 2 = Δ t f ( x i + k 1, t i + Δ t)
2
2
3
x i+ 1= x i + k 2+ O (Δ t )
2
1
3
e = O(Δ t )
ti
ti+1
Runge-Kutta formula:
th
4
k 1 = h f ( xi , t i )
k1
Δt
k 2 = h f ( x i+ , t i+
)
2
2
k2
Δt
k 3 = h f ( x i + ,t i +
)
2
2
k 4 = h f ( x i + k 3 ,t i + Δ t)
k1 k2 k3 k4
5
xi+ 1 = xi + + + + + O (Δ t )
6 3 3 6
order
Function outline

Function [xf]=int(x0,tf,n)
t=linspace(0,tf,n);
x(1)=x0;
for i=1:n-1
...
x(i+1)= …
end
Example: mass on nonlinear spring
ẍ= − k x 3− c ẋ
First order equations
ẋ= v
3
v̇= − k x − c ẋ
Euler:
xi + 1= xi + v i Δ t
3
v i+ 1= v i + (− k x i − c vi )Δ t
Example: mass on nonlinear spring
First order equations
ẋ= v= f 1 ( x , v)
3
v̇= − k x − c v= f 2 (x , v)
Midpoint method
2
1
Δt
Δt
xi + 1= xi + f 1 ( x i + f 1 ( xi , v i )
, vi + f 2 ( xi , v i )
)Δ t
2
2
Δt
Δt
v i+ 1= v i + f 2 ( xi + f 1 ( x i , vi )
, v i + f 2 (x i , vi ) )Δ t
2
2
Example: mass on nonlinear spring
First order equations
ẋ= v
v̇= − k x 3− c v
Midpoint method:
1
k 11= vi Δ t
3
k 12= (− k xi − c vi ) Δ t
k 12
k 21= (v i +
)Δ t
2
k 12
k11 3
k 22= (− k ( x i +
) − c (vi +
))Δ t
2
2
xi + 1= xi + k21
v i+ 1= v i + k22
2