How parentheses effects multiplication with pi ?
이전 댓글 표시
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,
채택된 답변
추가 답변 (1개)
madhan ravi
2020년 8월 4일
0 개 추천
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
madhan ravi
2020년 8월 4일
BODMAS
Emre Doruk
2020년 8월 5일
madhan ravi
2020년 8월 5일
편집: madhan ravi
2020년 8월 5일
Click on the tag floating-point. And read my answer once again.
Emre Doruk
2020년 8월 5일
"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
2020년 8월 5일
madhan ravi
2020년 8월 5일
Thanks Stephen:)
카테고리
도움말 센터 및 File Exchange에서 Mathematics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!