![]() |
Re: numerical solution of differential equations
Quote:
I set dt = 0.01 s and compared the errors at t = 1, 2, 4 s For 1s: Midpt error: 0.598 Euler error: 0.585 For 2s: Midpt error: 2.834 Euler error: 2.748 For 4s: Midpt error: 50.070 Euler error: 48.113 Seems that, at least for this function, the Euler method holds up better. Tomorrow, I'll try it with a function where the second derivative isn't always positive on the interval I'm testing. |
Re: numerical solution of differential equations
2 Attachment(s)
And the new sheets:
|
Re: numerical solution of differential equations
Quote:
|
Re: numerical solution of differential equations
Quote:
|
Re: numerical solution of differential equations
Quote:
|
Re: numerical solution of differential equations
Quote:
|
Re: numerical solution of differential equations
Quote:
Quote:
x(t) = 1/4*t^3 + 1 Is that correct? If so, then in order to investigate the performance of Euler vs Midpoint numerical solution (in the context of this thread) you need to convert that to an initial value problem (IVP) consisting of a differential equation (involving only x, x', and x'') plus initial values for x(t) and x'(t) at some point t=to. |
Re: numerical solution of differential equations
Quote:
|
Re: numerical solution of differential equations
1 Attachment(s)
Quote:
x(t) = 1/4*t^3 + 1 is the analytical solution to the Initial Value Problem a(t) = sqrt(3*v(t)) with initial values* x(0.01) = 1.00000025 and v(0.01) = 7.5e-5 As you can see from the spreadsheet, the Midpoint method gives much better results for that IVP than Forward Euler and Forward/Backward Euler. * selected to avoid the stationary point at t=0 |
Re: numerical solution of differential equations
Quote:
Quote:
if x=Ae√3t/√2, then x'=√3Ae√3t/√2/√2 (chain rule) and x''=3Ae√3t/√2/2 (chain rule again) = 3x/2. Edit: I knew there was more to it, and just figured out the other part: x''=3x/2 ==> x= Ae√3t/√2 + Be-√3t/√2 |
Re: numerical solution of differential equations
Quote:
Quote:
Quote:
Quote:
given: x(t) = 1/4*t^3 + 1 ... take time derivative of x(t) to get: x'(t) = (3/4)*t^2 ...take time derivative of x'(t) to get: x''(t) = (3/2)*t Now solve for the differential equation: solve x'(t) for t: x'(t) = (3/4)*t^2 => t=sqrt(4x'(t)/3) ... and then substitute for t in x''(t): x''(t) = (3/2)*t = (3/2)*sqrt(4x'(t)/3) = sqrt(3*x'(t)) |
Re: numerical solution of differential equations
Quote:
dt = 0.01s, error measured at t=3s. Euler error: 0.2061 Midpoint error: 5.0828 This, I presume, is for the reason I mentioned in my first post. |
Re: numerical solution of differential equations
Quote:
I think you may have overlooked my earlier post #24. The attachment shows how to set up the formulas. The Midpoint method is clearly better than either Forward/Forward Euler or Forward/Backward Euler for this IVP. |
Re: numerical solution of differential equations
1 Attachment(s)
I redid the midpoint spreadsheet - now at t=9.96s with dt=0.01s, the error is only 0.96. I replaced the Am column with the Am = sqrt(3*x').
Now to search for a possible explanation... I did find this http://www.physics.drexel.edu/~steve...rs/simple.html My guess would be that for this function, which, on the interval being examined, is concave up always (x'' > 0), the Euler method uses a point from farther back than the midpoint method to determine the slope (beginning of the interval slope vs. mid-interval slope). As it's concave up, the Euler method lags behind the midpoint method in growth, and so grows slower than the actual function by more than the midpoint method. Now to test a method where it uses the end of the interval's slope... |
Re: numerical solution of differential equations
1 Attachment(s)
Quote:
|
| All times are GMT -5. The time now is 08:48. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi