Wyznaczanie środka cieżkości (Monte Carlo)

0

Witam. Zagadnienie o które się pytam może dla niektórych będzie śmiesznie proste ale dla mnie niestety nie jest... :-( Otóż mam na celu zbudowanie programu w C++ (pisze w C++ Builder) który ma na celu wprowadzenie na ekranie jednolitej mapy Polski (czarno-białą .bmp) , wypełnienie jej jednym kolorem, policzenie pola powierzchni i środka cieżkości tej mapy. Wykorzystać mam metode Monte Carlo.
Wprowadzenie mapy wypełnionej jednolitym kolorem wykonałem, ale dalej nie wiem jak dobrze ruszyć z programem. Myślałem nad tym zeby piksel= liczbie km^2 wyliczonej ze skali( co da mi pole powierzchni)-ale nie wiem czy to dobry pomysł... Będe wdzięczny za każdą pomoc i porade

0

musisz policzyć średnią pozycję pikseli, które są wewnątrz granic kraju (Monte Carlo nie za bardzo tu pasuje).

0

Nie średnia arytmetyczna!!!

Losujemy punkty na ekranie.
Stosunek liczby punktów które trafiły w "Polskę" do liczby wszystkich wylosowanych, równy jest (około) stosunkowi powierzchni "polski" do powierzchni ekranu.

Przy okazji punktów trafionych obliczamy kolejne przybliżenie położenia środka ciężkości.
Pierwszy punkt trafiony, to pierwsze przybliżenie.
Przy drugim trafionym, łączymy go odcinkiem z bieżącym środkiem ciężkości (czyli pierwszym punktem), odcinek ten dzielimy na połowy i tam znajduje się nowy środek ciężkości.
Przy trzecim trafionym dzielimy odcinek na trzy części, nowy środek znajduje się na końcu pierwszego pod-odcinka.
user image
i tak dalej, za każdym, n-tym razem, odcinek łączący punkt z poprzednim przybliżeniem dzielimy na "n" części.
bieżący punkt to (x,y)
Poprzedni środek to (X,Y),
Nowe współrzędne to (X', Y')
X'=X+(x-X)/n
Y'=Y+(y-Y))/n

0

Jak to nie średnia arytmetyczna. To co narysowałeś/napisałeś to jest dokładnie średnia arytmetyczna, tyle że najpierw liczna dla 2 punktów, a potem poprawiana-rozszerzana o kolejne punkty.

0

a wiec, w efekcie, nie jest to srednia arytmetyczna - zwroc uwage ze kazdy punkt kolejny liczy sie coraz mniej. bardziej toprzypomina srednia ważoną z malejacymi wagami

0

Owszem jest to średni ważna dla dwóch punktów, ale ja miałem na myśli, że za każdym razem jest to średnia ze wszystkich bieżących punktów (od 1 do n) - średnia jest aktualizowana o dodatkowy punkt.

0

NIE ARYTMETYCZNA !!!
bardzo łatwo o kontrprzykład

0
mgr.Dobrowolski napisał(a)

NIE ARYTMETYCZNA !!!
bardzo łatwo o kontrprzykład
Nie ma wyjścia trzeba pokazać to na wzorach :/ :
X_n - średnia z n punktów
x_i - pozycja i tego punktu
X_n = \frac{\sum_{i=1}^nx_i}n - wzór na średnią arytmetyczną

Teraz wzór na średnią arytmetyczną w postaci rekurencyjnej (powiększanie zbioru punktów, z których liczona jest średnia):
X_n = \frac{\sum_{i=1}<sup>nx_i}n=\frac{\sum_{i=1}</sup>{n-1}x_i}n+\frac{x_n}{n}=\frac{\sum_{i=1}^{n-1}x_i}{n-1}\frac{n-1}{n}+\frac{x_n}{n} = X_{n-1}\frac{n-1}{n}+\frac{x_n}{n}=X_{n-1}+\frac{1}n(x_n - X_{n-1})
a to już jest wzór który został podany.

0

moze zauwazcie ze ("srednia arytmetyczna" != "srednia arytmetyczna aktualizowana") ^ ("srednia arytmetyczna aktualizowana" e PechoweNazwy) i przestancie udowadniac sobie cos co kazdy z Was rozumie?:)

0

Chodzi o to, że sposób podany przez mgr.Dobrowolski da ten sam wynik co wylosowanie N punktów i policzenie z nich normalnej średniej arytmetycznej. Różnica jest taka, że średnia jest liczona albo na bieżąco wraz z losowanymi punktami, albo na samym końcu już po wylosowaniu wszystkich punktów. Ta druga metoda zmniejszy błąd zaokrągleń, ale też zwiększy nakład pamięci.

0

cofam poprzednie stwierdzenia o jakichs-tam-wagach i o sredniej wazonej. po rozpisaniu tych 'wag' ktore mialem na mysli, wyszla dokladnie srednia arytmetyczna.

dla majacych watpliwosci jak ja wczesniej: pocwiczyc rozdzielnosc mnozenia/dzielenia wzgledem sumy!

rozpis dla 3+.. punktow:

x0 / 1 + (x1-x0) / 2 + ( x2 - (x0 + (x1-x0) / 2) ) / 3 + ...
x0 / 2 + x1 / 2 + (x2 - x0 / 2 - x1 / 2 ) / 3 + ...
x0 / 2 + x1 / 2 + x2 / 3 - x0 / 6 - x1 / 6 + ...
x0 / 3 + x1 / 3 + x2 / 3 + ...

0

Widziałem to tak jak opisałem, wydało mi się, że prosta średnia arytmetyczna jest zbyt prosta.
Nie sprawdziłem, nie policzyłem
ODSZCZEKUJĘ
Współrzędne środka masy zbioru punktów (o tej samej masie) równe są średniej arytmetycznej odpowiednich współrzędnych.

Jeżeli przeczucie podpowie poprawne rozwiązanie, wtedy mówimy o intuicji.
A gdy przeczucie zawiedzie to... to pech, spisek albo zły urok. [wstyd]

0

Dzieki wielkie, to juz mam rozgryzione tylko teraz utknąłem w punkcie gdzie mam określić czy punkt jest w kolorze określonym, tj. Polske mam w kolorze czerwonym a reszte na biało, no i teraz trzeba te czerwone do działania wrzucić, byłym wdzięczny za jakiś wiersz kodu

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