Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2015, 15:06   #1
shewlett
Пользователь
 
Регистрация: 05.01.2015
Сообщений: 19
Стрелка Программма работает, но не так как мне нужно. Помогите разобраться.

Написана программа для нахождения интеграла методом Монте-Карло.
Однако по сути она считает мат ожидание, т.е. значение функции на интервале, а мне нужна площадь.
Как переделать программу?
Код:
uses crt;
var a,b,n,i: integer;
    l,s,x,M,F: real;
begin
  writeln('Predeli integrirovaniya:');
  readln(a);
  readln(b);
  writeln('Kolichestvo ispitaniy:');
  readln(n);
  l:=b-a;
for i:=1 to n do
    begin
    M:= random;
    x:= a+M*(b-a);
    s:= s+sqrt(sin(x));
    end;
F:=(1/n)*l*s ;
writeln('S=',F);
end.
Должно быть так, что программа генерирования случайных чисел дает случайное число от 0 до 1. Дважды обращаемся к этой программе и получаем два числа, которые отождествляем с Х и Y. Т.е. получаем точку. Далее вычисляем значение интегрируемой функции при значении Х. Получаем Yф. Если Y<Yф, то, стало быть, наша случайная точка с координатами (Х;Y) лежит под кривой. Поэтому число удачных попыток увеличиваем на единицу: n=n+1. Если Y>Yф , то n не увеличиваем. После проведения N испытаний (генерирования N случайных точек, 2N случайных чисел) подсчитываем вероятность попадания случайных точек в площадь под функцией. Эта вероятность, которая равна n/N, приближенно будет равна площади под функцией, т.е. S =n/N.

Последний раз редактировалось Stilet; 30.03.2015 в 15:12.
shewlett вне форума Ответить с цитированием
Старый 30.03.2015, 17:25   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

0. прочитайте это
1. переименуйте ваши переменные в соответствии с вашим же описанием
2. запишите описание в виде комментариев к строкам программы.

Цитата:
Дважды обращаемся к этой программе и получаем два числа, которые отождествляем с Х и Y.
я вижу только один M:=Random;

это только первое несоответствие описания и кода замечаемое при выполнении пп.1-3
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WinInet работает не так как нужно! 1234567852 Win Api 7 26.02.2012 19:45
Написал программу,работает,но не так как нужно( С++ ) Diwolf Помощь студентам 0 21.12.2011 19:47
Таймер обратного отсчета работает не так как надо.. нужно найти ошибку в коде... Человек_Борща Общие вопросы Delphi 10 13.04.2010 20:06
Программма работает не так как ожидал бедный_студент Помощь студентам 3 13.10.2009 00:08
Помогите разобраться как это работает! Пожалуйста Romens Паскаль, Turbo Pascal, PascalABC.NET 1 08.12.2008 22:16