Реализация серии Тейлора на ассемблере с использованием 68hc11 - PullRequest
0 голосов
/ 09 января 2010

Как реализовать ряд Тейлора для вычисления значения синуса в сборке с использованием 68hc11.

Поскольку 68hc11 не поддерживает число с плавающей запятой, отображаемое значение будет в целых числах (например, умножьте на 100, чтобы получить целочисленное значение).

Ответы [ 2 ]

1 голос
/ 09 января 2010

Вы можете использовать алгоритм, который выполняет вычисления постепенно, следующий фрагмент должен быть легко преобразован в сборку с фиксированной точкой, так как он не использует факториальные и степенные функции. Обычно это проще сделать с помощью справочных таблиц. Код сборки для 68HC11 для расчета sin (x)

double taylorSin(double x,double epsilon) {
       double result = 0.0;
       double part_n = 0.0,part=x;
       result = part;
       int i = 1;
       while ( fabs( part - part_n ) > epsilon ) {
           part_n = part;
           part = (-part*x*x) / ((2*i)*(2*i+1));
           result += part;
           i++;
       }
       return result;
}
0 голосов
/ 09 января 2010

Серия Тейлор, вероятно, не самый лучший вариант. Взгляните на CORDIC .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...