Форум: "Основная";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
ВнизСтепень в Паскале. Найти похожие ветки
← →
Miwa (2002-04-19 11:01) [0]Как можно россчитать сабж? Есть старая формула типа a:=exp(b*ln(c)), но ведь она работает только с с>0. А в других случаях надо проверять знаки для b, c. И потом, при c->0 ln(c)->бескончность. Так есть ли возможность посчитать иначе?
← →
Alx2 (2002-04-19 11:14) [1]Конечно :)
если a<>0 то
a^b=exp(b*ln(abs(a)))*cos(b*(1/2-1/2*signum(a))*Pi)+I*exp(b*ln(abs(a)))*sin(b*(1/2-1/2*signum(a))*Pi)
где signum(x)=x/abs(x)
← →
Romkin (2002-04-19 11:27) [2]Дробная степень не определена для отрицательных значений, и всегда считается именно по данной формуле. exp(b*ln(c)) ... c^(-b). А при с -> 0 ln(c) -> минус бесконечность, и ехр(b*ln(c)) -> 0
Так что все верно
отрицательные числа в математике можно возводить только в целую степень
← →
Alx2 (2002-04-19 11:51) [3]>отрицательные числа в математике
>можно возводить только в целую степень
Ну-ну...
← →
Antiox (2002-04-19 12:13) [4]отрицательные числа в математике можно возводить только в целую степень
:)))
>Miwa © (19.04.02 11:01):
Посмотрите исходники функции Power, которая находится в Math.pas и перенесите её в свою программу.
Если это не подходит, то в любом случае - всегда можно воспользоваться разложением в ряд с заданной точностью.
← →
VictorT (2002-04-19 13:55) [5]
> Посмотрите исходники функции Power, которая находится в Math.pas и перенесите её в свою программу.
А вот и не заканает, сам глянь
← →
Miwa (2002-04-19 14:06) [6]Да, там как раз то, что мне не понравилось:
For fractional exponents, or |exponents| > MaxInt, base must be > 0.
Как там насчет разложения в ряд? ;о))
← →
Alx2 (2002-04-19 14:12) [7]>Как там насчет разложения в ряд? ;о))
Ребята, вы чего?!
Какой на фиг ряд. Для возведения в степень-то. (А если ряд степенной, как в нем возводить?:))
Разве трудно перед a:=exp(b*ln(c)) проверку на допустимость только лишь значения "c" сделать? Если нужно в комплексной форме (чтобы и для отрицательных и для положительных) - то см. Alx2 © (19.04.02 11:14)
← →
Romkin (2002-04-19 14:29) [8]я хотел сказать, что операция возведения отрицательного числа в степень с показателем, не представимым в виде p/q, где p & q - целые числа, в алгебре не определена, именно по причине того, что возведение в такую степень определяется как exp(b*ln(c)), также не определено возведение отрицательного числа в степень вида p/q где 1. q - четное, 2. p & q - взаимно простые (допустим, 1/2, sqrt(c) - дает ошибку даже на калькуляторе). Условие (2) приводит к тому, что p - нечетное
Так лучше?
Выход: в случае представления степени в виде p/q (q - нечетное, p & q - взаимно простые) просто res := -power(-c,p/q) при c<0
в случае целой степени та же функция отработает правильно в любом случае (uses Math)
← →
Alx2 (2002-04-22 08:16) [9]>Romkin © (19.04.02 14:29)
см. поле комплексных чисел
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c