Форум программистов, компьютерный форум CyberForum.ru

Вычисление функции Лапласа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Однонаправленный линейный список http://www.cyberforum.ru/cpp-beginners/thread617216.html
здравствуйте! помогите помочь написать задача или киньте ссылку по её решению. "однонаправленный линейный список. максимальный элемент скопировать в новый" большое спасибо!
C++ Алгоритм поиска внутренних координат для произвольно заданного невыпуклого многоугольника Здравствуйте! Я - студент уже второго курса. Пишу для себя и "налетел" на такую вот задачу. Я не уверен, правильно ли я выбрал форум, ибо задача больше алгоритмическая. Что есть: Класс - двусвязный список координат точек, составляющих невыпуклый многоугольник. Задача: Написать функцию, которая определяет, находится ли точка внутри этого невыпуклого многоугольника. Решения нет. =) По... http://www.cyberforum.ru/cpp-beginners/thread617209.html
Освобождение памяти (удаление массива char) и raised exception class EAccessViolation C++
Подскажите плиз, есть программа, вот кусок AnsiString inputText; int inputTextLength; inputText= Form1->Edit1->Text; inputTextLength= inputText.Length() + 1; char *Buffer = new char; ZeroMemory(Buffer, inputTextLength); char *BufferDst = new char; ZeroMemory(BufferDst, inputTextLength);
Локальный или глобальный массив векторов C++
Везде в литературе рекомендуется создавать локальные объекты. Основные аргументы - они легче оптимизируются и безопаснее. У меня такия ситуация: Есть массив из 1000 векторов. Если я создам его глобальным, то в цикле на каждой итерации их (вектора в массиве) будет необходимо очищать, что впринципе не затратно. Если же я сделаю его локальным, то не понятно что будет происходить. Возможно на...
C++ Клиент для vk.com http://www.cyberforum.ru/cpp-beginners/thread617163.html
Всем привет) Изучаю с++ недавно, написал вот простой интерпретатор, теперь хочу написать что-нибудь посложнее, возникла идея написать клиент для vk.com, который висит в трее и извещает о том, что пришло новое сообщение. Но вот незадача: понятия не имею, с чего начать) То есть совершенно) Не понимаю, как это реализовать, с чего начать, что почитать) Посоветуйте пожалуйста?) Заранее спасибо :)
C++ Создание Очереди Приветствую,помогите создать Прогу в Делфи или С++ Разработать программу,позваляющую формировать динамическую структуру данных Очередь. Реализовать функцию добовления элементов очереди.Реализовать функцию удаления из очереди.Реализавать функцию вывода содержимого очереди. Добавлено через 8 минут За рание СПАСИБО! подробнее

Показать сообщение отдельно
Woody-krsk
1 / 1 / 0
Регистрация: 20.12.2010
Сообщений: 62
01.07.2012, 07:46     Вычисление функции Лапласа
Здравствуйте!
Есть необходимость в нахождении значений для этой функции. Варант с большой таблицей не очень нравится, хочется именно вычислять ее.
Собственно гугл дал мне метод средних прямойгольников
http://www.textreferat.com/referat-1405-1.html
и табличку чтобы провериться
http://natalymath.narod.ru/laplas.html
Вроде ничего сложного, последовательно сделав все получился такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define _USE_MATH_DEFINES
#include <math.h>
using namespace std;
double func_laplace(double, double);
 
int main(){
    setlocale(0,"");
    double a, precision;
    do {
        cout << "a = "; cin >> a;
        //cout << "precision = "; cin >> precision;
        cout << func_laplace(a, .0001) << endl;
        cout << "Продолжаем?(y)..." << endl;
    } while (_getch() == 121);
 
    return 0;
}
 
double func_laplace(double a, double precision){
    double result = 0;
    for (double i = 0; i < a; i+=precision){        
        result += precision*fabs(pow(M_E,-.5*pow(i,2))+pow(M_E,.5*pow((i+precision),2)))/2.0;   
    }
    result *= 1.0/pow(2*M_PI,.5);
    return result;
}
Вроде как бы и считает, но проблема в том, что если на маленьких значениях все в порядке, то чем больше значение функции тем дальше от истины получается ответ.
a = .01
0.00402932
Продолжаем?(y)...
a = .51
0.203848
Продолжаем?(y)...
a = 1.01
0.413597
Продолжаем?(y)...
a = 1.51
0.68565
Продолжаем?(y)...
a = 2.02
1.21274
Продолжаем?(y)...
Собственно прошу помощи, ЧЯДНТ?
PS: я уже делал эту функцию в прошлом году и тогда у меня вроде такой проблемы не было, все вычислялось, но сейчас код потерялся, а почему не работает я не могу понять...

Добавлено через 4 минуты
Ой! Удалите тему, я нашел ошибку!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru