Python. Список задач 4. SciPy. Движение частицы во внешнем

advertisement
Python. Ñïèñîê çàäà÷ 4. SciPy. Äâèæåíèå
÷àñòèöû âî âíåøíåì ýëåêòðîìàãíèòíîì ïîëå.
1
SciPy
Ïàêåò SciPy (http://www.scipy.org/ ñîäåðæèò ðàçëè÷íûå èíñòðóìåíòû,
÷àñòî èñïîëüçóåìûå ïðè íàó÷íîì ïðîãðàììèðîâàíèè. Ìîäóëè â ïàêåòå
ñîîòâåòñòâóþò ðàçëè÷íûì çàäà÷àì, òàêèì êàê èíòåðïîëÿöèÿ, èíòåãðèðîâàíèå,
îïòèìèçàöèÿ, îáðàáîòêà èçîáðàæåíèé, ñïåöôóíêöèè è äðóãîå. Âî ìíîãîì
SciPy äóáëèðóåò ñõîæèå èíñòðóìåíòû èç MATLAB èëè áèáëèîòåê Ñ++.
SciPy îñíîâàí íà NumPy, è ðàáîòàåò ñ ìàññèâàìè è ìàòðèöàìè
NumPy.
èç
Ïåðåä òåì, êàê ïûòàòüñÿ ñàìîñòîÿòåëüíî ðåàëèçîâàòü êàêóþ-òî çàäà÷ó
(íàïðèìåð, ÷èñëåííîå èíòåãðèðîâàíèå êàêèì-ëèáî ìåòîäîì), èìååò ñìûñë
ïðîâåðèòü, íå ðåàëèçîâàíà ëè ýòà çàäà÷à â ïàêåòå
SciPy,
òàê êàê âðÿä
ëè ïîëó÷èòñÿ ðåàëèçîâàòü å¼ áîëåå ýôôåêòèâíî, åñëè âû íå ÿâëÿåòåñü
ïðîôåññèîíàëîì â ýòîé îáëàñòè. SciPy õîðîøî îòòåñòèðîâàí è îïòèìèçèðîâàí,
è ñòîèò ïîëüçîâàòüñÿ èì, êîãäà ýòî âîçìîæíî.
Çàäàíèå
1. Îçíàêîìüòåñü ñ âîçìîæíîñòÿìè
SciPy.
Âñå ìîäóëè ïåðå÷èñëåíû â
äîêóìåíòàöèè http://docs.scipy.org/doc/scipy/reference/. Òàì
æå ìîæíî íàéòè äîêóìåíòàöèþ ïî âñåì ôóíêöèÿì
SciPy.
Âîçìîæíîñòè SciPy î÷åíü áîëüøèå, ïîýòîìó âî ââåäåíèè ïðåäëàãàåòñÿ
ïîçíàêîìèòüñÿ ëèøü ñ íåêîòîðûìè èç íèõ, à èìåííî ñ ëèíåéíîé
àëãåáðîé, ïîèñêîì ìèíèìóìîâ (îïòèìèçàöèÿ), íàõîæäåíèåì êîðíåé
óðàâíåíèé, ôèòèðîâàíèåì è èíòåãðèðîâàíèåì. Èçó÷èòå âîçìîæíîñòè
ìîäóëåé, à òàê æå ðàçáåðèòå è ïðîäåëàéòå ïðåäëîæåííûå íèæå
ïðèìåðû (è ïîñòðîéòå ãðàôèêè èç ïðèìåðîâ).
scipy.linalg.
Îçíàêîìüòåñü ñ âîçìîæíîñòÿìè ìîäóëÿ scipy.linalg: http://docs.
scipy.org/doc/scipy/reference/linalg.html#scipy.linalg.
Ïðîäåëàéòå ïðèìåðû: http://scipy-lectures.github.io/intro/
scipy.html#linear-algebra-operations-scipy-linalg
2. Ëèíåéíàÿ àëãåáðà, ìîäóëü
1
3. Îïòèìèçàöèÿ è ïîèñê êîðíåé óðàâíåíèé, ôèòèðîâàíèå, ìîäóëü scipy.optimize.
Âîçìîæíîñòè ìîäóëÿ: http://docs.scipy.org/doc/scipy/reference/
optimize.html#scipy.optimize.
Ïðîäåëàéòå ïðèìåðû: http://scipy-lectures.github.io/intro/
scipy.html#optimization-and-fit-scipy-optimize
scipy.interpolate.
Âîçìîæíîñòè ìîäóëÿ: http://docs.scipy.org/doc/scipy/reference/
interpolate.html#scipy.interpolate.
Ïðèìåðû: http://scipy-lectures.github.io/intro/scipy.html#
interpolation-scipy-interpolate.
4. Èíòåðïîëÿöèÿ,
scipy.integrate.
Äîêóìåíòàöèÿ: http://docs.scipy.org/doc/scipy/reference/integrate.
html#scipy.integrate.
Ïðèìåðû: http://scipy-lectures.github.io/intro/scipy.html#
numerical-integration-scipy-integrate.
5. Èíòåãðèðîâàíèå (â ò.÷. ñèñòåì ÎÄÓ),
2
Äâèæåíèå ÷àñòèöû âî âíåøíåì ýëåêòðîìàãíèòíîì
ïîëå
Íàïèøèòå ïðîãðàììó, êîòîðàÿ ðèñóåò òðàåêòîðèè äâèæåíèÿ ðåëÿòèâèñòñêîé
çàðÿæåííîé ÷àñòèöû â ïðîèçâîëüíîì âíåøíåì ýëåêòðîìàãíèòíîì ïîëå.
1. Óðàâíåíèÿ äâèæåíèÿ ÷àñòèöû âî âíåøíåì ïîëå ìîæíî çàïèñàòü
êàê

dp
1



= e E + [v × H]
dt
dx



=
dt
c
 ðåëÿòèâèñòñêîì ñëó÷àå ìîæíî âûðàçèòü
p
1/ 1 − (v/c)2 =
p0 = mcu0 = mcγ
p
è
(1)
v
1 + (p/mc)2 (ïîñëåäíåå
(p0 )2 = m2 c2 + p2 ).
p = mγ v,
ãäå
γ =
ñëåäóåò èç òîãî, ÷òî
Òàêèì îáðàçîì, äëÿ ðåøåíèÿ çàäà÷è íåîáõîäèìî ïðîèíòåãðèðîâàòü
ñèñòåìó ÎÄÓ. Äëÿ ýòîãî ìîæíî èñïîëüçîâàòü ìîäóëü scipy.integrate
scipy, íàïðèìåð, ôóíêöèþ odeint (http://docs.scipy.
org/doc/scipy/reference/generated/scipy.integrate.odeint.html#
scipy.integrate.odeint)
èç ïàêåòà
2. Îáåçðàçìåðüòå ñèñòåìó óðàâíåíèé (1). Íàïðèìåð, äëÿ ýòîãî ìîæíî
èñïîëüçîâàòü êîìïòîíîâñêèå åäèíèöû: lC = h̄/mc, tC = c/lC , pC =
mc, Ec = m2 c3 /eh̄ (ïîñëåäíÿÿ âåëè÷èíà â êâàíòîâîé ýëåêòðîäèíàìèêå
íàçûâàåòñÿ êðèòè÷åñêèì ïîëåì, ýòî ïîëå ÿâëÿåòñÿ õàðàêòåðíûì
äëÿ ïðîöåññîâ ÊÝÄ âî âíåøíåì ïîëå, ïîñòîÿííîå ýëåêòðè÷åñêîå
2
ïîëå âåëè÷èíû
íà ðàññòîÿíèè
Ec ñîâåðøàåò ðàáîòó íàä ýëåêòðîíîì ïîðÿäêà mc2
lC ). Ìîæíî îáåçðàçìåðèòü è êàêèì-ëèáî äðóãèì
ñïîñîáîì.
3. Íàïèøèòå ïðîãðàììó, êîòîðàÿ ðåøàåò ñèñòåìó óðàâíåíèé (1) â
ïîñòîÿííîì ñêðåùåííîì ïîëå E
= (E, 0, 0), H = (0, E, 0) äëÿ ýëåêòðîíà
p(t = 0) = p0 , x(t =
ñ ïðîèçîâîëüíûìè íà÷àëüíûìè óñëîâèÿìè
0) = x0 .
4. Ïîñòðîéòå òðàåêòîðèè äâèæåíèÿ ÷àñòèö ñ ïîìîùüþ matplotlib.pyplot.
 ÷àñòíîñòè, ïîñòðîéòå ïðîåêöèè íà ïëîñêîñòè
(x, y), (y, z) è (x, z).
Òàêæå ïîïðîáóéòå ïîñòðîèòü òðåõìåðíûé ãðàôèê.
5. Äëÿ ïîñòîÿííîãî ñêðåùåííîãî ïîëÿ èçâåñòíî òî÷íîå ðåøåíèå (ñì.
Ëàíäàó-Ëèôøèö, òîì 2, çàäà÷à 2 ê ïàðàãðàôó 22). Ñðàâíèòå ÷èñëåííîå
ðåøåíèå ñ òî÷íûì ðåøåíèåì.
6. Îáîáùèòå àëãîðèòì íà ñëó÷àé ïîëåé ïðîèçâîëüíîé êîíôèãóðàöèè,
çàâèñÿùèõ îò âðåìåíè è ïðîñòðàíñòâåíûõ êîîðäèíàò. Ïîñòðîéòå
òðàåêòîðèè äâèæåíèÿ ýëåêòðîíà â ïëîñêîé âîëíå, âî âðàùàþùåìñÿ
îäíîðîäíîì ýëåêòðè÷åñêîì ïîëå. Ïîïðîáóéòå èññëåäîâàòü áîëåå
ñëîæíûå êîíôèãóðàöèè.
3
Download