Курсовая работа: Разработка специализированного процессора для исполнения элементарных функций
.
Рассчитаем минимальное число итераций при погрешности преобразования равной 0,01% и максимальной выходной величине 4,685:
Тогда количестово разрядов данных составит:
.
1.2 Разработка итерационных алгоритмов вычисления функции в математическом пакете SciLab
Промоделируем в пакете математического моделирования MatLab метод Волдера «Цифра за цифрой» для анализа его работоспособности и определения погрешности вычислений.
В цикле подсчитаем значение абсолютной погрешности при изменении количества итераций от 1 до n и при изменении разрядности данных (дробная часть задается от 1 до 16 бит).
Листинг программы для исследования погрешности при изменении числа итераций:
//== function arch ====
//function [archZ] = arch(Z,N)
Q0 = 0;
x0 = 0.6072529;
y0 = 0;
N=20;
Z= 0.512
acos_ist = asin(Z)
for n=1:N
Q(1)=Q0+atan(2^(-0));
r(1)=sign(Z-y0);
x(1)=x0-y0*2^(-0);
y(1)=y0+x0*2^(-0);
for i=1:n
r(i)=sign(Z-y(i));
// ARTH =atan(2^(-i));
Q(i+1)= Q(i)+r(i)*atan(2^(-i));
x(i+1)= x(i)-r(i)*y(i)*2^(-i);
y(i+1)= y(i)+r(i)*x(i)*2^(-i);
end
arcsinZ(n)= Q(n);