· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ZEN —› Возведение в дробную степень.

Посл.отвђт Сообщенiе


Дата: Июл 24, 2004 03:06:29

Подскажите, пожалуйста, алгоритм возведения в дробную степень. Желательно что-нибудь по оптимальней.
Конкретней о задаче: надо вычеслить xy, где x - целое число в пределах от 1 до 15. А y - вещественное число, предположительно в пределах от 0.7 до 6.0

Заранее большое спасибо.

P.S. Метод ey*ln x не предлагать :)


Дата: Июл 24, 2004 03:22:06

A в степени m/n = корень n-ой степени из A в степени m при некоторых условиях.


Дата: Июл 24, 2004 03:23:49

Asterix
Спасибо, но мне кажется что вычисления корня n-ой степени не легче, чем вычисление дробной степени. Или я не прав?


Дата: Июл 24, 2004 10:11:11

Если я еще не забыл матан напроч (а это очень возможно), то корень можно заменить соответствующим рядом, а ряд - это цикл. Я прав?


Дата: Июл 24, 2004 10:30:48

Только рядом, где степени не (a-1) .. (a-2) , я то всё равно столкнешься опять с дробными степенями. Мож как по син. можно разложить. Сопроцессор тогда поможет...
P.S. В матане я не силен...


Дата: Июл 24, 2004 21:50:40

Вот здесь парень один написал что-то на эту тему (сам не проверял): http://forum.vingrad.ru/index.php?showtopic=21898


Дата: Июл 25, 2004 01:22:43

Так чем же возведение в дробную степень отличается от целого числя? Если делаетса через FPU то совсем не важно.


Дата: Июл 25, 2004 02:13:48

Всем большое спасибо!
_Chingachguk_
Там обсуждается возведение в целую степень дробного числа - а мне надо наоборот :(
n0p
PavPS
ey*ln x тоже можно разложить на ряд. Но, если честно во-первых не хочется мучится, во-вторых это, мне кажется, не очень-то и быстро, в-третьих не силен я в этом :(
comrade
А нельязя ли пример, пожалуйста? А то у меня не получилось :(

Я нашел выход, но для конкретного, моего случая: мне удалось все свести к возведению только в ОДНУ дробную степень ограниченого кол-ва чисел. Так что я просто заранее просчитал эти значения и занес их в массив, откуда по мере надобности их и извлекаю.
Но хотелось бы более общего решения, для саморазвития :) Может кто знает?


Дата: Июл 25, 2004 08:04:20

tasman
На сколько я понял в том топике обсуждаются оба варианта, и возведение целого в дробную степень и возведение дробного в целую. Первый вариант реализуется путём разделения степени на целую и дробную (-1<Х>1). Затем целое поочерёдно возводится в целую степень, затем в дробную, потом результаты умножаются. Если я конечно не ошибся.


Дата: Июл 25, 2004 10:56:40

tasman
Нашел в умной книжке разложение.
ex = 1 + x + x2/2! + ... + xn/n!

т.е. твой ey*ln x будет выглядеть примерно так:
1 + y*ln x + (y*ln x)2/2! + ... + (y*ln x)n/n! + ..

y*ln x нужно посчитать 1 раз(!) и потом мучений не будет никаких. Все очень просто. n ограничивает точность. Практически для любой задачи достаточно около 10 членов.


Дата: Июл 26, 2004 02:53:54

pas
_Chingachguk_
Да, я действительно пропустил. В той статье идет речь и о возведении также и в дробную степень. Спасибо.
n0p
Да, я понимаю. Но все-таки методпредложенный в статье, прдложеной _Chingachguk_мне кажется будет побыстрее. А с разложением - все равно каждый раз придется считать этот ряд. И причем в каждом члене, за исключением первых двух бедет присутствовать 2 умножения и одно деление. Да еще и сложение самих членов. Многовато будет :) Но все равно спасибо.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063