When I do something a little bit more complicated than standard documentation examples, I often hit precision problem.
Or I accidentally disprove Riemann hypothesis Like this
Abs[Zeta[0.989999999999999999 + 1000000000072486.88*I]]//AccountingForm
0.0000000377472
But precise value is around 0.7 if I put 0.989999999999999999`30. Or something happened with interpolation function like described here.
Often I have issues with NDSolve I got bad precision and it is difficult to find proper parameters or I got something like this “The precision of the differential equation ... is less than WorkingPrecision”. Even when I got a precise solution, plot function use low machine precision by default, etc, etc.
In every particular case I can find a solution, but work process looks like this:
- I spent 1 hour to write program to solve my task.
- I spent 4 hours to fight with precision issues.
What I would like to do is avoid step2, which is kind of expected from professional math software. I want to be a scientist, but not a programmer.
Ideally, I would like to solve my scientific problem first with high precision and with slow execution time and when I solved my problem and if time is not acceptable for me, than I would like to be a programmer and start optimization process. But how it works now, it is opposite.
My question: is there generic way to tell Mathematica to use high precision for everything? I have found some solutions like always use N[xxx, 50]
and then use M`50 for every number, but then programs will look really ugly. Of course I understand, that for some specific cases it is necessary to set precision manually and precision control is implemented very good, but for generic case people should not bother about it.
If someone here has connection with Mathematica developers, is there any plans to improve it in future? Because how it is implemented now is really bad and for any serious problem it takes 80% of time to fight with different precision problems.