How parentheses effects multiplication with pi ?
Mostrar comentarios más antiguos
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,
Respuesta aceptada
Más respuestas (1)
madhan ravi
el 4 de Ag. de 2020
0 votos
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 comentarios
madhan ravi
el 4 de Ag. de 2020
BODMAS
Emre Doruk
el 5 de Ag. de 2020
madhan ravi
el 5 de Ag. de 2020
Editada: madhan ravi
el 5 de Ag. de 2020
Click on the tag floating-point. And read my answer once again.
Emre Doruk
el 5 de Ag. de 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
el 5 de Ag. de 2020
madhan ravi
el 5 de Ag. de 2020
Thanks Stephen:)
Categorías
Más información sobre Performance and Memory en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!