Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.006 c
1-88521
pusrg
2002-05-15 22:13
2002.05.27
Св-во Data для TListItem


1-88454
still_swamp
2002-05-14 17:20
2002.05.27
Как сделать список форм в SDI


8-88568
Val
2001-12-27 10:48
2002.05.27
ClipBoard->JPEGImage


1-88437
KPbIC
2002-05-15 13:51
2002.05.27
LIB файлы, как с ними быть?


6-88574
Velocity
2002-03-16 17:00
2002.05.27
Майлслоты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский