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

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

Войти
Регистрация
Восстановить пароль
 
Gmails
6 / 6 / 2
Регистрация: 08.04.2014
Сообщений: 248
#1

Ошибка - HIT обнуляются. Метод Монте-Карло для двойного интеграла - C++

25.04.2014, 17:45. Просмотров 193. Ответов 0
Метки нет (Все метки)

пожалуйста помогите найти ошибку.она заключена в HIT,они обнуляются.метод монте-карла для двойного интеграла.
вот код:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h> 
#include<iostream>
#include <time.h> 
#include<clocale>
#include<math.h>
using namespace std;
 int main(){
    setlocale(LC_CTYPE, "");
    srand((unsigned)time(NULL));
    printf("Функция: z=y*y*sqrt(R*R-x*x)\n");
    float R=3;
    float x,y;
    float Zmax=0;
    for(x=-R;x<=R;x=x+0.01)
    {
    for(y=-sqrt(R*R-x*x);y<=sqrt(R*R-x*x);y=y+0.01)
    {
if(Zmax<(float)(y*y*sqrt(R*R-x*x)))
            {
                Zmax=(float) (y*y*sqrt(R*R-x*x));
            }
        }
    }
    
    float SumINTEGR=0;//Сумма интегралов за 10 опытов
    
    for(int i=1;i<=10;i++)
        {
         float X,Y,Z;// Рандомные точки 
         int HIT=0;// Число попаданий точек в искомый объем под поверхностью функции
          //Значение интеграла
           float INTEGR=0;
            for(float N=1;N<=183065;N++)
            {
                X=(float)(rand()%101)/100;
                Y=(float)(rand()%101)/100;
                Z=(float)(rand()%101)/100;
    
                if(Z<=(y*y*sqrt(R*R-x*x)))
                    {
                        ++HIT;
                    }
            }
            cout<<HIT<<endl;
            INTEGR=(float)HIT/183065*10;
            SumINTEGR=SumINTEGR+INTEGR;
        }
    
    float averINTEGR=SumINTEGR/10;// Среднее значение интеграла в 10 случаях
    printf("Значение интеграла - %f\n", averINTEGR);
    
    printf("Z максимальное - %f",Zmax);
    getch();
 
}
Добавлено через 1 час 54 минуты
up!

Добавлено через 1 час 6 минут
как записать границу ((1-x*x)^(1/2))?

Добавлено через 1 час 25 минут
up!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 17:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка - HIT обнуляются. Метод Монте-Карло для двойного интеграла (C++):

Вычисление интеграла методом Монте-Карло - C++
Здравствуйте! Задача такая: пользователь в текстовом файле задает координаты точек (любое количество точек), программа считывает...

Вычисление интеграла методом Монте-Карло - C++
Нужно вычислить интеграл, как показано на первой картинке внизу темы. На второй картинке сам интеграл. Написал программу, но она выдает это...

Решение определенного интеграла методом Монте Карло - C++
Доброго времени суток ! Столкнулся с такой проблемой, что реализовал вроде бы правильно, а результат не верный, совсем зашел в тупик....

Рассчет определенного интеграла методом Монте-Карло. - C++
Не могли бы вы посмотреть, я неправильно понимаю метод Монте Карло для нахождения определенного интеграла или неправильно его реализую? ...

Вычисление интеграла геометрическим методом Монте-Карло - C++
Всем доброго времени суток. В универе дали задание: вычислить интеграл \int_{0}^{1}dx\int_{0}^{1-x}(1-x-y)dy геометрическим методом...

Решения кратного интеграла методом Монте Карло на С++ - C++
Помогите пожалуста решить тройной интеграл методом Монте Карло.... Нужно написать програму на С :cry: :cry:

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2014, 17:45
Привет! Вот еще темы с ответами:

Процедура вычисления кратного интеграла методом Монте-Карло - C++
Создать функцию для вычисления кратных интегралов методом Монте Карло. Помогите написать рабочий код. Укажите на ошибки. #include...

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

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

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


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

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

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