Результаты исследований учащихся в проекте Модели вокруг нас

Материал из Wiki Mininuniver
Версия от 18:42, 14 декабря 2009; Румянцва Юлия (обсуждение | вклад) (Результаты проведённого исследования)
Перейти к навигацииПерейти к поиску

Авторы и участники проекта

Авторы

Коробейникова Дарья

Румянцва Юлия

Ученики 11 класса группа "Испытатели"

Тема исследования группы

Моделирование случайности.

Проблемный вопрос (вопрос для исследования)

Как смоделировать случайность?

Гипотеза исследования

Мы считаем, что моделировать случайность можно используя различные специальные финкции программных продуктов. Например в Delphi это функция Random

Цели исследования

1. Рассмотреть моделирование случайности на примере задачи: вычисление числа П методом Манте-Карло.

2. Для решения задачи выполнить её постановку, создать математическую модель. Разработать алгоритм и программу на Delphi.

Результаты проведённого исследования

БлоксхемаМК.JPG


Листинг программы "Монте-Карло"

unit Unit2;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, OleCtrls, SHDocVws

type TForm2 = class(TForm)

Image1: TImage;

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label1: TLabel;

WebBrowser1: TWebBrowser;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm} var R:integer; //радиус

N:integer; //количество "брошенных" точек

X:real; //координата точек Х

Y:real; //координата точек Y

M:integer; //количество точек, попавших в круг

I:integer; //счетчик цикла

procedure TForm2.Button1Click(Sender: TObject);

begin

M := 0; //Ввод значений

R := StrToInt(Edit1.Text);

N := StrToInt(Edit2.Text);

Image1.Canvas.Ellipse(0,0,200,200); //Генерация точек

{Randomize};

For I := 1 To N do

begin

X := (Random(200*R)-100)/100;

Y := (Random(200*R)-100)/100;

Image1.Canvas.Pixels[Round(100*X)+100,100 - Round(100*Y)]:=clBlack;

If X*X + Y*Y <= R Then M := M + 1 end;

//Площадь

Label1.Caption := FloatToStr(4*R*R*M/N);

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

Webbrowser1.Navigate(GetCurrentDir+'\mk.htm');

//Form1.Show;

end;

end.

Вывод

1. Показали моделирование случайностей на примере вычисления числа П методом Манте-Карло.

2. Выяснили, что увеличивая количество испытаний можно увеличивать точность вычисления числа П.

Полезные ресурсы

Учебник по Delphi 7 для начинающих 1.0.

Другие документы