How parentheses effects multiplication with pi ?
Afficher commentaires plus anciens
Hi,
I am trying to generate sine wave. I am usning following two code lines. But they are slightly different (about e-15). Why is it happenning ? What is the differences of two lines;
f0=5e2;
fs=500e2;
len=3e3;
dt=1/fs;
t=0:dt:(len-1);
sing1= sin (2*pi*f0*t);
sing2= sin(2*pi*(f0*t));
isequal(sing1,sing2)
Thanks for your help,
Réponse acceptée
Plus de réponses (1)
madhan ravi
le 4 Août 2020
0 votes
In the first the order of operation is from left to right.
In the second the order of operation is inside the parenthesis and then the outer.
7 commentaires
madhan ravi
le 4 Août 2020
BODMAS
Emre Doruk
le 5 Août 2020
madhan ravi
le 5 Août 2020
Modifié(e) : madhan ravi
le 5 Août 2020
Click on the tag floating-point. And read my answer once again.
Emre Doruk
le 5 Août 2020
"Because it is the same oparetaion, left to right or the right to left. "
No, that is incorrect.
In general operations on binary floating point numbers are NOT associative:
A classic example of this is called catastrophic cancelation:
>> (1 + 1e100) - 1e100
ans =
0
>> 1 + (1e100 - 1e100)
ans =
1
"Why is it happenning?"
Because of the well-documented properties of binary floating point numbers.
Emre Doruk
le 5 Août 2020
madhan ravi
le 5 Août 2020
Thanks Stephen:)
Catégories
En savoir plus sur Performance and Memory dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!