Symulacja Monte Carlo w języku R

0

Zaprogramować symulację Monte Carlo (w języku R) która pozwoli
obliczyć pole powierzchni szarego obszaru przedstawionego na
poniższym rysunku Obliczyć błąd uzyskanego wyniku.

Jeśli nie cały program to przynajmniej jak obliczyć pole zaszarzonej figury( wiem, że trzeba wykorzystać równanie prostej przechodzącej przez dwa punkty, ale nie wiem jak to zaprogramować w R)
screenshot-20210410132902.png

1

Ale z czym konkretnie masz problem?

  • wyznaczenie prostej
  • sprawdzenie po ktorej stronie prostej lezy dany punkt
  • calkowanie metoda Monte Carlo

?

0

Jak wyżej; znasz to R na pewno, zacznij coś męczyć i zobaczymy...

1

Najrozsądniej tę figurę po prostu opisać jako sklejenie trzech funkcji liniowych — po jednej dla każdego z odcinków [0; 2), [2; 6), [6; 8].

A jak wyznaczyć równanie funkcji liniowej f(x) = ax + b? Znaleźć dwa punkty, przez które przechodzi, i rozwiązać układ równań. I tak wiemy, że pierwsza przechodzi np. przez [0; 0] i przez [2; 2], to sobie piszemy:
<br> \begin{cases} 0a + b = 0 \ 2a + b = 2 \end{cases} \Rightarrow (a; b) = (1; 0) \Rightarrow f_{[0; 2]} (x) = x<br>

I tak dalej z dwiema pozostałymi — druga przechodzi przez [2; 2] i [6; 1], a trzecia przez [6; 1] i [8; 0], co nam daje kolejne fragmenty:
<br> \begin{cases} 2a + b = 2 \ 6a + b = 1 \end{cases} \Rightarrow f_{[2; 6]} (x) = -0{,}25x + 2{,}5 \<br> \begin{cases} 6a + b = 1 \ 8a + b = 0 \end{cases} \Rightarrow f_{[6; 8]} (x) =  -0{,}5x + 4<br>
Więc ostatecznie masz funkcję:
f(x) = \begin{cases} x, &amp; \text{dla } x \in [0; 2) \ -0{,}25x + 2{,}5, &amp; \text{dla } x \in [2; 6) \ -0{,}5x + 4, &amp; \text{dla } x \in [6; 8] \end{cases}


A, ja się naprodukowałem, a Ty pytasz, jak to zakodzić w R… No to ja bym to wklepał na sztywno, ale jeśli z jakiegoś powodu nie chcesz, to w matlib jest Solve do właśnie takich celów: https://cran.r-project.org/web/packages/matlib/vignettes/linear-equations.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1