Быстрый алгоритм возведения в степень
Запись от -=ЮрА=- размещена 26.07.2013 в 10:07
Показов 1280
Комментарии 5
Проблема довольно известная и возможно кому то покажется глупым её рассмотрение, НО прежде чем закрыть данную ветку раздела блогов внимательно читаем название и понимаем что будет не так как в учебниках. Заинтрегованы?Тогда читаем дальше! Итак задача : нам следует возвести в степень два вещественных числа, а именно необходимо определить значение с (кто побежал за учебником алгебры в раздел функций комплексного переменного и прочей экзотикой - быстро её закрыли, тут такого не будет, т.к комплексов в явном виде в расчётах не будет) Давайте посмотрим на равенство внимательно: Если прологорифмировать обе части равенства получим: а теперь снова проведём обратное преобразование: Кому-то покажется странным замена 1-й матоперации возведения в степень сразу двумя - логорифмированием и потенцированием. Что ж отмечу, что нахождение логорифма и экспоненты через разложение в ряд Тейлора потребует чуть ли не банальных 10-12 операций сложения и является весьма тривиальной задачей, самое главное - что при данном построении решения выигрыш в скорости будет невероятно большим (всем кто сомневается предлагаю проверить) Вроде хорошо, но вот уже слышу свист и фразу : "а если показатель степени отрицательное?!Логорифма отрицательного числа не бывает!" Что ж отвечаю Ага снова недовольство, где наш комплекс зачем нам его модуль? И вот тут магия - оказалось что обладает удивительным свойством, а именно Что из этого следует - а следует то что при отрицательном показатели степени нам всего лишь достаточно полученный нами результат Сама проблема рассмотрена в данной теме Возведение в степень, отрицательные числа Коды разложений не привожу а даю ссылку на свой FAQ по математике где всё есть (ссылка) |
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 5
Комментарии
-
Пи/10 используем лишь когда основание степени a < 0
т.е изначально находим
Потом смотрим на основание - если оно < 0
то потребуется конечное преобразование с представлением комплекса в алгебраической форме через его модуль и как оказывается магическую фазу Пи/10.
На счёт с - честно скажу не понял, если выражаться простым языком, с - просто значение f(x) = exp(x)Запись от -=ЮрА=- размещена 30.07.2013 в 23:47 -
Сегодня за долгое время просмотрел свой блог, наткнулся на некогда живую дискуссию без меня
- да прав, но смотреть надо глубже, а не пытаться закидать меня камнями...
Уточнение в алгоритме (справедливо для всех b >= 0)
MathCAD файл оновлен по ссылке https://www.cyberforum.ru/cpp-... ost5923921
Не по теме:
тот, кто знает мир науки, поймёт к чему здесь этот смайл :p .
Запись от -=ЮрА=- размещена 19.03.2014 в 22:22 -
Запись от -=ЮрА=- размещена 20.03.2014 в 20:55 -
Запись от -=ЮрА=- размещена 20.03.2014 в 21:02 -
Зосима, повторюсь магическое не Пи/ 10 а магическое
Отмечал пару постов выше
Для тех кто только включился поясняю мы можем посчитать экспоненту без формулы Эйлера(http://ru.wikipedia.org/wiki/Формула_Эйлера), верней выйти на её окнчательный резултат путём более простых преобразований (менее ресурсозатратных для ЭВМ разложений)
записать вот так
На вопрос зачем это нужно - отвечаю для численных методов - это быстрей прямого алгоритма в лоб на порядок.
Кликните здесь для просмотра всего текстаПовторяю ссылки на всякий пожарный
https://www.cyberforum.ru/cpp-... ost5923921Запись от -=ЮрА=- размещена 20.03.2014 в 23:03