Автор работы: Пользователь скрыл имя, 25 Февраля 2013 в 14:21, курсовая работа
Значение константы однозначно определяется условием нормировки:
Отсюда: c=1/SD.
Равномерно распределённые случайные величины получили самое широкое применение при решении задач методами Монте-Карло.
Методы Монте-Карло – это численные методы решения математических задач и прямое статистическое моделирование при помощи получения и преобразования случайных чисел.
Задание на курсовую работу 3
Краткие сведения из теории 3
Реализация программы4
Заключение4
Список литературы 5
Приложение № 1 6
СОДЕРЖАНИЕ
Задание на курсовую работу 3
Краткие сведения из теории 3
Реализация программы4
Заключение4
Список литературы 5
Приложение № 1 6
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
Моделирование трехмерного распределения при x[0;2], y[0;0,5], z[0,2]
КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ
Случайная величина (X,Y,Z) равномерно распределена в области D площадью SD , если ее плотность распределения задается так:
Значение константы однозначно определяется условием нормировки:
Отсюда: c=1/SD.
Равномерно распределённые случайные величины получили самое широкое применение при решении задач методами Монте-Карло.
Методы Монте-Карло – это численные методы решения математических задач и прямое статистическое моделирование при помощи получения и преобразования случайных чисел.
В основе метода Монте-Карло лежит генерация случайных чисел, которые должны быть равномерно распределены в интервале (0; 1). Если генератор выдает числа, смещенные в какую-то часть интервала (одни числа выпадают чаще других), то результат решения задачи, решаемой статистическим методом, может оказаться неверным. Поэтому проблема использования хорошего генератора действительно случайных и действительно равномерно распределенных чисел стоит очень остро.
РЕАЛИЗАЦИЯ ПРОГРАММЫ
Рисунок 1- Модель распределения случайной величины
ЗАКЛЮЧЕНИЕ
В процессе
работы была разработана программа,
которая выводит случайные
ПРИЛОЖЕНИЕ № 1
Текст программы:
#include <vcl.h>
#pragma hdrstop
#include "main.h"
#include <cmath>
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int xg[13];
int yg[13];
//----------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
int x0,y0; //координаты начала координатных осей
int dx,dy; //шаг координатной сетки (в пикселях)
int h,w; //высота и ширина области вывода координатной сетки
int x,y;
double lx,ly; //метки (оцифровка) линий сетки по X и Y
double dlx,dly; //шаг меток (оцифровки) линий сетки по X и Y
int cross; //счетчик неоцифрованных линий сетки
int dcross;//количество неоцифрованных линий между оцифрованными
int i; //Счетчик цикла
int c1,c2,x2,y2,x3,y3,x4,y4,x5,y5,
x0=30; y0=420; // оси начинаются в заданной точке
dx=40; dy=40; // шаг координатной сетки 40 пикселов
dcross=1; // помечать линии сетки X: 1 - каждую;
dlx=1.0; // шаг меток оси X
dly=1.0; // шаг меток оси Y, метками будут: 1, 2, 3 и т.д.
h=400; w=520;
Form1->Canvas->Pen->Color=
cross=dcross;
Form1->Canvas->Pen->Width=1;
Form1->Canvas->MoveTo(x0,y0);
Form1->Canvas->LineTo(x0,y0-h)
Form1->Canvas->MoveTo(x0,y0); Form1->Canvas->LineTo(x0+w, y0); // ось Y
// засечки, сетка и оцифровка по оси X
x=x0+dx;
lx=dlx;
do
{
Form1->Canvas->MoveTo(x,y0-3);
cross=cross-1;
Form1->Canvas->Pen->Style=
Form1->Canvas->MoveTo(x,y0-3);
Form1->Canvas->Pen->Style=
lx=lx+dlx;
x=x+dx;
}
while (x<=x0+w);
// засечки, сетка и оцифровка по оси Y
y=y0-dy;
ly=dly;
do
{
Form1->Canvas->MoveTo(x0-3,y); Form1->Canvas->LineTo(x0+3,y); // засечка
Form1->Canvas->MoveTo(x0+3,y); Form1->Canvas->LineTo(x0+w,y); // линия сетки
Form1->Canvas->Pen->Style=
y=y-dy;
ly=ly+dly;
}
while (y>=y0-h);
//построение осей
c1 = 270; c2 = 260; //начало координат
x2 = 150; y2 =380; //ox
x3 = 470; y3 =260; //oy
x4 = 270; y4 =60; //oz
Form1->Canvas->Pen->Color=
Form1->Canvas->Pen->Width=2;
Form1->Canvas->MoveTo(c1,c2); Form1->Canvas->LineTo(x2,y2);
Form1->Canvas->MoveTo(c1,c2); Form1->Canvas->LineTo(x3,y3);
Form1->Canvas->MoveTo(c1,c2); Form1->Canvas->LineTo(x4,y4);
//стрелочки
Form1->Canvas->MoveTo(x2,y2);
Form1->Canvas->LineTo(x2,y2-
Form1->Canvas->MoveTo(x2,y2);
Form1->Canvas->LineTo(x2+13,
Form1->Canvas->MoveTo(x3,y3);
Form1->Canvas->LineTo(x3-10,
Form1->Canvas->MoveTo(x3,y3);
Form1->Canvas->LineTo(x3-10,
Form1->Canvas->MoveTo(x4,y4);
Form1->Canvas->LineTo(x4-10,
Form1->Canvas->MoveTo(x4,y4);
Form1->Canvas->LineTo(x4+10,
//точки
Form1->Canvas->MoveTo(c1+40,
Form1->Canvas->MoveTo(c1+40,
Form1->Canvas->MoveTo(c1,c2-
Form1->Canvas->MoveTo(c1,c2-
Form1->Canvas->MoveTo(c1-113,
Form1->Canvas->MoveTo(c1-113,
//надписи
Form1->Canvas->TextOut(150, 390," X");
Form1->Canvas->TextOut(470, 270," Y");
Form1->Canvas->TextOut(255, 50," Z");
Form1->Canvas->TextOut(c1-15,
Form1->Canvas->TextOut(c1+40,
Form1->Canvas->TextOut(c1-113,
}
//----------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int size, x, y, z,x1,y1;
size = 3;
//Randomize();
x = rand() % (Form1->Height / 4);
y = rand() % (Form1->Width / 12);
z = rand() % int((Form1->Height/2.5)) ;
x1 = (Form1->Height / 2+y-x / std::sqrt( 3.0));
y1 = (Form1->Width / 2-z+x / std::sqrt( 2.0));
Form1->Canvas->Pen->Color
= RGB(random(255),random(255),
Form1->Canvas->Ellipse(x1,y1,
}
//----------------------------
Информация о работе Математическое моделирование трехмерного распределения