Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.06;
Скачать: CL | DM;

Вниз

Степень в Паскале.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
14-17698
Di_wind
2002-03-30 19:56
2002.05.06
Путь программиста.


1-17631
agrig
2002-04-21 19:43
2002.05.06
TCheckBox - как програмно поменять Checked, чтобы не произошло ..


3-17487
62mkv
2002-04-11 15:58
2002.05.06
Левые пустые страницы в отчете - как убрать ?


1-17607
SergeySh
2002-04-22 16:31
2002.05.06
Как отловить создание MDIChild окна?


1-17542
masik
2002-04-22 17:21
2002.05.06
Удаление интерфейсных объектов