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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
karpinets2710
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 55
#1

Метод Монте-Карло - C++

04.06.2014, 17:54. Просмотров 1235. Ответов 13
Метки нет (Все метки)

Помогите написать программу для вычисления определенного интеграла методом Монте-Карло.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 17:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод Монте-Карло (C++):

метод Монте-Карло - C++
Трехмерное тело образовано объединением нескольких сфер произвольного размера и взаимного расположения. Найти объем этого тела, используя...

Метод монте Карло - C++
Здравствуйте! Посмотрите, пожалуйста, почему программа неправильно считает определенный интеграл методом Монте Карло. Считаю интеграл от -3...

метод Монте-Карло - C++
всем привет, у меня вопрос по методу Монте - Карло, у меня есть код, #include <stdlib.h> #include <iostream> #include <time.h> ...

Метод Монте-Карло - C++
как мне перевести этот код на с++..... помогите пожалуста(( program MonteKarlo; uses crt; Label l1,l2; var ...

Метод Монте-Карло - C++
Помогите написать программу на С++. Из множества 1, 2, ..., n, случайным образом извлекается с возвращением по одному числу S раз. Пусть...

вроде метод монте карло - C++
распишите пожалуйста что делает это программа?? int i,a,b,n,k,c,d,e,f; double s1,s,x,y,z; int _tmain(int argc, _TCHAR* argv) { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gunslinger
случайный прохожий
1134 / 752 / 192
Регистрация: 20.07.2013
Сообщений: 2,077
04.06.2014, 18:08 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
http://www.compmodel.ru/102/118/index.1.html
Рассчет определенного интеграла методом Монте-Карло.
0
karpinets2710
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 55
05.06.2014, 17:40  [ТС] #3
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
#include "stdafx.h"
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include "windows.h"
int main()
{
    SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
    double s=0, Integral, x;
    int Number_Of_Points, i, Lower_Limit, Upper_Limit;
    srand(time(NULL));
    printf("\nEnter the lower limit:\n");                      
    scanf_s("%d",&Lower_Limit);
    printf("Enter the upper limit:\n");                           
    scanf_s("%d",&Upper_Limit); 
    printf("Enter the number of points\n");                     
    scanf_s("%d",&Number_Of_Points);
    for (i=1; i<=Number_Of_Points; i++) {                   
        x=Lower_Limit+(Upper_Limit-Lower_Limit)*rand()/(1.0*RAND_MAX);
        s=s + x;
    }
    Integral=((Upper_Limit-Lower_Limit)*s)/Number_Of_Points ;
    printf("Integral = %f\n",Integral);
    _getch();
    return 0;
}
Вот, что получилось, помогите сделать выбор подинтегральной функции.
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
05.06.2014, 17:49 #4
У Лукинова вычесление методом монте-калло очень хорошо прописано

Добавлено через 2 минуты
И rand замени он НЕ ПОДХОДИТ. Погрешность очень большая.
0
karpinets2710
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 55
05.06.2014, 17:53  [ТС] #5
Winorun, да нет, у меня все считает нормально, я на листочке решаю сам, погрешность где-то 0.01
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
05.06.2014, 18:00 #6
Сколько Number_Of_Points берешь? и 0.01 это много.

Добавлено через 1 минуту
У меня после 100000 расхождение пошли ответ вышел за предпологаемую точность.
0
karpinets2710
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 55
05.06.2014, 18:02  [ТС] #7
Winorun, ну меня это сейчас не интересует, нужно как-то замутить выбор функции, все никак не получается. Number_Of_Points примерно 100-200.
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
05.06.2014, 18:18 #8
Я правильно понял ты хочешь чтобы пользователь задавал подинтергальную функцию?
0
karpinets2710
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 55
05.06.2014, 18:32  [ТС] #9
Winorun, хочу например создать так

***Меню***
1. sin(x)
2. cos(x) .... и так далее
пользователь вводит номер функции и вычисляется интеграл от нее, вот почему-то не получается у меня, можете помочь?
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
05.06.2014, 18:40 #10
Сылки на функцию
0
karpinets2710
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 55
05.06.2014, 18:41  [ТС] #11
Winorun, не понял??
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
05.06.2014, 18:43 #12
В Алгоритме вызываешь функцию по сылки, А при выборе меню приравневаешь сылку к функции.
Не сылки а указатель, Вот ссылка
http://lord-n.narod.ru/download/book..._C/05/0508.htm
0
karpinets2710
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 55
05.06.2014, 18:50  [ТС] #13
Winorun, не до конца понял, можешь мой текст подредактировать хотя бы для двоих функций, остальные сам сделаю.
0
Winorun
38 / 38 / 4
Регистрация: 03.05.2013
Сообщений: 177
05.06.2014, 19:09 #14
Просто создаешь указатель на функцию. Допустим INT_FUN.
C++
1
bool (* INT_FUN)(int x);
Обьявляешь несколько фукций с одинаковым обьявлением.
C++
1
2
3
bool SIN(int x){/* тут код вычесляющий попал не попал*/};
bool COS(int x){/* тут код вычесляющий попал не попал*/};
...
В майне выводишь меню, считываешь пункт.
потом
C++
1
2
if(menu==1) INT_FUN=SIN;
if(menu==2) INT_FUN=COS;
Потом про SIN,COS и т.д. забываешь напрочь и считашь все через INT_FUN

Добавлено через 6 минут
Еще можешь привязать последним пунктом скрипт
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2014, 19:09
Привет! Вот еще темы с ответами:

Метод Монте-Карло. Объем сферы - C++
Задан радиус сферы и количество итераций. Найти объём сферы методом Монте-Карло и определить точность

Метод Монте Карло (неправильные значения) - C++
Пишу программу для подсчета определенного интеграла 3мя способами: прямоугольников, трапеций и Монте Карло. Первые 2 реализованы правильно,...

Метод Монте-Карло в вычислении площади многоугольника - C++
Ребята, добрый день!! Мне нужно набросать программу для вычисления площади выпухлого n-угольника с использованием ООП и STL; Помогите...

Метод Монте-Карло(непонятная неработоспособность программы) - C++
Написал программу, которая вычисляет интеграл методом Монте-Карло. Вроде как код проверял, перепроверял и должно быть всё верно. Но при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.06.2014, 19:09
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru