Group Abstract Group Abstract

Message Boards Message Boards

0
|
10.2K Views
|
4 Replies
|
0 Total Likes
View groups...
Share
Share this post:

NDSolve Problem for Solving Nonlinear Sytem of 3 Ball Chain "Hertz Model"

Anonymous User
Anonymous User
Posted 11 years ago
Attachments:
POSTED BY: Anonymous User
4 Replies
Anonymous User
Anonymous User
Posted 11 years ago
POSTED BY: Anonymous User
Posted 11 years ago

What happens if you replace all your decimal approximations with exact fractions so there will be no round-off error and you write your own simple Euler numerical solver? Your equations give explicit expressions for your second derivatives. It looks like you can get linear approximations of your first derivatives from those and then get linear approximations of your functions from those. Iterate that over each small step and see how it behaves.

I understand many users want a magic "do what I want" button. I realize there must be a better way, but if you can't understand and successfully control the inner works of any of the black box methods then writing a very simple numerical solver that you could understand might get you an answer today and that might be enough to get you started. That only seems feasible because the form of your system and initial conditions are simple enough to perhaps allow this. I've written a dozen lines to try to do that but I'm still trying to convince myself it is correct.

POSTED BY: Bill Simpson
Posted 11 years ago

If I suspect there might be numerical accuracy problems and thus I turn all your decimal floating point values into exact fractions, include the options , WorkingPrecision->64, AccuracyGoal->16 inside your NDSolve, restrict your plots to {t, 0, 0.000839} because that is where NDSolve says things blow up, include PlotRange -> All in each plot to make it more likely that I see all the behavior and separately plot x1, x1', x2, x2', x3, x3' then I see your derivatives smoothly grow from zero to as much as 120000 while t grows from 0 to to 0.000839. Your derivatives are about 20 billion times the size of your positions.

If you look at your system should those derivatives be that huge that quickly? Or is there perhaps an error anywhere in your system? Even using hundreds of digits of working precision doesn't change the behavior.

POSTED BY: Bill Simpson
Anonymous User
Anonymous User
Posted 11 years ago

Dear Bill. Yes I was able to make work after I restricted the time to very small number. I tried your suggestion and it work too. Thank you. The only problem causing the code not work is the nonlinear power of 3/2 in the equations F12 and F23. If you set 3/2 to 1 "cancel the nonlinearity" in the system everything works perfectly but again it's not going to be able to give the results I am looking for since I linearized my system. I am not sure if there is any other way of solving since I have been trying to for a few days. Thank you again.

POSTED BY: Anonymous User
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard