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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 309
Завершенные тесты: 1
#1

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

25.01.2013, 14:54. Просмотров 1509. Ответов 5
Метки нет (Все метки)

Здравствуйте! Посмотрите, пожалуйста, почему программа неправильно считает определенный интеграл методом Монте Карло. Считаю интеграл от -3 до 3 для функции x*x.
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
#pragma hdrstop
#pragma argsused
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
 double s=0,x,Integral;
 int n,i,a,b;
 srand(time(NULL));
 randomize();
 printf("a:\n");  //нижний предел
 scanf("%d",&a);
 printf("b:\n");  //верхний предел
 scanf("%d",&b);
 printf("n:\n");  //число испытаний
 scanf("%d",&n);
 for (i=1; i<=n; i++)
 {
  x=rand()%(b-a)+a;
  s=s + x*x;
 }
 Integral=((b-a)*s)/n ;
 printf("Integral=%f\n",Integral);
 getch();
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2013, 14:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод монте Карло (C++):

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

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

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

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

Метод Монте-Карло - C++
Помогите написать программу для вычисления определенного интеграла методом Монте-Карло.

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

5
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
26.01.2013, 11:55 #2
C++
1
2
3
4
for (i=1; i<=n; i++) {
        x=a+(b-a)*rand()/(1.0*RAND_MAX);
        s=s + x*x;
    }
1
zss
Модератор
Эксперт С++
6484 / 6047 / 1985
Регистрация: 18.12.2011
Сообщений: 15,679
Завершенные тесты: 1
26.01.2013, 12:40 #3
a,b надо сделать действительными и тогда можно записать проще:
C++
1
 x=a+(b-a)*rand()/RAND_MAX;
1
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
26.01.2013, 13:01 #4
Цитата Сообщение от zss Посмотреть сообщение
a,b надо сделать действительными и тогда можно записать проще:
C++
1
 x=a+(b-a)*rand()/RAND_MAX;
не выйдет. так как rand()/RAND_MAX генерирует число вне диапазона 0..1.
0
zss
Модератор
Эксперт С++
6484 / 6047 / 1985
Регистрация: 18.12.2011
Сообщений: 15,679
Завершенные тесты: 1
26.01.2013, 15:10 #5
Цитата Сообщение от vua72 Посмотреть сообщение
не выйдет
Выйдет. Вначале вычисляется (b-a) - оно double,
потом rand() переводится в double и умножается на (b-a) и,
наконец, RAND_MAX переводится в double и умножается на то, что
получилось.
0
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
26.01.2013, 17:20 #6
угу, зарапортовался )
0
26.01.2013, 17:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2013, 17:20
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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