Изучил алгоритм по этому документу:Нажмите для просмотра прикрепленного файлаНаписал скрипт для матлаба считающий значения sin и cos, все работает правильно за исключением точек кратных pi/4, в которых есть странные выбросы (см. рис.):Нажмите для просмотра прикрепленного файла
Ктонибуть может объяснить наличие этих выбросов ?
Основная часть функции выполняющая операцию поворот для диапазона 0..pi/2:
Код
z(1)=phi2;
x(1)=1;
y(1)=0;
if (z(1)==0)
sigma=1;
else
sigma=sign(z(1));
end
for i=1:k
x(i+1) = x(i) - sigma*y(i)*2^(-i+1);
y(i+1) = y(i) + sigma*x(i)*2^(-i+1);
z(i+1) = z(i) - sigma*atan(2^(-i+1));
sigma = sign(z(i+1));
end
x(1)=1;
y(1)=0;
if (z(1)==0)
sigma=1;
else
sigma=sign(z(1));
end
for i=1:k
x(i+1) = x(i) - sigma*y(i)*2^(-i+1);
y(i+1) = y(i) + sigma*x(i)*2^(-i+1);
z(i+1) = z(i) - sigma*atan(2^(-i+1));
sigma = sign(z(i+1));
end
Весь скрипт вот:Нажмите для просмотра прикрепленного файла