Cím: Monte-Carlo-módszerek 2.
Szerző(k):  Schmieder László 
Füzet: 2018/május, 290 - 292. oldal  PDF  |  MathML 
Témakör(ök): Szakmai cikkek, Programozás, algoritmusok
Hivatkozás(ok):2018/február: Monte-Carlo-módszerek 1.

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Februári számunkban bemutattuk a módszer használatát egy matematikai probléma megoldásánál. Folytatásként nézzük meg, hogyan használható a szimulációs módszer a fizika területén, például az elektrosztatikában. Legyen egy V térfogatban N számú pontszerű töltés vákuumban. Adjuk meg az i-edik ponttöltés nagyságát a Qi számmal és helyét az ri helyvektorral (1iN). A Coulomb-törvény segítségével a tér egy r vektorral mutatott helyén kiszámítható az előbbi töltések által keltett E(r) térerősség és U(r) potenciál, melyek értékei

E(r)=ki=1NQi(r-ri)|r-ri|3ésU(r)=ki=1NQi|r-ri|.
Az összegzések egyszerűen elvégezhetők, nagyszámú ponttöltés esetén akár számítógépet is segítségül hívhatunk.
A térerősség és a potenciál meghatározása összetettebb feladat, ha a töltések nem pontszerűek, hanem folytonos töltéseloszlások vannak a térrészben, például testeken vagy azok felületén. Ekkor a Gauss-törvény használatával néhány szimmetrikus esetben könnyen kiszámíthatóak az előbbi mennyiségek. Általános esetben azonban el kell végezni az összegzéseket, illetve helyettük ekkor integrálni szükséges. Ha például a Q töltés egy A felületen, egyenletes töltéssűrűséggel helyezkedik el, akkor a felületet gondolatban dA nagyságú elemi részekre bontjuk, melyek mindegyikére dQ=QdAA töltés jut σ=QA töltéssűrűséggel. Az összeg helyére ekkor a következő integrálok lépnek:
E(r)=kAσ(r-rdA)|r-rdA|3dAésU(r)=kAσ|r-rdA|dA.

Az U(r) potenciál a tér minden pontjához egy skalár értéket rendel. A függvény általános esetben például úgy szemléltethető, hogy az értékeihez hozzárendeljük egy színskála színeit, és azokkal színezzük a térbeli pontokat. Szerencsére a problémák egy részében a feladat olyan töltéselrendezésű, amely valamely térirányban szimmetrikus, így sokszor elég egy síkmetszetben található töltéseket vizsgálni és ebben a síkban ismerni a térerősség és a potenciál értékét. Ekkor U egy R2R függvény, amely térben vagy akár síkban is ábrázolható, ez utóbbi esetben pl. szintvonalakkal vagy színekkel. Egy ponttöltés potenciálfüggvényének képe:

 
 

A potenciálfüggvény számítása összetett töltéseloszlások esetén nem egyszerű. A gyakorlati alkalmazások során elegendő a pontenciál közelítő értékének ismerete, ami a következő bolyongásos szimulációval végezhető. Példaként keressük egy síkbeli töltéseloszlás potenciálját. A sík vizsgált részét gondolatban osszuk fel N×M elemi négyzetre, melyek mindegyike tartalmazhat ±q elemi töltést, vagy üres. A sík minden négyzetének adjunk egy kezdetben zérus p(n,m) értéket, és indítsunk mindegyikből egy véletlenszerű mozgással rendelkező ,,részecskét''. A bolyongó részecske egy szimulációs lépésben a sík bármely négyzetéből egy csúcsban vagy élben vele szomszédos négyzetre léphet. Ha olyan mezőre ér, amelyben van töltés, akkor a mező töltése hozzáadódik a kiindulási hely p(n,m) értékéhez. A bolyongást minden négyzetre S alkalommal elvégezzük, majd a kapott p(n,m) értékeket S-sel osztjuk. Megmutatható, hogy az így létrejött p(n,m) függvény a qi töltések által létrehozott elektromos potenciált közelíti. A közelítés annál pontosabb, minél többször végezzük el a szimulációt, tehát S értékének növelésével az eredmény pontosítható.
A lap 2018. márciusi számában kitűzött I. 453. feladat lényegében ennek a szimulációnak az elvégzését és a potenciál színskálával történő ábrázolását tűzte ki feladatként a versenyzőknek.
A négy ábrán egy 50×50-es, négyzet alakú terület látható:
a bal felső képen a negatív és pozitív ±q elemi töltések helye;
a jobb felső képen 5 szimuláció elvégzése után a potenciál szürkeárnyalatos ábrája;
az alsó sor képein ugyanez 20 és 100 szimuláció elvégzése után.


 
 

A szimulációt végző program a fenti leírásnak, és az I. 453. feladatnak megfelelően a következő fontosabb részekből állítható össze:
1.Adatok bevitele (N,M,S,±qi töltések koordinátái)
2.Kezdőértékek megadása
3.Szimuláció elvégzése S-szer minden egységnégyzetre
4.p(n,m) értékeinek leképezése egy színskálára és ábrázolásuk

A szimuláció elvégzéséhez érdemes fölvenni egy q kétdimenziós tömböt, melynek értékei megadják az elhelyezett töltések értékét a téglalap n-edik sorában és m-edik oszlopában (vagy 0-t), illetve egy hasonló p tömböt, amely a potenciál értékét tartalmazza a szimuláció során (kezdeti értéke 0).
Mivel egy töltéssel rendelkező négyzetből induló bolyongás azonnal egy töltéshez ér, ezért azokon a helyeken, ahol q(n,m) nem nulla, p(n,m) értéke egyenlő q(n,m) értékével. Minden más esetben addig változtatunk helyet, amíg egy töltéssel rendelkező négyzethez nem érünk. Előfordulhat ugyan, hogy a bolyongás ,,kivezet'' a vizsgált területről, vagyis túllép a határokon. Ekkor két lehetőség közül választhatunk: vagy engedjük, hogy a bolyongás tetszőleges távolra vezessen, vagy abbahagyjuk a bolyongást, és nem változtatunk a kiindulási négyzet p értékén, és új bolyongást indítunk. Az első esetben a program igen sokáig futna, amit nem szeretnénk, ezért érdemes a második esetet választani, illetve a vizsgált terület méreteit úgy megadni, hogy a töltések ne a szélén helyezkedjenek el. Így az elkóborlás esélye csekély, és nem befolyásolja számottevően a szimuláció eredményét.
A program többi részének elkészítése nem nehéz, az elkészült programok megnézhetők és tesztelhetők honlapunkon az I. 453. feladatnál.