Coronavirus SIR models using Euler's method
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Coronavirus SIR models using Euler's method
Having issues programming an Euler's method for ODEs. Can't get past error in magnitude of numbers.
Solved! Go to Solution.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
You an improve the situation with m(t) by multiplying numerator and denominator by exp(-10(t-10)). For example:
Alan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
It's the exponential in your m(t) expression blowing up.
If you want to use B within your program, you'd probably be better of defining it as a local function at the top of the program (B(t)<-m(t)*p
Stuart
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Just as a quick follow-up to my previous post, here's one possibility for making Euler a bit easier to use (as it's already tailored to your problem, it's a reasonable option).
Unfortunately, I've only got Prime Express so can't run programs, but you should be able to check it making B return 5 (to behave like your earlier, simpler Euler function).
Stuart
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Right thanks, I know the exp function was going to infinity and mathcad won't handle it. In that same mathcad sheet over off to the right in the worksheet I have another disabled program where I tried to address that issue with an if/else statement. I know the exp blows up around iteration 10 so for k<10 I wanted to calculate m(t) and k>10 just print the 'ms' value.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
You an improve the situation with m(t) by multiplying numerator and denominator by exp(-10(t-10)). For example:
Alan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Notify Moderator
Thank you! I now have a more streamlined program that is at least plotting but the curves just settle around iteration 11. The graphs should look like the image attached. It that program I had a constant value for 'm' but now I want to do one that varies as a function of time.
