|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.04.2011, 07:25 | #1 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
LN, sqr,sqrt, sin,cos и др. на МК AVR
Привет ребят!
У меня вопрос не знает ли как на ATtiny2313 посчитать LN, sqr,sqrt, sin,cos. Думаю от модели avr это не зависит т.к. у всех AVR аппаратных таких команд нет, кроме сложения, вычитания и в некоторых моделях есть умножение. Алгоритмы по умножению и делению у меня есть их можете не советовать, я это осуществляю столбиком. Желательно укажите литературу или алгоритмы.
мой сайт http://wanes101.16mb.com/myblog
|
11.04.2011, 11:57 | #2 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
wanes101
1) разложение в ряд Тейлора 2) табличное преобразование для тригонометрических функций 3) sqr вообще-то квадрат, а его через умножение 4) sqrt вычисление целочисленного квадратного корня Код:
1) Самый известный целочисленный алгоритм для вычисления квадратного корня из числа поражает своей простотой Код:
2) вычисление квадратного корня по разложению в ряд Тейлора. Пусть Х - любое число; f(X) - некоторая функция, зависящая от X; a - известное число, близкое к Х; f(a) - известное значение функции. Разложим f(X) в ряд Тейлора: f(X)=f(a)+(X-a)f'(a)+((X-a)² *f"(a))/2! + ... + ((X-a)^n *f^n (a))/n! Пусть X - число, из которого нужно извлечь корень. Тогда f(X)=√X; a - известное число близкое к X; f(a)=√a - известное число близкое к √X, и f(X)=√a +(X-a)/(2√a)+...=(2a+X-a)/(2√a)=(a+X)/(2√a) Величина √X может быть найдена, если задаться величиной √a и затем вычислить f(X). f(X)² можно сравнить с исходным числом Х. Если точность окажется недостаточной, тогда число а заменяется на f(X)², √a на f(X) и вычисление повторяется 3) поиск целочисленного квадратного корня методом Ньютона начинается с некоторого значения g(0), которое является начальной оценкой √X. Затем выполняется серия уточнений значения квадратного корня по формуле g(n+1)=(g(n)+X/g(n))/2. Для уменьшения количество итераций можно на первом этапе более точно подобрать начальное значения для переменной g0 Код:
Код:
Последний раз редактировалось Mikl___; 11.04.2011 в 12:31. |
11.04.2011, 11:58 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
рядом?....
|
11.04.2011, 12:07 | #4 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
p51x
А что вас смутило при разложении в ряд? wanes101 вот еще Извлечение квадратного корня в столбик а здесь вычисление натурального логарифма (Google великая штука!) Последний раз редактировалось Mikl___; 11.04.2011 в 12:35. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
sin ,cos,ln,lg,exp,sqr и др. | wanes101 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 7 | 22.10.2014 04:24 |
Таблица углов sin, cos, tg и т.д | neme4ta | Общие вопросы по Java, Java SE, Kotlin | 2 | 02.04.2010 15:23 |
Cos, Sin и непонятности с ними =\\ | Zeraim | Общие вопросы Delphi | 3 | 25.07.2009 01:38 |
Процедура, вычисляющая Y=a*cos(G) и X=a*sin(G) | Vishez | Помощь студентам | 4 | 25.04.2007 17:41 |