Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 02.06.2019
Сообщений: 1

Поиск экстремума методом Монте-Карло

02.06.2019, 15:00. Показов 2785. Ответов 0

Студворк — интернет-сервис помощи студентам
Народ, срочно нужна помощь. Нужно методом Монте-Карло, рандомным образом взять точки на любом участке функции. Далее если в этой точке функция удовлетворяет погрешности рисовалась зеленая линия, если экстремум синяя, если любая другая - желтая линия. Из цикла выходит когда найден экстремум. Я взял участок от 2,5 до 7,4. Получается какая-то ерунда.
Pascal
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
uses
graphABC; //Подключаем графический модуль
 
const
W = 800; H = 500;//Размеры графического окна
 xk=10;  
    dxx=0.0001; 
    E=0.001;
    
var xx,u,my,mx:real;
    a,b,x0,y0,i,iii,n:integer;
    s:string;
l,ii,m,k1,k2,k3,x2,u1, fmin, fmax, x1, y1, x, dx, dy, num,Fa,Fx,d,c,g,ex,ep,yyy,mn,y11,x11,x22,y22,xxx: real;
 
 
 
function F(x: real): real;
begin
  F := sqrt(x)-3*sin(x);  //Функция
end;
begin
setwindowsize(500,500);
a:=0;//интервал по Х
b:=10;
x0:=50;//начало координат
y0:=windowheight div 2;
mx:=(windowwidth-x0-30)/b;//масштаб по Х
my:=1*(y0-30)/b;//по Y
line(0,y0,windowwidth,y0);//оси
line(x0,0,x0,windowheight);
for i:=1 to b do//создаем оси координат
 begin
  line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); //засечки на оси Х
  line(x0-3,y0+round(i*my),x0+3,y0+round(i*my)); //засечки на оси Y
  line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));
  //подпись оси Х
  textout(x0+round(i*mx),y0+10,inttostr(i));
   //подпись оси Y
  textout(x0-25,y0-round(i*my),inttostr(i));
  textout(x0-20,y0+round(i*my),inttostr(-i));
 end;
//центр
textout(x0+5,y0+10,'0');
//подписи концов осей
textout(windowwidth-10,y0-15,'X');
textout(x0+5,10, 'Y');
 
x:=a;
while x<=b do
 begin
  if x>0 then  setpixel(x0+round(x*mx),y0-round(F(x)*my),clBlue);
  setpixel(x0+round(x*mx),y0-round(F(x)*my),clred);
  x:=x+E;
 end;
 setfontsize(11);
textout(x0+300,y0-170,'F := sqrt(x)-3*sin(x)');
 
begin
x11:=2.5;
x22:=7.4;
Randomize;
Repeat
  xxx:=2.5+7.4*random;
y22:=F(xxx)/my;
if y22<E then
 
line(round(x0+2.5*mx+xxx),y0,round(x0+2.5*mx+xxx),y0+round(y22),clgreen)
Else 
line(round(x0+2.5*mx+xxx),y0,round(x0+2.5*mx+xxx),y0+round(y22),clyellow);
 
begin
n:=round((x22-x)/E+1);
mn:=F(x);
for iii:=1 to n do
x:=x+E*(iii-1);
yyy:=F(x);
end;
Until
yyy>mn;
line(x0+round(xxx*mx),y0,x0+round(xxx*mx),round(y22),clblue);
End;
end.
Добавлено через 2 минуты
Цитата Сообщение от Иван Гл Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
begin
x11:=2.5;
x22:=7.4;
Randomize;
Repeat
xxx:=2.5+7.4*random;
y22:=F(xxx)/my;
if y22<E then
line(round(x0+2.5*mx+xxx),y0,round(x0+2.5*mx+xxx),y0+round(y22),clgreen)
Else
line(round(x0+2.5*mx+xxx),y0,round(x0+2.5*mx+xxx),y0+round(y22),clyellow);
begin
n:=round((x22-x)/E+1);
mn:=F(x);
for iii:=1 to n do
x:=x+E*(iii-1);
yyy:=F(x);
end;
Until
yyy>mn;
line(x0+round(xxx*mx),y0,x0+round(xxx*mx),round(y22),clblue);
End;
end.
Где то здесь ошибка
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.06.2019, 15:00
Ответы с готовыми решениями:

Поиск площади фигуры методом Монте - Карло
Помогите пожалуйста!!! очень срочно нужно!!! Заданы две прямые вида y=± d/2 и окружность радиусом R&gt;d и с центром в точке с...

вычисление pi методом монте карло
вот прога ,но она результат pi всегда не более 1,... в чем ошибка понять не могу. const n=10000; var x,y,pi:real; a:integer;i,...

Вычисление интеграла методом Монте-Карло
5.5. Вычисление интеграла методом Монте–Карло. Вычислить значения функции в заданных точках t1,t2,..tm . Значение интеграла...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2019, 15:00
Помогаю со студенческими работами здесь

Вычислить значение числа pi методом Монте-Карло
Вычислить значение числа pi методом Монте-Карло с точностью 0,0001 Вот что то нашёл но не работает ...помогите изменить условие под моё...

методом Монте Карло посчитать приближенное значение числа п
С помощью метода Монте-Карло получите приближенное значение числа pi. Для этого подсчитайте площадь окружности единичного радиуса.

Как сделать вычисление кратных интегралов методом Монте-карло
кто знает как вычислить двойной интеграл методом Монте-карло в паскаль авс

Определение площади окружности в центре координат методом Монте-Карло
PascalABC Метод Монте-Карло. Написать прогорамму для определения площади окружности в центре координат произвольным радиусом

Поиск экстремума симплекс методом
есть что то подобное, но это выполняет не полностью то... uses crt; var n,i,l,x3,x4,x5,j,z1,z2,dl1,dl2,dl3,dl4,dl5,k:integer; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru