This linking of the top-left and the top-right is not to be confused with the binding of two particles into a composite object, as a proton and an electron are bound together by the electromagnetic force to form a hydrogen atom. It is a different kind of combining, in which two elementary particles are mixed together into a single elementary particle.
Nagyon szemléletes, ahogy az eredő hullám egy határozott irányba tart.
Pedig az oszcillátorok minden irányban kapcsolódnak a szomszédjukhoz. Mégsem terjed szét az eredő hullám minden irányba,
Egy adott ponttól az elemi hullám mindefele terjed, hiszen az adott oszcillátor minden szomszédját rezgésbe hozza, de mi már csak az eredő hullámot látjuk, a konstruktív interferencia-helyeket.
Lehetne még ilyen egyszerűsített szimulációt is írni, ahol a törésmutató szerint lehetne számolni a fénysugár elhajlási szögét a felületen, Ez gyorsabb lenne, de ez egy egyszerűsítés.
A hullámok szuperpoziciója adja meg a magyarázatot a jelenségre.
Programozni nem tudóknak talán érdemes leírnom, miért írok ilyen rusnya sorokat.
Az ok a gyorsítás. Igy gyorsabb az egész. A jelek mögöttes tartalma pedig egyszerű. A y<<u2 egyenértékű az y*256 utasítással.
Miért? Mert a léptetés egy helyiértékkel viszi arrébb a számot. Olyan ez, mikor mi a 100 után teszünk mégegy nullát. Tízzel szoroztunk.
Az eltérés annyi, hogy itt 2-es számredszerben kell gondolkodni olyan esetekben, amikor bitműveleteket végzünk.
A tízes helyiértékek balról jobbra sorba 1 10 100. ..., a kettesnél 1 2 4 8 16 32 64 128 256. Az 1-esből 256-lesz, ha 8-al balra toljuk el. A << ezt az irányt jelöli, Ellentétes irány esetén osztunk az adott lépéshez tartozó számmal. Ez a szám n=2^lépésszám.
Az y&(u-1) lekorlátozza az y számot 0 és u értéke közé akkor, ha az u kettő valamelyik hatványa.
A működési elve kissé nehezebben érthető a bitműveletek ismerete nélkül.
A programban az u=256. Ez binárisan 1 0000 0000. ha ebből levonok egyet, akkor lesz belőle 255, azaz 0 1111 1111. Az &-jel az AND bitműveletnek felel meg. Az akkor ad 1-es bitértéket, ha mindkét bemenet 1. Mivel csak az alső 8 bitje 1-es a maszknak(ami most az u-1) , ezért csak az alsó 8 bit fog megmaradni az y-ból.
Nem kell bitekben gondolkodni a programozás során. Hiszen az int index az végeredményben egy közönséges decimális szám számunkra. Egyszerűen írhatnám az, hogy int index=y*256 +x. csak az kissé lassabban futna le,
Vagy írhatnám az, hogy int index1=((y%u)*256)+x; ahol a %-jel az osztás maradékát adja. Az eredmény ugyan az.
De jó tudni, hogy az a gépben egy bináris szám, és kezelhetjük úgy is.
Mit számol a program? Mert szemmel láthatóan teljesen más, mint az előző.
Előszőr is készít egy táblázatot arról, hogy melyik pixel van a prizmán belül. Ezt tárolja a prizman_belul[]tömb.
így a szimuláció sokkal gyorsabb, nem kell mindig újra és újra ugyanazt kiszámolni feleslegesen.
A D betű már elárulja a fizikát értőknek, hogy itt rugó-szimuláció látható. Ez a rugóállandó jele.
A lehető legegyszerűbben van felépítve a program, hogy minél gyorsabban fusson. Ez egy bevált szokás.
Például nincs tömeg a programban. Vagyis m=1.
Minden pixelhez tartozik még egy amplitudo[] és sebesseg[] ,avagy minden pixel egy rugó. Ezek a rugók egyetlen felületet alkotnak. Minden rugó érzi a 4 szomszédját. Az amplitudójának a nullpontja ezek átlaga.
Miközben lassan feladtam, hogy reflektált sugarakat fogok itt számolni /GPU nélkül./, rájöttem, hogy nem kell feltétlenül a Feynman-módszer. A hagyományos és jól bevált hullámterjedéssel pár perc alatt megkapom az összes reflektált hullámot. Sőt, a hullám lassulása a közegben szemmel láthatóvá vált.
Amikor egyetlen foton halad az anyagban, a szétterjedő valószínűségi hulláma eléri a környezetében levő atomokat. Ha a közeg atomjai vagy molekulái olyan tulajdonságúak, hogy képesek kölcsönhatásba lépni a fotonnal, akkor ezek a lehetőségek megjelennek a foton valószínűségi függvényében. Ezek általába időigényes folyamatok, így fázisletolódást okoznak a hullámfüggvényben.
Ez a fáziseltolódás hullámok összegzésénél a csoportsebesség csökkenését vonja maga után.
Az egészet legegyszerűbb klasszikusan elképzelni. A minden irányba terjedő hullám polarizálja a közeget, ami újabb hullámokat ad a bejövő hullámhoz, de időkéséssel.
"In a classical wave picture, the slowing can be explained by the light inducing electric polarization in the matter, the polarized matter radiating new light, and the new light interfering with the original light wave to form a delayed wave. In a particle picture, the slowing can instead be described as a blending of the photon with quantum excitations of the matter (quasi-particles such as phonons and excitons) to form a polariton; this polariton has a nonzero effective mass, which means that it cannot travel at c."
...
"Alternatively, photons may be viewed as always traveling at c, even in matter, but they have their phase shifted (delayed or advanced) upon interaction with atomic scatters: this modifies their wavelength and momentum, but not speed.[89] A light wave made up of these photons does travel slower than the speed of light. In this view the photons are "bare", and are scattered and phase shifted, while in the view of the preceding paragraph the photons are "dressed" by their interaction with matter, and move without scattering or phase shifting, but at a lower speed."
Röviden összefoglalom. Azért lassul a foton az anyagban,mert valójában egy hullám. Az ok ismét a szuperpozició.
A második idézet sokkal szemléletesebb. Hiszen ez arra a kérdésedre is választ ad, hogy miért "gyorsul" fel újra a foton, miután elhagyta az anyagot.
Valójában se nem lassul, se nem gyorsul, hanem mindig c-vel halad.
A fázisa tolódik el különféle okok miatt . /és függően attól, milyen modellel írjuk éppen le./
Szeretném megtudni, hogy mit mond a Fény sebességéről az Új Fizika Fórum beszélgető társasága?
Talán nem érdektelen feltenni a kérdést, hogy vákuumban miért éppen c a fény sebessége. Máshol meg nem. Felhozok egy példát a probléma megvilágítására:
Vegyük szemügyre a lenyugvó Nap sugarait, amint áthatolnak szobánk ablakán. A fotonok a normál 300 millió méter másodpercenkénti sebességgel haladnak a Naptól egészen az ablaküvegig. Az üvegnél azonban lelassulnak, sebességük az üvegben 300 helyett már csak 210 lesz.
Ezt a sebességet tartják mindaddig, amíg az üvegen belül haladnak. Érdemes felfigyelni rá, hogy a sebesség-csökkenés arányában a hullámhosszuk is lecsökken.
De mi történik a fénysugárral, amikor végre ismét kijut a levegőbe? Milyen sebességgel halad tovább? Az bizony felgyorsul, és mintha mi sem történt volna, ismét 300-al folytatja útját.
Amikor eléri a második ablaküveget, akkor újra lelassul, majd kilépve újra felgyorsul. Ezt a bravúrt akár 100-szor is véghezviszi, ha 100 üveglapot helyezünk az útjába!
Szinte lehetetlen, hogy a foton nevű piciny golyócskának titkos energiatartálya legyen, melybe eltárolja a mozgási energiát, majd amikor gyorsítania kell, akkor újra előveszi és felhasználja.
Ám akár mennyire lehetetlennek is tartom én a Fórum tagságától egyéb, kézenfekvő magyarázatok is jöhetnek. Kíváncsian várom!
Nos, ahhoz többet kellene számolnia a gépnek, amit nem tudok most kivárni.
A prizmákon másodlagos hullámforrásokat kellene számolni, amitől nagyon lelassulna a futásidő,
Ráadásul módosítani kellene a programot, hiszen most nem azt számolja, hogy a fénysugár merre fog haladni, hanem azokat a legvalószínűbb pályákat mutatja meg, amelyeken az A pontból a B-be el lehet jutni a legrövidebb idő alatt.
Valójában az összes lehetséges utat nézi a program, hiszen az adott képpont szinét úgy határozza meg, hogy a képpont közelében elhalató 81 fénysugár interferenciáját számolja,
Aki látta Feynman előadását, az tudja, hogy a nagyon valószínűtlen pályák fázisai kis távolságon nagyot változnak, így a szuperpozició kiejti ezeket. Az eredő amplitudó ott zéró. Nos, az ilyen helyek fekete szint kapnak. Tehát a program az összes lehetséges utat számolja, csakhogy azok a helyek, ahol kicsi a valószínűtsége a foton elhaladásának, feketék.
A program további részei csak kiegészítő funkciót látnak el.
A metszet() két egyenes metszéspontját számolja, a calc() pedig a metszéspontok közti szakaszokra eldönti, hogy k1 vagy k2 hullámszámmal kell ott számolni,
és ami lényeg még:
fazis += hossz(diff)*k1;
A program forgó vektorokkal számol, nem komplex számokkal, de az eltérés az eredményben jelentéktelen.
Tudod, azon a képen azért van annyi fénysugár, mert úgy állítottam be a forrást, hogy több eltérő szögben csapódjon a felületbe.
Mivel értem az alapokat, ezért úgy kontrollálom a paramétereket, hogy nagyjából mindig az történik, amit szeretnék.
Tudom, mi lesz a következő reakciód. Hol vannak a reflektált sugarak?
Nos, ahhoz többet kellene számolni, amire nekem most nincs időm.
A program egy egyszerűsítés, de a Feynman elképzelésre épül. Nem veszi figyelembe az összes lehetséges utat, csak az adott egyenes közelében levőket. Ennek ellenére elég jól megmutatja, hogy a bal alsó fehér kereszttől hogyan juthat el a foton a két üvegen át a jobb felső fehér keresztig a legrövidebb idő alatt.
Feynman eljárása pontosan megadja, hogy a két fehér kereszt közti utat hogy tudja a foton optimális idő alatt elérni, Ha változtatom a közegbeli hullámhosszt, megváltozik az út.
Na ennyi az egész. Kicsit jobb, mint a te móricka-rajzod. xD