Decimals give different integrals than fractions; why?

  • Mathematica
  • Thread starter joshmccraney
  • Start date
  • #1
joshmccraney
Gold Member
1,971
104
Just like the title says. Is this due to roundoff?
 

Answers and Replies

  • #2
Orodruin
Staff Emeritus
Science Advisor
Homework Helper
Insights Author
Gold Member
16,829
6,652
You really cannot expect us to be able to help you unless you give a specific example of code.
 
  • #3
joshmccraney
Gold Member
1,971
104
The code is kind of long. Are you sure you want me to give it? There's not a computational difference that you're aware of for exact numbers vs decimals?
 
  • #4
12,477
6,262
Can't you illustrate it with a simpler example?

Its well known in computerdom that some numbers can't be represented properly in floating pt format so if Mathematica does a numerical computation with them them then computational error will creep into the calculation.

As an example, if you had some expression like ##3.0*sin(x)*(1.0/3.0)## and Mathematica symbolically reduces it to sin(x) then that result might be different from ##(3.0*sin(x)) / 3.0## where Mathematica didn't see the ONES identity and did the numerical computations of 3.0 * sin(x) then dividing by 3.0.

For larger numbers the result difference might be more pronounced as floating pt numbers kep to a certain limited digit precision.

 
  • #5
joshmccraney
Gold Member
1,971
104
Can't you illustrate it with a simpler example?

Its well known in computerdom that some numbers can't be represented properly in floating pt format so if Mathematica does a numerical computation with them them then computational error will creep into the calculation.

As an example, if you had some expression like ##3.0*sin(x)*(1.0/3.0)## and Mathematica symbolically reduces it to sin(x) then that result might be different from ##(3.0*sin(x)) / 3.0## where Mathematica didn't see the ONES identity and did the numerical computations of 3.0 * sin(x) then dividing by 3.0.

For larger numbers the result difference might be more pronounced as floating pt numbers kep to a certain limited digit precision.

I'm not sure how to illustrate it with a simpler example, which shows how little I know about the issue. I can say when I plot a function (takes a lot of code to construct) one plot has max of 50 and the other has max 6000. Do you want me to post the code or pictures so you can see?
 
  • #6
Dale
Mentor
Insights Author
2020 Award
30,828
7,429
Mathematica does treat approximate and exact numbers differently. Usually approximate numbers make Mathematica evaluate it numerically using NIntegrate. In contrast an integrand with exact numbers will be solved analytically and then the limits of integration will be substituted at the end.
 
  • #7
jim mcnamara
Mentor
4,222
2,787
If you are going to rely on programming/software then you should really consider reading this article, it has been cited a huge number of times because of its importance:
What Every Computer Scientist Should Know About Floating-Point Arithmetic
https://www.itu.dk/~sestoft/bachelor/IEEE754_article.pdf

I think that Dale is trying to tell you something about your understanding of what Mathematica does behind the scenes. Consider it seriously.
 

Related Threads on Decimals give different integrals than fractions; why?

Replies
2
Views
2K
  • Last Post
Replies
7
Views
791
  • Last Post
Replies
11
Views
901
  • Last Post
Replies
1
Views
2K
  • Last Post
Replies
6
Views
852
Replies
4
Views
52K
  • Last Post
Replies
2
Views
2K
Replies
1
Views
2K
Replies
2
Views
4K
Replies
4
Views
941
Top