[an error occurred while processing this directive]
пример для cos
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ы 16 августа 2006 г. 12:48
В ответ на: разложить синус в ряд. препроцессор его сможет посчитать отправлено ы 16 августа 2006 г. 12:45

#define PI (3.141592654f)

/* x2 x4 x6 x8 x10 x12
cos x = 1 - ---- + ---- - ---- + ---- - ------ + ------
2! 4! 6! 8! 10! 12!

x2 x4 x6 x8 x10 x12
cos x = 1 - ---- + ---- - ---- + ---- - ------ + ------
2 24 720 40320 3628800 479001600
a = 1/2
b = 1/24
c = 1/720
d = 1/40320
e = 1/3628800
f = 1/479001600

cos x = 1 - ax2 + bx4 - cx6 + dx8 - ex10 + fx12
cos x = 1 - x2(a - x2(b - x2(c - x2(d - x2 (e - fx2))))) */

#define COS_A (1.0/2.0)
#define COS_B (1.0/24.0)
#define COS_C (1.0/720.0)
#define COS_D (1.0/40320.0)
#define COS_E (1.0/3628800.0)
#define COS_F (1.0/479001600.0)

static fCoor_t sa_cos (fCoor_t arg) {
fCoor_t x = arg * arg;
return 1 - x * (COS_A - x * (COS_B - x * (COS_C - x * (COS_D - x * (COS_E - COS_F * x)))));
}

это конечно не девайн а функция но аналогия ясна

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание