Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с функцией Лапласа!!! Не знаю, где взять... 
:(
    Опции темы
Kamdi
Дата 12.12.2004, 15:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Уважаемые друзья! Помогите мне с поиском библиотеки в С++, которая позволяет вычислить значение функции Лапласа для нормального распределения. Как она называется?! smile
Обращаю внимание на то, что необходима именно функция, а не уравнение Лапласа...
С уважением, Kamdi.
  Вверх
_hunter
Дата 14.12.2004, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



вряд ли такая есть...
IMHO проще самому посчитать ( как -- в алгоритмах должны помочь )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Hroft
Дата 15.12.2004, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



Так функция Лапласа - эт же Ф(x) = integr(0,x,"exp(-t*t/2)"), или нет? Если так, то ее любым методом вычисления интеграла надо считать...
PS: какая связь у функции Лапласа с уравнением Лапласа?
PM MAIL ICQ   Вверх
Hroft
Дата 17.12.2004, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: нет
Всего: 3



Код
#include <cmath>
#include <iostream>

const double eps = 0.1e-5;

double func(double x)
{
return std::exp(-x*x/2);
}

double simpsonIntegr(double a,double b)
{
return ((b-a) / 6) * (func(a) + 4*func((a+b)/2) + func(b));
}

double LaplasFunction(double x,double eps = ::eps)
{
double a = 0.0;
double b = x;
double tst, tst1, incr;
unsigned int c = 2;
tst1 = simpsonIntegr(a,b);
do {
 tst = tst1;
 tst1 = 0;
 incr = (b - a) / c;
 for (unsigned int i=0;i<c;++i) {
  tst1 = tst1 + simpsonIntegr(a + incr * i, a + incr * (i + 1));
 }
 c += 1;
} while (fabs(tst - tst1) >= eps);
return tst1;
}

int main()
{
for (double x=-4;x<4;x+=0.5) {
 std::cout<<"Fi("<<x<<") == "<<LaplasFunction(x)<<std::endl;
}
return 0;
}

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.