Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите разобраться ! [D6]


SPeller ©   (2002-05-15 13:56:00) 

Процедурка у меня есть небольшая, которая ситает значение по формуле выглядит так:

function Formula(const A:targs):double;
begin
result:=a.A/(a.X1*a.X)+a.B*exp(a.X2*ln(a.X))+a.C;
end;


Запись выглядит так:

TArgs=record
A,B,C,X,X1,X2:double;
end;


Так вот, при выполнении этой процедуры вылазит "Invalid Floating Point Operation". Не пойму, чё тут не так? Подскажите, пожалуйста!


MBo   (2002-05-16 09:12:00) [1]

тебе же сказали - для отрицательных чисел определена только целая степень, считается как
result:=exp(iy*ln(abs(x)));
if (x<0) and odd(iy) then result:=-result;

если степень нецелая, получается КОМПЛЕКСНОЕ ЧИСЛО
пример
x=r*exp(i*fi)
x^y=r^y*exp(i*y*fi)

2=2*exp(i*0)=2*(cos(0)+i*sin(0))
2^-2=2^-2*exp(i*(-2)*0) - действ. число

-2=2*exp(i*pi)
-2^2.5=2^2.5*exp(i*2.5*pi)=2*2.5*(cos(2.5*pi)+i*sin(2.5*pi)) -
появилась ненулевая мнимая часть, число уже комплексное.


SPeller   (2002-05-16 08:54:00) [2]

Найти значение ЛЮБОГО числа в ЛЮБОЙ степени. Сёдня озадачил этой проблемой нашего математика в универе, сказал подумает. Но до того как он скажет свои доводы, пройдёт неделя, а это не позволительно. Может быть здесь кто-нибудь знает?


MBo   (2002-05-16 07:31:00) [3]

да что сделать-то?


SPeller   (2002-05-15 23:30:00) [4]

Что и никто не знает как такое сделать??


MBo   (2002-05-15 16:53:00) [5]

в элементарной математике не существует.


SPeller   (2002-05-15 16:42:00) [6]

Ну почему же не имеет? Разве степени из отрицательного числа не существует?


AFROLOV   (2002-05-15 15:23:00) [7]

Решается это через переход к комплексным числам.
Или для отрицательных X изобрести, исходя из исходной задачи, специальную формулу. Возможно, что при отрицательных X задача вырождается в другую.
Так же имеет смысл выявить ограничения на входные параметры (исходя из решаемой задачи). Возможно, что при X<0 задача не имеет смысла.


SPeller   (2002-05-15 15:13:00) [8]

Ну и с отрицательными числами тоже надо чтоб работало. Решается же это как-то, только как?


MBo   (2002-05-15 14:39:00) [9]

Power, но она использует то же y^x=e^(x*ln(y))

дробное и отрицательное - разные вещи


SPeller   (2002-05-15 14:36:00) [10]

2cult
Я тоже в математике не силён...

Как по-другому возвести число в степень N если N дробное ??


Alx2   (2002-05-15 14:27:00) [11]

Complex :)


cult   (2002-05-15 14:10:00) [12]

Вообще-то я математику давно изучал...

Но вот я не пойму:
В какую степень надо возвести положительное число (то бишь экспоненту, Е), чтобы получилось отрицательное число (то бишь -10)????? Функция LN(логарифм) как раз и занимается выяснением этой задачи.
Нет ничего удивительного, что ей так трудно....:)

Если попроще - передаешь неправильные параметры LN(a.X)=LN(-10), это вычислить невозможно. Исправляй.


SPeller   (2002-05-15 14:06:00) [13]

А логарифм от отрицательного числа считается или нет?


SPeller   (2002-05-15 14:04:00) [14]

Да, совсем вот забыл. Параметры передаю такие:

A=12.3, B=3, C=-1, X=-10, X1=1, X2=2


cult   (2002-05-15 13:58:00) [15]

Может, чего не так делишь?
Или логарифм от нуля считаешь? Это ошибка.
Проверь...


Наверх

Титульная страница Поиск, карта сайта Написать письмо