Can I eliminate roundoff error caused due to floating point arithmetic limit in MATLAB?
20 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am trying to do an error analysis of RK4 in MATLAB. But after the step size reaches a particular value the error starts increasing with decrease in step size. I know that these occurs due to the round off error generated in MATLAB. What can be the solution of this?
2 commentaires
Stephen23
le 17 Jan 2022
Modifié(e) : Stephen23
le 17 Jan 2022
"Can I eliminate roundoff error caused due to floating point arithmetic limit in MATLAB?"
The very general answer to your very general question is no.
If there was a general solution to "eliminate roundoff error caused due to floating point arithmetic" then everyone would use it.
In some circumstances you can change an algorithm to make it more numerically robust, but as you did not provide any details of the arithmetic that you are performing we cannot help you know if that can be applied to your code.
Réponses (1)
Star Strider
le 17 Jan 2022
Floating-point approximation error is simply inherent in binary representations of floating-point numbers. The best way to deal with it is to use a tolerance, for example —
flag = abs(x - target) < 1E-4;
or something similar, to test for the equality of ‘x’ and ‘target’ unless all the values are integers, since in that situation exact representations and comparisons are possible. Use whatever tolerance value (here 1E-4) is appropriate.
.
3 commentaires
John D'Errico
le 17 Jan 2022
@Ankhiparna Guha - You CANNOT go beyond roughly 15-16 significant digits in floating point arithmetic. So no. You cannot eliminate floating point errors when working in floating point arithmetic. At best you can use good numerical practices, the things taught in numerical analysis and numerical methods courses, to avoid issues. These are the kinds of things I assume you will learn in the classes you are taking, since you are trying to solve this problem. One such idea is to use tolerances, as Star suggests. As for what is exactly happening in your code, we cannot know, since we see no code from you, nor any idea what exactly you did.
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!