Форум: "Основная";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться ! Найти похожие ветки
← →
SPeller (2002-05-15 13:56) [0]Процедурка у меня есть небольшая, которая ситает значение по формуле выглядит так:
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". Не пойму, чё тут не так? Подскажите, пожалуйста!
← →
cult (2002-05-15 13:58) [1]Может, чего не так делишь?
Или логарифм от нуля считаешь? Это ошибка.
Проверь...
← →
SPeller (2002-05-15 14:04) [2]Да, совсем вот забыл. Параметры передаю такие:
A=12.3, B=3, C=-1, X=-10, X1=1, X2=2
← →
SPeller (2002-05-15 14:06) [3]А логарифм от отрицательного числа считается или нет?
← →
cult (2002-05-15 14:10) [4]Вообще-то я математику давно изучал...
Но вот я не пойму:
В какую степень надо возвести положительное число (то бишь экспоненту, Е), чтобы получилось отрицательное число (то бишь -10)????? Функция LN(логарифм) как раз и занимается выяснением этой задачи.
Нет ничего удивительного, что ей так трудно....:)
Если попроще - передаешь неправильные параметры LN(a.X)=LN(-10), это вычислить невозможно. Исправляй.
← →
Alx2 (2002-05-15 14:27) [5]Complex :)
← →
SPeller (2002-05-15 14:36) [6]2cult
Я тоже в математике не силён...
Как по-другому возвести число в степень N если N дробное ??
← →
MBo (2002-05-15 14:39) [7]Power, но она использует то же y^x=e^(x*ln(y))
дробное и отрицательное - разные вещи
← →
SPeller (2002-05-15 15:13) [8]Ну и с отрицательными числами тоже надо чтоб работало. Решается же это как-то, только как?
← →
AFROLOV (2002-05-15 15:23) [9]Решается это через переход к комплексным числам.
Или для отрицательных X изобрести, исходя из исходной задачи, специальную формулу. Возможно, что при отрицательных X задача вырождается в другую.
Так же имеет смысл выявить ограничения на входные параметры (исходя из решаемой задачи). Возможно, что при X<0 задача не имеет смысла.
← →
SPeller (2002-05-15 16:42) [10]Ну почему же не имеет? Разве степени из отрицательного числа не существует?
← →
MBo (2002-05-15 16:53) [11]в элементарной математике не существует.
← →
SPeller (2002-05-15 23:30) [12]Что и никто не знает как такое сделать??
← →
MBo (2002-05-16 07:31) [13]да что сделать-то?
← →
SPeller (2002-05-16 08:54) [14]Найти значение ЛЮБОГО числа в ЛЮБОЙ степени. Сёдня озадачил этой проблемой нашего математика в универе, сказал подумает. Но до того как он скажет свои доводы, пройдёт неделя, а это не позволительно. Может быть здесь кто-нибудь знает?
← →
MBo (2002-05-16 09:12) [15]тебе же сказали - для отрицательных чисел определена только целая степень, считается как
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)) -
появилась ненулевая мнимая часть, число уже комплексное.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c