Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
HYRJE
Teksti “ Fizika Llogartëse” mbulon lëndën e Fizikës Llogaritëse që
zhvillohet në degën Fizikë 5-vjeçare , në vitin e tretë.
Ai përbëhet nga dy pjesë. Pjesa e parë përmban disa nga metodat bazë të
analizëa numerike, që përdoren në Fizikë. Ndërsa pjesa e dytë përmban shembuj
të zbatimit të këtyre metodave në probleme të ndryshme të Fizikës. Shembujt
prekin pothuaj të gjitha pjesët e një kursi të plotë të Fizikë së Përgjithëshme dhe
një pjesë të Fizikës teorike.
Teksti është paisur me programet në dy variante gjuhësh të programimit në
BASIC dhe FORTRAN. Ato mund të ekzekutohen me ndryshime të vogla nga
çdo kompjuter i paisur me kompilatorët e këtyre gjuhëve. Pjesa vizualizuse e
programeve ekzekutohet vetëm në Personal Compjuter (PC ), që kanë
kompilatorin QBASIC.
Në fund të çdo paragrafi apo kapitulli jepen ushtrime , një pjesë e të cilave
janë paisur edhe me përgjigjet.
AUTORI
Bejo DUKA
1
PJESA I
HYRJE NE ANALIZEN NUMERIKE
KAPITULLI I
VEPRIMET BAZË MATEMATIKE
Operacionet bazë të modelimit numerik të proceseve të ndryshme fizike janë tre
operacione numerike : diferencimi (derivimi) numerik, integrimi (kuadratura) numerik dhe
gjetja e rrënjëve të një funksioni. Ne do ti shqyrtojmë ato pas një hyrje të shkurtër mbi
saktësinë e paraqitjes dhe manipulimit të numrave në kompjuter, ku siç dihet çdo gjë kryhet
nëpërmjet numrave.
I-1 Gabimet përafrimit të numrave
Çdo algoritëm për zgjidhjen numerike të problemeve të ndryshëm, në ordinator sillet në
veprime arithmetike me numrat.
Në ordinatorët e sotëm përdoren numrat e paraqitur në sisteme të ndryshme numurimi si
psh sistemet me baze 2,8,16. Sistemi i zakonshem me bazë 10 përdoret kryesisht për
regjistrimin e informacionit dhe shfaqjen e rezultateve. Sistemi i numurimit me bazë 2
përdoret për rujtjen e numrave dhe operacionet me ta në njësitë e kujteses së kompjuterave
sepse paraqitja e numrave nëpërmjet zeros dhe njëshit është i përshtatëshëm në qarqet
elektronikë që funksionojnë me llogjikën “po” dhe “jo” ose “poshtë” dhe “lart”, që
përfaqëson edhe njësinë e matjes së kujtesës 1 bit .
Psh numri që në sistemin me bazë 10 është 9 , në sistemin me bazë 2 është 1 23
+ 0 22 +
0 21
+ 1 20 ose shkurt ai paraqitet me shifrat 0 dhe 1 të sistemit me bazë dy në formën 1001 ,
pra shkruhen shifrat para dyshave duke filluar nga dyshi në fuqinë më të lartë. Me këtë
llogjikë mund të paraqesim çdo numër të sistemit me bazë 10, psh:
17 paraqitet në sistemin me bazë 2 në formën : 10001
184,624 paraqitet në sistemin me bazë 2 në formën : 10111000,10111111
Pra, shifra e parë i takon termit me fuqi më të lartë të 2 dhe shifrat mbas presjes i takojnë
fuqive negative të 2 , ashtu sikurse në sistemin e numurimit me bazë 10 ku shifra e parë i
takon fuqisë më të lartë të 10 ndërsa shifrat mbas presjes i takojnë fuqive negative të 10:
37845,87 = 3 104 + 7 10
3 + 8 10
2 + 4 10
1 + 5 10
0 + 8 10
-1 + 7 10
-2
Në përgjithësi një numër çfardo real X, në sistemin e numërimit me bazë b , paraqitet në
trajtën:
X = ± ( a1be-1
+ a2 be-2
+ ... an be-n
+ ...) , (1-1)
ku e është fuqia më e lartë që i takon shifrës që do ishtë e para a1, psh në shembujt e mësipërm
tek numri 17 (në paraqitjen me bazë b=2) e=5 ose tek numri 184,628 e=8 . Shpesh në
ordinatorë numrat realë paraqiten në trajtën e “ pikës- notuese” (“floating-point”) , dmth :
X = (sign X) (0,a1a2 .... at)b be (1-2)
ku sign X është shenja e numrit X , ai (i=1,2..t) janë shifrat në sistemin e numërimit me bazë
b , 0 ai b-1 dhe a1 0 .
2
Pjesa fraksionale 0,a1a2 ....at quhet mantisë e numrit X , ndërsa e quhet eksponent ose
karakteristikë e numrit X dhe si rregull e është brenda kufinjve të plotë m dhe M që lejon
kapaciteti i ordinatorit :
m e M ,
ku në përgjithësi m = -M ose m = -M ± 1 (psh në ëorkstation-in Vax në single precision m = -
36 , M = 37) .
Mantisa e paraqitur në ordinator përmban një numër të caktuar shifrash që varen nga
ordinatori dhe çdo numër që e ka mantisën më të gjatë shkurtohet sipas rregullave të caktuara.
Në serinë 300 dhe 4300 të makinave të IBM në single-precision shënja e numrit është një
shifër binare (0 ose 1) pra zë një bit , ndërsa eksponenti jepet në sistemin e numërimit me bazë
16 dhe zë 7 bit ndërsa mantisa jepet në sistemin e numërimit me bazë 2 dhe zë 24 bit .
Meqënëse 24 shufrave binare u korespondjnë 6 deri në 7 shifra dhjetore, ne mund të themi që
numri në këto kompjutera numri ka të paktën 6 shifra të sakta kur paraqitet në “floating-
point”. Ndërsa eksponenti(karakteristika) me 7 shifra binare paraqet eksponentë nga 0 deri në
27-1 = 127 . Por, duke përdorur eksponentë vetëm pozitivë nuk mund të paraqesim me të
njëjtën saktësi numrat e vegjël, prandaj karakteristikës së çdo numri i hiqet 64 dhe intervali i
eksponentëve bëhet nga -64 deri në +63. Le të shohim psh një numër makine:
0 1000010 101100110000010000000000
Bit-i i parë majtas është 0 që tregon se numri është pozitiv. 7 bit-e që pasojë 1000010, janë
ekuivalent me një numër decimal:
1·26 + 0·2
5 + 0·2
4 + 0·2
3 + 0·2
2 + 1·2
1 + 0·2
0 = 66
që paraqesin karakteristikën 1666-64
. Ndërsa 24 bit-et e fundit tregojnë që mantisa është:
1· 2-1
+ 0·2-3
+ 1·2-4
+ 1· 2-7
+ 0·2-8
+ 1·2-14
Pra ky numër makine paraqet saktësisht numrin decimal:
[1· 2-1
+ 0·2-3
+ 1·2-4
+ 1· 2-7
+ 0·2-8
+ 1·2-14
]·1666-64
= 179.015625
Por, numri makënës më i vogël më i afërt me të është:
= 179.01560974112109375
dhe numri makinës më i madh më i afërt me të është
= 179.0156402587890625
Kjo dmth që numri makinës që morëm në fillim duhet të paraqesë jo vetëm numrin :
179.015625 , por edhe çdo numër real që ndodhet midis dy numrave më të afërt të makinës.
Për të siguruar unicitetin e paraqitjes së numrave dhe për ta patur ata të gjithë saktësinë e
vlefëshme për këtë sistem paraqitjeje bëhet një marrëveshje normalizimi në paraqitjen e
mantisës e tillë : të paktën njera nga 4 shifrat e para majtas e mantisës së numrit makinës të
jetë 1 . Pra numri më i vogël pozitiv i makinës është
= 16-65
10-78
,
dhe numri më i madh është:
1663
1076
.
Në intervalin midis këtyre dy numrave makina përdor një numër të fundëm numrash makine
të formës:
0 1000010 101100110000001111111111
0 1000010 101100110000010000000001
0 0000000 000100000000000000000000
0 1111111 111111111111111111111111
3
0.a1 a2 ... a7 16e1 e2 .. e7
për të paraqitur të gjithë numrat realë.
Numrat që nga llogaritjet dalin me vlerë absolute më të vogël se 16-65
quhen underfloë dhe
zakonisht konsiderohen si zero. ndërsa numrat më të mëdhenj se 1663
quhen overfloë dhe
shkaktojnë ndaljen e kompjuterit, prandaj duhet patur kujdes ne algoritma që përdorin numra
të mëdhenj. Në mikrokomjuterat e IBM në double precision numrat e makinës e kanë
mantisën me 52 bit me marveshjen që shifra e parë majtas të jetë 1 (që zakonisht nuk ruhet në
kujtesë, pra ruhen vetëm shifrat mbas 1) dhe eksponentin me 11 bit duke i zbritur 1023 për të
paraqitur qoftë numrat e mëdhenj qoftë ata të vegjël. Kjo mënyrë jep precizion deri në 15 - 16
shifra dhjetore në intervalin (range) numerik të makinës:
10-308
- 10308
.
Një numër real pozitiv mund të normalizohet në sistemin decimal në formë:
y = 0.d1 d2 ... dk dk+1 dk+2 ... 10n .
Nëqoftëse y është brenda range-it numerik të makinës, forma “floating point” e tij që do ta
shënojmë fl(y) merret duke përfunduar mantisën e y deri në k shifra decimale . Ka dy mënyra
për ta kryer këtë përfundim. Një metodë që quhet “chopping” eshtë thjeshtë të fshihen shifrat
dk+1 dk+2 ...dhe të merret :
fl(y)= 0.d1 d2 ... dk 10n
Një metodë tjetër është ajo që i referohen si rumbullakim (“rounding”) i numrit, pra nëse dk+1
5 atëhere i shtohet 1 shifrës dk për të marë fl(y) dhe nëse dk+1 < 5 atëhere thjeshtë fshihen
shifrat pas dk .
Psh. numri ka një paraqitje decimale të pafundme në formën = 3.14159265...
I shkruar në formë të normalizuar decimale është: = 0.314159265... 101 .
Forma “floating-point” me 5 shifra e duke përdorur metodën “chopping” është
fl ( ) = 0.31415 101 =3.1415,
ndërsa duke përdorur metodën e rumbullakimit është
fl ( ) = 0.31416 101 =3.1416,
Gabimet që rezultojnë nga zëvëndësimi i numrit me formën e tij “floating-point” quhen
gabimet e rrumbullakimit (round-off error) . Këto gabime janë të pavarura nga gabimet e
algoritmit që përdoret për zgjidhjen e një problemi numerikisht ose nga gabimet e
parametrave që janë matur në eksperiment dhe futen si të dhëna fillestare në algoritëm.
Në vlerësimin e tyre përdoret kuptimi i gabimit absolut dhe relativ të një numri të përafërt:
Kur p’ është numri i përafërt i p , gabimi absolut është | p - p’ | dhe gabimi relativ është :
| - |
| |
p p
p
', kur p 0 .
Psh,
a) Nëqoftë se p=0.3000 101 dhe p’ = 0.3100 10
1 , gabimi absolut është 0.1 dhe gabimi
relativ eshtë 0.333... 10-1
.
b) Nëqoftë se p=0.3000 10-3
dhe p’ = 0.3100 10-3
, gabimi absolut është 0.1 10-4
dhe
gabimi relativ eshtë 0.333... 10-1
.
c) Nëqoftë se p=0.3000 104 dhe p’ = 0.3100 10
4 , gabimi absolut është 0.1 10
4 dhe
gabimi relativ eshtë 0.333... 10-1
.
Në këto shembuj duket se gabimi relativ i njejtë për disa raste gabimesh absolute të ndryshme.
Pra, si masë e saktësisë të parqitjes së numrave është mirë të përdoret gabimi relativ. Gjatë
paraqitjes së numrave me pikë-notuese psh në sistemin decimal me metodën “chopping” deri
në shifrën k-të , gabimi relativ është:
4
y fl y
y
d d d d d d d
d d
d d
d d
k k
n
k
n
n
k k k( ) . ... ... . ...
. ...
. ...
. ...
0 10 0 10
0 10
0
0101 2 1 1 2
1 2
1 2
1 2
,
meqë d1 1 , vlera më e vogël e emëruesit është 0.1, prandaj
y fl y
y
k k( )
.
1
0110 10 1
Në mënyrë të ngjashme merret kufiri i gabimit relativ kur përdoret përafrimi i numrit me anë
të rrumbullakimit të tij deri në k shifra:
y fl y
y
k( ).05 10 1
Pra, kufiri i gabimit relativ nuk varet nga numri që paraqitet. Kjo ndodh për arsye sepse forma
eksponenciale e karakteristikës përdor të njëjtin numër decimal të makinës për të paraqitur
çdo numër të intervaleve [0.1,1] , [1,10] dhe [10,100]. Në fakt , brenda kufijve të makinës,
numri i numrave decimalë të makinës në intervalin [10n,10
n+1 ] është konstanat për çdo n
(numër i plotë).
Si rezultat i pasaktësisë së paraqitjes së numrave, arithmetika e kryer në kompjuter nuk
është e saktë. Gjatë arithmetikës në kompjuter manipulohet me shifrat binare nëpërmjet shiftit
(zhvendosjes) ose operacioneve llogjike. Meqënëse kjo mekanikë e operimeve nuk është
esenciale për vlerësimin e gabimeve, ne duhet ta vlerësojmë vetë përfërsinë e arithmetikës së
kompjuterit. Le ti parqesim veprimet arithmetike me simbolet : , , , .
Ne do supozojmë se arithmetika e kompjuterit jepet nga barazimet :
x y = fl( fl(x) + fl(y) ) , x y = fl( fl(x) fl(y)) .
x y = fl( fl(x) - fl(y) ) , x y = fl( fl(x) / fl(y)).
Kjo arithmetikë i korespondon arithmetikës së saktë me paraqitjet e numrave x dhe y me pikë
notuese dhe pastaj rezultati i tyre paraqitet me pikë notuese me numër të fundëm shifrash. Psh,
numrat x =1/3 dhe y = 5/7 do paraqiten me ndërprerjen deri në 5 shifra :
fl(x)=0.33333 100 dhe fl(y)=0.71428 10
0 për llogaritjet arithmetike që janë paraqitur në
tabelën 1.1.
Tabela 1.1
veprimi
arithmetik
rezultati vlera e saktë gabimi absolut gabimi relativ
x y 0.10476 101 22/21 0.190 10
-4 0.182 10
-4
x y 0.38095 100 8/21 0.238 10
-5 0.625 10
-5
x y 0.23809 100 5/21 0.524 10
-5 0.220 10
-4
x y 0.21428 101 15/7 0.571 10
-4 0.267 10
-4
Në këtë shembull gabimi relativ maksimal është 0.267 10-4
, pra arithmetika e kompjuterit
jep rezultat të saktë deri në 5 shifra. Nëqoftëse do kishim tre numra të tjerë :
u = 0.714251 , v = 98765.9 dhe ë = 0.111111 10-4
, pra që fl(u)= 0.714251 100 ,
fl(v)= 0.98765 105 dhe fl(ë)= 0.11111 10
-4 , atëhere do kishim rezultatet e paraqitura në
tabelën 1.2.
5
Tabela 1.2
veprimi
arithmetik
rezultati vlera e saktë gabimi absolut gabimi relativ
y u 0.30000 10-4
0.34714 10-4
0.471 10-5
0.136
(y u) ë 0.27000 101 0.31243 10
1 0.424 0.136
(y u) v 0.29629 101 0.34285 10
1 0.465 0.136
u v 0.98765 105 0.98766 10
5 0.161 10
1 0.163 10
-4
ku duket se y u ka një gabim të vogël absolut por ka gabim të madh relativ, ndërsa
pjestimi me një numër të vogël ë që pason këtë veprim ose shumëzimi me një numrër të
madh v e rrit gabimin absolut pa e ndryshuar gabimin relativ. Pra mbledhja e numrave të
vegjël ose të mëdhenj prodhon gabim të madh absolut por jo gabim të madh relativ.
Një nga rastet që ndeshet rëndom në llogaritjet që prodhojnë gabim është gjatë fshirjes së
shifrave sinjifikative kur zbriten numra thuajse të barabartë. Supozojmë se dy numra të afërt x
dhe y , kanë paraqitjen me k shifra:
fl(x)=0.d1 d2 ...dp p+1 p+2 ... k 10n ,
fl(x)=0.d1 d2 ...dp p+1 p+2 ... k 10n .
Forma me pikë notuese e (x - y ) është :
fl(fl(x)-fl(y))=0. p+1 p+2 ... k 10n-p
,
ku 0.d1 p+1 p+2 ... k = 0. p+1 p+2 ... k - 0. p+1 p+2 ... k .
Paraqitja me pikë notuese e (x - y ) ka vetëm k - p shifra sinjifikative, por në shumicën e
pajisjeve llogaritëse (x - y ) do të shënohet me k shifra duke u dhënë vlerë zero ose të rastit p
shifrave të fundit. Në llogaritjet e mëtejëshme që përdorin (x - y ) mbetet problemi që ka
vetëm k - p shifra sinjifikative, kështu që në një varg llogaritjesh nuk mund të pritet të kemi
saktësi më të madhe.
Gjithashtu pjestimi me numra të vegjël (ose shumëzimi me numra të mëdhenj) e zmadhon
gabimin. Psh, supozojmë që një numër z e ka paraqitjen me numër të fundëm shifrash me një
gabim , pra ne përdorim në llogaritjet e mëtejshme numrin z + . Pjestimi i tij me një 0
rezulton:
z / fl((z+ ) / (fl( )) .
Po të jetë = 10-n
, ku n > 0 , atëhere :
z / = z 10n dhe fl((z+ ) / (fl( )) = (z + ) 10
n .
Kështu që gabimi absolut në këtë përafrim z + 10n është i brarabartë më gabimin absolut
fillestar i shumëzuar me faktorin 10n .
Kjo humbje e saktësisë si rezultat i rrumbullakimit të numrave mund të mënjanohet duke i
renditur me kujdes operacionet në mënyrë që operacionet (siç ishte mbledhja e numrave të
afërt ose pjestimi me numra të vegjël) që mbartin gabime mundësisht të shmangen ose të jenë
në fund të vargut të operacioneve.
Ushtrime:
1. Të gjendet intervali më i gjerë në të cilin përafrimi p’ i numrit p duhet të ndodhet në mënyrë
që gabimi relativ të jetë deri në 10-4
nëqoftëse p është:
a) b) e c) 2 d) 73
2. Supozojmë se p’ duhet të përafrojë p me gabim relativ deri në 10-3
. Gjeni intervalin në të
cilin p’ duhet të ndodhet në qoftëse p është:
6
a) 150 b) 900 c) 1500 d) 90 .
3. Të llogaritet gabimi absolut dhe relativ në përafrimet që vijojnë të p me p’ :
a) p = , p’ = 22/7 b) p = , p’ =3.1416 c) p = e , p’ = 2.718
d) p= 2 , p’ =1.414 e) p = e10
, p’ =22000 e) p = 10 , p’ = 1400
g) p = 10 , p’ =39900
4. Të kryhen llogaritjet e mëposhtëme (I) ekzaktësisht, (II) duke përdorur arithmetikës me
ndërprerje deri në tre shifra , (III) duke përdorur arithmetikën e rumbullakosjes deri në në tre
shifra. Pastaj llogaritni gabimet relative për rastet (II) dhe (III).
a) 4/5 + 1/3 b) 4/5 · 1/3 c) (1/3 -3/11) + 3/20 d) (1/3 + 3/11) - 3/20
5. Tre termat e parë të serisë që përafron funksionin arctg janë : x - x3 /3 + x
5 /5 .
Të llogariten gabimet absolute dhe relative për përafrimet e mëposhtëme të kur përdoret
polinomi i mësipërm në vënd të arctg :
a) 4 [arctg(1/2) + arctg(1/3)] b) 16 arctg(1/5) - 4 arctg(1/239)
6. Numri e përcaktohet ndonjëherë si e =1
0nn !, ku n! = n(n-1)...2.1, n.q.s n 0
Llogaritni gabimin absolut dhe relativ në përafrimet e mëposhtëme të e :
a) e =1
0
5
nn !, b) e =
1
0
10
nn !
7. Të gjendet numri ekuivalent decimal i numrave të makinës me pikë notuese ( formati i
IBM):
a) 0 1000011 101010010011000000000000
b) 1 1000011 101010010011000000000000
c) 0 0111111 010001111000000000000000
d) 0 0111111 010001111000000000000001
8. Të gjenden numrat e makinës më të afërt më i vogël dhe më i madh në formë decimale për
numrat e dhënë në ushtrimin 7.
9. Supozojmë se fl(y) është përafrimi i y me rumbullakosje deri në k shifra.Tregoni që :
y fl y
y
k( ).05 10 1
10. Koeficientët binormalë janë:
Cm
k m kk
m !
!( )! ,
dhe numrat decimalë të makinës janë në formën :
0.d1 d2 d3 d4 10n , 1 d1 9 , 0 di 9 dhe -15 n 15.
Sa është vlera më e madhe e m për të cilën koeficentët binormalë Cm
3 mund të llogariten pa
shkaktuar overfloë në makinë.
Përgjigjet:
1. Intervalet më të gjerë janë:
a) (3.1412784, 3.1419068) b) (2.7180100, 2.7185536) c)(1.4140721, 1.4143549)
d) (1.9127398, 1.9131224).
3. Gabimet absolute janë:
a) 0.001264 , b) 7.346 10-6
, c) 2.818 10-4
, d) 2.136 10-4
, e) 2.647 101 ,
f) 1.454 101 g) 420 h) 3.343 10
3 ,
gabimet relative janë:
a) 4.025 10-4
, b) 2.338 10-6
, c) 1.037 10-4
, d) 1.510 10-4
, e) 1.202 10-3
,
7
f) 1.050 10-2
, g) 1.042 10-2
, h)9.213 10-3
5. a) përafrimi: 3.14557613, gabimi relativ: 3.983 10-3
, gabimi absolut : 1.268 10-3
b) përafrimi: 3.14162103, gabimi relativ: 2.838 10-5
, gabimi absolut : 9.032 10-6
.
7. a) 2707 , b) -2707 , c) 0.0174560546875 , d) 0.0174560584130
1.2 Diferencimi numerik
Supozojmë se njohim vlerat e një funksioni f(x) në një varg vlerash të baraslarguara të
argumentit x , të cilat janë:
fn = f(xn) , xn = n.h ,
ku n=0, 1, 2, 3, 4 .... dhe h është hapi midis pikave të këtij vargu.
Kërkojmë të llogaritim përafërsisht derivatin e funksionit në një pikë p.sh. f’(0) në varësi të
vlerave fn (fig.2.1).
Duke zbërthyer funksionin në serinë e Tejlorit
përreth vlerës f(0)=f0 :
f(x)=f0 +x.f’(0)+x2 /2 .f’’(0)+x
3 /6 .f’’’(0)+...
(2.1)
mund të shprehim vlerat e funksionit në pikat
afër x=0:
f 1=f(x= h)=f0 h.f’+h2 /2 .f’’ h
3 /6.f’’’+O(h
4)
(2.2a)
f 2=f(x= 2h)=f0 2h.f’+2h2 /2 .f’’ 4h
3 /3.f’’’
+O(h4) (2.2b)
Ku O(h4) tregon terma p.m.v të rendit h
4 e lart.
Mund të supozohet se funksioni f dhe derivatet e tij janë të rend madhësie siç ndodh
për shumicën e funksioneve të njohur në Fizikë. Duke zbritur f-1 nga f1 , gjejmë :
f’(0)= (f1 -f-1 )/2h - h2 f’’’ /6 + O(h
4) (2.3a)
e cila për h shumë të vogla bëhet:
f’(0) (f1 -f-1 )/2h (2.3b)
Kjo quhet formula e “3 pikave” . Ajo do të ishte e saktë (jo e përafruar) kur funksioni f do të
ishte një polinom i rendit II . Pra, në thelb në formulën (2.3b) është supozuar se funksioni f
është interpeluar (përafruar) me një polinom të rendit II në intervalin (-h,+h).
Ndërsa në të ashtuquajturat formulat e dy pikave:
f’(0) (f1 -f0 )/2h + O(h) (2.4a)
f’(0) (f1 -f0 )/2h + O(h) (2.4b)
janë bazuar në supozimin që funksioni f është përafruar me një funksion linear (polinom i
gradës I) në intervalin : x= h
Barazimi (2.3b) është një rezultat i natyrëshëm që na kujton formulat që përdoren për
përcaktimin e delivateve në llogarijet e zakonëshme matematike. Termi i gabimit (i rendit h2 )
, në parim mund të bëhet sa të duam i vogël duke zvogëluar vlerën e hapit h.
Shembull 1. Le ta zemë se f(x)=sin(x), derivati i të cilit është i njohur f’(x)=cos(x) dhe pë x=1
, ai merr vlerën f’(x=1)=0.540302. Programi i mëposhtëm në Fortarn (chap1a.for) ose në
Basic(chap1a.bas) e llogarit këtë derivat sipas formulës (2.3b), ku vlera e h është si input në
program si dhe gabimin që bëhet nga llogaritja numerike.
x
f(x)
x=-2h x=-h x=0 x=h x=2h
f-2 f-1 f0 f1 f2
Fig. 2.1
8
Prgrami chap1a.for
c chap1a.for
X=1.
EXACT=COS(X)
10 PRINT *, 'FUT VLEREN E H (OSE 0 PER TA NDALUR)'
READ *, H
IF (H .LE. 0) STOP
FPRIME=(SIN(X+H)-SIN(X-H))/(2*H)
DIFF=EXACT-FPRIME
PRINT 20,H,DIFF
20 FORMAT (' H=',E15.8,5X,'ERROR=',E15.8)
GOTO 10
END
Prgrami chap1a.bas
10 Rem programi chap1a.bas
20 X=1.
30 EXACT=COS(X)
40 PRINT “FUT VLEREN E H(OSE 0 PER TA NDALUR)”
50 INPUT H
60 IF H < 0 OR H=0 THEN 110
70 FPRIME=(SIN(X+H)-SIN(X-H))/(2*H)
80 DIFF=EXACT-FPRIME
90 PRINT H,DIFF
100 GOTO 10
110 STOP
120 END
Programi mund të përdoret edhe për formulat (2.4a dhe b) të dy pikave duke ndryshuar në
program vetëm reshtin ky bëhet derivati i funksionit. Duke ekzekutuar programin për vlera të
ndryshme të h do të vini re se rezultati përmirësohet duke zvogëluar h , por deri në një farë
pike pas të cilës rezultati keqësohet. Kjo ndodh për arësye se arithmetika në kompjuter kryhet
vetëm me një precizion të caktuar (5-6 shifra dhjetore për variablat BASIC me single
precision), kështu që kur bëhet diferenca në numurues në formulat (2.3 ose 2.4) nëse h është
shumë i vogël dhe
f1 ndryshon shumë pak nga f2 atëhere gabimet e “rumbullakimit” nga precizioni i makinës
dalin shumë të mëdha. P.sh., në qoftë se h=10-6
, atëhere :
f1=sin(1.000001)=0.841472; f-1 =sin(0.999999)=0.841470, dhe f1-f-1 =0.000002 dhe formula
(2.3b) jep f’ 1.000000 , i cili është një rezultat shumë i gabuar. Por nëse arithmetika e
kompjuterit ka precizion deri në 10 shifra dhjetore atëhere rezultati do dilte f’ 0.540300 që
është shumë afër vlerës ekzakte. Pra diferencimi numerik është një proces jostabël në thelb (jo
i përcaktuar mirë në limitin kur h 0) dhe duhet kryer me kujdes në varësi të precizionit të
kompjuterit.
Mund të përmirësohet më tej formula e tre pikave (2.3b) duke e lidhur f’ edhe me pika të
tjera të vargut të larguara më tej nga x=0. P.sh. , duke përdorur ekuacionin (2.2) mund të
nxirret lehtë formula e “5-pikave”:
f’ 1/12 h .[f-2 -8f-1 +8f1 -f2]+O(h4) (2.5)
Llogaritja e derivateve me këtë formulë do të thotë që funksioni f është përafruar me një
polinom të gradës së 4 në intervalin e 5-pikave [-2h,2h] . Megjithëse kërkon më shumë
llogaritje kjo formulë jep vlera më të sakta se sa formula (2.3b), ajo arin saktësinë e formulës
9
(2.3b) për një hap 10 herë më të madh. Kjo është shumë e rëndësishme kur duhen të ruhen në
kompjuter shumë vlera të f , një saktësi më e madhe lejon një varg më të rralluar për tu ruajtur
në kujtesën e kompjuterit , pra e kursen këtë kujtesë. Megjithatë , meqënë formulën (2.5) ka
më shumë operacione matematike sesa (2.3b) dhe ka shuarje të konsiderueshme midis
termave (ato kanë edhe koeficientë pozitivë edhe negativë) do të lindin problemet e
precizionit për vlera të vogla të h më shpejt (pra me h më të mëdha) sesa në formulën (2.3b) .
Mund të gjenden formulat për derivate të rendeve më të lartë duke marë një përafrim të
përshtatëshëm në barazimin (2.2). Për shëmbull, është lehtë të kuptohet që :
f1 - 2f0 + f -1 = h2 f’’ + O(h
4) , (2.6)
pra një përafrim i mirë i derivatit të rendit të dytë me saktësi të rendit h2 , është:
f’’ (f1 - 2f0 + f -1 )/h2
(2.7)
Formulat me diferenca për derivatet e rendeve të ndryshme për rastet me 4 dhe 5-pika jepen
në tabelën 2.1
Tabela 2.1
----------------------------------------------------------------------------------------------------
4-pika 5-pika
----------------------------------------------------------------------------------------------------
h f’ 1/6 .(-2f 1 -3f0 +6f 1 - f 2 ) 1/12 (f-2 -8f-1 +8f1 -f2)
h2
f’’ f-1 -2f0 +f1 1/12 (-f-2 + 16f-1 -30f0 +16f1 -f2 )
h3
f’’’ (-f 1 + 3f0 -3f +f 2 ) 1/2 (-f-2 +2f-1 -2f1 +f2)
h4
f(IV)
..... f-2 - 4f-1 + 6f0 -4f1 +f2
----------------------------------------------------------------------------------------------------
Ushtrimi 2.1 Duke përdorur një funksion çfardo që ja dini derivatin analitikisht, të studiohet
saktësia e formulave të tabelës 1.1 , për vlera të ndryshme të h.
1.3 Integrimi numerik
Me kuadraturë ose integrim numerik ne kuptojmë llogaritjen e integralit të një funksioni
të përcaktuar midis dy kufijve a dhe b ku a<b. E ndajmë intervalin (a,b) në një numër çift N
intervalesh të vegjël të barabartë më madhësi h , d.m.th. :
N= (b-a)/h
Atëhere integrali nga a në b mund të ndahet në N/2 integrale në formën:
f x dx f x dx f x dx f x dxa
b
a
a h
a h
a h
b ha
b
( ) ( ) ( ) ..... ( )
2
2
4
2
(3.1)
Pra , mjafton që të gjemë një formulë për integrimin në një interval nga -h në +h.
Ideja bazë e të gjitha formulave të kuadraturës që do shohim është përafrimi i funksionit f
në intervalin (-h,+h) me një funksion që mund të integrohet me saktësi, d.m.th që integrohet
analitikisht. P.sh. , Përafrimi më i thjeshtë është që në intervalet [-h,0] dhe [0,+h] funksioni të
konsiderohet linear në secilin interval veçmas (shih figurën 2.1). Gabimi që bëhet gjatë këtij
përafrimi (interpolimi) është i rendit h2f’’ , kështu që integrali përafrohet me :
f x dxh
f f f O hh
h
( ) ( ) ( ),2
21 0 1
3 (3.2)
e cila njihet si regulli i njohur i trapezit.
Një përafrim më i mirë mund të bëhet duke kuptuar që seria e Tejlorit (1-1) mund të na
japë interpolime më të mira të f . Duke përdorur formulat e diferencave (2.3b) dhe (2.7) për f’
dhe f’’ respektivisht, për |x|<h kemi:
10
f x ff f
h
f f f
hx O x( ) ( )0
1 1 1 0 1
2
2 3
2
2
2 , (3.3)
dhe mund të integrohet analitikisht në intervalin (-h,+h) duke marë:
f x dxh
f f f O hh
h
( ) ( ) ( )3
41 0 1
5 . (3.4)
Ky quhet rregulli i Simpsonit, i cili është dy rende më i saktë se sa formula trapezoidale
(3.2). Gabimi është dy rende më i vogël se sa çmund të pritej nga formula (3.3) për arësye se
termi x3 nuk kontribuon në integral. Duke kombinuar këtë formulë me barazimin (3.1) ,
gjejmë:
f x dxh
f a f a h f a h f a h f b h f bh
h
( ) [ ( ) ( ) ( ) ( ) ... ( ) ( )]3
4 2 2 4 3 4 (3.5)
Si shembull , në programin chap1b llogaritet integrali :
e dx ex
0
1
1 1718282. ,
duke përdorur rregullin e Simpsonit . Në program vlera e N=1/h është si variabël input
c chap1b.for
FUNC(X)=EXP(X) |funksioni që do integrohet
EXACT=EXP(1.)-1.
30 PRINT *,'ENTER N EVEN (.LT. 2 TO STOP)'
READ *, N
IF (N .LT. 2) STOP
IF (MOD(N,2) .NE. 0) N=N+1
H=1./N
SUM=FUNC(0.) |Kontributi prej x=0
FAC=2 |Faktori i rregullit të Simpsonit
DO 10 I=1,N-1 |Cikli për shumimin
IF (FAC .EQ. 2.) THEN |Ndryshimi i faktorit
FAC=4
ELSE
FAC=2.
END IF
X=I*H |Vlera e i-të e x
SUM=SUM+FAC*FUNC(X) |Kontributi i termit të i-të në integral
10 CONTINUE
SUM=SUM+FUNC(1.) |Kontributi prej x=1
XINT=SUM*H/3.
DIFF=EXACT-XINT
PRINT 20,N,DIFF
20 FORMAT (5X,'N=',I5,5X,'ERROR=',E15.8)
GOTO 30 |Rifillon me një vlerë të re të N
END
1 rem Programi chap1b.bas
11
10 EXACT=EXP(1.)-1.
20 PRINT “Jep nje vlere cift te N”
30 input N
40 if N<2 then 170
50 H=1./N
60 SUM=exp(0)
70 FAC=2
80 for J=1 to N-1
90 if FAC =2 THEN FAC=4 ELSE FAC=2
100 X=J*H
110 SUM=SUM+FAC*exp(X)
120 next j
130 SUM=SUM+exp(1.)
140 XINT=SUM*H/3.
150 DIFF=EXACT-XINT
160 PRINT “N=“;N,”H=“;H,”ERROR=“;DIFF
165 goto 20
170 end
Në se zëvëndësojmë rregullin e Simpsonit me atë të trapezit në program , do të duket se
rezultatet për të njëjtën vlerë të h janë më pak të sakta . Sa më i vogël të jetë intervali h (sa më
i madh N) aq mq i saktë është rezultati; gabimet e rumbullakimit (si pasojë e precizionit të
kompjuterit) nuk ndikojnë pasi vlerat e funksionit f hyjnë në formulën e shumimit me të
njëjtën shenjë, në të kundërt të derivimit numerik.
Në integrimin numerik ka rëndësi të dihet se sa i vogël duhet të jetë h në mënyrë që
intëgrali të llogaritet me një saktësi të caktuar. Megjithëse është e mundur që nxirren kufijtë e
gabimeve me saktësi , gjëja më e thjeshtë është praktika në kompjuter duke ekzekutuar
programin me h gjithnjë e më të vogël dhe duke parë ndryshimet e rezultatit.
Duke përdorur serinë Tejlor (2.1) me më shumë terma për të interpoluar funksionin f dhe
duke marë përafrime më të mira për derivatet, mund të merren formula kuadrature të rendeve
më të larta. Përgjithësimet e rregullit të Simpsonit duke përdorur polinome të rendit të tretë
dhe të rendit të katërt janë:
f x dxh
f f f f O hx
x
( ) ( ) ( )
0
33
83 30 1 2 3
5 (3.6a)
f x dxh
f f f f f O hx
x
( ) ( ) ( )
0
32
457 32 12 32 70 1 2 3 4
7 (3.6b)
që quhen edhe regulli me 3/8 i Simpsonit dhe rregulli i Bode -s.
Duke zbatuar programin e mësipërm me tre rregulla: regulli i trapezit (3.2), rregulli i
Simpsonit (3.6a) dhe regulli i Bode-s (3.6b) do të shikoni që rregulli i fundit jep rezultate më
të sakta edhe për numur të vogël të N (i cili për këtë rregull duhet të jetë shumëfish i 4 ) p.sh.
4 . Mund të mendohej se duke marë interpelime me polinome të rendeve akoma më të larta do
të ishte më e përshtatëshme. Por polinomet e rendeve më të larta tentojnë të oshilojnë dhe
çojnë në interpolim të pasaktë. Nga ana tjetër koeficientët e vlerave të f në pikat e ndryshme të
rjetës mund të hyjnë me shenja pozitive ose negative në formulat e rendeve më të lartë duke
krijuar edhe problemin e rumbullakimit nga precizioni i kompjuterit. Kështu që është më e
sigurtë të përdoren formula të rendeve më të ulta duke bërë h sa më të vogël. Formulat e
12
kuadraturës të përshtatëshme për rende më të larta mund të nxirren kur heqim dorë nga
kërkesa që intervali të ndahet në segmente të barabartë.
Ushtrimi 3.1
Duke përdorur ndonjë funksion integralin e të cilit mund ta llogaritni analitikisht, të studiohet
saktësia e formulave të ndryshme të kuadraturës që janë gjetur më lart për vlera të ndryshme të
h.
Duhet patur kujdes në përdorimin e formulave të kuadraturës në dy aspekte:
Së pari, në integralet që kanë kufirin e sipërm shumë të madh është mirë që të ndryshohet
variabli. P.sh. në integralin:
dx x g x
b
. ( )2
1
,
ku g(x) është konstant për x të mëdha, formula e Simpsonit do jepte një shumë që do të
konvergjonte shumë ngadalë kur b bëhet e madhe dhe h të ishte e fiksuar (do të kërkonte një
kohë të gjatë për kompjuterin). Por , po të ndryshojmë variablin me t=x-1
, integrali sillet:
b
g t dt1
1
1( ) ,
i cili mund të vlerësohet nga çdo formulë kuadrature.
Se dyti, pikat singulare në integrim (pika ku funksioni nën integral shkon në infinit ose ka
vlerë të papërcaktur) mund të manipulohen përsëri me anë të zëvëndësimit të variablave. P.sh.
integrali:
dx x g x.( ) ( )/1 2 1 2
0
1
,
ka një singularitet të integrueshëm në x=1 (nëse funksioni g(x) është i rregullt në këtë pikë) i
cili meqë f(x=1)= do të jipte në rezultat nga formulat e kuadraturës. Një rezultat i saktë
mund të merret duke zëvëndësuar variablin t=(1-x)1/2
. Pas këtij zëvëndësimi merret:
2 2 12 1 2
0
1
2dt t g t.( ) ( )/ ,
i cili mund të përafrohet pa shqetësim.
Singularitetet e integrueshme mund të kalohen duke nxjerrë formula kuadrature të
përshtatëshme për to. Supozojmë se duam të llogaritim integralin:
f x dx f x dx f x dx
h
h
( ). ( ). ( ).00
1 1
,
ku f(x) sillet si Cx-1/2
afër x=0, ku C është konstante. Integrali nga h në 1 është i rregullt , pra
llogaritet lehtë nga kuadratura, ndërsa integrali nga 0 në h mund të përafrohet me 2Ch1/2
=2h.f(h).
Ushtrimi 3.2 Të shkruhet programi për llogaritjen e integralit:
t t dt2 3 1 3
0
1
1 21 2 3/ / /( ) / ,
duke përdorur njërën nga formulat e kuadraturës që janë dhënë më lart dhe të studiohet
saktësia e saj për vlera të ndryshme të h (Udhëzim: të ndahet intervali i integrimit në dy pjesë
dhe të bëhet ndryshimi i variavlave i ndryshëm për dy intervalet e ndryshme me qëllim për të
mënjanuar singularitetet).
13
1.4 Gjetja e rrënjëve
Operacioni i tretë elementar që përdoret zakonisht është gjetja e rrënjëve të një funksioni f(x) i
cili është i njohur për çdo x. Një metodë e sigurtë është kur njihet përafërsisht lokalizimi i një
rrëje psh x0 . Në këtë rast zgjidhet një vlerë çfardo e x që të jetë më e vogël se rrënja x0 dhe
pastaj rritet kjo vlerë me hapa pozitivë të vegjël duke përsëritur procesin me përgjysmim hapi
çdo herë që funksioni f ndryshon shenjë. Vlera e x e gjeneruar në këtë mënyrë natyrisht
konvergjon tek x0 , kështuqë kërkimi i rrënjës mund të ndalet kur hapi bëhet më i vogël se sa
një tolerancë e kërkuar. Programi Chap1c gjen rrënjën pozitive të funksionit f(x)=x2 -5 , për të
cilin njihet rrënja e saktë x0=51/2
=2.236068, me një tolerancë të rendit 10-6
duke përdorur x=1
si vlerë fillestare të hamëndur dhe një hap fillestar 0.5:
Chap1c.for
FUNC(X)=X*X-5. |fuksioni rrënja e të cilit kërkohet
TOLX=1.E-06 |toleranca për kërkimin e rrënjës
X=1. |rrënja e hamëndur
FOLD=FUNC(X) |vlera fillestare e funksionit
DX=.5 |hapi fillestar
ITER=0 |fillimi i iteracioneve
10 CONTINUE
ITER=ITER+1 |rritja e numrit të iteracionit
X=X+DX |vlera tjetër e x
PRINT *,ITER,X,SQRT(5.)-X |shtyp vlerat korrente
IF ((FOLD*FUNC(X)) .LT. 0) THEN
X=X-DX |nëse ndryshon shenja kthehet mbrapa dhe
DX=DX/2 | përgjysmohet hapi
END IF
IF (ABS(DX) .GT. TOLX) GOTO 10
STOP
END
Chap1c.bas
10 FUNC(X)=X*X-5.
20 TOLX=1.E-06
30 X=1.
40 FOLD=FUNC(X)
50 DX=.5
60 ITER=0
70 ITER=ITER+1
80 X=X+DX
90 PRINT ITER,X,SQR(5.)-X
100 IF FOLD*FUNC(X)>0 goto 130
110 X=X-DX
120 DX=DX/2
130 IF ABS(DX) > TOLX GOTO 70
140 END
14
Me hapin e zgjedhur përgjigja (përfundimi i programit) arrihet pas 33 iteracionesh duhet patur
kujdes kur përdoret kjo metodë sepse kur përdoret një hap fillestar shumë i madh të
kapërxehet rrënja e kërkuar dhe të gjënden rrënjë tjetër nëse funksioni f ka disa rrënjë.
Ushtrimi 4.1
Ekzekutoni programin e mësipërm për vlera të ndryshme të tolerancës, vlerës fillestare të
hamendur, dhe hapit fillestar. Vini re që ndonjë herë ju mund të gjeni një rrënjë negative
(-51/2
). Vini re çfarë ndodh nëse vlera e hamendur fillestare është -3 dhe hapi fillestar është 6?
Një algoritëm tjetër më efektiv, i ashtuquajtur Njuton-Raphson, përdoret në rastin kur ne
njohim edhe derivatin e f për çdo x. Kjo metodë gjeneron një sekuencë vlerash xi që
konvergjojnë tek x0 me supozimin që f është lokalisht linear afër x0 (shih figurën 4.1).
Figura 4.1
Pra,:
xi+1
=xi - f(x
i)/f’(x
i). (4.1)
Me këtë metodë arrihet një konvergjencë e
shpejtë (pas 5 iteracionesh në shembullin e
mësipërm). Ky është një algoritëm që
zakonisht përoret në kompjutera për vlerësimin
e rrënjës katrore .
Një metodë tjetër është ajo e sekantes. Nëse
derivati në ekuacionin (4.1) shprehet nëpërmjet
diferencave të fundme(2.4b):
f’(xi) [f(x
i)-f(x
i-1)]/(x
i-x
i-1), dhe atëhere merret
një formulë rekurence që lidh xi+1
me xi dhe
xi-1
(shih fig. 4.12):
xi+1
= xi -f(x
i).(x
i-x
i-1 )/[f(x
i)-f(x
i-1)] (4.2)
Cdo dy vlera afër x0 mund të përdoren si x0 dhe x
1 për të filluar algoritmi, i cili përfundon
kur ndryshimi i x nga një iteracion në tjetrin është më i vogël se një tolerancë e kërkuar. Po qe
se vlerat fillestare të hamendura janë afër rrënjës së vërtetë, konvergjenca e këtij algoritmi
është më e shpejtë se sa në algoritmin Neëton-Raphson.
Ushtrimi 4.1 Shkruani programin për gjetjen e rrënjëve pozitive të x2 - 5 duke përdorur
metodën e Neëton-Raphson dhe metodën e sekantes. Studioni sjelljen e metodës së fundit
duke ndryshuar hamendjen e rrënjës fillestare.
Kur funksioni nuk ka sjellje të mirë afër rrënjës së tij (p.sh. ka një pikë infleksioni afër
x0) ose kur ai ka disa rrënjë , metodat e Neëton-Raphson dhe e sekantes mund të konvergjojnë
në vlera të gabuara nëse vlera e hamendur e rrënjës nuk është zgjedhur mirë.
1.5 Kuantizimi gjysëm klasik i lëkundjeve të molekulave
Si shembull ku kombinohen të tre operacionet e mësipërme të analizës numerike kemi
zgjedhur problemin e lëkundjeve të një molekule dyatomike si psh O2 ,që ka dy bërthama të
lidhura prej elektroneve që vërtiten rreth tyre. Meqë bërthamat janë shumë më të rënda se
elektronet mund të supozojmë se elekronet i axhustohen në çast ndryshimeve të pozicionit të
Xi
Xi+1
X0
Xi
Xi+1
Xi-1
X0
15
bërthamave (përafrimi Born-Oppenheimer) duke lëvizur shumë shpejt. Atëhere problemi sillet
në lëvizjen e bërthamve në një potencial V që varet vetëm nga r -distanca midis tyre. Ky
potencial është tërheqës për distanca të vogla dhe shtytës në distanca të mëdha . Ai merret
zakonisht në formën e potencialit Lennard-Jones ose siç quhet ndryshe potenciali 6-12:
V r Va
r
a
r( ) [( ) ( ) ]4 0
12 6 , (5.1)
i cili ka formën e treguar në pjesën e sipërme të figurës 5.1, minimumi arihet në rmin=21/6
a dhe
ka thellësinë V0 .
Figura 5.1
(lart)- Potenciali Lennard-Jones dhe pikat e
kthimit të brëndëshme e të jashtme për një
energji negative Vija me pika-pika tregon
përafrimin parabolik të potencialit.
(poshtë)- Trajektorja përkatëse në hapësirën
fazore.
Zgjidhja e saktë e problemit bëhet me anë të ekuacionit një-dimensional të
Shroedingerit :
[ ( )]h2 2
22m
d
drV r En n n . (5.2)
Ku m është masa e reduktuar e dy bërthamave , n funksioni valor në gjendjen me energji En .
Qëllimi ynë është të gjejmë pikërisht nivelet energjetike En duke konsideruar lëvizjen e
bërthamave nga pikpamja e mekanikës klasike e duke zbatuar “rregullat e kuantizimit” të
përafrimit të Bohr-it.
Nga pikpamja e mekanikës klasike lëvizja në potencialin V(r) mund të ndodhë për energji
-V0<E<0. Bërthamat lëkunden periodikisht midis pikave të kthimit të brendëshme e të
jashtëme rin dhe rout , siç tregohet në figurën 5.1 . duke shënuar p impulsin relativ të
bërthamave ( impulsin e grimcës hypotetike me masë sa masa e reduktuar m në lidhje me
qendrën e masës), atëhere energjia e plotë që është konstante, është:
E=p2 /2m + V(r) (5.3)
Trajektorja në hapësirën fazore (kordinatat p dhe r ) është e mbyllur si në figurë dhe ekuacioni
i trajektores është:
p(r)= [2m(E-V(r))]½ (5.4)
Lëvizja klasike ndodh për çdo energi midis -V0 dhe 0. Nga pikpamja klasike ajo ndodh vetëm
për energji të përcaktuar En për të cilat integrali i veprimit nëpër trajektoren e mbyllur fazore :
S Ep r
dr( )( )
h, (5.5)
merr vlera të kuantuara në mënyrë të tillë që për vlerat e lejuara të energjisë En integrali të jetë
një gjysëm-shumëfishi i 2 (h është konstantja e Plankut). Duke zëvëndësuar p nga (5.4) në
integral e duke patur parasysh që për çdo vlerë të r trajektorja kalon dy herë (një herë me vlerë
pozitive të p dhe një herë me vlerë negative të p) , kemi:
16
S Em
E V r dr nn
r
r
in
out
( ) ( ) [ ( )] ( )/ /22 1
22
2
1 2 1 2
h , (5.6)
ku n është numër i plotë jonegativ. Në kufijtë e integrimit , madhësia nën integral bëhet zero.
Për të patur një formulë pa dimensione , futim madhësitë :
E
Vx
r
a
ma V
0
2
0 1 22, , ) / = (
2h ,
dhe atëhere formula (5.6) shkruhet:
S S V v x dx nn n
x
x
in
out
( ) ( ) [ ( )] ( )/1
2
1
20
1 2 (5.7)
ku v xx x
( ) ( )41 112 6
është potenciali pa dimensione.
Madhësia është pa dimensione dhe karakterizon natyrën kuantike të problemit. Në limitin
klasik (h e vogël dhe m e madhe ) , bëhet e madhe. Duke njohur momentin e inercisë të
molekulës (nga energjia e rotullimit) dhe energjinë e disocimit (energjia që duhet për ta ndarë
molekulën në dy atomet përbërës), është e mundur që të përcaktohen nga vrojtimet parametrat
a dhe V0 dhe rjedhimisht madhësinë e . Për molekulën e H2 =21.7, ndërsa për molekulën
HD =24.8, dhe për molekulën e O2
=150 . Këto vlera të larta tregojnë se përafrimi gjysëm-klasik për lëvizjen lëkundëse të
këtyre molekulave është i vlefshëm.
Programi EXMPL1 llogarit vlerat e n brenda një tolerance të zgjedhur në fillim ,
shërben si variabël input.
10 rem programi exmpl1.bas llogarit nivelet energjetike ne perafrimin
20 rem gjysemklasik te lekundjeve te molekulave (poenciali Lennard-xhonson)
22 DIM F3(10000)
23 OPEN "EXMPL.DAT" FOR OUTPUT AS FILE #1%
25 GAMA=21.7
30 tolx=.00005
40 tolE=.00005
45 DEF FN1(X,EN)=1/X^12-1/X^6-EN/4
50 FOR N=0 TO 10
60 read EN
70 DEN=.001
90 X1=1+1/(N+1)/100
100 X2=2^(1/6)+(N+1)/100
110 DX1=.005
120 DX2=.005
130 F1OLD=FN1(X1,EN)
140 F2OLD=FN1(X2,EN)
145 REM PRINT F1OLD,F2OLD
150 ITER1=0
160 ITER1=ITER1+1
165 REM PRINT ITER1
170 X1=X1+DX1
175 F1NEË=FN1(X1,EN)
180 IF F1OLD*F1NEË<0 THEN 190 ELSE 210
17
190 X1=X1-DX1
200 DX1=DX1/2
210 IF ABS(DX1)>TOLX GOTO 160
220 rem PRINT "X1=";X1
230 ITER2=0
240 ITER2=ITER2+1
245 REM PRINT ITER2
250 X2=X2+DX2
255 F2NEË=FN1(X2,EN)
260 IF F2OLD*F2NEË<0 THEN 270 ELSE 290
270 X2=X2-DX2
280 DX2=DX2/2
290 IF ABS(DX2)>TOLX GOTO 240
300 rem PRINT "X2=";X2
500 NN=10
510 H=(X2-X1)/NN
520 SN=SQR(EN-4*(1/(X1+h)^12-1/(X1+h)^6))
530 FAK=2
540 FOR I=2 TO NN-2
550 IF FAK=2 THEN FAK=4 ELSE FAK=2
560 X=X1+I*H
570 SN=SN+FAK*SQR(EN-4*(1/X^12-1/X^6))
580 NEXT I
590 SN=GAMA*(SN+SQR(EN-4*(1/(X2-h)^12-1/(X2-h)^6)))*h/3
600 F3OLD=SN-(N+1/2)*3.14159
610 REM ITER3=0
620 ITER3=ITER3+1
625 rem print iter3,en,den
630 F3(ITER3)=F3OLD
640 EN=EN+DEN
650 IF ITER3=1 GOTO 90
660 IF F3(ITER3)*F3(ITER3-1)<0 THEN 670 ELSE 690
670 EN=EN-DEN
680 DEN=DEN/2
690 IF ABS(DEN)>TOLE GOTO 90
700 PRINT N,"EN=";EN
750 iter3=0
710 NEXT N
1000 data -.8,-.85,-.75,-.65,-.55,-.48,-.4,-.33,-.26,-.2,-.15
Ushtrimi 5.1
Për të testuar programin mund të zgjidhet një potencial për të cilin ekuacioni i Shredingerit
(1-17) ka zgjidhje analitike. Të ndryshohet programi duke zgjedhur një potencial parabolik të
formës v(x)=(x-21/6
)-1 (pa dimensione).Ekuacioni i Shredingerit për këtë potencial jep një seri
vlerash të energjisë të baraslaguara nga njera tjetra ku niveli më i ulët i energjisë është mbi
minimumin e potencialt me madhësinë sa gjysma e distancës midis niveleve energjetikë. Për
18
disa vlera të të krahasohen vlerat e rezultatit numerik me ato që merren duke zgjidhur
analitikisht ekuacionin (5.7).
Ushtrimi 5.2
Ekzekutoni programin për potencialin e Lennard-Jones kur =50. Do vini re që niveli i parë i
eksituar (niveli i dytë energjetik) është tre herë më sipër nga fundi i gropës potenciale se sa
është niveli bazë energjetik (niveli i paeksituar) dhe se distanca midi niveleve të fillimit është
pothuaj e njëjtë . Kjo ndodh për arsye se potenciali Lennard -Jones është thuajse parabolik
përreth minimumit të tij (shih fig.1.3) Duke llogaritur derivatin e dytë të V në minimumin e tij
, të gjëndet “konstantja elastike” dhe të tregohet se frekuenca e lëkundjeve të vogla është
h
V0
5 66 2 10 691/ . (5.8)
Të verifikohet që kjo është në përputhje me rezultatin numerik . A mund ta kuptoni pse
nivelet energjetike më të larta për potencialin Lennard-Jones janë më të dendura (më afër njeri
tjetrit) se sa në potencialin parabolik ?
Ushtrimi 5.3
Ndryshoni tolerancën në algoritmin numerik për pikat e kthimit dhe për kërkimin e energjisë
ose të numrit të pikave në regullin e Simpsonit dhe shikoni efektet mbi rezultatet.
Ushtrimi 5.4
Zëvëndësoni metodën e kërkimit të pikave të brëndëshme dhe të jashtëme të kthimit me
metodën Neëton-Raphson ose me metodën e sekantes.Zëvëndësoni regullin e kuadraturës së
Simsonit me me ndonjë rregull të rendit më të lartë dhe shikoni se si përmirësohen rezultatet.
Ushtrimi 5.5
Vizatoni grafikun n ( ) duke ekzekutuar programin për vlera të ndrysme të
nga 20 deri në 200 dhe interpretoni rezultatin.
Ushtrimi 5.6
Për molekulën e H2 , vrojtimet tregojnë se V0 =4.747 dhe rmin=0.74166 A . Këto madhësi
bashkë me ekuacionin (5.6) japin një frekuencë lëkundjesh h =0.492V0= 2.339 eV, e cila
është 4 herë më e madhe se diferenca e nivelit të parë energjetik të eksitiar me nivelin bazë
energjetik të vrojtuar që është 0.515 eV. Pra Potenciali Lennard-Jones nuk ka formë të
përshtatëshme për molekulën e H2 . Një difekt tjetër është se numri i niveleve që del nga
llogaritja me potencialin L-J është 6 ndërsa në fakt njihen 15. Një formë më e mirë analitike e
potencialit me mëshumë parametra është i ashtuquajturi potenciali i Morse-it :
V r V e r r( ) [( ) ]( )min
0
21 1 (5.9)
i cili mund të integrohet analitikisht. Potenciali i Morse-it ka një minimum në një pikë rmin dhe
parametri zgjidhet në mënyrë të tillë që të përputhet kurbatura e potencialit me nivelin e
parë të eksituar të energjisë . Të gjendet vlera e e përshtatëshme për molekulën e H2 ,
modifikoni programin për të përdorur potencialin Morse dhe llogaritni spektrin e niveleve
energjetike.Do të shikoni që merren më shumë nivele energjetike Krahasoni energitë me ato
që merreshin me potencialin L-J dhe interpretoni rezultatet.
1.6 Interpolimi polinomial
Shpesh ne dimë vlerat e një funksioni f(x) në një një varg pikash x1 , x2 ... xN , (të themi x1 <
x2 .. < xN ), por nuk e njohim shprehjen analitike f(x), siç ndodh shpesh kur një madhësi fizikë
f matet për vlera të ndryshme të një parametri fizik x . Problemi është të vlerësojmë f(x) për
çdo x, duke vizatuar një kurbë të lëmuar që kalon nëpër pikat xi . Nëse x është brenda
19
intervalit (x1 , xN ) problemi quhet interpolim dhe nëqoftëse x është jashtë këtij intervali ,
provblemi quhet ekstrapolim.
Një nga klasat më të përdorëshme dhe më të njohura për të përafruar funksionin e vlerësuar
në një varg pikash , janë polinomet algjebrikë, pra bashkësia e funksioneve të formës:
Pn (x) = a0 + a1 x + a2 x2 + ... + an x
n ,
ku n është një numër i plotë jonegativ dhe a1 ...aN jnaë konstante reale. Kjo për arsye se
polinomet algjebrikë mund të përafrojnë sa të duam afër çdo funksion të vazhduar në një
segment sipas teoremës së njohur të Ëeierstrass-it:
Për çdo funksion f të vazhduar në [a,b] dhe çdo >0 , ekziston një polinom P i përcaktuar në
[a,b] i tillë që |f(x)-P(x)|< për të gjithë x [a,b] (fig. 6.1)
Figura 6.1
Psh, polinomet e Taylor-it përdoren shpesh për përafrimet e funksioneve. Por duhet theksuar
se këto polinome i përafrojnë funksionet vetëm në intervale shumë afër një pike të dhënë dhe
ekstapolimi tej këtyre intervalave të vogjël na jep përafrime në përgithësi të gabuara.
Ne do kërkojmë polinome përafrues të tillë që mund të përcaktohen thjeshtë nga fakti që
duhet të kalojnë nëpër një seri pikash të njohura. Psh nëpër dy pika të njohura në plan kalon
vetëm një drejtëz , pra vetëm një polinom i rendit të parë mund të kalojë në dy pika të dhëna:
(x1 , y1=f(x1)) dhe (x2 , y2=f(x2)), polinomi linear :
P xx x
x xy
x x
x xy( )
( )
( )
( )
( )
2
1 2
1
1
2 1
2 . (6.1)
Në çdo tri pika të dhëna në plan kalon vetëm një kuadratik (polinom i gradës së dytë) e kështu
me radhë . Në përgjithësi polinomi interpolues i gradës N-1 që kalon nëpër N pika të dhëna në
plan : y1 = f( x1 ) , y2 = f( x2 ) ... yN = f( xN ) jepet nga formula klasike e Lagranzhit:
P xx x x x x x
x x x x x xy
x x x x x x
x x x x x xy
x x x x x x
x x x x x xy
N
N
N
N
N
N N N N
N
( )( )( )...( )
( )( )...( )
( )( )...( )
( )( )...( )...
( )( )...( )
( )( )...( )
2 3
1 2 1 3 1
1
1 3
2 1 2 3 2
2
1 2 1
1 2 1
, (6.2)
ku janë N terma seicili një polinom i gradës N-1 dhe seicili i ndërtuar në mënyrë që të jetë
zero për të gjitha xi me pëjashtim të njerës nga xi ku duhet të jetë yi , pra:
P(xk)=f(xk) për çdo k=1,2...N
Polinomi mund te shkruhet :
P x f x L x f x L x f x L xn N N N k N kk
N
( ) ( ) ( ) . . . ( ) ( ) ( ) ( ), , ,1 11
(6.3)
20
ku :
Lx x x x x x x x x x
x x x x x x x x x x
x x
x xN k
k k N
k k k k k k k N
i
k iii k
N
,
( )( ).. . ( )( ).. . ( )
( )( )... ( )( ).. . ( )
( )
( )
1 2 1 1
1 2 1 11
(6.4)
për çdo k=1,2..N dhe shpesh LN,k(x) shkruhet Lk(x).
Siç dihet kur një funksion përafrohet me serinë e Taylor-it të rendit n rretht pikës x0 atëhere
gabimi i përafrimit të tij merret në formën :
f x
nx x x x x x
n
n
( ( ( ))
( )!( )( ). . . ( )
1)
0 11
, ku f xn( ( ( ))1) është derivati i n+1-të i funksionit në
një pikë (x) të intervalit (a,b) ku përafrohet funksioni.Po ashtu formula e gabimit kur fuksioni
përafrohet me polinome të Lagranzhit të rendit N-1 do ishte :
f x
Nx x x x x x
N
N
( ( ))
!( )( )... ( )1 2 , e cila përdoret kur ne njohim kufinjtë e derivatit të
funksionit në intervalin e përafrimit të tij.
Mund të provohet lehtë që polinomi P(x) shprehet në formën
P xx x P x x x P x
x x
j j j k i i i k
i j
( )( ) ( ) ( ) ( )
( )
,.., ... ,.., ...1,2 1, 1, 1,2 1, 1,për çdo dy pika xi , xj nga seria e
pikave x1 , x2 ,...xk dhe Pm1,m2,...mk ( 1 mi k) është shënuar polinomi i Lagranzhit që
përputhet me funksionin f(x) në k-1 pikat xm1 ,xm2 , ...xmk) . Pikërisht kjo formulë është thelbi i
algoritmit të Neville-it i cili gjeneron polinomet e Lagranzhit.
Le të jetë P1 vlera e polinomit të rendit zero (pra një konstante) që kalon nëpër pikën (x1 , y1 ),
pra P1 = y1 ; dhe kështu për P2 , P3 ... PN , pra janë vlerat y2 , y3 ... yN . Le të jetë P12 polinomi i
vetëm i rendit të parë që kalon në pikat (x1 , y1 ) dhe (x2 , y2 ). Në mënyrë të ngjashme
përcaktohen polinomet e rendit të parë që kalojnë në pikat 2 dhe 3 , 3 dhe 4 etj. ,pra P23 , P34
... P(N-1)N . Në mënyrë analoge përcaktohen polinomet e rendeve më të larta deri tek polinomi i
rendit (N-1) që kalon nëpër N pika dmth polinomi i dëshiruar. Psh për N=4 , është treguar më
poshtë se si mbushet tabela 6.1 me pasardhësit nga e majta në të djathtë ku ekstremi i djathtë
na tregon polinomin e duhur:
Tablea 6.1
Algoritmi i Neville-it është një mënyrë
rekursive e mbushjes me numra të
tabelës me nga një kollonë çdo herë
duke ecur nga e majta në rë djathtë. Ky algoritëm është mbështetur në në relacionin midis një
polinomi “bir” dhe dy polinomeve “prindër” :
Px x P x x P
x xi i i m
i m i i i m i i i i m
i i m
( )...( )
( )...( ) ( )( )...( )( ) ( )1
1 1 1 2 (6.5)
Kjo rekurencë është e vërtetë pasi të dy “prindërit” janë të përputhur në pikat xi+1 , ... xi+m-1 .
Një përmirësim i rekurencës (6.5) është që të ndiqen dhe ruhen diferencat e vogla midis
“prindërve” dhe “bijve” , që përcaktohen ( për m = 1,2,.. n-1 ) :
Cm,i Pi...(i+m) -Pi...(i+m-1)
x1 : y1 = P1
P12
x2 : y2 = P2 P123
P23 P1234
x3 : y3 = P3 P234
P34
x4 : y4 = P4
21
Dm,i Pi...(i+m) -P(i+1)...(i+m) (6.6)
Ku me C shënuar diferencat midis “bir-it” dhe “prindit” kur zhvendosemi djathtaz poshtë në
tabelën (6.1) dhe me D diferencat kur zhvendosemi djathtaz lart në tabelë.
Që nga mund të nxirren lehtë (duke shkruajtur formulat 6.6 edhe për Cm+1,i , Cm,,i+1 dhe Dm+1,i
relacionet e rekurencës:
Dx x C D
x x
Cx x C D
x x
m i
i m m i m i
i i m
m i
i m i m i
i i m
1
1 1
1
1
1
1
,
, ,
,
, ,
( )( )
( )( ) (6.7)
Në çdo nivel m vlerat C -së dhe D-së janë korrigjimet që e bëjnë interpolimin një rend më të
lartë. Përgjigja përfundimtare P12...N është e barabartë me shumën e çdo yi plus vargun e C-ve
ose/dhe të D-ve që formojnë rrugën nëpër pemën familjare deri tek biri më djathtas në pemë.
Më poshtë është programi në Fortran dhe Basic që realizon interpolimin polinomial ose
ekstrapolimin. Vlerat XA,YA janë pikat ku njihet funksioni , në rezultat shtypet vlera e
ekstrapoluar e funksionit në një pikë çfardo x si edhe gabimi në përafrmin në këtë vlerë që do
jetë sa korigjimi i fundit që bëhet DY.
SUBROUTINE POLINT(XA,YA,N,X,Y,DY)
PARAMETER (NMAX=10)
DIMENSION XA(N),YA(N),C(NMAX),D(NMAX)
NS=1
DIF=ABS(X-XA(1)) këtu gjendet indeksi NS i pikës më të afërt me x
DO 11 I=1,N
DIFT=ABS(X-XA(I))
IF (DIFT.LT.DIF) THEN
NS=I
DIF=DIFT
ENDIF
C(I)=YA(I)
D(I)=YA(I)
11 CONTINUE
Y=YA(NS) Ky është përafrimi fillestar i y
NS=NS-1
DO 13 M=1,N-1 Për çdo kollonë M të tabelës, bëhet cikli përgjatë vlerave të
DO 12 I=1,N-M C-ve dhe D-be duke i përmirësuar ato.
HO=XA(I)-X
HP=XA(I+M)-X
Ë=C(I+1)-D(I)
DEN=HO-HP
IF(DEN.EQ.0.)PAUSE Ky gabim ndodh vetëm kur dy pika XA janë identike
DEN=Ë/DEN
D(I)=HP*DEN Vlerat përfundimtare të C-së dhe D-së
C(I)=HO*DEN
12 CONTINUE
IF (2*NS.LT.N-M)THEN Pasi është kompletuar tabela, zgjidhet se cili nga C ose D
DY=C(NS+1) duhet shtuar tek Y dmth cilën rrugë duhet të ndjekim
ELSE nëpër tabelë (djathtaz poshtë apo djathtaz lart) në varësi
të faktit nëse NS është mbi gjysmën e sipërme të tabelës
22
apo nën të,për të arritur tek maja e saj duke ndryshuar
DY=D(NS) edhe NS për të parë ku jemi.
NS=NS-1
ENDIF
Y=Y+DY DY i fundit është tregues i gabimit të përafrimit.
13 CONTINUE
RETURN
END
10 REM Programi kryen interpolimin polinomial te nje funksioni qe jepet ne N pika
11 REM XA, YA . Kur jepet vlera e variablit X ai llogarit vleren e perafruar te
12 REM funksionit Y=f(x) dhe vleresimin e gabimit DY
20 PRINT "SA ESHTE NUMRI I PIKAVE?"
30 INPUT N
35 NMAX = 10
37 DIM XA(N), YA(N), C(NMAX), D(NMAX)
40 FOR I = 1 TO N
45 PRINT "SA ESHTE VLERA E"; I; " E X,F(X)?"
50 INPUT XA(I), YA(I)
60 NEXT I
70 PRINT " SA ESHTE X?"
75 INPUT X
80 NS = 1
90 DIF = ABS(X - XA(1))
100 FOR I = 1 TO N
110 DIFT = ABS(X - XA(I))
120 IF DIFT < DIF THEN 130 ELSE 150
130 NS = I
140 DIF = DIFT
150 REM
160 C(I) = YA(I)
170 D(I) = YA(I)
180 NEXT I
190 Y = YA(NS)
200 NS = NS - 1
210 FOR M = 1 TO N - 1
220 FOR I = 1 TO N - M
230 HO = XA(I) - X
240 HP = XA(I + M) - X
250 Ë = C(I + 1) - D(I)
260 DEN = HO - HP
270 IF DEN = 0 THEN GOTO 275 ELSE 280
275 PRINT "JANE FUTUR DY VLERA TE NJEJTA XA"
277 GOTO 410
280 DEN = Ë / DEN
290 D(I) = HP * DEN
300 C(I) = HO * DEN
310 NEXT I
320 IF 2 * NS < (N - M) THEN 330 ELSE 350
23
330 DY = C(NS + 1)
340 GOTO 370
350 DY = D(NS)
360 NS = NS - 1
370 REM
380 Y = Y + DY
390 NEXT M
400 PRINT "Y(X)="; Y, "GABIMI="; DY
410 END
1.7 Interpolimi “Kubik Spline”
Kur jepet një funksion i tabeluar yi = y(xi), i=1,2...N , fokusojmë vëmëndjen në një interval të
veçantë psh (xj ,, xj+1 ). Interpolimi linear në këtë interval jepet nga :
y = A yj + B yj+1 (7.1) ,
ku :
Ax x
x xB A
x x
x x
j
j j
j
j j
1
1 1
1 , (7.2)
Ekuacionet (7.1) dhe (7.2) janë rast i veçantë i formulës së interpolimit të Lagranzhit (6.1).
Supozojmë që veç vlerave të tabeluara të y kemi edhe vlerat e tabeluara të një funksioni
tjetër y’’ (më vonë do supozojmë që ky është derivati i dytë i funksionit y ).
Po i përdorim vlerat yj’’ dhe yj+1
’’ si koeficientë linearë të një polinomi kubik që përputhet me
vlerat e tabeluar yj dhe yj+1 në pikat xj , dhe xj+1 , për çfardo zgjedhje të
yj’’ dhe yj+1
’’ . Del se vetëm për një zgjedhje të koeficientëve C dhe D në shprehjen :
y = A yj + B yj+1 + C yj’’ + D yj+1
’’ (7.3)
mund të arrihet kjo përputhje. Kjo zgjedhje është:
C A A x x D B B x xj j j j
1
6
1
6
3
1
2 3
1
2( )( ) ( )( ) , (7.4)
Ku duket se varësia nga x i C dhe D është kubike. Arësyeja pse zgjedhja (7.4) është unike
është se polinomi kubik i x përmban 4 koeficientë që përcaktohen nga 4 vlerat e polinomit të
njohura në 4 pika.
Le të konsiderojmë tani që y’’ është derivati i dytë i polinomit interpolues. Duke llogaritur
derivatet e shprehjes (7.3) në lidhje me x dhe duke ditur varësitë e A,B,C,D nga x , gjejmë:
dy
dx
y y
x x
Ax x y
Bx x y
j j
j j
j j j j j j
1
1
2
1
2
1 1
3 1
6
3 1
6( ) ( )'' '' (7.5)
dhe
d y
dxAy Byj j
2
2 1
'' '' (7.6)
Me që A=1 dhe B=0 në xj , A=0 dhe B=1 në xj+1 , (7.6) tregon se y’’ është derivati i dytë
i tabeluar dhe që ai është i vazhduar në kufirin e dy intervaleve (xj-1 ,, xj ) dhe
(xj ,, xj+1 ). Pra ne mund të vendosim çdo numër për y’’
i , për zgjedhje çfardo derivati i parë
(7.5) nuk do ishte i vazhduar në kufirin e dy intervaleve. Ideja kryesore e metodës “kubik
spline” është që të kërkohet edhe vazhdushmëria e derivatit të parë për të marrë ekuacionet
për y’’
i . Kjo arrihet duke barazuar derivatin e parë (7.5) të llogaritur në x=xj të intervalit (xj-1,,
xj ) me të njëjtin derivat në pikën x = xj por të intervalit (xj , xj+1 ). Pas disa veprimesh
marrim:
24
x xy
x xy
x xy
y y
x x
y y
x x
j j
j
j j
j
j j
j
j j
j j
j j
j j
1
1
1 1 1
1
1
1
1
16 3 6
'' '' '' (7.7)
ku j = 2,3.. N-1. Këtu kemi N-2 ekuacione me N të panjohura y’’
i , i=1,2..N . Kështu që ka
një familje zgjidhjesh me dy parametra. Për të marë zgjidhje të vetme duhen specifikuar edhe
dy kushte të tjera , që zakonisht zgjidhen kushtet kufitare në x1 dhe xN . Këto zgjidhen
zakonisht në dy mënyra :
- merren njera ose të dyja y’’
1 dhe y’’
N zero (kjo quhet metodë natyrore e “kubik spline”).
- merren seicili nga y’’
1 dhe y’’
N sa vlera e llogaritur nga (7.5) në mënyrë që derivati i
parë i funksionit që interpolohet të ketë vlerë të caktuar në seicilin nga kufijtë.
Një nga arsyet që “kubik spline” është shumë praktik është jo vetëm se ekuacionet (7.7) dhe
dy kushtet kufitare janë lineare , por ato janë edhe tridiagonale, pra ekuacioni për y’’
j është i
çiftuar vetëm me dy fqimjët e tij më të afërt për y’’
j+-1 dhe prandaj sistemi i ekuacioneve
zgjidhet lehtë me algoritmin tridiagonal (që do të shpjegohet në kapitullin mbi zgjidhjen e
sistemit të ekuacioneve algjebrikë)
Më poshtë janë paraqitur programet që realizojnë interpolimin e një funksioni tabelor me
metodën “kubik spline”. Në gjuhën FORTRAN janë paraqitur dy subrutina SPLINE dhe
SPLINT , nga të cilat e para llogarit derivatet e rendit të dytë në N pikat xi ndërsa në të dytën
këto derivate janë input për të llogaritur vlerën e funksionit në një pikë çfardo x .
Në programin BASIC , SPLINE.BAS llogaritjet kryhen në një program të vetëm ku si input
shërbejnë vlera e N dhe xi , yj (j=1,2...N).
SUBROUTINE SPLINE(X,Y,N,YP1,YPN,Y2)
PARAMETER (NMAX=100)
DIMENSION X(N),Y(N),Y2(N),U(NMAX)
IF (YP1.GT..99E30) THEN
Y2(1)=0.
U(1)=0.
ELSE
Y2(1)=-0.5
U(1)=(3./(X(2)-X(1)))*((Y(2)-Y(1))/(X(2)-X(1))-YP1)
ENDIF
DO 11 I=2,N-1
SIG=(X(I)-X(I-1))/(X(I+1)-X(I-1))
P=SIG*Y2(I-1)+2.
Y2(I)=(SIG-1.)/P
U(I)=(6.*((Y(I+1)-Y(I))/(X(I+1)-X(I))-(Y(I)-Y(I-1))
* /(X(I)-X(I-1)))/(X(I+1)-X(I-1))-SIG*U(I-1))/P
11 CONTINUE
IF (YPN.GT..99E30) THEN
QN=0.
UN=0.
ELSE
QN=0.5
UN=(3./(X(N)-X(N-1)))*(YPN-(Y(N)-Y(N-1))/(X(N)-X(N-1)))
ENDIF
Y2(N)=(UN-QN*U(N-1))/(QN*Y2(N-1)+1.)
DO 12 K=N-1,1,-1
Y2(K)=Y2(K)*Y2(K+1)+U(K)
25
12 CONTINUE
RETURN
END
SUBROUTINE SPLINT(XA,YA,Y2A,N,X,Y)
DIMENSION XA(N),YA(N),Y2A(N)
KLO=1
KHI=N
1 IF (KHI-KLO.GT.1) THEN
K=(KHI+KLO)/2
IF(XA(K).GT.X)THEN
KHI=K
ELSE
KLO=K
ENDIF
GOTO 1
ENDIF
H=XA(KHI)-XA(KLO)
IF (H.EQ.0.) PAUSE 'Bad XA input.'
A=(XA(KHI)-X)/H
B=(X-XA(KLO))/H
Y=A*YA(KLO)+B*YA(KHI)+
* ((A**3-A)*Y2A(KLO)+(B**3-B)*Y2A(KHI))*(H**2)/6.
RETURN
END
Programi SPLINE.BAS
10 REM Programi pasi llogarit derivate e y të rendit te dyte te funksionit
15 REM te tabeluar ne pikat xj (j=1,2..N), llogarit vleren e funksionit
20 REM ne nje pike çfardo x . Te dhenat jane N vlerat e funksionit yi(xi) ku
30 REM x1<x2<x3..<xN dhe vlerat e derivatit te pare y' ne pikat x1 dhe xN.
40 PRINT "Sa eshte numri i pikave N?"
50 INPUT N
60 NMAX = 100
70 DIM X(N), Y(N), Y2(N), U(NMAX)
80 FOR I = 1 TO N
90 PRINT "Sa eshte x dhe y ne piken"; I
100 INPUT X(I), Y(I)
105 NEXT I
107 PRINT "Sa eshte vlera e derivatit te pare ne pikat 1 dhe N?"
108 INPUT YP1, YPN
110 IF YP1 > 9.9E+29 THEN GOTO 120 ELSE 150
120 Y2(1) = 0!
130 U(1) = 0!
140 GOTO 170
150 Y2(1) = -.5
160 U(1) = (3! / (X(2) - X(1))) * ((Y(2) - Y(1)) / (X(2) - X(1)) - YP1)
170 REM
180 FOR I = 2 TO N - 1
26
190 SIG = (X(I) - X(I - 1)) / (X(I + 1) - X(I - 1))
200 P = SIG * Y2(I - 1) + 2!
210 Y2(I) = (SIG - 1!) / P
220 U(I) = (6! * ((Y(I + 1) - Y(I)) / (X(I + 1) - X(I)) - (Y(I) - Y(I - 1)) / (X(I) - X(I - 1))) / (X(I
+ 1) - X(I - 1)) - SIG * U(I - 1)) / P
230 NEXT I
240 IF YPN > 9.9E+29 THEN GOTO 250 ELSE GOTO 280
250 QN = 0!
260 UN = 0!
270 GOTO 300
280 QN = .5
290 UN = (3! / (X(N) - X(N - 1))) * (YPN - (Y(N) - Y(N - 1)) / (X(N) - X(N - 1)))
300 REM
310 Y2(N) = (UN - QN * U(N - 1)) / (QN * Y2(N - 1) + 1!)
320 FOR K = N - 1 TO 1 STEP -1
330 Y2(K) = Y2(K) * Y2(K + 1) + U(K)
340 NEXT K
350 PRINT "SA ESHTE VLERA E X KU DO INTERPOLOHET FUNKSIONI?"
360 INPUT X
370 KLO = 1
380 KHI = N
390 IF (KHI - KLO) > 1 THEN GOTO 400 ELSE 430
400 K = (KHI + KLO) / 2
410 IF X(K) > X THEN KHI = K ELSE KLO = K
420 GOTO 390
430 REM
440 H = X(KHI) - X(KLO)
450 IF H = 0! THEN PRINT "TE DHENAT E FUTURA JANE KEQ"
460 A = (X(KHI) - X) / H
470 B = (X - X(KLO)) / H
480 Y = A * Y(KLO) + B * Y(KHI) + ((A ^ 3 - A) * Y2(KLO) + (B ^ 3 - B) * Y2(KHI)) * (H
^ 2) / 6!
490 PRINT "VLERA E FUNKSIONIT NE PIKEN X ESHTE="; Y
500 END
Ushtrime
1. Përdorni interpolimin polinomial të rendit të parë, të dytë , të tretë dhe të katërt për të gjetur
përafërsisht vlerat e funksioneve të panjohur që jepen më poshtë:
2. Përdorni algoritmin e Nevill-it për të gjetur përafrimet e funksioneve të ushtrimit 1.
3. Gjeni përafërsisht 3 duke përdorur metodën e Nevill-it me funksionin f(x)= 3x dhe
vlerat : x0 = -2, x1 = -1, x2 = 0, x3 = 1, x4 = 2 .
4. Gjeni përafersisht 3 duke përdorur metodën e Nevill-it me funksionin f(x)= x dhe
vlerat: x0 = -0, x1 = 1, x2 = 2, x3 = 4, x4 = 5. Krahasoni saktësinë me atë të ushtrimit të
mëparshëm.
5. Të dhënat e ushtrimit 1, pikat a),b),c) dhe d) , janë gjeneruar duke përdorur funksionet e
mëposhtëme . Përdorni formulën e gabimit për të gjetur gabimet dhe krahasoni këto
27
gabime me kufirin e gabimit.
a) f(x)= x ln(x)
b) f(x)=x3
+ 4.001x2 + 4.002x +1 1.101
c) f(x)= x cos(x) - 2x2 + 3x -1
d) f(x)= sin(ex -2) , përdorni vetëm n=1 dhe n=2 .
6. Përdorni interpolimin polinomial të Lagranzhit të rendit të tretë ose më pak dhe
arithmetikën e “chopping” për të përafruar funksionin cos(0.750) , duke përdorur vlerat:
cos(0.698)=0.7661, cos(0.768)=0.7193, cos(0.733)=0.7432 , cos(0,803)=0.6946.
7. Përdorni vlerat e mëposhtëme dhe arithmetikën e rrumbullakimit për të gjetur
përafrimin polinomial të rendit të tretë (metoda e Lagranzhit) të funksionit : f(1.09).
Funksioni përafrohet si f(x)=log(tg(x)) .
f(1.00)=0.1924 , f(1,05)=0.2414 , f(1.10)=0.2933 , f(1.15)=0.3492.
8. Përdorni metodën e Nevill-it për të dhënat e ushtrimit të mëparshëm.
Përgjigjet:
28
9. Në tabelën e mëposhtëme janë dhënë vlerat e tabeluara të shpejtësisë dhe rrugës
që përshkon një automobil në fuksion të kohës:
Koha 0 3 5 8 13
Distanca 0 225 383 623 993
Shpejtësia 75 77 80 74 72
Duke përdorur kubik-spline të parashikohet pozicioni dhe shpejtësia e automobilit në
kohën t= 10 s.
(P. S (10)=774.85 dhe S’(10)=74.16 )
10. Duke perdorur kubik-spline për tre funksionet e tabeluar si më poshtë , të ndërtohen
grafikët e këtyre funksioneve pasi të gjenden vlerat e tyre edhe në pika ndërmjet atyre
që janë dhëne:
29
Kurba 1 Kurba 2 Kurba 3
xi f (xi) f ’ (xi) xi f (xi ) f
‘ (xi) xi f (xi ) f
‘ (xi)
1 3.0 1.0 17 4.5 3.0 27.7 4.1 0.33
2 3.7 20 7.0 28 4.3
5 3.9 23 6.1 29 4.1
6 4.2 24 5.6 30 3.0 -1.5
7 5.7 25 5.8
8 6.6 27 5.2
10 7.1 27.7 4.1 -4.0
13 6.7
17 4.5 -0.67
30
KAPITULLI 2
SISTEMET E EKUACIONEVE ALGJEBRIKE DHE MATRICAT
2.1 Zgjidhja numerike e sistemeve të ekuacioneve lineare
Sistemet e ekuacioneve lineare ndeshen shpesh në zbatimet e shkencave natyrore, teknike
dhe ekonomike. Prandaj, problemi i zgjidhjes numerike të tyre është një nga detyrat kryesore
të algjebrës lineare. Teorikisht ekzistojnë metoda standarte të zgjidhjes së sistemeve të
ekuacioneve lineare, por në praktikën llogaritëse në kompjuter lindin vështirësi që kanë të
bëjnë me ndërprerjen e llogaritjeve në rastin e sistemeve me matricë të pakthyeshme
( det(A)=0), me humbjen e saktësisë për arsye të arithmetikës me numra të përafërt, me
zgjatjen e kohës së llogaritjeve etj. Psh, për zgjidhjen e sistemit të ekuacioneve lineare të
rendit n me rregullin e njohur të Cramer-it duhen kryer N(n)= (n!)n veprime arithmetike , që
për n=10 del N ~ 1072
. Një sasi kaq e madhe veprimesh edhe në superkompjutera ku
shpejtësia e kryerjes së veprimeve është fantastike 1050
veprime/sek do të duheshin 1022
sekonda ( më shumë se 1014
vjet) për zgjidhjen e sistemit. Prandaj në praktikë nuk përdoret
metoda e Cramer-it për sisteme me shumë ekuacione. Në zbatimet e ndryshme në praktikë
lind nevoja e zgjidhjes së ssistemeve me 103 10
6 ekuacione , prandaj kuptohet nevoja e
përzgjedhjes së metodave të shpejta e të qëndrueshme ndaj gabimit të rrumbullakimit të
numrave.
Ka dy grupe metodash të zgjidhjes së sistemit të ekuacioneve , metodat e sakta dhe ato
iterative. Metodat e sakta janë procedura me anë të të cilave është e mundur zgjidja e saktë në
parim e sistemit të ekuacioneve A x =b ( det (A) 0) duke kryer një numër të fundëm
veprimesh arithmetike si mbledhje, zbritje, shumëzim, pjestim dhe disa veprime llogjike. Në
fakt merret një zgjidhje e përafërt për shkak të gabimeve të rumbullakimit të numrave. Për
këto metoda mund të llogaritet sasia e veprimeve që duhen kryer, pra të vlerësohet edhe
shpejtësia e kryerjes së tyre si edhe saktësia e zgjidhjes. Këto metoda parapëlqehen për
zgjidhjen e sistemit të ekuacioneve me n< 100 ekuacione, të cilat kanë matrica të plota dmth
me pak elementë zero.
Vendin kryesor në këto metoda e zë metoda e Gaussit dhe variante të saj.
2.2 Metoda e Gausit
Le të jetë sistemi i ekuacioneve lineare:
a11 x1 + a12 x2 + ...a1n xn =b1
a21 x1 + a22 x2 + ...a2n xn =b2
.............................................................. (2.1)
an1 x1 + an2 x2 + ...ann xn =bn
ose shkurt
A.x =b ,
ku A është matrica katrore me elementë aij ( i,j =1,2,... n) , x është vektori me elementë xj
(j=1,2...n) dhe b është vektori me elementë bj (j=1,2...n)
Metoda e Gausit konsiston në eliminimin e njëpasnjëshëm të të panjohurave duke
manipuluar me ekuacionet. Ekuacioni i parë i sistemit përdoret për të eliminuar të panjohurën
e parë që nga ekuacioni i dytë deri tek e kuacioni i n-të. Pastaj ekuacioni i dytë i ri shërben për
të eliminuar të panjohurën e dytë që nga ekuacioni i tretë deri tek ekuacioni i n-të. , e kështu
me radhë. Duke kryer n-1 eliminime të tilla , atëhere sistemi i ekuacioneve lineare që rezulton
31
është i njëvlefshëm me sistemin e dhënë dhe është një sistem me matricë trekëndëshe që
zgjidhet me lehtësi.
Pra në hapin e parë kemi:
A(1)
. x =b(1)
Supozojmë se a11 0, dhe eliminojmë x1 nga n-1 ekuacionet e tjera duke shumëzuar
ekuacionin e parë me mi1 =a(1)
i1 / a(1)
11 dhe duke zbritur rezultatin nga ekuacioni i i-të. Si
rezultat meret sistemi i ekuacioneve : A(2)
. x =b(2)
a a aa a
a a
xx
x
bb
b
n
n
n nnn n
11
1
12
1
1
1
22
2
2
2
2
2 2
1
2
1
1
2
2
2
( ) ( ) ( )
( ) ( )
( ) ( )
( )
( )
( )
.
...
..... 0 ..... ..........................0 .....
(2.2)
pra,
aa i j n
i n j
a m a i n j n
bb ib m b i n
ij
ij
ij i ij
ii
i i
( )
( )
( ) ( )
( )( )
( ) ( )
, ..., ..
, .. , ...
, ..
2
1
1
1
1
21
1
1 1
1
1 1 20 2 3 1
2 3 2 3
12 3
për dhe për dhe
për dhe
për - për =
Le ta zemë se kemi kryer k hapa të tilla (1 k n) , atëhere sistemi i ekuacioneve është
bërë:
A(k)
. x =b(k)\
a a aa a
a a
a a
xx
x
x
bb
b
b
n
n
kk
k
kn
k
nk
k
nn
k
k
n
k
k
n
k
11
1
12
1
1
1
22
2
2
21
2
1
1
2
2
0
( ) ( ) ( )
( ) ( )
( ) ( )
( ) ( )
( )
( )
( )
( )
.............................
...
...
....
..
..... 0 .....
0 .............................0 0 ... ...
(2.3),
ku janë eliminuar të panjohurat x1 , x2 ,...xk-1
Në hapin pasardhës k+1 do të kemi:
A(k+1)
. x =b(k+1)
ku elementet e matricës dhe ana e djathtë e sistemit janë :
,
aa i k
i k j k
a m a i k k n j k k n
bb i kb m b i n
ij
kij
k
ij
k
ik kj
k
i
k i
k
i
k
ik k
k
( )
( )
( ) ( )
( )( )
( ) ( )
, .. , ,...
..
1
1
0 1
1 2 1 2
për për dhe
për dhe
për - për = k +1,k + 2
(2.4)
ku mik = a(k)
ik / a(k)
kk për i=k+1,k+2,...n dhe a(k)
kk 0
Duke vazhduar në këtë mënyrë , pas n-1 hapash marrim sistemin e ekuacioneve:
A(n)
. x =b(n)\
ku
32
a a aa a
a
xx
x
bb
b
n
n
nn
n
n n
n
11
1
12
1
1
1
22
2
2
2
1
2
1
1
2
2
0
( ) ( ) ( )
( )
( )
( )
( )
( )
.
...
..... 0 ..... ..........................0 .....0,
(2.5)
Shënojmë U=A(n)
dhe f = b(n)
. Sistemi i ekuacioneve U.x=f e ka matricën trekëndëshe (pra
me elementë të ndryshëm nga zero vetëm sipër diagonales) dhe zgjidhet lehtë. Kështu nga
ekuacioni i fundit nxjerrim : xn = fn / Unn nga i parafundit nxjerrim pastaj xn-1 e kështu me
radhë duke u ngjitur më lart , pra në përgjithësi ::
x
f U x
Uk n nk
k kj j
j k
n
kk
11 2 1 për , ,... (2.6)
Në realizimin e këtij algoritmi që njihet si metoda e Gausit, nuk është nevoja të kryhen
veprime me sistemin e ekuacioneve (2.1). por mjafton që për k=1,2,..n-1 të shndrohen
koeficientët aij dhe elementët e anës së djathtë të sistmit të ekuacioneve sipas formulave (2.4)
dhe pastaj të merret zgjidhja sipas formulave (2.6).
Psh, sistemi i ekuacioneve është:
x1 + 2.x2 +x3 = 0
2.x1 +2.x2 +3.x3 = 3
- x1- - 3.x2 = 2
Veprojmë me matricën e elementeve :
1 032
2 12 2 3-1 - 3 0
, e cila pas hapit të parë (m21 =2, m31 = -1) bëhet :
1 032
2 10 - 2 10 -1 1
dhe pas hapit të dytë (m32 =1/2 ) bëhet
1 031 2
2 10 - 2 10 0 1 / 2 /
e cila është diagonalizuar dhe zgjidhja është :
x3 =1 , x2 = -1 , x1 =1
Për të siguruar ecurinë e procesit eliminues të Gausit duhet që në çdo hap të tij elementet e
diagonales kryesore a(k)
kk të jenë të ndryshëm nga zero.. Këta do ti quajmë elementë kryesorë.
Në se në ndonjë hap të algoritmit nuk plotësohet kushti a(k)
kk 0, atëhere para fillimit të hapit
pasardhës ndërrohen vendet e reshtave të matricës së radhës në mënyrë që të plotësohet kushti
i mësipërm. ky quhet proces pivotimi. Mund të ekzistojnë dy raste :
a) gjendet një element kryesor i 0 dhe vazhdohet procesi i eliminimit,
b) të gjithë elementët a(k)
ik =0 (i=k,k+1,...n) , në këtë rast nxirret përfundimi që matrica e
sistemit nuk është e ktyeshme , pra sistemi ose nuk ka zgjidhje ose ka pafundësi zgjidhjesh.
Në aspektin llogaritës mund të ndodhë që a(k)
kk 0 , por është shumë afër zeros dhe
përdorimi i këtij elementi si element kryesor sjell gabime të mëdha. Prandaj në hapin e k -të si
element kryesor mund të zgjidhet Ck = maxk i n { |a(k)
ik |} . Nëse ky maksimum del në reshtin
i0 k , ndërohet reshti i k -të me reshtin e i0 - -të dhe mndej kryhet hapi pasardhës. Kjo
mënyrë quhet “pivotim i pjesëshëm “, për ta dalluar nga rasti i “pivotimit të plotë “ kur
33
kërkohet maksimumi i gjithë elementëve Ck = max { |a(k)
kk |} (k i , j n ); në këtë rast krahas
ndërimit të vendit të reshtave në hapa të ndryshme të algoritmit lind nevoja e ndërimit edhe
të vendeve të shtyllave , pra ndryshim i radhës së eliminimit të të panjohurave. kjo e rrit kohën
në ordinatorsi dhe sasinë e informacionit në ruajtje . Zakonisht matrica A “normalizohet” ,
dmth rreshtat dhe shtyllat e saj shimëzohen me konstante të përshtatëshme me qëllim që
elementet e saj të jenë pothujse të të njëjtit rend madhësie, në mënyrë që të eliminohen
gabimet e tjera veç gabimit të rumbullakimit.
Më poshtë jepet programi në BASIC për metodën e eliminimit të Gausit.
10 REM Programi zgjidh sistemin e n ekuacioneve lineare me n te panjohura me
20 REM metoden Gauss
25 PRINT "fut vleren e n"
30 INPUT n
40 DIM a(n, n), b(n), e1(n, n + 1)
50 FOR i = 1 TO n
60 FOR j = 1 TO n
65 PRINT "fut vleren e radhes se a("; i; j; ")"
70 INPUT a(i, j)
80 NEXT j
85 PRINT "fut vleren e radhes se b("; i; ") "
90 INPUT b(i)
100 NEXT i
1000 REM kthimi i matrices a ne trekendore te siperme,rezultati ne E
1060 FOR i = 1 TO n
1070 FOR j = 1 TO n
1080 e1(i, j) = a(i, j)
1130 NEXT j
1140 e1(i, n + 1) = b(i)
1150 NEXT i
1170 FOR i = 1 TO n
1190 IF e1(i, i) = 0 GOTO 1320
1270 FOR j = i + 1 TO n
1280 xm = e1(j, i) / e1(i, i)
1290 FOR k = i TO n + 1
1300 e1(j, k) = e1(j, k) - xm * e1(i, k)
1310 NEXT k
1305 NEXT j
1320 NEXT i
1330 e1(n, n + 1) = e1(n, n + 1) / e1(n, n)
1340 FOR k = n - 1 TO 1 STEP -1
1350 shum = 0
1360 FOR j = k + 1 TO n
1370 shum = shum + e1(k, j) * e1(j, n + 1)
1380 NEXT j
1390 e1(k, n + 1) = (e1(k, n + 1) - shum) / e1(k, k)
1400 NEXT k
1500 REM rezultati eshte ne kolonen e fundit te e1
2140 PRINT
34
2150 PRINT "Rezultatet e metodes Gaus"
3330 FOR i = 1 TO n
3340 PRINT "x("; i; ")="; e1(i, n + 1)
3350 NEXT i
3360 REM STOP
3370 END
2.3 Metoda Gauss-Jordan
Një nga variantet e metodës së eliminimit të Gausit, është metoda Gauss-Jordan. Në thelb ajo
është e njëjtë me metodën e Gausit por dallon nga ajo në faktin që variabli xk në hapin e k -të
eliminohet jo vetëm në n-k ekuacionet e fundit të sistemit por edhe në k-1 ekuacionet e para të
tij. Pra, në hapin e k-të (k=1,2...n) zgjedhim elementin kryesor sikurse në metodën e Gausit,
pastaj njehësojmë madhësitë :
a(k+1)
kj = a(k)
kj / a(k)
kk për j=k,k+1,...n dhe b(k+1)
i =b(k)
k / a(k)
kk ,
dhe eliminohet e panjohura xk në të gjithë ekuacionet sipër dhe poshtë ekuacionit të k-të me
anë të formulave rekurente:
a(k+1)
ij = a(k)
ij - a(k)
ik ·a(k+1)
kj për i=1,2,...n (i k)
b(k+1)
i = b(k)
i - a(k)
ik ·b(k+1)
k për j=k,k+1,.. n
Duket qartë se procedura e Jordan-it realizon shndrimin e matricës së kombinuar [ A | b ] në
matricën [ I | b(n)
] , ku I është matrica katrore njësi ( që i ka një të gjithë elementët e
diagonales dhe zero të gjithë elementët e tjerë). Kështu që në përfundim të n-1 hapave të kësaj
procedure , në vektorin e kufizave të lira (b(n)
) të sistemit përftohet zgjidhja e sistemit. Me këtë
modifikim që realizon metoda e Jordan-it shmanget procesi i kundërt i metodës së Gausit për
gjetjen e zgjidhjes së sistemit. Nga kjo duket sikur metoda Jordan është më e shpejtë , por në
fakt nuk është kështu sepse kjo metodë përmban 50% më shumë shumëzime dhe pjestime.
Prandaj rekomandohet më shumë metoda e Gausit, ndërsa metoda Gauss-Jordan
rekomandohet mër gjetjen e matricës së anasjelltë meqënëse nëkëtë rast kërkohet një numër
më i vogël madhësish që duhet të ruhen gjatë procedurës ( në metodën Gauss-Jordan duhen
n(n+1) , ndërsa në metodën e Gausit duhen 2.n2 ).
Më poshtë, po japin programin në Basic dhe subrutinën përkatëse në Fortran për metodën
Gauss-Jordan.
10 REM Programi zgjidh sistemin e n ekuacioneve lineare me n te panjohura me
20 REM metoden Gauss-Jordan
25 PRINT "fut vleren e n"
30 INPUT n
40 DIM a(n, n), b(n, 1), d%(n)
41 icol1=n+1
42 jroë = n
43 jcol = 1
45 iroë = n
47 icol = n
48 rem DIM e1(iroë, icol1)
50 FOR i = 1 TO n
35
60 FOR j = 1 TO n
65 PRINT "fut vleren e radhes se a(";i;j;")"
70 INPUT a(i, j)
80 NEXT j
85 PRINT "fut vleren e radhes se b(";i;") "
90 INPUT b(i, 1)
95 d%(i) = 1
100 NEXT i
105 inv1 = 2
110 gosub 1000
115 rem
120 gosub 1500
130 REM rezultati eshte ne kolonen e fundit te e1
140 PRINT
150 PRINT "Rezultatet e metodes Gaus-jordan"
160 REM Se pari kontrollohet nese ka zgjidhje
170 st% = 0
180 FOR i = 1 TO iroë
190 IF d%(i) <> 0 THEN GOTO 270
200 st% = 1
210 FOR j = iroë + 1 TO icol
220 IF e1(i, j) = 0 THEN GOTO 250
230 st% = 2
240 GOTO 310
250 NEXT j
260 REM exit normal dmth ekuacione me shume zgjidhje
270 NEXT i
280 IF st% = 0 THEN GOTO 330
290 PRINT "ky sistem ekuacionesh ka infinitet zgjidhje"
300 GOTO 360
310 PRINT "ky sistem ekuacionesh eshte jo konsistent,nuk ka zgjidhje"
320 GOTO 360
330 FOR i = 1 TO n
340 PRINT "x("; i; ")="; e1(i, n + 1)
350 NEXT i
360 rem STOP
370 goto 1750
1000 REM kthimi i matrices a ne trekendore te siperme,rezultati ne E
1010 REM iroë = n
1020 REM icol = n
1030 IF inv1 = 1 THEN icol = 2 * icol
1040 IF inv1 <> 1 THEN icol = icol + 1
1050 DIM e1(iroë, icol)
1060 FOR i = 1 TO iroë
1070 FOR j = 1 TO iroë
1080 e1(i, j) = a(i, j)
1085 rem PRINT e1(i, j)
1090 IF inv1 <> 1 GOTO 1130
36
1100 REM keto rreshta perdoren nese matrica ka qene e invertuar
1110 IF i = j THEN e1(i, j + iroë) = 1
1120 GOTO 1130
1130 NEXT j
1140 IF inv1 <> 1 THEN e1(i, iroë + 1) = b(i, 1)
1145 rem PRINT e1(i, iroë + 1)
1150 NEXT i
1160 det1 = 1
1170 FOR i = 1 TO iroë
1180 IF i <> iroë THEN GOTO 1220
1190 IF e1(i, i) <> 0 GOTO 1320
1200 dt = 0
1210 GOTO 1240
1220 IF e1(i, i) <> 0 GOTO 1270
1230 GOto 1330
1240 IF dt = 0 THEN det1 = 0
1250 IF dt = 0 THEN d%(i) = 0
1260 IF dt = 0 THEN 1320
1270 FOR j = i + 1 TO iroë
1280 xm = e1(j, i) / e1(i, i)
1290 FOR k =i TO icol
1300 e1(j, k) = e1(j, k) - xm * e1(i, k)
1310 NEXT k
1315 NEXT j
1320 NEXT i
1325 goto 1460
1330 REM detektimi i determinantit 0
1340 REM pra, per te siguruar qe elementet e diagonales te mos jene 0
1350 REM gjate triangulizimit te siperm
1360 dt = 1
1370 FOR j = i + 1 TO iroë
1380 IF e1(j, i) = 0 GOTO 1430
1390 FOR k = 1 TO icol
1400 e1(i, k) = e1(i, k) + e1(j, k)
1410 NEXT k
1420 rem RETURN
1430 NEXT j
1450 dt = 0
1460 rem end
1470 return
1500 REM subrutina e triangulizimit te poshtem,input eshte matrica e1(iroë,icol)
1510 FOR ij = 1 TO iroë
1520 IF ij = iroë THEN GOTO 1600
1530 ik = iroë - ij + 1
1540 FOR i = 1 TO ik - 1
1550 IF inv1 = 1 THEN GOTO 1570
1560 IF d%(ik) = 0 THEN GOTO 1600
1570 xm = e1(i, ik) / e1(ik, ik)
37
1580 FOR j = i + 1 TO icol
1590 e1(i, j) = e1(i, j) - xm * e1(ik, j)
1595 NEXT j
1597 NEXT i
1600 NEXT ij
1610 IF det1 = 0 THEN GOTO 1700
1620 REM krijon identitetin duke shumezuar cdo resht me te kundertin e
1630 REM e elementit ne diagonale te matrices se perpunuar
1640 FOR i = 1 TO iroë
1650 div = e1(i, i)
1660 FOR j = 1 TO icol
1670 e1(i, j) = e1(i, j) / div
1680 NEXT j
1690 NEXT i
1700 return
1750 end
SUBROUTINE GAUSSJ(A,N,NP,B,M,MP)
PARAMETER (NMAX=50)
DIMENSION A(NP,NP),B(NP,MP),IPIV(NMAX),INDXR(NMAX),INDXC(NMAX)
DO 11 J=1,N
IPIV(J)=0
11 CONTINUE
DO 22 I=1,N
BIG=0.
DO 13 J=1,N
IF(IPIV(J).NE.1)THEN
DO 12 K=1,N
IF (IPIV(K).EQ.0) THEN
IF (ABS(A(J,K)).GE.BIG)THEN
BIG=ABS(A(J,K))
IROË=J
ICOL=K
ENDIF
ELSE IF (IPIV(K).GT.1) THEN
PAUSE 'Singular matrix'
ENDIF
12 CONTINUE
ENDIF
13 CONTINUE
IPIV(ICOL)=IPIV(ICOL)+1
IF (IROË.NE.ICOL) THEN
DO 14 L=1,N
DUM=A(IROË,L)
A(IROË,L)=A(ICOL,L)
A(ICOL,L)=DUM
14 CONTINUE
DO 15 L=1,M
38
DUM=B(IROË,L)
B(IROË,L)=B(ICOL,L)
B(ICOL,L)=DUM
15 CONTINUE
ENDIF
INDXR(I)=IROË
INDXC(I)=ICOL
IF (A(ICOL,ICOL).EQ.0.) PAUSE 'Singular matrix.'
PIVINV=1./A(ICOL,ICOL)
A(ICOL,ICOL)=1.
DO 16 L=1,N
A(ICOL,L)=A(ICOL,L)*PIVINV
16 CONTINUE
DO 17 L=1,M
B(ICOL,L)=B(ICOL,L)*PIVINV
17 CONTINUE
DO 21 LL=1,N
IF(LL.NE.ICOL)THEN
DUM=A(LL,ICOL)
A(LL,ICOL)=0.
DO 18 L=1,N
A(LL,L)=A(LL,L)-A(ICOL,L)*DUM
18 CONTINUE
DO 19 L=1,M
B(LL,L)=B(LL,L)-B(ICOL,L)*DUM
19 CONTINUE
ENDIF
21 CONTINUE
22 CONTINUE
DO 24 L=N,1,-1
IF(INDXR(L).NE.INDXC(L))THEN
DO 23 K=1,N
DUM=A(K,INDXR(L))
A(K,INDXR(L))=A(K,INDXC(L))
A(K,INDXC(L))=DUM
23 CONTINUE
ENDIF
24 CONTINUE
RETURN
END
Ushtrime:
1. Të zgjidhen me metodën e Gausit, dhe me metodën e Gaus-Jordan sistemet e
mëposhtëme të ekuacioneve:
a) 3x1 + 2x2 + 2x3 = 8 b) 4x1 + 4x2 + x3 = 10 c) 3x1 +8x2 -4x3 +x4 = 35
x2+ x3 = 4 x1 + 2x2 = 8 2x2 + x3 -3x4 = 27
x1 + 3x3 =5 x1 + x2 + x3 = 9 11x1 +5x4 = 20
39
x3 + x4 = 9
Përfundimet:
a) x1=0, x2=7/3, x3=5/3 b) x1=-7.33, x2=7.667 , x3=8.67 c) x1=1.9676, x2=8.3426, x3=9.3287,
x4=-0.3287
2.4 Metoda e LU-dekompozimit
Metoda e eliminimit e Gausit dhe e Gaus-Jordani-it kanë dizavantazhin sepse ana e djathtë e
ekuacioneve të sistemit duhet transformuar para se të gjejmë të panjohurat. Metoda që do
shqyrtojmë tani nuk ka këtë dizavantazh.
Në bazë të një teoreme të algjebrës nxiret një rjedhim që ne nuk do ta provojmë këtu, por
do ta shfrytëzojmë atë. Sipas këtij rjedhimi çdo matricë e kthyeshme A (pra që e ka
determinantin të ndryshëm nga zero) mund të zbërthehet si produkt i dy matricave :
A = L·U (4.1)
ku, L është një matricë trekëndore e poshtëme (në anglisht loëer, prandaj shënohet me L), pra
që i ka zero gjithë elementët mbi diagonale; ndërsa matrica U është një matricë trekëndore e
sipërme (në anglisht : upper, prandaj shënohet me U) , pra që i ka zero të gjithë elementët
poshtë diagonales . Barazimi (4.1) do shkruhej :
11
22
12 11 12 13 1
21 22 23 2
31
21
31 32 33
n1 n2 n3
11 13
22 23
33
nn
0 0 .... 0 0 ... 0
0.........
..... 00 ..... 00 0 ...... 0..........0 0 0 .......
..... .....
...
... nn
n
n
a a a aa a a aa a a a
a a a a
n
n n n nn
32 33 3
1 2 3
.....
.....
.......... (4.2)
Ky sistem ekuacionesh, mund të shkruhet :
A·x = ( L·U)·x = L·(U·x) = b (4.3)
i cili sillet në dy sisteme ekuacionesh. Në fillim zgjidhet sistemi:
L·y = b (4.4)
mandej zgjidhet sistemi:
U·x = y (4.5)
Kjo quhet metoda e LU dekompozimit, avantazhi i saj është se të dy sistemt që zgjidhen e
kanë matricën trekëndore , pra zgjidhja e tyre është triviale, për të parin:
yb
y b y i ni
ii
i ij jj
i
1
1
111
112 3, ...... ku , ... (4.6)
ndërsa për të dytin:
xy
x y x i n nn
n
nn
i
ii
i ij jj i
i n
, ...... ku 1
1 2 11
, ,... (6.7)
Këto zgjidhje kërkojnë n2 veprime që janë shumëzime dhe mbledhje.
Problemi është se si ta ndajmë matricën si produkt i dy matricave L U = A . Këtë
produkt e shkruajmë në elementë të tij:
i1 1j + i2 2j + ... in nj = aij (4.8)
ku numri i termave në këtë sistem varet nga fakti se cili nga indekset i dhe j është më i vogël.
Ka tre raste të mundëshme:
1) i<j atëhere i1 1j + i2 2j + ... ii ij = aij sepse ii+1 , ii+2 etj janë zero
2) i=j atëhere i1 1j + i2 2j + ... ii jj = ajj sepse ii+1 , ii+1 etj janë zero
40
3) i>j atëhere i1 1j + i2 2j + ... ij jj = aij sepse ij+1 , ij+2 etj janë zero
Këtu kemi gjitsejt n2 ekuacione , por të panjohura janë n(n+1) (të panjohurat janë elementët
e matricave L dhe U . Me që numri i të panjohurave është më i madh se numri i
ekuacioneve, atëhere n - të panjohura i përcaktojmë arbitrarisht dhe përpiqemi të zgjidhim të
tjerët. Në fakt është gjithnjë e mundur të marrim :
4) ii =1 , për të gjitha i =1,2,....n
Me këtë zgjedhje LU dekompozimi i matricës A bëhet i vetëm.
Ka një algoritëm që njihet si algoritmi i Crout-it , që i zgjidh n(n+1)ekuacionet 1),2),3),4) të
mësipërm duke i renditur ekuacionet si më poshtë:
- bëhet 11 =1 dhe 11 = a11 ,
prej barazimit 4) duke bërë j=1 , gjejmë : i1 = ai1 / 11 = ai1 / a11
- Për çdo j=2,3,... n kryejmë këto dy procedura:
a)për çdo i=1,2,...j , duke përdorur barazimet 1), 2), 4) , gjejmë :
ij ij ik kj
k
i
a1
1
(4.9)
(kur i=1 , në këtë shumë nuk ka terma, pra shuma është zero dhe 1j = a1j
b) për çdo i=j+1,j+2, ....n , duke përdorur barazimin 3) , gjejmë :
ij
jj
ij ik kj
k
i
a1
1
1
( ) (4.10)
Pasi i kryejmë të dy procedurat për çdo j gjenden të gjithë elementët ij dhe ij .
Psh. j
i a
i a aa
aa2
1
2
12 12
22 21 12 22
21
11
12
22
j
i a
i a
etj
2
31
41
23
22
32 31 12
22
42 41 12
42
( )
( )
....
j = 3.... etj .
Pra në çdo hap hyjnë elementë që janë gjetur në hapat parardhës. Gjithashtu vihet re se çdo
element aij përdoret në llogaritje vetëm një herë. Prandaj vlerat e elementeve ij dhe ij mund
të ruhen në vendin që zinte aij (elementët diagonalë ii nuk ruhen fare sepse dihet që janë 1).
Pra algoritmi i Crout-it mbush një matricë ku elementet janë të matricës [ ] dhe [ ]:
11 12 13 1
21 22 23 2
31 32 33 3
1 2 3
..... .....
.....
.....
n
n
n
n n n nn
.......... (4.11)
Pivotimi, dmth zgjedhja e elementit që pjeston në barizimet (4.10), është esencial për metodën
e Crout-it për stabilitetin e algoritmit . Një pivotim i pjesëshëm (ndryshimi i rreshtave) mund
të jetë efikas.Pra ne nuk dekompozojmë matricën A në LU por dekompozojmë matricën e
fituar nga A me permutim rreshtash dhe nëse ne e kemi ruajtur (ndjekur) se çfarë permutimi
41
është bërë atëherdekompozimi është po aq i dobishëm sa do ishte dekompozimi i matricës
origjinale).
Vërrejmë se barazimet (4.9) në rastin kur i = j janë të njëjtë me barazimet (4.10) veçse në
këta të fundit është bërë pjestimi. Në të dy rastet kufiri i sipërm i shumimit është k = j-1
(=i-1) . Kjo dmth që ne nuk kemi nevojë të zgjedhim për element të diagonales , elementin
jj që ndodhet në diagonale qysh në fillim apo elementin (e papjestuar) ij nën të në kolonën i
=j+1, j+2,...n. Kjo mund të vendoset pasi ti kemi të gjithë kandidatët e një kollone. Siç mund
të merret me mend , ne do zgjedhim elementin më të madh të tyre si diagonal të (elementi
pivotues) dhe pastaj bëjmë pjestimet me këtë element . Ky është një pivotim i pjesëshëm . Në
programin që jepet më poshtë është bërë edhe një diçka shtesë : fillimisht gjendet elementi
më i madh në çdo resht dhe më pas (kur kërkohet elementi maksimal pivotues) shkallëzohet
krahasimi sikur ne ti kishim shkallëzuar fillimisht gjithë ekuacionetqë ta kishin koeficientin
maksimal me 1 ; ky quhet pivotim implicit. Në program bëhet dekompozimi LU i matricës
input A me n n elementë. Madhësia INDX është vektori output që ruan permutimin e
rreshtave të shkaktuar nga pivotimi i pjesëshëm., D është + ose -1 nëse numri i përkëmbimeve
të rreshtave është çift ose tek respektivisht. Rezultati është matrica A është mbushur si (4.11).
Në variantin FORTRAN të këtij programi, dekompozimi i matricës bëhet nga subrutina
LUDCMP ndërsa llogaritja e të panjohurave bëhet nga subrutina LUBKSB dhe rruga për
zgjidhjen e sistemit të ekuacioneve:
A·x = b ; është :
CALL LUDCMP(A,N,NP,INDX,D)
CALL LUBKSB(A,N,NP,INDX,B)
Rezultati për x do të dalë ne B, ndërsa matrica fillestare A do të jetë prishur.Nëse duam të
zgjidhim të sistem ekuacionesh me të njëjtën matricë A, por me anë të djthtë b të ndryshme ,
mjafton të përsëritet komanda:
CALL LUBKSB(A,N,NP,INDX,B)
natyrisht jo me matricën origjinale A si input, por me matricën A që ka dalë nga LUDCMP
LU dekompozimi në subrutinën LUDCMP kërkon rreth N3 /3 ekzekutime të ciklit të
bredëshëm , ku secili cikël ka një shumëzim dhe një mbledhje . Kështu që ka 3 herë më pak
veprime sesa metoda e Gauss-Jordan-it
Programi LUDCMP
10 REM Programi ben ndarjen e matrices A(n,n) ne LU-dekompozimin
20 REM dhe pastaj gjen te panjohurat e sistemit te ekuacioneve
30 NMAX = 100
40 TINY = 1E-20
50 PRINT "Sa eshte numri i ekuacioneve?"
60 INPUT np
65 n = np
70 DIM a(np, np), INDX(n), vv(NMAX)
74 FOR l = 1 TO n
75 FOR m = 1 TO n
76 PRINT "Sa eshte elementi"; l; m
77 INPUT a(l, m)
78 NEXT m
79 NEXT l
80 D = 1!
90 FOR i = 1 TO n
42
100 AAMAX = 0!
110 FOR j = 1 TO n
120 IF ABS(a(i, j)) > AAMAX THEN AAMAX = ABS(a(i, j))
130 NEXT j
140 IF AAMAX = 0 THEN 150 ELSE 170
150 PRINT "Matrica eshte singulare"
160 GOTO 1000
170 vv(i) = 1! / AAMAX
180 NEXT i
190 FOR j = 1 TO n
200 IF j > 1 THEN 210 ELSE 310
210 FOR i = 1 TO j - 1
220 SUM = a(i, j)
230 IF i > 1 THEN 240 ELSE 290
240 FOR k = 1 TO i - 1
250 SUM = SUM - a(i, k) * a(k, j)
260 NEXT k
270 a(i, j) = SUM
290 REM
300 NEXT i
310 REM
320 AAMAX = 0!
330 FOR i = j TO n
340 SUM = a(i, j)
350 IF j > 1 THEN 360 ELSE 400
360 FOR k = 1 TO j - 1
370 SUM = SUM - a(i, k) * a(k, j)
380 NEXT k
390 a(i, j) = SUM
400 REM
410 DUM = vv(i) * ABS(SUM)
420 IF DUM > AAMAX OR DUM = AAMAX THEN 430 ELSE 450
430 IMAX = i
440 AAMAX = DUM
450 REM
460 NEXT i
470 IF j > IMAX OR j < IMAX THEN 480 ELSE 550
480 FOR k = 1 TO n
490 DUM = a(IMAX, k)
500 a(IMAX, k) = a(j, k)
510 a(j, k) = DUM
520 NEXT k
530 D = -D
540 vv(IMAX) = vv(j)
550 REM
560 INDX(j) = IMAX
570 IF j > n OR j < n THEN 580 ELSE 630
580 IF a(j, j) = 0 THEN a(j, j) = TINY
590 DUM = 1! / a(j, j)
43
600 FOR i = j + 1 TO n
610 a(i, j) = a(i, j) * DUM
620 NEXT i
630 REM
640 NEXT j
650 IF a(n, n) = 0 THEN a(n, n) = TINY
700 REM Ketu fillon gjetja e te panjohurave
710 DIM b(n)
720 FOR ik = 1 TO n
730 PRINT " Sa eshte ana e djathte per ekuacionin e"; ik; "-te"
740 INPUT b(ik)
745 NEXT ik
750 II = 0
760 FOR i = 1 TO n
770 LL = INDX(i)
780 SUM = b(LL)
790 b(LL) = b(i)
800 IF II > 0 OR II < 0 THEN 810 ELSE 840
810 FOR j = II TO i - 1
820 SUM = SUM - a(i, j) * b(j)
830 NEXT j
835 GOTO 870
840 REM
850 IF SUM > 0 OR SUM < 0 THEN 860 ELSE 870
860 II = i
870 REM
880 b(i) = SUM
890 NEXT i
900 FOR i = n TO 1 STEP -1
910 SUM = b(i)
920 IF i < n THEN 930 ELSE 960
930 FOR j = i + 1 TO n
940 SUM = SUM - a(i, j) * b(j)
950 NEXT j
960 REM
970 b(i) = SUM / a(i, i)
980 NEXT i
990 FOR kk = 1 TO n
995 PRINT "x("; kk; ")="; b(kk)
997 NEXT kk
1000 END
SUBROUTINE LUDCMP(A,N,NP,INDX,D)
PARAMETER (NMAX=100,TINY=1.0E-20)
DIMENSION A(NP,NP),INDX(N),VV(NMAX)
D=1.
DO 12 I=1,N
AAMAX=0.
DO 11 J=1,N
44
IF (ABS(A(I,J)).GT.AAMAX) AAMAX=ABS(A(I,J))
11 CONTINUE
IF (AAMAX.EQ.0.) PAUSE 'Singular matrix.'
VV(I)=1./AAMAX
12 CONTINUE
DO 19 J=1,N
IF (J.GT.1) THEN
DO 14 I=1,J-1
SUM=A(I,J)
IF (I.GT.1)THEN
DO 13 K=1,I-1
SUM=SUM-A(I,K)*A(K,J)
13 CONTINUE
A(I,J)=SUM
ENDIF
14 CONTINUE
ENDIF
AAMAX=0.
DO 16 I=J,N
SUM=A(I,J)
IF (J.GT.1)THEN
DO 15 K=1,J-1
SUM=SUM-A(I,K)*A(K,J)
15 CONTINUE
A(I,J)=SUM
ENDIF
DUM=VV(I)*ABS(SUM)
IF (DUM.GE.AAMAX) THEN
IMAX=I
AAMAX=DUM
ENDIF
16 CONTINUE
IF (J.NE.IMAX)THEN
DO 17 K=1,N
DUM=A(IMAX,K)
A(IMAX,K)=A(J,K)
A(J,K)=DUM
17 CONTINUE
D=-D
VV(IMAX)=VV(J)
ENDIF
INDX(J)=IMAX
IF(J.NE.N)THEN
IF(A(J,J).EQ.0.)A(J,J)=TINY
DUM=1./A(J,J)
DO 18 I=J+1,N
A(I,J)=A(I,J)*DUM
18 CONTINUE
ENDIF
45
19 CONTINUE
IF(A(N,N).EQ.0.)A(N,N)=TINY
RETURN
END
SUBROUTINE LUBKSB(A,N,NP,INDX,B)
DIMENSION A(NP,NP),INDX(N),B(N)
II=0
DO 12 I=1,N
LL=INDX(I)
SUM=B(LL)
B(LL)=B(I)
IF (II.NE.0)THEN
DO 11 J=II,I-1
SUM=SUM-A(I,J)*B(J)
11 CONTINUE
ELSE IF (SUM.NE.0.) THEN
II=I
ENDIF
B(I)=SUM
12 CONTINUE
DO 14 I=N,1,-1
SUM=B(I)
IF(I.LT.N)THEN
DO 13 J=I+1,N
SUM=SUM-A(I,J)*B(J)
13 CONTINUE
ENDIF
B(I)=SUM/A(I,I)
14 CONTINUE
RETURN
END
Ushtrim: Zgjidhni ushtrimet e paragrafit të mëparshëm me metodën e LU-dekompozimit.
2.5 Inversioni i matricës dhe përcaktori i saj
Duke përdorur LU dekompozimin që u sqyrtua në paragrafin e mëparshëm, është shumë e
lehtë të gjendet matrica inverse e një matrice të dhënë, pra matrica A-1
e tillë që :
A·A-1
=I ku I është matrica diagonale njësi (pra që ka vetëm elemntët e diagonales 1 dhe të
tjerët 0). Duke ditur rregullin e produktit të dy matricave:
a aik kj ij
k
n( )1
1
(5.1)
(ku ij është simboli i Kroneker-it, ij =1 nëqoftëse i=j dhe ij =0 nëqoftëse i j ), atëhere
elementët e matricës së kundërt a(-1)
kj genden duke zgjidhur n herë sistemin e ekuacioneve
(5.1), ku çdo herë është fiksuar indeksi j ( j=1,2,3...n) dhe numurimi i ekuacioneve bëhet nga
indeksi i
(i=1,2,3...n). Në variantin BASIC të LU dekompozimit duhet hapur fillimisht cikli për që
numëron sistemet e ndryshme dhe mandej pas zgjidhjes çdo herë të sistemit duhen futur
46
rezultatet e të panjohurave jo në vektorin b por në një një matricë që duhet dimensionur qysh
në fillim . Këto modifikime në program bëhen lehtë.
Ndërsa në variantin FORTRAN të LU dekompozimit, mjafton të kombinojmë subrutianat si
më poshtë:
DIMENSION A(NP,NP),Y(NP,NP),INDX(NP)
.......
DO 12 I=1,N
DO 11 J=1,N
Y(I,J)=0.
11 CONTINUE
Y(I,I)=1
12 CONTINUE
CALL LUDCMP(A,N,NP,INDX,D)
DO 13 J=1,N
CALL LUBKSB(A,N,NP,INDX,Y(I,J))
13 CONTINUE
Këtu duket se dekompozimi bëhet vetëm njëherë sepse matrica A është e njëjtë për të gjithë
sistemet ndërsa llogaritja e të panjohurave (subrutina LUBKSB) bëhet N herë dhe çdo herë
vektori Y(I,J) është kollona e J-të e matricës Y(I,J). Si përfundim matrica Y përmban
inversin e matricës origjinale A.
Në metodën e LU dekompozimit , përcaktori i matricës është thjeshtë produkti i elementeve
të diagonales :
det( )A jj
j
N
1
(5.2)
duhet të kemi parasysh që në këtë prodhim ne llogaritim jo përcaktorin e matricës origjinale ,
por përcaktorin e një matrice që është fituar nga ajo origjinale pas disa permutimesh të
rreshtave. Por në metodën e LU dekompozimit ne e dimë nëse kemi bërë një numër tek apo
çift permutimesh . Me që për çdo permutim të rreshtave shenja e përcaktorit ndryshon në të
kundërt , atëhere numri D që shumëzon përcaktorin do jetë +1 ose -1 në varësi të numrit të
permutimeve çift apo tek respektivisht. Në varianti FORTRAN , mjafton që të thirret vetëm
një herë subrutina LUDCMP për të llogaritur përcaktorin:
DIMENSION A(NP,NP),INDX(NP)
......
CALL LUDCMP(A,N,INDX,D)
DO 11 J=1,N
D=D*A(J,J)
11 CONTINUE
dhe tashmë D është përcaktori i matricës origjinale.
Ndërsa në variantin BASIC të LU dekompozimit mjafton të shtojmë reshtat përkatës pas
dekompozimit të matricës dhe para llogaritjes së të panjohurave të një sistemi ekuacionesh.
Ushtrime:
1. Të gjendet përcaktori i matricës:
3 7 59 0 10 4 3
47
2. Të gjendet inversi i matricës:
a) 3 1 60 2 51 1 1
b)
6 0 9 13 2 0 21 1 0 17 4 3 8
2.6 Sisteme ekuacionesh tridiagonalë
Një rast i veçantë i sistemit të ekuacioneve lineare është sistemi i ashtuquajtur tridiagonal,
në të cilin matriac kryesore A ka të ndryshëm nga zero vetëm elementet e diagonales dhe
elementet e mbi (plus një kollonë) ose nën (minus një kollonë) diagonale dhe gjithë elementët
e tjerë i ka zero. Ky sistem ekuacionesh ndeshet shpesh në praktikë. Pra sistemi i ekuacioneve
ka formën:
ba b c
a b
a b ca b
uuu
uu
rrr
rr
N N N
N N
N
N
N
N
1
2 2
3 3
1 1 1
1
2
3
1
1
2
3
1
0
1
2
c 0 ... 0 0 0 ... 0 0 0
0 ... 0 0 0.........0 0 0....
0 0... 0
.. .. (6.1)
Vini re që a1 dhe cN nuk hyjnë në ekuacione, pra edhe në rutinat e llogaritjes që paraqiten në
BASIC(ato mind të futen zero) dhe FORTRAN:
10 REM Programi zgjidh nje sistem ekuacionesh tridiagonale
20 REM Te panjohrat jane ne vektorin U, ndersa input jane vektoret A,B,C
30 REM te cilat jane elementet e diagonales dhe mbi e nen diagonale
40 REM Ndersa R eshte vektori i anes se djathte.
50 PRINT "sa eshte numri i ekuacioneve?"
60 INPUT N
70 DIM GAM(N), A(N), B(N), C(N), R(N), U(N)
80 FOR I = 1 TO N
85 PRINT "SA JANE VLERAT E A("; I; "),B("; I; "),C("; I; "),R("; I; ")?"
90 INPUT A(I), B(I), C(I), R(I)
100 NEXT I
110 IF B(1) = 0 THEN 120 ELSE 140
120 PRINT "DUHET TA RISHKRUANI EKUACIONET E RENDIT N-1 , ME U(2) TE
ELIMINUAR"
130 GOTO 300
140 BET = B(1)
150 U(1) = R(1) / BET
160 FOR J = 2 TO N
170 GAM(J) = C(J - 1) / BET
180 BET = B(J) - A(J) * GAM(J)
190 IF BET = 0 THEN 200 ELSE 220
200 PRINT "ALGORITMI NUK ECEN"
210 GOTO 300
220 U(J) = (R(J) - A(J) * U(J - 1)) / BET
230 NEXT J
48
240 FOR J = N - 1 TO 1 STEP -1
250 U(J) = U(J) - GAM(J + 1) * U(J + 1)
260 NEXT J
270 FOR I = 1 TO N
280 PRINT "U("; I; ")="; U(I)
290 NEXT I
300 END
SUBROUTINE TRIDAG(A,B,C,R,U,N)
PARAMETER (NMAX=100)
DIMENSION GAM(NMAX),A(N),B(N),C(N),R(N),U(N)
IF(B(1).EQ.0.)PAUSE
BET=B(1)
U(1)=R(1)/BET
DO 11 J=2,N
GAM(J)=C(J-1)/BET
BET=B(J)-A(J)*GAM(J)
IF(BET.EQ.0.)PAUSE
U(J)=(R(J)-A(J)*U(J-1))/BET
11 CONTINUE
DO 12 J=N-1,1,-1
U(J)=U(J)-GAM(J+1)*U(J+1)
12 CONTINUE
RETURN
END
Në algoritmin TRIDAG nuk ka pivotim . Prandaj ky algoritëm mund të dështojë edhe kur
matrica nuk është singulare: një element pivotimi zero mund të ndeshet edhe kur matrica nuk
është singulare. Por në praktikë zakonisht matrica ka elementë të tillë që plotësojnë kushtet
|bj| > |aj| + |cj|
që quhet maticë me diagonale dominuese , për të cilën algoritmi nuk mund të ndeshë ne
elementë pivot zero. Po këstu mund të ketë veti të tjera që e pengojnë ndeshjen e elementit
pivot zero. Nëse në ndonjë rast nuk ka veti të tilla dhe algoritmi nuk ecën duhet dedektuar se
ku ndeshet ky element pivot zero dhe duhet kryer procedura e eliminimeve të njëpasnjëshme.
2.7 Metodat Iterative
Metodat iterative përbëjnë një klasë të rëndësishme për zgjidhjen e sistemeve të
ekuacioneve lineare me përmasa të mëdha. Të tilla siteme lindin gjatë zgjidhjes së ekucianeve
diferenciale me derivate të pjesëshme. Zakonisht , sisteme të tilla ekiuacionesh që lindin
gëzojnë veti që e lehtësojnë zgjidhjen e tyre. Kështu psh, matricat e tyre janë të rralla dmth
vetëm një pjesë e vogël e elementeve të tyre janë të ndryshëm nga zero. Në shumicën e rasteve
ato janë simetrike dhe pozitivisht të përcaktuara. Shpesh herë elementet aij të matricës nxirren
me anë formulash të thjeshta pa patur nevojë që të ruhen gjithë vlerat e tyre. Këto veti
shfrytëzohen për zgjidhjen e sistemit të ekuacioneve.
Le të jetë sistemi i ekuacioneve: A·x = b me matricë A = ( aij )n n të kthyeshme (pra
që e ka përcaktorin të ndryshëm nga zero). Duke u nisur nga një një përafrim fillestar x(0)
, në
49
përgjithësi e çfardoshme, ndërtohet vargu i vektorëve x(1)
, x(2)
, ... x(k)
me anë të formulave
rekurente:
x(k+1)
= x(k)
+C(k+1)
·( b · A · x(k)
) (7.1)
ku C(1)
, C(2)
, ... C(k)
është një varg matricash të njohura. Për zgjedhje të ndryshme të vargut
të natricave C(k)
ka metoda të ndryshme iterative, të tilla që zgjidhja e fituar pas çdo
iteracioni ti afrohet zgjidhjes së saktë, pra të konvergjojë tek zgjidhja e saktë. Psh një metodë
mund të jetë duke zgjedhur C(k)
= C= konstante. Atëhere :
x(k+1)
= T · x(k)
+ f (7.2)
ku T = I - C·A ( I është matrica diagonale njësi) dhe f = C · b , T - quhet matricë e kalimit
e metodës së zgjedhur. Krahas kushtit që A të jetë e ktyeshme do supozojmë që të gjithë
elementet e saj të diagonales të jenë të ndryshëm nga zero. E paraqesim matricën A në formën:
A = D - E - F
ku D =
aa
ann
11 0 ... 00 ... 0.....0 0 ...
22 , E =
0
0
21
1 2
0 ... 0 0 ... 0
..... ...
a
a an n
, F =
0 12 1
1
... 0 0 ... .....0 0 ... 0
a aa
n
n
Atëhere ekuacioni A · x = b shkruhet në trajtën : D · x = ( E + F ) ·x + b dhe meqë aii
( i =1,2,..n ) janë të ndryshëm nga zero, marim:
a x a x bii i
k
ij j
k
jj i
n
i
( ) ( )1
1
(7.3)
ku i=1,2,..n dhe k 0 , x(0)
i është zgjidhja fillestare, dhe
xa
ax
b
ai
k ij
ii
j
k
jj i
ni
ii
( ) ( )1
1
, ose në trajtë matricore:
x(k+1)
= D-1
· (E+F)·x(k)
+ D-1
· b (7.4)
Kjo metodë njihet si metoda iterative pikësore e Jakobit, me matricë kalimi
T = D-1
· ( E + F ).
Në këtë metodë , njehësimi i vektorit x(k+1)
kërkon të kemi të ruajtura vlerat e vektorit të
mëparshëm x(k)
. Për ta mënjanur këtë në llogaritjen e elementit x(k+1)
i përdoren jo elementët
x(k)
j (j=1,2..n) , por elementët e llogaritur më parë të metodës së Jakobit x(k+1)
j (j=1,2...i-1).
Kjo rezulton një metodë tjetër iterative:
a a x a x bi
k
ij j
k
j
i
ij j
k
j i
n
i
( ) ( ) ( )1 1
1
1
1
(7.5)
ku i=1,2...n dhe k 0 , ose në trajtë matricore :
(D - E)· x(k+1)
= F · x(k)
+ b
x(k+1)
= (D - E )-1
· F · x(k)
+ (D - E )-1
· b (7.6)
Kjo quhet metoda iterative e Gaus-Zejdel-it dhe matrica e saj e kalimit është :
T = (D - E )-1
· F
Konkretisht , algoritmi për sistemin e ekuacioneve :
a x a x a x ba x a x a x b
a x a x a x b
n n
n n
n n nn n n
11 1 12 2 1 1
21 1 22 2 2 2
1 1 2 2
......
.........
(7.7)
50
përbëhet nga hapat e mëposhtëm. Supozojmë se i kemi ruajtur koeficientët para të
panjohurave xj në mënyrë të tillë që koeficienti ajj të jetë më i madh se koeficientët e tjerë të
reshtit përkatës dhe nxjerrim:
x1 = ( b1 - a12 x2 - a13 x3 - ... a1n xn )/a11.
x2 = ( b2 - a21 x1 - a23 x3 - ... a2n xn )/a22
...... (7.8)
xn = ( bn - an1 x1 - an2 x2 - ... ann-1 xn-1 )/ann
Vlerësimin e parë të të panjohurave e bëjmë sipas rradhës:
xb
ax
ab a x x
ab a x a x x
ab a x a xn
nn
n n nn n1
1
11
2
22
2 21 1 3
33
3 31 1 32 2 1 1 1 1
1 1 1, , ( ) ( ), .... ( ... )
Këto zgjidje shërbejnë si input për ti rizgjidhur ekuacionet (9.8) dhe procesi vazhdon në
mënyrë iterative deri në një sa zgjidhja e rradhës ndryshon nga zgjidhja paraardhëse nën një
tolerancë të caktuar. Procedura mund të mos konvergjojë , prandaj vendoset një limit në
numrin e iteracioneve ose kontrollohet konvergjenca. Më poshtë po japim programin në
BASIC që realizon procedurën e Gaus-Zeidel-it.
10 REM metoda Gaus-Seidel per zgjidhjen e sistemit te ekuacioneve lineare
20 PRINT "Sa eshte numri i ekuacioneve : "
30 INPUT n
40 DIM a(n, n), b(n), id(n), x(n)
50 FOR i = 1 TO n
60 FOR j = 1 TO n
65 PRINT "fut vleren e radhes se a(i,j)"
70 INPUT a(i, j)
80 NEXT j
85 PRINT "fut vleren e radhes se b(i) "
90 INPUT b(i)
100 NEXT i
110 INPUT "Sa eshte kufiri i konvergjences";e
120 PRINT
130 INPUT "A deshironi ta shihni rezultatin e cdo iteracioni?(p/j)";T$
140 REM Gjen koeficientin me te madh ne cdo ekuacion
150 FOR i = 1 TO n
160 FOR j = 1 TO n
170 IF j <> 1 THEN 210
180 maxi = ABS(a(i, j))
190 id(i) = j
200 GOTO 235
210 IF ABS(a(i, j)) < maxi THEN GOTO 240
220 maxi = ABS(a(i, j))
230 id(i) = j
235 NEXT j
240 next i
250 REM cvendosen rreshtat qe te dali vlera me e madhe ne diagonale
260 FOR i = 1 TO n - 1
51
270 IF id(i) = 1 THEN GOTO 420
280 FOR ii = i TO n
290 IF id(ii) <> i THEN GOTO 320
300 jj = ii
310 GOTO 330
320 NEXT ii
330 FOR j = 1 TO n
340 d = a(jj, j)
350 a(jj, j) = a(i, j)
360 a(i, j) = d
370 NEXT j
380 d = b(i)
390 b(i) = b(jj)
400 b(jj) = d
410 id(jj) = id(i)
420 NEXT i
430 REM procedura e Gaus-Seidel-it
440 REM gjenden perfarimet fillestare
450 FOR j = 1 TO n
460 sum = 0
470 IF j = 1 GOTO 510
480 FOR i = 1 TO j - 1
490 sum = sum + x(i)
500 NEXT i
510 x(j) = (b(j) - sum) / a(j, j)
520 NEXT j
530 ik = 0
540 k% = 1
550 ik = ik + 1
560 IF ik > 100 THEN GOTO 820
570 FOR i = 1 TO n
580 sum = 0
590 FOR j = 1 TO n
600 IF i = j GOTO 620
610 sum = sum + a(i, j) * x(j)
620 NEXT j
630 xx = x(i)
640 x(i) = (b(i) - sum) / a(i, i)
650 IF ABS(xx - x(i)) > e THEN k% = 2
660 NEXT i
670 IF T$ = "j" THEN GOTO 740
680 PRINT
690 PRINT "Per iteracionin me numer ";ik
700 FOR i = 1 TO n
710 PRINT "x("; i; ")="; x(i)
720 NEXT i
730 INPUT "Shtyp tasten Return per te vazhduar";F$
740 IF k% = 2 THEN GOTO 540
750 REM Konvergjenca ka ndodhur;printohen rezultatet
52
760 PRINT "Procedura ka konvergjuar"
770 PRINT "tek kjo zgjidhje"
780 FOR i = 1 TO n
790 PRINT "x("; i; ")=";x(i)
800 NEXT i
810 GOTO 830
820 PRINT "Nuk ka konvergjence pas 100 iteracionesh"
830 END
Ushtrime:
1. Të zgjidhen me metodën Gaus-Zeidel, sistemet e ekuacioneve:
a) x1 + 8x2 + 2x3 = 4 b) x1 +14x2 +3x3 +6x4 = 25 c) 2x1 +2x2 + x3 - x4 = 7
9x1 + x2 - x3 = 15 10x1 +2x2 - x3 -2x4 = 18 x1 -3x2 +2 x3 -2x4 = 5
2x2 + 6x3 = 9 -x1 - 4x2 + 12x3+2x4 = 31 3x1 +x2 - x3 + x4 = 6
2x1 + 3x2 + x3 +8x4 = 14 x1 - x2 + 2x3 +4x4 = 9
2.8 Përmirësimi iterativ i zgjidhjes së ekuacioneve lineare
Me çfardo metode të zgjidhjes së sistemit të ekuacioneve lineare , nuk mund të fitohet
zgjidhje me saktësi më të madhe se sa saktësia e përafrimit të numrave në kompjuter. Për fat
të keq, për numër të madh ekuacionesh, nuk është lehtë të arrihet as kjo saktësi . kjo për arësye
të akumulimit të gabimeve të rumbullakimit të numrave në kompjuter, tq cilat zmadhohen
sidomos kur matrica e sistemit të ekuacioneve është shumë afër matricës singulare ( matricë e
pakthyeshme).
Për të arritur saktësi të paktën sa saktësia e kompjuterit, ka një mënyrë që quhet
përmirësimi iterativ i zgjidhjes.
Supozojmë se x është zgjidhja e saktë e sistemit të ekuacioneve:
A·x = b (8.1)
Ne njohim një zgjidhje x+ x ku x është gabimi. Kur shumëzon matricën A me këtë
zgjidhje atëhere merret ana e djathtë e ndryshuar paksa:
A·(x+ x) = b+ b (8.2)
ku A · x= b dhe b=A·(x+ x)-b , pra :
A· x=A·(x+ x)-b (8.3)
Në ekuacionin (8.3) , ana e djathtë njihet plotësisht me që x+ x është zgjidhja e gjetur që
duam të përmirësojmë . Duke e zgjidhur përsëri ekuacionin (8.3), gjendet x , e cila po ti
hiqet zgjidhjes x+ x do ta përmirësojë atë pra do ta afrojë tek zgjidhja e saktë. Për zgjidhjen e
ekuacionit (8.3) thërritet një nga procedurat e njohura dhe ekzekutohet ajo disa herë derisa
zgjidhja e rradhës ndryshon nga zgjidhja parardhëse më pak se një tolerancë e zgjedhur.
ZGJIDHJA NUMERIKE E SISTEMIT TE EKUACIONEVE JOLINEARE
2.9 Iteracioni me pikë të fiksuar
53
Para se të kalojmë në zgjidhjen numerike të një sistemi ekuacionesh jolinearë do të
shqyrtojmë një metodë për zgjidhjen numerike të një ekuacioni jolinear që quhet iteracioni me
pikë të fiksuar. Le të jetë ekuacioni jo linear:
f(x)=0 (9.1)
dhe le të formojmë një funksion g(x) të tillë që kur f(x)= 0 të sillet në g(x)=x, psh :
g(x)=x-f(x) ose g(x)=x+3f(x) etj.
Pikë e fiksuar e një funksioni të dhënë g(x) është një numër p i tillë që g(p)=p . Pra
problemi i gjetjes së pikës së fiksuar të funksionit g(x) është ekuivalent më zgjidhjen e
ekuacionit jolinear (9.1). Psh , ekuacioni sin x=0 sillet në gjetjen e pikës së fiksuar të
funksionit g(x)=x - sin x , i cili në segmentin [0,1] ka dy pika të fiksuara : x = 0 dhe x = 1 .
Ka një teoremë, për të cilën nuk do japim këtu vërtetimin, e cila na jep kushtet e
mjaftueshme të ekzistencës dhe unicitetit të pikës fikse.
Teoremë: Në qoftë se g(x) është një funksion i vazhduar në segmentin [a,b] dhe
g(x) [a,b], atëhere ai ka pikë fikse në këtë segment. Nëse |g’(x)| k <1, për çdo x (a,b),
atëhere pika e fiksuar në [a,b] është e vetme.
Për të gjetur numerikisht pikën fikse të funksionit g , zgjidhet një vlerë fillestare e përafërt
p0 dhe mandej gjenerohet sekuenca {pn } n=0 e tillë që pn = g(pn-1) për çdo n 1.
Nëse sekuenca konvergjon në p dhe g është i vizhdueshëm , atëhere provohet se :
p p g p g pn n n nlim (lim ) ( )1 (9.2)
dhe një zgjidhje e ekuacionit x=g(x) gjendet , në kushtet e teoremës së mësipërme kjo
zgjidhje është e vetme. Algoritmi i kësaj procedure është shkruar në programin në Basic
dhe është ilustruar në figurën (9.1)
Figura 9.1
Psh , ekuacioni x3
+ 4x2 -10 =0 ka një rrënjë të vetme në [0,1]. Ka shumë mënyra për ta sjellë
ekuacionin në formën x= g(x) , psh një mënyrë do ishte : x = ½ (10 - x )1/2
dhe për të fituar
zgjidhjen pozitive zgjedhim shenjën + . Por ka edhe mënyra të tjera disa nga të cilat janë
renditur më poshtë:
a. x = g1 (x) = x - x3 - 4x
2 + 10, b. x = g2 (x) = (10/x - 4x )
1/2 ,
54
c. x = g3 (x) = ½ (10 - x3 )
1/2 , d. x = g4 (x) = [10/(4+x)]
1/2 ,
e. x = g5 (x) = x - (x3 - 4x
2 + 10)/(3x
2 +8x) .
Duke përdorur algoritmin e mësipërm të shkruar në BASIC :
10 REM Programi gjen zgjidhjen e ekuacionit p=g(p) (iteracioni me pike fikse)
20 REM duke u nisur nga një perafrim p0 me saktesine TOL. Funksioni g(x) eshte
25 REM zgjedhur ne fillim x-(x^3+4x^2-10) , por mund te ndryshohet sipas
26 REM alternativave (10/x-4x)^1/2; 1/2(10-x^3)^1/2; [10/(4+x)]^1/2; x-(x^3+4x^2-
10)/(3x^2+8x)
27 REM per te zgjidhur numerikisht ekuacionin x^3+4*x^2-10=0 ne segmentin [1,2]
30 DEF fng (x) = x - (x ^ 3 + 4 * x ^ 2 - 10)
40 tol = .0001
50 nmax = 100
60 PRINT "Sa eshte vlera fillestare e p ?"
70 INPUT p0
80 FOR i = 1 TO nmax
90 p = fng(p0)
100 IF ABS(p - p0) < tol THEN 200
110 p0 = p
120 NEXT i
130 PRINT "Metoda deshtoi pas"; nmax; "iteracionesh"
140 GOTO 250
200 PRINT "pika fikse eshte x="; p
250 END
dhe rezultatet e tij janë paraqitur në tabelë për 5 rastet e ndryshme të zgjedhjes së funksionit
g(x). Nga kjo tabelë duket se zgjedhjet (c),(d) dhe (e) japin rezultate të shpejta (për këte rast
metoda e sekantes do jepte rezultat të po asaj saktësie pas n=27 iteracionesh), për rezultatin e
saktë që është 1.365230013. Ndërsa zgjedhja (a) divergjon ,pra nuk është zgjedhje e mirë dhe
zgjedhja (b) nuk ecën sepse kërkon gjetjen e rrënjës së një numri negativ.
55
2.10 Metoda e pikës fikse për sistemet e ekuacioneve jolineare
Sistemi i ekuacioneve jolineare ka formën:
f1(x1 , x2 , ... , xn )= 0
f2(x1 , x2 , ... , xn )= 0 . . (10.1) .
fn(x1 , x2 , ... , xn )= 0 ,
Ku seicili funksion fi mun të mendohet si funksion i vektorit x = (x1 , x2 , ...xn ) i hapësirës
n- dimensionale dhe sistemi i ekuacioneve (10.1) mund të shkruhet në trajtë vektoriale në këtë
hapësirë në formën:
F(x) =0 , (10.2)
ku vektori F ka për kordinata funksionet f1 , f2 , .... fn .
Limiti i funksionit f kur vektori x shkon drejt vektorit x0 quhet madhësia reale L e tillë që , për
çdo numër > 0 , ekziston një numër > 0 i tillë që:
| f (x ) - L | <
për çdo x që plotëson kushtin : 0 < || x - x0 || < . Ku me shenjën || ..|| kemi shënuar normën e
vektorit , që paërcaktohet: || x || = xii
n2
1
1 2/
. Ndërsa limitin e funksionit vektorial F(x) e
përcaktojmë si vektorin L :
lim ( , , ... , )x x0
F(x) = L = L L Ln1 2 , nëse ekzistojnë limitet:
lim x x0 fi (x ) = Li . Në mënyrë analoge me përcaktimin e pikës fikse për një funksion me një
variabël , përcaktohet pika fikse në hapësirën me n përmasa . Pra funksioni vektorai G ka
pikë fikse vektorin p nese G(p)=p . Më poshtë po japim pa vërtetim
56
Teoremë: Le të jetë zona në hapësirën n-dimensionale D = {(x1, x2, ...xn ) , ku ai xi bi për
çdo i =1,2,...n } ku a1 , a2 , ..., an dhe b1 , b2 , ..., bn janë konstante dhe funksioni G është i
vazhdueshëm në këtë zonë, atëhere G ka një pikë fikse në këtë zonë. Nëse G ka edhe
derivatet e pjesëshme të vazhduar në këtë zonë të tilla që : g
x
K
n
i
j
( )x (ku K<1) për çdo
x D , për çdo j =1,2,...n dhe çdo komponent gi , atëhere sekuenca {x(k)
}k=0 e përcaktuar
nga një x(0)
arbitrar nga D dhe nga relacioni : x(k)
= G (x(k-1)
) për çdo k 1, konvergjon në një
pikë fikse të vetme: p D dhe :
x p x x( ) ( ) ( )k
kK
K1
1 0 , (10.3)
ku norma e vektorit me indeksin përcaktohet si ||x|| = max {|xi | } për i=1,2,...,n .
Shembull : Le ta zemë se kemi sistemin e ekuacioneve lineare :
3x1 - cos (x2 x3) - 1/2 = 0
x12 - 81(x2 +0.1)
2 + sinx3 + 1.06 = 0 (104)
e x x1 2 + 20x3 + (10 -3)/3 = 0
Zgjidhja e këtij sistemi sillet në problemin e gjetjes se pikës fikse :
x x x
x x x
x e x x
1 2 3
2 1
2
3
3
1
3
1
61
9106 01
1
20
10 3
601 2
cos( )
sin . . (105)
të funksionit G (g1(x),g2(x),g3(x)) në hapësirën 3-dimensionale.
g x x x x x
g x x x x x
g x x x e x x
1 1 2 3 2 3
2 1 2 3 1
2
3
3 1 2 3
1
3
1
61
9106 01
1
20
10 3
601 2
( , , ) cos( )
( , , ) sin . .
( , , )
(10.6)
Në bazë të teoremës së mësipërme ne mund të provojmë që funksioni G ka pikë fikse të
vetme në zonën D = {(x1, x2 , x3)}, -1 xi 1 , për çdo i =1,2,3} . Me të vërtetë po të
llogariten gjithë derivaet e pjesëshme në D të funksioneve g1, g2 , g3 , del se :
g
x
i
j
( ).
x0 281 , për i = 1,2,3 dhe çdo j =1,2,3
dhe kushtet e teoremës së mësipërme plotësohen me K=3*0.281=0.843.
Për të përafruar pikën fikse p , zgjedhim si x(0)
= (0.1 , 0.1 , -0.1). Sekuenca e vektorëve e
gjeneruar nga :
x x x
x x x
x e
k k k
k k k
k x xk k
1 2
1
3
1
2 1
1 2
3
1
3
1
3
1
61
9106 01
1
20
10 3
601
12
1
( ) ( ) ( )
( ) ( ) ( )
( )
cos( )
( ) sin . .
( ) ( )
,
konvergjon tek zgjidhja e vetme (10.4). Në këtë shembull sekuencat janë vazhduar deri sa:
57
x x( )) ( )k k 1 510 dhe rezultatet jepen në tabelën e mëposhtëme:
Duke përdorur kufirin e gabimit (10.3) me K=0.843 , gjejmë :
x p( ) ( . )
.( . ) .5
50 843
1 0 8430 423 115,
e cila nuk tregon tamam saktësinë e x(5)
, për arsye të pasaktësisë të përafrimit fillestar. Në
fakt zgjidhja është : p = (0.5,0,- /6) (0.5,0,-0.5235987757) dhe gabimi është:
x p( )5 82 10 .
Një mënyrë për ta shpejtuar konvergjencën është që të përdorim vlerësimet e fundit x1(k)
,
x2(k)
,... xi-1(k)
në vend të x1(k-1)
, x2(k-1)
,... xi-1(k-1)
për të llogaritur xi(k)
, ashtu si veprohet tek
metoga e Gaus-Zeidel-it për sistemin e ekuacioneve lineare:
x x x
x x x
x e
k k k
k k k
k x xk k
1 2
1
3
1
2 1
2
3
1
3
1
3
1
61
9106 01
1
20
10 3
601 2
( ) ( ) ( )
( ) ( ) ( )
( )
cos( )
( ) sin . .
( ) ( )
,
me x(0)
= (0.1,0.1,-0.1); rezultatet e llogaritjeve jepen në tabelën e mëposhtëmë:
x
(4) është e saktë brenda saktësisë 10
-7 .
Ushtrime:
1. Sistemi i ekuacioneve jolineare:
x12 -10x1 + x2
2 + 8 = 0
x1 x22 + x1 - 10x2 + 8 = 0 ,
58
mund të të sillet në problemin e pikës fikse:
x1 = g1 (x1 , x2 ) = (x12 + x2
2 + 8)/10
x2 = g2 (x1 , x2 ) = (x12 x2
2 + x1 + 8)/10 .
a) Provoni që funksioni G = (g1 , g2 ) ka një pikë fikse në zonën:
D = {(x1 , x2) , 0 x1 , x2 1.5}
b) Duke zbatuar skemën e iteracioneve të gjendet zgjidhja e përafërt.
(Përfundimi: me x(0)
=(0,0) del x(13)
= (0.9999973,0.9999973)
2. Sistemi jolinear :
5x12 - x2
2 = 0
x2 - o.25(sin x1 + cos x2 ) = 0 ,
ka një zgjidhje afër (1/4 , 1/4)
a) Gjeni një funksion G = (g1, g2 ) dhe një zonë dy-dimensionale D ku funksioni G ka
zgjidhje të vetme.
b) Përdorni skemën e iteracioneve për t’ju afruar zgjidhjes brenda 10-5
në || .. || normën.
3. Duke përdorur skemën iterative të gjendet zgjidhja e sistemeve të mëposhtëm jolinearë,
brenda skatësisë 10-5
në ||...| normën.
a) x12 + x2
2 - x1 = 0 b) 3x1
2 - x2
2 = 0 c) 2x1 + x2 + x3 - 4 = 0
x12
- x22 - x2 = 0 3x1 x2
2 - x1
2 -1 = 0 x1 + 2x2 + x3 - 4 = 0
x1 x2x1 - 1 = 0
d) x12 + x2 - 37 = 0 e) 3x1 - cos(x2 x3 ) - 1/2 = 0 f) x1
2 + 2x2
2 - x2 - 2x3 = 0
x1 - x22 - 5 = 0 x1
2 - 625x2
2 = 0 x1
2 - 8x2
2 +10x3 = 0
x1 + x2 + x3 - 3 = 0 e xx x1 2 20
10 3
303 x1
2 /(7x2x3) - 1 = 0
Përfundime:
a) Me G(x)= ( x x x x1 2
2
1
2
2, ) dhe x(0)
= (0.7,0.4) , gjejmë x(14)
= (0.77184647,
0.41965131)
b) Me G(x)= (x2
/ 3 1 31
3
1, ( ) / ( )x x ) dhe x(0)
= (0.4,0.75) , gjejmë x(17)
= (0.49998843,
0.86603592)
c) Me G(x)= (2-0.5x2 - 0.5x3 , 2-0.5x1-0.5x3 , x x x3 1 2/ ( ),) dhe x(0)
= (0.5,0.6,0.7) , gjejmë
x(109)
= (1.000029, 1.000029, 1.000075)
d) Me G(x)= ( 37 5 32 1 1 2x x x x, , ) dhe x(0)
= (6.0,0.5,0.5) , gjejmë x(9)
=
(6.0000001, 1.0000000,-3.9999985)
e) Me G(x)= (1/3cos(x2 x3)+1/6 ,1/25 x1 , 1
20 60 051 2e x x . ) dhe x
(0) = (0,0,0) , gjejmë x
(4)
= (0.49998176, 0.019999269, -0.52310129).
f) Me G(x)= ( 2 2 10 8 73 2 2
2
3 1
2
1
2
2x x x x x x x, ( ) / , / ( ) ) dhe x(0)
= (0.5,0.3,0.1) , gjejmë
x(38)
= (0.52915452, 0.40000181, 0.099998587).
59
2.11 Metoda e Njutonit
Në rastin një-dimensional , metoda e Njutonit jep një konvergjencë kuadratike (norma ||..||2
) për problemin e pikës fikse , kur funksioni në ekuacionin :
g(x) = x - (x) f(x) , (11.1)
zgjidhet (x) = 1/ f ‘(x) me supozimin që f ‘(x) 0.
Për të zbatuar këtë metodë në rastin n-dimensional, formojmë matricën:
A
a a aa a a
a a a
n
n
n n nn
( )
( ) ( ) ( )( ) ( ) ( )
....................................( ) ( ) ( )
x
x x xx x x
x x x
11 12 1
21 22 2
1 2
... ...
...
(11.2)
ku elementet aij(x) janë funksione të vektorit x . Kërkojmë që A(x) të jetë e tillë që ekuacioni
G(x)=x-A(x)-1
.F(x) të lapë konvergjencë kuadratike të zgjidhjes së ekuacionit F(x)=0 duke
supozuar që A(x) është josingulare në pikën e fiksuar p të G.
Provohet se sekuenca e gjeneruar nga barazimi : x(k)
= G(x(k-1)
) konvergjon kuadratikisht tek
zgjidhja e ekuacionit (nëse ajo ekziston) x = G(x) , nëse matrica A(x) merret sa Jakobiani :
A(x)= J(x) =
f
x
f
x
f
xf
x
f
x
f
x
f
x
f
x
f
x
n
n
n n n
n
1
1
1
2
1
2
2
2
2
2
1 2
( ) ( ) ( )
( ) ( ) ( )
.........................................
( ) ( ) ( )
x x x
x x x
x x x
...
...
(11.3)
Prandaj funksioni G merret :
G(x) = x - J(x)-1
F(x) (11.4)
dhe procedura e iteracioneve duke zgjedhur x(0)
gjeneron për k 1 :
x(k)
= x(k-1)
- J(x(k-1)
)-1
F(x(k-1)
) (11.5)
Dobësia e metodës së Njutonit është se ajo kërkon llogaritjen dhe invertimin e
matricës J(x) në çdo hap. Në praktikë , llogarija eksplicite e matricës J(x)-1
shmanget duke e
kryer operacionin me dy hapa. Në fillim , gjendet një vektor y i tillë që
J(x(k-1)
) y = -F(x(k-1)
) (11.6)
dhe pastaj gjendet përafrimi i ri x(k)
duke i shtuar vektorit x(k-1)
vektorin y .
Shembull:
Sistemi i ekuacioneve jolineare është :
3x1 - cos (x2 x3) - 1/2 = 0
x12 - 81(x2 +0.1)
2 + sinx3 + 1.06 = 0 (11.7)
e x x1 2 + 20x3 + (10 -3)/3 = 0
Metoda e Njutonit është programuar për këtë sistem në programin e mëposhtëm. Përafrimi
fillestar është marë: x(0)
= (0.1,0.1,-0.1)
Jakobiani i sistemit është :
60
J(x1, x2, x3)=
3
2 01
20
3 2 3 2 2 3
1 2 3
2 11 2 1 2
- 162(
x x x x x x
x x xx e x ex x x x
sin sin
. ) cos (11.8)
Ndërsa vektori F(x1, x2, x3) është :
- ( ) - / - ( + . ) + + . + + ( - 3) / 3
2
3 1 281 01 106
20 10
1 2 3
1
2
2 3
31 2
x x xx x xe xx x
cossin (11.9)
Sistemi i ekuacioneve (11.6) , për gjetjen e vektorit y ,është zgjidhur me metodën e Gausit.
Ndërsa iteracionet:
x(k)
= x(k--1)
+ y (11.10)
janë ndërprerë kur ndryshimi midis elementeve të x(k-1)
dhe x(k)
bëhet më i vogël se toleranca
që është zgjedhur 10-6
.
Rezultatet e ekzekutimit të pragramit janë paraqitur në tabelën që pason programin.
10 REM Metoda e Njutonit e zbatuar per sistemin e 3 ekuacioneve jolineare
20 REM a) 3x1-cos(x2.x3)-1/2=0 b)x1^2 -81(x2+0.1)^2+sin(x3)+1.06=0
30 REM c) e^(-x1.x2)+20x3+(10pi-3)/3=0
40 n = 3
45 tol = .000001
50 DIM x(3), y(3), ej(3, 3), f(3), a(3, 3), b(3), e1(3, 4)
60 x(1) = .1
70 x(2) = .1
80 x(3) = -.1
90 INPUT "numri i iteracioneve?"; itt
100 FOR it = 1 TO itt
110 ej(1, 1) = 3
120 ej(1, 2) = x(3) * SIN(x(2) * x(3))
130 ej(1, 3) = x(2) * SIN(x(2) * x(3))
140 ej(2, 1) = 2 * x(1)
150 ej(2, 2) = -162 * (x(2) + .1)
160 ej(2, 3) = COS(x(3))
170 ej(3, 1) = -x(2) * EXP(-x(1) * x(2))
180 ej(3, 2) = -x(1) * EXP(-x(1) * x(2))
190 ej(3, 3) = 20
200 f(1) = 3 * x(1) - COS(x(2) * x(3)) - 1 / 2
210 f(2) = x(1) ^ 2 - 81 * (x(2) + .1) ^ 2 + SIN(x(3)) + 1.06
220 f(3) = EXP(-x(1) * x(2)) + 20 * x(3) + (10 * 3.1415 - 3) / 3
225 GOSUB 1000
230 FOR j = 1 TO n
240 x(j) = x(j) + y(j)
250 NEXT j
255 maxy = 0
260 FOR k = 1 TO n
270 IF maxy < ABS(y(k)) THEN maxy = ABS(y(k))
280 NEXT k
290 IF maxy > tol THEN 300 ELSE 350
300 PRINT it, x(1), x(2), x(3)
310 NEXT it
61
350 END
1000 REM Programi zgjidh sistemin e n ekuacioneve lineare me n te panjohura me
1020 REM metoden Gauss
1040 REM REM a(n, n), b(n), e1(n, n + 1)
1050 FOR i = 1 TO n
1060 FOR j = 1 TO n
1070 a(i, j) = ej(i, j)
1080 NEXT j
1090 b(i) = -f(i)
1100 NEXT i
1200 REM kthimi i matrices a ne trekendore te siperme,rezultati ne E
1260 FOR i = 1 TO n
1270 FOR j = 1 TO n
1280 e1(i, j) = a(i, j)
1285 NEXT j
1287 e1(i, n + 1) = b(i)
1288 NEXT i
1289 FOR i = 1 TO n
1290 IF e1(i, i) = 0 GOTO 1320
1291 FOR j = i + 1 TO n
1295 xm = e1(j, i) / e1(i, i)
1297 FOR k = i TO n + 1
1300 e1(j, k) = e1(j, k) - xm * e1(i, k)
1310 NEXT k
1305 NEXT j
1320 NEXT i
1330 e1(n, n + 1) = e1(n, n + 1) / e1(n, n)
1340 FOR k = n - 1 TO 1 STEP -1
1350 shum = 0
1360 FOR j = k + 1 TO n
1370 shum = shum + e1(k, j) * e1(j, n + 1)
1380 NEXT j
1390 e1(k, n + 1) = (e1(k, n + 1) - shum) / e1(k, k)
1400 NEXT k
1500 REM rezultati eshte ne kolonen e fundit te e1
2150 REM PRINT "Rezultatet e metodes Gaus"
2330 FOR i = 1 TO n
2340 y(i) = e1(i, n + 1)
2350 NEXT i
2360 RETURN
62
Nga shembulli i mësipërm duket se metoda e Njutonit jep konvergjencë të shpejtë nëse
përafrimi i zgjedhur në fillim është afër zgjidhjes së vërtetë . Por, nuk është e lehtë të gjendet
vlera e përafërt e fillimit dhe kjo është e vetmja dobësi e metodës. Ka një metodë tjetër që e
kapërxen edhe këtë vështirësi (e ashuquajtura “zbritja e shkallëzuar sipas drejtimit të
gradientit” ) , që nuk do ta trajtojmë këtu.
Ushtrime
1. Duke përdorur metodën e Njutonit, të gjendet zgjidhja e sistemeve të ekuacioneve jolinearë
të mëposhtëm. Iteracioni të vazhdohet derisa || x(k)
- x(k-1)
|| < 10-6
.
a) 4x12 -20x1 +1/4 x2
2 + 8 = 0 b) 3x1
2 - x2
2 = 0
1/2 x1x22 + 2x1 - 5x2 + 8 = 0 3x1x2
2 - x1
3 - 1 = 0
c) ln(x12 + x2
2) - sin(x1x2) = ln2 + ln d) sin(4 x1x2) -2x2 - x1 = 0
e x xx x1 2
1 2 0 cos( ) 4 1
42 2 02
2
2
11( )e e ex exx
Përfundimet :
a) Me x(0)
= (0,0), gjejmë : x(5)
= (0.5,2.0)
b) Me x(0)
= (1,1), gjejmë : x(5)
= (0.5,0.8660254)
c) Me x(0)
= (2,2), gjejmë : x(6)
= (1.772454,1.772454)
d) Me x(0)
= (0,0), gjejmë : x(6)
= (-0.3736992,0.05626649)
2. Duke përdorur metodën e Njutonit, të gjendet zgjidhja e sistemeve të ekuacioneve jolinearë
të mëposhtëm në zonën e dhënë.
Iteracioni të vazhdohet derisa || x(k)
- x(k-1)
|| < 10-6
.
a) 15x1 + x22
- 4x3 = 13 b) x1 + cos(x1 x2 x3) - 1 = 0
x12 +10x2 - x3
= 11 (1- x1)
1/4 + x2 + 0.05x3
2 - 0.15x3 - 1 = 0
x23
- 25x3 = -22 - x12 - 0.1x2
2 + 0.01x2
+ x3 - 1 = 0
D = {(x1, x2, x3) | 0 xi 2 } D = {(x1, x2, x3) | 0 xi 1.5 }
c) x13 + x1
2x2 - x1x3 + 6 = 0 d) sinx1 + sin(x1x2) + sin(x1x3) = 0
e e xx x1 2
3 0 sinx2 + sin(x2x3) = 0
x22 - 2x1x3 = 4 sin(x1x2 x3) = 0
D = {(x1, x2, x3) | -2 x1, x2 -1, 0 x3 1} D = {(x1, x2, x3) | -2 x1, x2 -1,-6 x3 -4}
63
3. Duke përdorur metodën e Njutonit, të gjendet zgjidhja e sistemeve të ekuacioneve jolinearë
të mëposhtëm. Iteracioni të vazhdohet derisa || x(k)
- x(k-1)
|| < 10-5
.
a) 6x1 - 2cos(x2x3) -1 = 0 b) cosx1 + cosx2 + cosx3 = 1
9x1 + x x1
2
3 106 0 9 0sin . . cos(x1x2) + cos(x2 x3) + cos(x1x3)=0
60x3 + 3 e x x1 2 10 - 3 = 0 cos(x1x2x3) = -1
c) 2x1 + x2 + x3 + x4 - 5 = 0
x1 +2x2 + x3 + x4 - 5 = 0
x1 + x2 + 2x3 + x4 - 5 = 0
x1x2x3x4 - 1 = 0
Gjeni zgjidhjen e ndryshme nga (1,1,1,1)
Perfundimet:
a) Me x(0)
= (0.1,-0.1,0.1) , gjejmë x(3)
= (0.4981446, - 0.1996059, - 0.5288259)
b) Me x(0)
= (1 , 2 , 3) , gjejmë x(16)
= (-0.4021187, - 0.9302338, 8.398353)
Me x(0)
= (- 0.5, -1, 2) , gjejmë x(23)
= (7.869499, 0.7214381, - 4.980240)
Me x(0)
= (- 0.5, -1, 4) , gjejmë x(14)
= (-0.6398107, - 1.102016, 4.45568)
Me x(0)
= (- 0.5, -1, 6) , gjejmë x(17)
= (-0.9302344, - 0.4021213, - 8.398351)
c) Me x(0)
= (0.5, 0.5,0.5,0.5) , gjejmë x(14)
= (0.8688753, 0.8688760, 0.8688761, 1.524497)
64
KAPITULLI I TRETE
PERPUNIMI I TE DHENAVE EKSPERIMENTALE
3.1 Hyrje
Për shkak të gabimeve në matje , vlerat e matuara të çdo madhësie fizike nuk përputhen me
vlerën e saktë të saj. Pa u interesuar për natyrën e këtyre gabimeve ne do të studiojmë disa
metoda të përpunimit të vlerave të matura të madhësive të ndryshme.
Në analizën e të dhënave eksperimentale përdoren koncepte nga Statistika Matematike.
Disa nga këto koncepte që ne do ti përdorim, janë:
- Mesatarja : Le të jenë xi (i=1,2,...N) vlerat e matura të një madhësie X . Mesatare të kësaj
madhësie të matur quhet :
xN
xii
N1
1
, (1.1)
e cila shpesh shënohet edhe <x> ose E(x).
-Varianca : Var(x1 , x2 , x3 , ... xN ) = 1
1
2
1Nx xi
i
N
( ) , (1.2)
kjo çmon largësinë e vlerave nga mesatarja e tyre.
- Devijimi standart : Var x x xN
x xN ii
N
( , ,.... ) ( )1 2
2
1
1
1, (1.3)
e cila përdoret shpesh për të vlerësuar gabimin që kryhet gjatë matjes së një madhësie.
Pjestuesi N-1 merret kur mesatarja përcaktohet nga të dhënat eksperimentale. Ndërsa kur kjo
mesatare njihet më parë , ky pjestues merret N.
- Devijimi absolut mesatar : 1
Nx xi| | (1.4)
Ne do konsiderojmë që për numër të madh matjesh, shpërndarja e vlerave të matura i
bindet ligjit të shpërndarjes Normale ose siç quhet ndryshe shpërndarjes së Gausit. Kjo
shpërndarje jepet nga funksioni i shpërndarjes f(x) që paraqet probabilitetin që madhësia e
matur X të ketë vlerë x në njësiinë e intervalit (x, x+dx):
f(x) =1
2
2
22e
x x( )
dhe paraqitet grafikisht si në figurë:
Nëse kemi dy madhësi X dhe Y që maten njëkohësisht dhe vlerat e matjeve të tyre janë
xi (i=1,2,..N) dhe yi (i=1,2,..N) , atëhere kovarianca dhe devijimi standart i tyre , llogariten me
formulat:
Cov(X,Y)=1
1 1Nx x y yi i
i
N
( )( ) ; =Var X Var Y Cov X Y
N
( ) ( ) ( , )2 (1.5)
x
f(x)
E(x)
65
Për të vlerësuar faktin që ka apo nuk ka lidhje midis këtyre madhësive, futet kuptimi i
koeficientit të korelacionit:
r=
( )( )
( ) ( )
x x y y
x x y y
i ii
N
ii
ii
1
2 2 , (1.6)
i cili merr vlera në kufijtë (-1,+1) . Kur koeficienti i korrelacionit merr vlerë +1 , atëhere midis
dy madhësive X dhe Y kemi korrelacion të plotë pozitiv , pra të dhënat eksperimentale në një
sistem boshtesh X,Y janë vendosur në një vijë të drejtë me pjerrësi pozitive. Po kështu është
rasti kur r=-1, korrelacioni është i plotë por negativ dhe të dhënat janë përsëri në një drejtëz
por me pjerrësi negative (Y zvogëlohet me rritjen e X). Sigurisht , sa më afër zeros të jetë
koeficienti i korrelacionit aq më pak janë të lidhura me ndonjë relacion midis tyre madhësitë
X dhe Y. Por ky koeficient nuk na jep ndonjë informacion mbishpërndarjet individuale të
vlerave të matura të madhësive X dhe Y.
Proceset e përpunimit të të dhënave eksperiimentale janë të shumta. Këtu përfshihen:
filtrimi, interpolimi, plotimi etj. Ne do të përqëndrohemi tek një proces që quhet modelimi i të
dhënave eksperimentale.
3.2 Modelimi i të dhënave eksperimentale
Me modelim të të dhënave eksperimentale ne do kuptojmë “fitting” (përqasjen) e të
dhënave tek një model i dhënë, i cili varet nga disa parametra. Vlerat e këtyre parametrave do
të gjenden të tiillë që “fitting” (përqasja) e të dhënave tek modeli të jetë sa më i mirë. Modeli
është një klasë e përshtatëshme funksionesh si p.sh. polinome të një rendi të caktuar. Për
zgjedhjen e klasës së funksioneve të modelit nuk ka ndonjë kriter të caktuar, zakonisht
modeluesi i të dhënave eksperimentale zgjedh atë klasë funksionesh që pëafron më mirë
rezultatin që pret eksperimentuesi ose duke provuar modele të ndryshme dhe duke parë se cili
model e jep përqasjen më të mirë . Mandej problemi sillet në gjetjen e atyre vlerave të
parametrave të modelit, për të cilat modeli i përqas më mirë (“best fitting”) të dhënat. Të
dhënat janë në përgjithësi jo të sakta për arësye të gabimeve në matje. Prandaj, edhe kur
modeli është i saktë të dhënat asnjëherë nuk përqasen ekzaktësisht tek modeli. Ne duam të
përcaktojmë jo vetëm vlerat e parametrave të një modeli të dhënë që përqas të dhënat, por
edhe gabimet në përcaktimin e këtyre parametrave.
Supozojmë se duam të përqasim (“fit”) tek një model i dhënë të dhënat që përfaqësohen
nga pikat ( “data points”) : (xi , yi ) , i= 1,2,3, .... N . Modeli parashikon një lidhje midis dy
madhësive që maten në mënyrë të pavarur x dhe y :
y(x) = y(x, a1 , a2 , a3 , .... aM) (2.1)
ku a1 , a2 , a3 , .... aM janë parametrat e modelit. Kuptohet që modeli i përqaset më mirë të
dhënave kur shmangiet e vlerave eksperimentale yi nga vlerat e llogaritura të modelit y(xi ) të
jenë sa më të vogla. Prandaj problemi i gjetjes së vlerave të parametrave të modelit a1 , a2 , a3
, .... aM sillet në minimizimin e madhësisë :
[ ( ; )]y y x a a a ai i Mi
N
, , , .... 1 2 31
2 (2.2)
Kjo mbështetet në faktin që gabimet e matjes së madhësisë y kanë një shpërndarje normale
(shpërndarja e Gausit) rreth një modeli të “vërtetë” y(x), me devijim standart të njëjtë në
çdo pikë matjeje. Atëhere, probabiliteti që bashkësia e matjeve të ketë vlerat që kemi matur
është sa produkti i probabiliteteve për çdo pikë matjeje:
66
Py y x
yi i
i
N
{exp( )
}1
2
2
1
(2.3)
ku faktori y është në çdo term si produkt. Maksimizimi i shprehjes (2.3) është ekuivalent me
maksimizimin e logaritmit të kësaj shprehjeje ose me minimizimin e logaritmit negativ:
y y x
N yi i
i
N ( ).ln( )
2
21 2
(2.4)
dhe meqënëse N , , y janë konstante , ky minimizim është ekuivalent me minimizimin e
shprehjes (2.1). Kjo metodë e gjetjes së parametrave të modelit quhet metoda e katrorëve më
të vegjël ( - square fitting) e cila gjen parametrat e modelit nga minimizimi i 2 :
2 =
y y x a a a ai i M
ii
N ( ; ) , , , .... 1 2 3
1
2
(2.5)
Në disa raste devijimi standart i çdo matjeje i nuk njihet , atëhere supozohet që të gjitha
matjete kanë të njëjtin devijim standart i = duke zgjedhur një vlerë arbitrare për të (psh =1)
sepse vlera konstante jep të njëjtin rezultat nga minimizimi i shprehjes (2.5). Pasi gjenden nga
minimizimi vlerat e parametrave të modelit , rillogaritet devijimi standart nga formula:
2
2
1
[ ( )]y y x
N
i ii
N
(2.6)
duke i dhënë çdo pike të matjes të njëjtin devijim statndart.
Minimizimi i 2 në shprehjen (2.5) ndaj vlerave të parametrave të modelit do të thotë
që të gjendet minimumi i funksionit 2 si funksion i parametrave a1 , a2 , a3 , .... aM , pra të
barazohen me zero të gjithë derivatet e pjesëshme të 2 ndaj secilit parametër ak
(k =1,2,3...M):
y y x y x a a a
a
i i
ii
Ni M
k
( ) ( , , ,... )2
1
1 2 0 (2.7)
Merren kështu M ekuacione (k=1,2,..M) me M të panjohurat a1 , a2 ,...aM , që zgjidhen
algjebrikisht.
3.3 Regresi Linear
Rasti më i thjeshtë i modelimit të të dhënave është përqasja (fitting) e të dhënave tek një
model linear , pra një varësi linear (vijë drejtë) midis madhësive të matura , x dhe y :
y(x) = y(x; a,b) = a + b x (3.1)
Ky lloj modeli njihet në praktikë si regresi linear. Në këtë rast 2 , do të ishte:
2
21
2
y a b xi i
ii
N
(3.2)
Duke barazuar me zero derivatet e 2 në lidhje me a dhe në lidhje me b , gjejmë:
y a b xi i
ii
N
21
0
67
(3.3)
( )y a b x xi i i
ii
N
21
0
Nga zgjidhja algjebrike e ekuacioneve (3.3) do të gjenden a dhe b . Për të lehtësuar zgjidhjen
bëjmë këto shënime:
S Sx
Sy
Sx
Sx y
ii
N
xi
ii
N
yi
i
xxi
i
xyi i
ii
N
i
N
i
N12
12
12
2
2 2111
, , , , (3.4)
Atëhere, ekuacionet (3.3) do të shkruhen:
a S + b Sx = Sy
a Sx + b Sxx = Sxy (3.5)
Zgjidhja e këtyre ekuacioneve është :
aS S S S
bS S S S
y xx x xy
xy x y
(3.6)
ku = S Sxx - (Sx )2 .
Ne duhet të gjejmë edhe pasaktësinë e përcaktimit të vlerave të parametrave a dhe b .
Nëse matjet janë të pavarura, atëhere çdo matje ndikon në pasaktësinë e përcaktimit të vlerave
të parametrave . Po të konsiderojmë që ky kontribut shpërndahet njëlloj për çdo matje, atëhere
provohet se varaianca e çdo parametri (ose funksioni të parametrave) është:
f i
ii
N f
y
2 2
2
1
(3.7)
Duke kryer derivatet e pjesëshme në barazimet (3.6), [ kini parasysh që në shprehjet që kanë
indekse y kemi varësi nga yi (Sy dhe Sxy ) ], gjejmë:
a
y
S S x
b
y
S x S
i
xx x i
i
i
i x
i
2
2
(3.8)
Duke zëvëndësuar këto derivate në shprehjen e përgjithëshme (3.7) një herë për parametrin a
dhe një herë për parametrin b , pasi kryejmë shumimet gjejmë këto përfundime për variancat e
përcaktimit të vlerave të parametrave a dhe b :
axx
b
S
S
2
2
(3.9)
68
Mund të llogaritet edhe kovarianca e koeficientëve a dhe b , si dhe koeficienti i korelacionit
midis tyre me anë të formulave:
Cov(a,b)= - Sx / (3.10)
rab = Cov(a,b) / ( a · b ) = - Sx / S Sxx (3.11)
Më poshtë jepet varianti BASIC i programit që kryen të gjitha llogaritjet për regresin linear
të formës y = a· x + b , madje llogarit edhe një vlerë të pritëshme y që jep regresi linear për
një vlerë të çfardoshmë x .
10 PRINT "REGRESIONI LINEAR I THJESHTE"
20 REM PROGRAMI LLOGARIT A DHE B SI DHE GABIMET E TYRE NE LIDHJEN
Y=A+B.X
25 DIM x(100), Y(100), sig(100)
30 PRINT "NUMRI I MATJEVE"
40 INPUT n
50 REM -Cikli i futjes se te dhenave
100 FOR i = 1 TO n
110 PRINT "X,Y,Sig te pikes se-"; i; "-te"
120 INPUT x(i), Y(i), sig(i)
130 NEXT i
140 PRINT "Opsionet e mundeshme jane: "
150 PRINT TAB(7); "1-Listohen te dhenat e futura"
152 PRINT TAB(7); "2-Modifikohen te dhenat e futura"
154 PRINT TAB(7); "3-Kryhet analiza e regresit"
156 PRINT TAB(7); "4-interpolimi"
157 PRINT TAB(7); "5-Quit"
158 INPUT "Opsioni"; ip
160 IF ip < 1 OR ip > 5 THEN 200
170 IF ip = 1 THEN GOSUB 230
180 IF ip = 2 THEN GOSUB 360
190 IF ip = 3 THEN GOSUB 430
200 IF ip = 5 THEN GOTO 1390
205 IF ip = 4 THEN GOSUB 1300
210 GOTO 140
220 PRINT
230 REM Subroutine qe liston te dhenat
240 PRINT "Lista e te dhenave"
250 PRINT " X", " Y", " sigma"
260 ic = 1
270 FOR i = 1 TO n
280 IF i <> ic * 50 THEN 310
290 ic = ic + 1
300 INPUT "Shtyp enter per te vazhduar"; Y$
310 PRINT x(i), Y(i), sig(i)
320 NEXT i
330 RETURN
69
340 REM **************
350 REM Subroutine ku modifikohen te dhenat
360 INPUT "Fut numrin e data point qe do modifikohet"; id
370 PRINT "Vlera e re per X ,Y,sigma ne piken "; id
380 INPUT x(id), Y(id), sig(i)
390 INPUT "A keni pike tjeter per te modifikuar(p/j)"; Y$
400 IF Y$ = "p" THEN 360
410 RETURN
420 REM **************
430 REM Subroutine e Regresionit
440 sx = 0
441 s = 0
442 sy = 0
444 sxx = 0
446 syy = 0
448 sxy = 0
450 FOR i = 1 TO n
455 s = s + 1 / sig(i) ^ 2
460 sx = sx + x(i) / (sig(i) ^ 2)
470 sy = sy + Y(i) / (sig(i) ^ 2)
480 sxx = sxx + x(i) ^ 2 / (sig(i) ^ 2)
490 syy = syy + Y(i) ^ 2 / (sig(i) ^ 2)
500 sxy = sxy + x(i) * Y(i) / (sig(i) ^ 2)
510 NEXT i
515 d = s * sxx - sx ^ 2
520 A = (sy * sxx - sx * sxy) / d
530 B = (s * sxy - sx * sy) / d
540 siga = SQR(sxx / d)
550 sigb = SQR(s / d)
560 ccab = -sx / SQR(s * sxx)
570 cc = (sxy - sx * sy / n) / SQR((sxx - (sx ^ 2) / n) * (syy - (sy ^ 2) / n))
580 cd = cc ^ 2
590 REM ****************
600 REM Subroutine e printimit te rezultatit
610 PRINT "Ekuacioni i Regresit"
620 PRINT "Y="; A; "+"; B; "X"
630 PRINT "Devijimi standart i a dhe b"; "Sigma a="; siga, "Sigma b="; sigb
635 PRINT "Koeficienti i korelacionit="; cc
640 PRINT "Vlera reale dhe ajo e regresit"
650 PRINT "X", "Y", "Y i llogaritur", "Gabimi"
660 ic = 1
670 FOR i = 1 TO n
680 IF i <> ic * 50 THEN 710
690 INPUT "Shtyp enter per te vazhduar"; Y$
700 ic = ic + 1
710 ey = A + B * x(i)
720 PRINT x(i), Y(i), ey, Y(i) - ey
730 NEXT i
750 INPUT "Shtyp nje tasto per te vazhduar"; Y$
70
760 RETURN
770 PRINT
1300 REM ****************
1310 REM subrutine per te interpeluar nga formula e regresit
1320 PRINT "Interpolimi: (per te ndaluar programin fut x=0)"
1330 PRINT "x=";
1340 INPUT x
1349 REM Rifillon ose perfundon programin
1350 IF x = 0 THEN 1390
1360 PRINT "y="; A + B * x
1370 PRINT
1380 GOTO 1330
1384 PRINT TAB(7); "fundi i programit"
1386 RETURN
1390 END
Shënim
Edhe rastet kur varësia midis variablave të matura x dhe y pritet të jetë në formën :
y = a·xb (3.11)
mund të sillet në regresin linear. Duke kryer logaritmin në barazimin (3.11), gjemë:
ln (y) = ln (a)+ b· ln (x) (3.12)
Duke shënuar : ln (y) = y1 , ln (a) = a1 dhe ln (x) = x1 , marrim varësinë lineare:
y1 = a1 + b · x1 (3.13)
Duke zbatuar metodën e regresit linear për këtë varësi , gjemë koeficientët a1 dhe b si edhe
devijimet standarte për ta. Koeficienti a dhe devijimi standart i tij do të jenë :
a e ea a
a1 1
1 dhe a (3.14)
Ushtrime
1. Për të provuar saktësinë e llogaritjeve të koeficientëve të regresit linear, merrni një varësi të
njohur psh y = 4·x + 11 dhe futni disa vlera çfardo për x , ndërsa për y merrni vlera të afërta
me ato që jep kjo varësi . Krahasoni vlerat e koficientëve a dhe b që jep programi me vlerat e
tyre 4 dhe 11.
2. Merrni një varësi fuqie të njohur , psh y = 3· x2 . Silleni atë në një vrësi lineare siç tregohet
në shënimin e mësipërm. Modifikoni programin , në mënyrë që në rezultat të dalin vlerat e
koficientëve a dhe b (3 dhe 2) dhe devijimet standarte të tyre.
3.4 Metoda e përgjithëshme e katrorëve më të vegjël
Regresi linear është një rast i vecantë i përqasjes (fitting) së të dhënave tek një model.
Modeli në këtë rast është një mpolinom i gradës 1 ( y = a · x + b ) . Një përgjithësim i këtij
rasti do të ishte një model që është kombinim linear i M funksioneve të çfardoshme të x . P.sh.
71
, funksionet mund të jenë: 1, x , x2
, x3 , .... x
M-1 . Atëhere, modeli është një kombinim linear i
këtyre funsoneve , pra një polinom i gradës M-1 :
y = a1 + a2 x + a3 x2 + ... + aM x
M-1 (4.1)
Por funksionet e modelit linear mund të jenë të çfardoshëm. Psh, nëse si funksione
marrim ato trigonometrike atëhere kombinimi linear i tyre do të ishte një seri harmonike.
Në përgjithësi funksionet e modelit do ti shënojmë Xk (x) dhe forma e përgjithëshme e një
modeli linear do të ishte:
y(x) = a X xkk
M
k1
( ) (4.2)
ku X1 (x) , X 2 (x) ...XM (x) janë funksione të njohur që quhen funksione të bazës. Theksojmë
se këto funksione mund të mos jenë linear ndaj variablit x . Këtu termi linear përdoret për
varësinë e modelit nga parametrat e tij a1 , a2 ,... aM .
Duke përgjithësuar metodën e katrorëve më të vegjël për të gjetur vlerat e parametrave
ne do të kërkojmë minimizimin e :
2 1
21
2
y a X xi k k ik
M
ii
N( )
(4.3)
ku i është devijimi standart në matjen e i -të , i cili konsiderohet i njohur . Nëse gabimet e
çdo mtjeje janë të panjohura mundt të merren konstante të njëjta , psh i = 1. Nga derivimi i 2 në lidhje me paramerat ak merret një sistem M ekuacionesh algjebrikë me M të panjohura
që quhet sistemi i ekuacioneve normalë. Zgjidhja e këtij sistemi bëhet me një nga ato metodat
që kemi shqyrtuar në kapitullin e dytë.
Shënojmë me  matricën komponentet e të cilës janë ndërtuar nga M funksionet e
bazës të vlerësuar në në N pikat e matjeve xi
AX x
X x X x X x
X x X x X x
X x X x X x
ij
j i
i
M
M
N
N
N
N
M N
N
( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
1 1
1
2 1
1
1
1
1 2
2
2 2
2
2
2
1 2
1
.....
.....
............................................
.....
(4.4)
Kjo quhet edhe matrica e sistemit ose “design” . vërrejmë se kjo matricë ka më shumë rreshta
se sa shtylla (N M) meqënëse duhet të ketë më shumë matje se sa numri i parametrave të
panjohur të modelit . Nëse ka më pak numër matjesh se sa numrii i parametrave , problemi
nuk është i përcaktuar (underdetermined).
Përcaktojmë dhithashtu vektorin b , elementet e të cilit janë:
bi = yi / i (4.5)
i cili ka gjatësinë N (vektor rresht me N elemente) dhe vektorin a meM elemente :
a (a1 , a2 , a3 ... aM )
Duke barazuar me zero derivatet e 2 në lidhje me ak merret sistemi i ekuacioneve normalë:
72
1
02
11i
i j j ij
M
i
N
k iy a X x X x( ) ( ) (4.6)
Duke shënuar me ^ ^ ^
A AT
, matricën kuadratike (me përmasa M M) që ka për elemente:
kj
j i k i
ii
N X x X x( ) ( )2
1
(4.7)
dhe me =ÂT · b vektorin me gjatësi M , që ka për elemente:
ki k i
ii
N y X x( )2
1
(4.8)
sistemi i ekuacioneve normalë , shkruhet :
kj jj
M
ka1
ose shkurt: ^
a b (4.9)
Zgjidhja e ekuacionit (4.9) në trajtë matricore do të shkruhej:
a^ 1
(4.10)
ku ^ 1
është matrica e kundërt e matricës , elementet e të cilit janë:
Cjk =^ 1
jk
(4.11)
Zgjidhja e ekuacioneve normalë me metodat e njohura jep vlerat eparametrave të panjohur:
a1 , a2 , ... aM , por jo saktësinë e llogaritjes së tyre. Për gjetjen e devijimeve kuadratike të
parametrave ka një rrugë mjaft të thjeshtë.
Le ta zemë se zgjidhja e sistemit të ekuacioneve (4.9) , është:
aj = ^ ( )
jk
kk
M
jki k i
ii
N
k
M
Cy X x
1
12
11
(4.12)
Vlerësimi për gabimet e përcaktimit të aj gjendet në bazë të formulës (3.7):
2 2
2
1
( )aa
yj i
j
ii
N
(4.13)
Duke derivuar në barazimet (4.12), gjejmë( vini re që jk , pra edhe jk-1
nuk varen
nga yi ):
a
y
C X xj
i
jk k i
ik
M ( )2
1
(4.14)
Duke zëvëndënsuar (4.14) në (4.13), gjejmë:
2 2
12
12
1 12
11
( )( ) ( ) ( ) ( )
aC X x C X x
C CX x X x
j ii
Njk k i
il
Mjl l i
ik
M
jk jll
Mk i l i
ii
N
k
M
(4.15)
Por shuma e fundit është kl klk i l i
ii
N
CX x X x1
21
( ) ( ) , prandaj (4.15) shkruhet:
2 1
11
( )a C C C Cj jk jl kll
M
k
M
jj (4.16)
73
Pra elementet e diagonales së matricës [C] janë variancat (katrorët e devijimeve standarte) e
parametrave të modelit. Nuk është e vështirë të kuptohet që elementët jashtë diagonales së
matricës Cjk janë kovariancat midis parametrave aj me ak . Meqënëse në zgjidhjen e
ekuacioneve normalë na duhen jo vetëm të panjohurat aj (j=1,2...M) por edhe elementët e
matricës së kundërt të matricës [ ] duhet të përdorim ndonjë metodë të zgjidhjes së sistemit të
ekuacioneve që kryen edhe invertimin e matricës. Në programin që jepet më poshtë është
përdorur metoda e Gaus-Jordan-it.
10 REM Metoda e katroreve me te vegjel ne rastin kur modeli eshte nje bashkesi
20 REM prej m-funksionesh psh funksionet 1,x,x^2,x^3...
30 INPUT "Numri i matjeve"; n
40 INPUT "Numri i funksioneve te modelit"; m
50 DIM beta(m), alfa(m, m), c(m, m), x(n), y(n), sig(n)
60 DEF fnmodel (k, x) = x ^ (k - 1)
70 REM *********Cikli i futjes te matjeve*************
80 PRINT "Fut te dhenat ne cifte: x,y,gabimi"
90 FOR i = 1 TO n
100 PRINT "Fut x,y,sigma per piken "; i
110 INPUT x(i), y(i), sig(i)
120 NEXT i
130 REM *******Formimi i ekucioneve normale*******
140 FOR k = 1 TO m
150 FOR j = 1 TO m
170 FOR i = 1 TO n
180 alfa(k, j) = alfa(k, j) + fnmodel(j, x(i)) * fnmodel(k, x(i)) / sig(i) ^ 2
190 NEXT i
200 NEXT j
210 FOR i = 1 TO n
220 beta(k) = beta(k) + y(i) * fnmodel(k, x(i)) / sig(i) ^ 2
230 NEXT i
240 NEXT k
250 REM ******Zgjidhja e ekuacioneve me metoden e Gaus-Jordanit****
310 REM Programi zgjidh sistemin e n ekuacioneve lineare me n te panjohura me
320 REM metoden Gauss-Jordan
330 n=m
340 DIM a(n, n), b(n, 1), d%(n)
341 icol1=n+1
342 jroë = n
343 jcol = 1
345 iroë = n
347 icol = n
348 rem DIM e1(iroë, icol1)
350 FOR i = 1 TO n
360 FOR j = 1 TO n
370 a(i, j)=alfa(i,j)
380 NEXT j
390 b(i, 1)=beta(i)
395 d%(i) = 1
400 NEXT i
74
405 inv1 = 2
410 gosub 1000
415 rem
420 gosub 1500
430 REM rezultati eshte ne kolonen e fundit te e1
440 PRINT
450 PRINT "Rezultatet per koeficientet e modelit dhe"
455 print "devijimet standarte te tyre, jane:"
460 REM Se pari kontrollohet nese ka zgjidhje
470 st% = 0
480 FOR i = 1 TO iroë
490 IF d%(i) <> 0 THEN GOTO 570
500 st% = 1
510 FOR j = iroë + 1 TO icol
520 IF e1(i, j) = 0 THEN GOTO 550
530 st% = 2
540 GOTO 610
550 NEXT j
560 REM exit normal dmth ekuacione me shume zgjidhje
570 NEXT i
580 IF st% = 0 THEN GOTO 630
590 PRINT "ky sistem ekuacionesh ka infinitet zgjidhje"
600 GOTO 660
610 PRINT "ky sistem ekuacionesh eshte jo konsistent,nuk ka zgjidhje"
620 GOTO 660
630 FOR i = 1 TO n
640 PRINT "a("; i; ")="; e1(i, n + 1);"+-";stdev(i)
650 NEXT i
660 rem STOP
670 goto 1750
1000 REM kthimi i matrices a ne trekendore te siperme,rezultati ne E
1010 REM iroë = n
1020 REM icol = n
1030 IF inv1 = 1 THEN icol = 2 * icol
1040 IF inv1 <> 1 THEN icol = icol + 1
1050 DIM e1(iroë, icol),stdev(n)
1060 FOR i = 1 TO iroë
1070 FOR j = 1 TO iroë
1080 e1(i, j) = a(i, j)
1085 rem PRINT e1(i, j)
1090 IF inv1 <> 1 GOTO 1130
1100 REM keto rreshta perdoren nese matrica ka qene e invertuar
1110 IF i = j THEN e1(i, j + iroë) = 1
1120 GOTO 1130
1130 NEXT j
1140 IF inv1 <> 1 THEN e1(i, iroë + 1) = b(i, 1)
1145 rem PRINT e1(i, iroë + 1)
1150 NEXT i
75
1160 det1 = 1
1170 FOR i = 1 TO iroë
1180 IF i <> iroë THEN GOTO 1220
1190 IF e1(i, i) <> 0 GOTO 1320
1200 dt = 0
1210 GOTO 1240
1220 IF e1(i, i) <> 0 GOTO 1270
1230 GOto 1330
1240 IF dt = 0 THEN det1 = 0
1250 IF dt = 0 THEN d%(i) = 0
1260 IF dt = 0 THEN 1320
1270 FOR j = i + 1 TO iroë
1280 xm = e1(j, i) / e1(i, i)
1290 FOR k =i TO icol
1300 e1(j, k) = e1(j, k) - xm * e1(i, k)
1310 NEXT k
1315 NEXT j
1320 NEXT i
1325 goto 1460
1330 REM detektimi i determinantit 0
1340 REM pra, per te siguruar qe elementet e diagonales te mos jene 0
1350 REM gjate triangulizimit te siperm
1360 dt = 1
1370 FOR j = i + 1 TO iroë
1380 IF e1(j, i) = 0 GOTO 1430
1390 FOR k = 1 TO icol
1400 e1(i, k) = e1(i, k) + e1(j, k)
1410 NEXT k
1420 rem RETURN
1430 NEXT j
1450 dt = 0
1460 rem end
1470 return
1500 REM subrutina e triangulizimit te poshtem,input eshte matrica e1(iroë,icol)
1510 FOR ij = 1 TO iroë
1520 IF ij = iroë THEN GOTO 1600
1530 ik = iroë - ij + 1
1540 FOR i = 1 TO ik - 1
1550 IF inv1 = 1 THEN GOTO 1570
1560 IF d%(ik) = 0 THEN GOTO 1600
1570 xm = e1(i, ik) / e1(ik, ik)
1580 FOR j = i + 1 TO icol
1590 e1(i, j) = e1(i, j) - xm * e1(ik, j)
1595 NEXT j
1597 NEXT i
1600 NEXT ij
1610 IF det1 = 0 THEN GOTO 1700
1620 REM krijon identitetin duke shumezuar cdo resht me te kundertin e
76
1630 REM e elementit ne diagonale te matrices se perpunuar
1640 FOR i = 1 TO iroë
1650 div = e1(i, i)
1655 stdev(i)=sqr(1/e1(i,i))
1660 FOR j = 1 TO icol
1670 e1(i, j) = e1(i, j) / div
1680 NEXT j
1690 NEXT i
1700 return
1750 end
Ushtrime
1. Për të verifikuar saktësinë e llogaritjeve të parametrave të modelit, merni një model me
parametra të njohur, Psh y = 4 + 5*x + 6*x2 + 7*x
3 . Kur të futni të dhënat e matjeve në
program, merrni vlerat të afërta me ato që jep ky funksion yi = y(xi ) . Krahasoni vlerat e
parametrave që nxjerr programi me vlerat e dhëna (4,5,6,7).
2. Merrni një seri matjesh (xi , yi ) dhe perpiquni te gjeni modelin që përqas më mirë matjet
tuaja. Shqyrtoni disa raste modelesh y(x)= a X xkk
M
k1
( ) psh:
a) Xk (x )= sin(k·x) ose cos(k·x)
b) Xk (x )=xk-1
c) Xk (x )=exp(k·x)
d) Xk (x )=1/xk
etj.
3.5 Regresi linear i shumëfishtë
Metoda e regresit linear mund të shtrihet edhe në rastin më të përgjithëshëm kur nuk
kemi varësinë e një variabli nga një variavël i vetëm , por kur kemi varësinë e një variabli nga
disa variabla që maten në mënyrë të pavarur nga njeri tjetri:
y = a0 + a1 · x1 + a2 · x2 + .... + am ·xm (4.1)
Konstantet e modelit: a0 , a1 , a2 ... am përcaktohen nga metoda e regresit linear në mënyrë
analoge me regresin e njëfishtë. Pra, nëse kemi N matje të vlerave të variablave:
yi , x1i , x2
i ... xm
i (i=1,2....N) , atëhere
2 0
1
21
2
y a xi j j
i
j
M
ii
N
(5.1)
ku x0i =1 .
Duke barazuar me zero derivatet e 2 në lidhje me aj , gjejmë sistemin e ekuacioneve:
( )y a x xi j j
i
j
M
j
i
ii
N0
1
21
0 (5.2)
77
Duke shënuar :
Sx x
Sy x
x x
j
i
j
i
ii
N
y x
i j
i
ii
N
j j j, ,21
21
dhe (5.3)
sistemi i ekuacioneve algjebrikë (5.2) sillet në sistemin:
a S Sj x xj
M
y xj j j, ,0
1
(5.4)
zgjidhja e të cilit kryhet me metodat e njohura. Në rezultat merren vlerat e parametrave të
modelit. Programi i mëposhtëm kryen llogaritjen e parametrave të një modeli deri në 8
variabla të pavarur ( mund të shtohet ky numër duke zmadhuar përmasat e vektorëve dhe
matricës).Në program llogaritet edhe parashikimi i vlerës së variablit të varur y për një seri
vlerash të variablave të pavarur xj . ka edhe një llogaritje të koeficienti të korealacionit dhe të
devijimit standart.
10 PRINT "REGRESI LNEAR I SHUMEFISHTE"
20 PRINT
29 REM -VENDOSEN KUFIJTE E DIMENSIONEVE X(N+1),S(N+1),T(N+1),A(N+1,N+2)
30 DIM X(9), S(9), T(9), A(9, 10)
40 PRINT "NUMRI I PIKAVE TE MATJEVE";
50 INPUT N
60 PRINT "NUMRI I VARIABLAVE TE PAVARUR";
70 INPUT V
80 X(1) = 1
90 FOR I = 1 TO N
100 PRINT "PIKA"; I
110 FOR J = 1 TO V
119 REM -FUTNI VARAIBLAT E PAVARUR PER CDO PIKE
120 PRINT "VARIABLI"; J;
130 INPUT X(J + 1)
140 NEXT J
149 REM -FUTNI VARIABLIN E VARUR PER CDO PIKE
150 PRINT " VARIABLI I VARUR";
160 INPUT X(V + 2)
169 REM -MBUSHET MATRICA QE DO PERDORET PER ZGJIDHJEN E SISTEMIT TE
EKUACIONEVE
170 FOR K = 1 TO V + 1
180 FOR L = 1 TO V + 2
190 A(K, L) = A(K, L) + X(K) * X(L)
200 S(K) = A(K, V + 2)
210 NEXT L
220 NEXT K
230 S(V + 2) = S(V + 2) + X(V + 2) ^ 2
240 NEXT I
248 REM RRESHTAT 250 DERI 500 KRYEJNE ZGJIDHJEN E SISTEMIT TE
EKUACIONEVE ALGJEBRIKE LINEARE
250 FOR I = 2 TO V + 1
260 T(I) = A(1, I)
270 NEXT I
78
280 FOR I = 1 TO V + 1
290 J = I
300 IF A(J, I) <> 0 THEN 340
305 J = J + 1
310 IF J <= V + 1 THEN 300
320 PRINT "NUK KA ZGJIDHJE TE VETME"
330 GOTO 810
340 FOR K = 1 TO V + 2
350 B = A(I, K)
360 A(I, K) = A(J, K)
370 A(J, K) = B
380 NEXT K
390 Z = 1 / A(I, I)
400 FOR K = 1 TO V + 2
410 A(I, K) = Z * A(I, K)
420 NEXT K
430 FOR J = 1 TO V + 1
440 IF J = I THEN 490
450 Z = -A(J, I)
460 FOR K = 1 TO V + 2
470 A(J, K) = A(J, K) + Z * A(I, K)
480 NEXT K
490 NEXT J
500 NEXT I
510 PRINT
520 PRINT "KOEFICIENTET E REGRESIT:"
525 PRINT A(1, V + 2)
530 FOR I = 2 TO V + 1
540 PRINT "VARIABLI("; I - 1; "):"; A(I, V + 2)
550 NEXT I
560 P = 0
570 FOR I = 2 TO V + 1
580 P = P + A(I, V + 2) * (S(I) - T(I) * S(1) / N)
590 NEXT I
600 R = S(V + 2) - (S(1) ^ 2) / N
610 Z = R - P
620 L = N - V - 1
640 PRINT
650 I = P / R
670 PRINT "KOEFICIENTI I KORRELACIONIT TE SHUMFISHTE ="; SQR(I)
680 PRINT "DEVIJIMI STANDART "; SQR(ABS(Z / L))
690 PRINT
699 REM - LLOGARITET VARIABLI I VARUR PER VLERA TE VARIABLAVE TE
PAVARUR QE FUTEN ME POSHTE
700 PRINT "INTERPOLIMI : (SHTYP 0 PER TA PERFUNDUAR PROGRAMIN)"
710 P = A(1, V + 2)
720 FOR J = 1 TO V
730 PRINT "VARIABLI"; J;
740 INPUT X
79
749 REM - TEST PER PERFUNDIMIN E PROGRAMIT
750 IF X = 0 THEN 810
760 P = P + A(J + 1, V + 2) * X
770 NEXT J
780 PRINT "DEPENDENT VARIABLE="; P
790 PRINT
800 GOTO 710
810 END
Ushtrime
1.Në tabelën e mëposhtëme jepen të dhënat e matjeve të kryera mbi 8 fëmijë. Në rreshtin e
parë është mosha e tyre, në rreshtin e dytë është gjatësia e tyre dhe në rreshtin e tretë është
pesha e tyre. Konsideroni variabel të varur peshën e fëmijëve dhe dy të tjerat si varibla të
pavarur
Mosha 8 9 6 10 8 9 9 7
Gjatesia 48 49 44 59 55 51 55 50
Pesha 59 55 50 80 61 75 67 58
Duke kryer regresin e shumëfishtë gjeni vlerat e parametrave a0 , a1 , a2 .
Interpoloni vlerën e peshës kur dy variablat e varura janë 7 (mosha) dhe 51 (gjatësia)
2. Merrni një seri matjesh për një variabël të varur kur numri i variblave të pavarur është 5 . I
merrni në fillim vlerat e parametrave të njohura. Mandej llogaritni vlerat që ka variabli i varur
dhe futini këto si të dhëna për regresin e shumëfishtë. Krahasoni vlerat e parametrave që jep
regresi i shumëfishtë me ato që keni zgjedhur vetë.
3. 6 Modelet jolineare
Në shumë raste në praktikë të dhënat përqasen më mirë te një model jolinear, pra varësia e
variablit të varur nga variablat e pavarura është jo lineare. Pra modeli nuk varet linearisht nga
parametrat e modelit.
Le të jenë ak (k=1,2...M) parametrat e modelit, që hyjnë në një varësi jolineare të variablit
të varur y nga varaiblat e varura xk :
y=y(a1 , a2 , ... am , x1 , x2 ,...xm ) (6.1)
Për gjetjen e paramertave të modelit, kërkojmë përsëri minimizimin e 2 që është shuma e
katrorëve të devijimeve midis vlerave të matura të y dhe vlerave të y që jep modeli. Por tani
minimizimi kërkohet jo nëpërmjet barazimit me zero të derivateve siç bëhej në modelet
lineare, por kërkohet nëpërmjet një procedure iteracionesh. Pra u jepen parametrave fillimisht
vlera triviale dhe procedura e iteracioneve i përmirëson ato për sa kohë 2 i llogaritur në çdo
iteracion zvogëlohet në krahasim me iteracionin paraardhës. Procedura vazhdon derisa 2
ndalon zvogëlimin. 2 si funksion i vlearve të paramertrave :
a (a1 , a2 , ...am ) mund të përafrohet në formën kuadratike (duke u ndalur deri tek rendi i dytë
i përafrimit) në formën:
80
2 (a) - d·a +½a· D
^
·a (6.2)
ku është vlera e 2 në minimumin e saj , pra vlera e saj kur modeli ka vlerat e sakta të
parametrave a (a1 , a2 , ...am ) ; d është një vektor me m përmasa (sa është numri i parametrave
të modelit) elementet e të cilit janë vlerat e derivateve të 2 në lidhje me sejcilin parametër ak
(2
ak
, k=1,2...m) në pikën ku 2 është minimum. ; D
^
- është një matricë me përmasa
m m , elementet e të cilës janë derivatet e rendit të dytë të 2 :
2 2
a aj k
, j,k=1,2,...m në pikën ku 2 është minimum. Në minumumin e
2 derivatet e
rendit të parë janë zero , pra d=0 dhe 2 =0 pra = - ½ amin· D
^
·amin . Duke shënuar
D^
·amin =b , atëhere D^
·a =b - 2
1 akk
m
ose shkurt
D^
·a =b - grad 2 (6.3)
Ky barazim tregon se përmirësimi i vlerave të parametrave a , të cilat të fillim zgjidhen apriori
bëhet kur në iteracionin e rradhës merret:
anext = acurrent - D^ 1
grad 2(acurrent) (6.5)
dhe ndryshimi i parametrave nga një iteracion në tjetrin a gjendet nga barazimi:
D^
· a = - grad 2(acurrent) (6.6)
Duke kryer derivatet e para dhe të dyta të 2
1
2
( )( ; )
aay y xi i
ii
N
në lidhje me ak :
2
21
2a
y y x y x
ak
i i
ii
Ni
k
k
( ; ) ( ; )a a dhe
2 2
2
2
1
21
a a
y x
a
y x
ay y x
y x
a ak l i
i
k
i
l
i ii
k li
N
kl
( ; ) ( ; )( ( ; ))
( ; )a aa
a ;
barazimi (6.6) shkruhet :
kl l kl
m
a1
(6.7)
Ky është një sistem ekuacionesh algjebrike që zgjidhet me metodat e njohura. Zgjidhja e këtij
sistemi jep shtesat e rradhës të parametrave al që i shtohen vlerave paraardhëse të
parametrave. Procedura e iteracioneve ndalohet kur ndryshimi i parametrave është i
papërfillshëm. Në praktikë elementët kl llogariten shpesh me formulat e thjeshtuara ku
neglizhohen derivatet e dyta të y(xi ; a):
2 2
21
21
a a
y x
a
y x
ak l i
i
k
i
li
N
kl
( ; ) ( ; )a a
81
Kjo metodë e përmirësimit të zgjidhjes së parametrave të modelit varet shumë nga zgjedhja
fillestare e parametrave. Prandaj mirë është që parametrat fillestarë të mund të përcaktoheshin
me anë të ndonjë metode tjetër të saktë.
KAPITULLI IV
INTEGRIMI I KUACIONEVE DIFERENCIALE
4.1 Ekuacione diferenciale me derivate tw zakonshwm
Problemet fizike qw sjellin nw ekuacione diferenciale me derivate tw zakonshwm janw
tw shumta dhe shumica e tyre janw ekucione qw nuk zgjidhen dot analitikisht. Prandaj
pwrdoren metoda numerike pwr integrimin e tyre. Nw literaturwn e sotme metodat numerike
tw zgjidhjes sw ekuacioneve diferenciale me derivate tw zakonshwm ose siç njihet me
shkurtimin ODE (Ordinary Differential Equations) janw tw shumta. Ne do tw trajtojmw kwtu
ato mw tw pwrdorwshmet.
Njw ekuacion diferencial çfardo i rendit tw parw mund tw shkruhet nw formwn:
dy
dxf x( ) (1.1)
ku f ( x ) wshtw njw funksion çfardo i njohur i variablit x. Gjithmonw , çdo ekuacion i gradws
n mund tw sillet nw njw sistem n-ekuacionesh diferenciale tw rendit tw parw. P.sh. ,
ekuacioni i gradws sw dytw:
d y
dxq x
dy
dxr x
2
2( ) ( ) (1.2)
ku q(x) dhe r(x) janw funksione tw njohura tw variablit x mund tw sillet nw sistemin e dy
ekuacioneve tw rendit tw parw:
dy
dxz x
dz
dxr x q x z x
( )
( ) ( ) ( )
(1.3)
ku funksioni i panjohur z(x ) wshtw njw variabwl i ndwrmjetwm dhe zgjidhja e sistemit tw
ekuacioneve (1.3) jep qoftw z(x) qoftw y(x). Nwse ekuacioni diferencial fillestar do ishte i
rendit n , atwhere sistemi i ekuacioneve diferenciale tw rendit tw parw ekuivalent me
ekuacionin fillestar do tw pwrmbante jo vetwm funksionin e panjohur y(x) por edhe n-1
funksione tw ndwrmjetwm tw panjohur.
Zakonisht, zgjedhja e variablave tw ndwrmjetwm bwhet nw mwnyrw qw derivati i njerit
varjabwl tw japi variablin tjetwr (siç wshtw bwrw tek sistemii 1.3) . Ka raste kur wshtw e
dobishme qw tw futet nw pwrcaktimin e varablave tw ndwrmjetwm ndonjw faktor ose fuqi e
varjablit fillestar . Kjo bwhet me qwllim qw tw zbutet sjellja singulare qw mund tw rezultojw
nag rritja e gabimeve tw rumbullakimit kur fuqitw ose faktorwt marrin vlera tw larta. Prandaj
wshtw mirw qw tw studiohet sjellja e variablave numerikisht dhe tw zgjidhen nw mwnyrw tw
tillwt qw tw varen nga vlerat e argumentit x nw mwnyrw sa mw tw butw.
Problemi i zgjidhjes sw njw ekuacioni diferencial (ODE) tw rendit n sillet nw zgjidhjen
numerike tw sistemit tw n ekuacioneve tw çiftuar ( qw lidhen me njeri tjetrin), i cili ka
formwn e pwrgjithwsme :
dy
dxf x y y yi
i n( , , , ... )1 2 (1.4)
ku i = 1,2,3.. n ; y1 , y2 ,....yn janw funksionet e panjohur (zakonisht y1 wshtw variabli i
panjohur origjinal dhe tw tjerwt janw variablat ndihmws) ; funksionet fi janw tw njohur.
Zgjidhja numerike e kwtij sistemi varet shumw nga forma e kushteve kufitare , tw cilat
janw kushte algjebrike tw vlerave qw marrin variablat yi . Nw pwrgjithwsi, kwto kushte
kwnaqen nw pika diskrete tw specifikuara dhe nuk kwnaqen nw pikat midis kwtyre pikave.
Kushtet kufitare mund tw jenw tw thjeshta p.sh. jepet vlera e variablave tw ndryshwm nw
pika tw ndryshme (pra per vlera tw caktuara tw x) . Por mund tw jenw edhe tw komplikuara
si bashkwsi ekuacionesh algjebrike midis vlerave tw variablave nw pika tw caktuara.
Zakonisht wshtw natyra e kushteve kufitare qw pwrcakton edhe se cilwn metodw
numerike duhet tw pwrdorim pwr zgjidhjene e sistemit. Kushtet kufitare ndahen nw dy
kategori qw pwrcaktojnw edhe llojin e problemit:
a) Probleme me njw kusht kufitar: kur vlerate tw gjitha yi janw dhwnw nw ndonjw pikw qw
quhet dhe pika fillestare xs (start) dhe duhet tw gjenden vlerat e yi nw ndonjw pikw tjetwr
finale xf ose nw njw varg pikas diskrete xj (gjendet kwshtu funksioni i panjohur i tabeluar).
b) Probleme me dy kushte kufitare : kur kushtet kufitare janw specifikuar nw mw shumw se
njw pikw , zakonisht nw dy pika xs dhe xf .
Ne do tw pwrqwndrohemi nw fillim nw problemet e llojit tw parw.
Ideja kryesore pwr zgjidhjen e problemeve me njw kusht kufitar wshtw qw nw ekuacionet
(1.4) dy dhe dx tw merren tw fundwm shumw tw vegjwl y dhe x . atwhere ekuacionet
(1.4) sillen nw formula algjebrike pwr ndryshimet e vlerave tw funksioneve yi kur argumenti x
ndryshon me njw hap tw vogwl x . Duke e bwrw hapin shumw tw vogwl mund tw arrihet
njw pwrafrim i mirw dhe duke zbatuar vazhdimisht kwtw procedurw gjenden vlerat e
funksioneve tw panjohur nw çfardo pike. Kjo procedurw e thjeshtw njihet si metoda e Ejlerit
(ose metoda e diferencave tw fundme) pwr zgjidhjen e sistemit tw ekuacioneve diferenciale
(ODE) . Zakonisht, nuk rekomandohet tw pwrdoret kjo metodw e thjeshtw por metoda tw
tjera. Njw metodw e tillw qw pwrdoret shumw wshtw ajo e mwposhtwme.
4.2 Metoda Runge-Kutta
Le ta zemw se kemi njw ekuacion (ODE) tw gradws sw parw, i cili ne formw tw
pwrgjithwshme do shkruhej:
dy/dx = f(x , y) , (2.1)
ku f wshtw njw funksion i njohur i variablit tw pavarur x dhe variablit tw varur y.
Formula e metodws sw Ejlerit qw u pwrmennd mw lart do tw ishtw:
yn+1 = yn +h·f(xn , yn) (2.2)
Me kwtw formulw do tw gjendej zgjidhja nw pikwn xn+1 nwse dihej zgjidja nw pikwn xn nwse
hapi h nga xn nw xn+1 wshtw shumw i vogwl. Pra, formula e Ejlerit pwrdor informacion mbi
funksionin vetwm nw pikwn fillestare 1 tw intervalit h dhe gjen vlerwn vlerwn e tij nw pikw
2 tw kwtij intervali. Kjo dmth qw gabimi qw bwhet nw çdo hap wshtw e rendit O (h2) sepse
nw pwrafrimin (2.2) kemi neglizhuar termat e rendit tw dytw e lart tw vogwlsisw , po tw
konsiderojmw formulwn (2.2) si zbwrthim tw funksionit y rreth pikws sw radhws xn .
Pwr tw marw pwrafrime mw tw sakta ne duhet tw pwrdorim informacion jo vetwm pwr
fillimin e intervalit h , por edhe nw pika brenda intervalit sic wshtw pika e mesit tw kwtij
intervali. Pikwrisht, nw metodwn Runge-Kuta tw rendit tw dytw pwrdoren vlerat e x dhe y nw
fillim dhe nw mes tw intervalit h pwr tw gjetur shtesat sipas relacioneve tw mwposhtwme:
k1 = h·f (xn , yn )
k2 = h·f ( xn + ½ h , yn +½ k1 )
yn+1 = yn + k2 + O(h3) (2.3)
Ku duket se vlera e shtesws sw parw k1 nw gjysmwn e hapit (½ k1 ) pwrdoret pwr tw
gjetur mw saktw shteswn k2 pas njw hapi tw plotw (Vini re qw vlera e argumentave tw
funksionit f merren nw gjysmwn e hapit) . Nw kwtw mwnyrw arrihet njw pwrafrim i njw
rendi mw tw lartw ( termat qw neglizhohen janw tw rendit tw tretw tw vogwlsisw O(h3)).
Kjo metodw quhet ndryshe edhe metoda e pikws sw mesit.
Por, metoda Runge-Kuta vazhdon edhe me pwrafrime tw rendeve mw tw larta. Psh, nw
formulat e mwposhtwme llogariten shtesat me idenw e shfrytwzimit dy herw tw pikws sw
mesit tw intervalit dhe arrihet nw metodwn Runge-Kutta tw rendit tw IV e cila pwrdoret mw
shpesh:
k1 = h·f (xn , yn )
k2 = h·f ( xn + ½ h , yn +½ k1 )
k3 = h·f ( xn + ½ h , yn +½ k2 )
k4 = h·f ( xn + h , yn + k3 )
yn+1 = yn +k1 /6 + k2 /3 + k3 /3 + k4 /6 + O(h5) (2.4)
Shembull
Nw kwtw shembull, po marrim njw ekucion diferencial tw zakonwshwm tw rendit tw dytw:
d y
dx
dy
dxx
2
22 4 (2.5)
i cili ka zgjidhje analitike dhe njw zgjidhje e veçantw e tij ka formwn : y = x2 + x (po ta
zwvwndwsoni kwtw zgjidhje nw ekuacion , atwhere ekuacioni kwnaqet). Zgjedhim njw
ekuacion tw tillw pwr tw provuar algoritmin qw do pwrdorim pwr zgjidhje numerike. Duke
krahasuar rezultatin numerik me atw analitik mund tw vlerwsohet saktwsia e zgjidhjes, ose
duhke zvogwluar hapin nw metodwn Runge-Kutta mund tw rritim saktwsinw dhe tw ndalemi
nw kwtw zvogwlim tw hapit deri sa saktwsia tw jetw e kwnaqwshme.
Ekaucioni (2.5) , sillet nw dy ekuacione tw rendit tw parw, duke futur variablat e
ndwrmjetwm , pra shwnojmw y1 = y dhe y2 = dy1/dx dhe kemi :
dy
dxy
dy
dxy x
1
2
2
22 4
(2.6)
Kushtet kufitare do ti zgjedhim nw pikwn x = 0 , ku
y1 = 0 , y2 = 1 , dy1 / dx = 1, dy2 / dx = 2 (2.7)
Nw programin e mwposhtwm kryhen llogaritjet numerike nw bazw tw formulave tw metodws
Runge-Kutta tw rendit tw katwrt (2.4) . Ekuacionet konkrete (2.6) janw futur nw subrutinwn
ku llogariten derivatet e çdo variabli (nw rastin tonw y1 dhe y2 ) . Por probrami mund tw
zbatohet edhe pwr çdo sistem tjetwr ekuacionesh diferencialw me derivate tw zakonwshwm
tw renditw tw parw.
Hapi i integrimit futet nga tastjera ndwrsa vlerat e reja tw variablave ruhen nw vektorin
yout().
Varianti Basic i programit :
10 REM PROGRAMI RK4 zgjidh nje sistem n-ekuacionesh te rendit te I
20 REM duke perdorur metoden Runge-Kutta te rendit te IV
30 INPUT "Sa eshte numri i ekuacioneve"; n
40 DIM y(n), dydx(n), yout(n), yt(n), dyt(n), dym(n), dydx0(n), y0(n)
50 OPEN "rk4new.dat" FOR OUTPUT AS #1
60 INPUT "Fut vleren fillestare te x"; x
70 INPUT "Sa eshte hapi h"; h
80 FOR i = 1 TO n
90 PRINT "Sa eshte vlera fillestare e y te"; i; "-te ?"
100 INPUT y0(i)
110 PRINT "Sa eshte vlera fillestare e derivatit te y te"; i; "-te ?"
120 INPUT dydx0(i)
130 NEXT i
140 HH = h * .5
150 H6 = h / 6!
160 xh = x + HH
170 FOR i = 1 TO n
180 yt(i) = y0(i) + HH * dydx0(i)
185 y(i) = yt(i)
190 NEXT i
200 GOSUB 500
210 FOR i = 1 TO n
215 dyt(i) = dydx(i)
220 yt(i) = y0(i) + HH * dyt(i)
225 y(i) = yt(i)
230 NEXT i
240 GOSUB 500
250 FOR i = 1 TO n
260 dym(i) = dydx(i)
270 yt(i) = y0(i) + h * dym(i)
280 dym(i) = dyt(i) + dym(i)
285 y(i) = yt(i)
300 NEXT i
305 xh = x + h
310 GOSUB 500
320 FOR i = 1 TO n
330 dyt(i) = dydx(i)
340 yout(i) = y0(i)+H6*(dydx0(i)+dyt(i)+2.*dym(i))
350 rem PRINT xh, yout(i)
360 y0(i) = yout(i)
365 y(i) = yout(i)
370 NEXT i
372 print #1,xh,yout(1)
375 GOSUB 500
376 FOR i = 1 TO n
377 dydx0(i) = dydx(i)
378 NEXT i
380 x = x + h
390 IF x < 5 THEN GOTO 160
400 GOTO 550
500 REM subrutina e gjetjes se derivateve*********
510 dydx(1) = y(2)
520 dydx(2) = 2 * y(2) - 4 * xh
530 RETURN
550 END
Ndwrsa mw poshtw jepet njw subrutinw nw FORTRAN pwr njw sistem ekuacionesh
diferencialw tw zakonshwm çfardo. Pwr ta kompletuar programin duhet shkruar edhe
subrutina DERIVS , ku sipas ekuacioneve konkrete duhen shkruar derivatet e çdo variabli.
SUBROUTINE RK4(Y,DYDX,N,X,H,YOUT,DERIVS)
PARAMETER (NMAX=10)
DIMENSION Y(N),DYDX(N),YOUT(N),YT(NMAX),DYT(NMAX),DYM(NMAX)
HH=H*0.5
H6=H/6.
XH=X+HH
DO 11 I=1,N
YT(I)=Y(I)+HH*DYDX(I)
11 CONTINUE
CALL DERIVS(XH,YT,DYT)
DO 12 I=1,N
YT(I)=Y(I)+HH*DYT(I)
12 CONTINUE
CALL DERIVS(XH,YT,DYM)
DO 13 I=1,N
YT(I)=Y(I)+H*DYM(I)
DYM(I)=DYT(I)+DYM(I)
13 CONTINUE
CALL DERIVS(X+H,YT,DYT)
DO 14 I=1,N
YOUT(I)=Y(I)+H6*(DYDX(I)+DYT(I)+2.*DYM(I))
14 CONTINUE
RETURN
END
4.3 Kontrolli i hapit nw metodwn Runge-Kutta
Mw lart pamw se si zbatohet metoda Runge-Kutta me hap h tw pandryshueshwm, i cili
sa mw i vogwl tw jetw aq mw i saktw wshtw rezultati. Por shpesh madhwsia e hapit duhet
ndryshuar nw varwsi tw sjelljes sw funksioneve pwr tw marrw rezultatin me sa mw pak
pwrpjekje kompjuterike. Nw vendet ku avancimi me hapa tw vegjwl nuk ndikon nw
ndryshime tw dukwshme tw funksionit mund tw merret hap mw i madh dhe kur hyjmw nw
zona ku funksioni ndryshon shpejt duhen marrw hapa mw tw vegjwl. Pra duhet mbajtur nwn
kontroll hapi h duke u bazuar nw vlerwsimin e gabimeve pwr çdo hap tw zgjedhur
Ky kontroll nw metodwn Runge-Kutta tw rendit tw 4 realizohet me teknikwn e hapit tw
dyfishtw , ku çdo hap ndwrmerret dy herw : njw herw si hap i plotw dhe njw herw si dy
gjysma hapash .
Le tw shwnojmw zgjidhjen e saktw pwr njw variabwl y , gjatw avancimit nga x nw x+2·h ,
me y(x+2h) dhe dy zgjidhjet e pwrafwrta y1 (kur wshtw bwrw njw hap 2h) dhe y2 (kur janw
bwrw dy hapa seicili me madhwsi h ) . Meqw metoda Runge-kutta jep pwrafrime deri tek
rendi i 4 , kemi kwto relacione:
y(x+2h) = y1 + (2h)5 · + O(h
6) +.....
y(x+2h) = y2 +2(h)5 · + O(h
6) +..... (3.1)
ku vlera e wshtw e njwjtw nw tw dy rastet sepse paraqet derivatin e rendit tw pestw nw
pikwn x : y(5)
(x) / 5! . Nw rastin e parw kur wshtw bwrw njw hap i plotw 2h kemi faktorin
(2h)5 te derivati i rendit tw pestw dhe nw rastin e dytw kur janw bwrw dy hapa me madhwsi h
seicila, kemi faktorin 2(h)5 . Diferenca midis tw dy vlerwsimeve tw pwrafwrta :
= y2 - y1 (3.2)
wshtw njw indikator i pwrshtatwshwm. Duke operuar me dy barazimet (3.1) dhe me (3.2),
gjemw:
y(x+2h) = y2 + /15 + O(h6) (3.3)
Kjo shprehje, pavarwsisht se shkon deri tek rendi i 5 i pwrfrimeve , mund tw mos na sjellw
ndonjw pwrmirwsim tw zgjidhjes. Prandaj do ta pwrdorim madhwsinw si njw vlerwsim tw
gabimit dhe ta mbajmw atw brenda kufijve tw dwshiruar. wshtw e rendit h5 , pra nwse
marrim njw hap h1 i cili jep njw gabim 1 , ndwrsa njw hap h0 jep njw gabim 0 , lidhja
midis tyre wshtw :
h h0 1
0
1
0 2.
, ku 0.2=1/5 (3.4)
Ky barazim pwrdoret nw dy rrugw : n.q.s. 1 wshtw mw i madh se 0 nw vlerw absolute ,
barazimi na tregon se sa ta zvogwlojmw hapin kur tw riprovojmw hapin tjetwr dhe n.q.s. 1
wshtw mw i vogwl se 0 barazimi na tregon se sa mund ta rrisim hapin nw hapin tjetwr.
Problemi mbetet se si ta zgjedhim 0 pwr saktwsinw e dwshiruar pwr çdo variabwl y (nwse
kemi disa variabla y(i) wshtw njw vektor me dimesione sa wshtw numri i ekuacioneve).
Zakonisht merret 0 = · y , ku wshtw njw numwr i vogwl psh 10-6
(sa wshtw saktwsia e
rrumbullakimit tw numrave nw kompjuter). Por nwse y oshilojnw shumw merret 0 = · ymax
Mw poshtw po japim variantin BASIC pwr sistemin e ekuacioneve tw shembullit tw
paragrafit tw mwparshwm dhe rutinen nw FORTRAN pwr rastin e pwrgjithwshwm (pa
specifikuar ekuacionet).
10 REM PROGRAMI RKQC zgjidh nje sistem n-ekuacionesh te rendit te I
20 REM duke perdorur metoden Runge-Kutta te rendit te IV te modifikuar
25 REM per te monitoruar hapin
30 INPUT "Sa eshte numri i ekuacioneve"; n
40 DIM y(n), dydx(n), yscal(n), ytemp(n), ysav(n), dysav(n), yout(n), yy(n)
50 DIM yyy(n), dydxx(n), dydxxx(n)
60 INPUT "Fut vleren fillestare te x"; x
70 INPUT "Sa eshte hapi i fillimit"; htry
75 INPUT "Sa eshte epsiloni"; eps
80 FOR i = 1 TO n
90 PRINT "Sa eshte vlera fillestare e y te"; i; "-te ?"
100 INPUT y(i)
110 PRINT "Sa eshte vlera fillestare e derivatit te y te"; i; "-te ?"
120 INPUT dydx(i)
130 NEXT i
140 pgrow = -.2
150 pshrnk = -.25
155 fcor = 1! / 15
157 safety = .9
158 errcon = .0006
159 hnext = htry
160 PRINT x, y(1)
165 xsav = x
170 FOR i = 1 TO n
180 ysav(i) = y(i)
185 dysav(i) = dydx(i)
187 REM yscal(i) = ABS(y(i)) + ABS(h * dydx(i))
188 yscal(i) = dydx(i)
189 IF yscal(i) = 0 THEN yscal(i) = 1
190 NEXT i
195 h = hnext
199 hh = .5 * h
200 CALL rk4(ysav(), dysav(), n, xsav, hh, ytemp())
210 x = xsav + hh
220 CALL derivs(n, x, ytemp(), dydx())
240 CALL rk4(ytemp(), dydx(), n, x, hh, y())
248 REM PRINT x, y(1)
250 x = xsav + h
260 IF x = xsav THEN PRINT "hapi i paperfillshem"
270 CALL rk4(ysav(), dysav(), n, xsav, h, ytemp())
280 errmax = 0.
320 FOR i = 1 TO n
330 ytemp(i) = y(i) - ytemp(i)
340 IF errmax < ABS(ytemp(i) / yscal(i)) THEN errmax = ABS(ytemp(i) / yscal(i))
350 NEXT i
360 errmax = errmax / eps
370 IF errmax <= 1. THEN GOTO 390
375 h=safety*h*(errmax^pshrnk)
380 GOTO 199
390 hdid = h
400 IF errmax > errcon THEN hnext = safety * h * (errmax ^ pgrow) ELSE hnext = 4 * h
410 FOR i = 1 TO n
420 y(i) = y(i) + ytemp(i) * fcor
435 REM PRINT y(i)
430 NEXT i
440 REM x = x + hdid
442 REM CALL derivs(n, x, y(), dydx())
445 IF x < 5 THEN GOTO 160
450 END
500 SUB derivs (n, xxx, yyy(), dydxxx())
510 REM DIM dydx(n)
520 dydxxx(1) = yyy(2)
530 dydxxx(2) = 2 * yyy(2) - 4 * xxx
540 END SUB
600 SUB rk4 (yy(), dydxx(), n, xx, hhh, yout())
610 DIM yt(n), dyt(n), dym(n)
620 hh = hhh * .5
630 H6 = hhh / 6!
640 xh = xx + hh
650 FOR i = 1 TO n
660 yt(i) = yy(i) + hh * dydxx(i)
670 NEXT i
680 CALL derivs(n, xh, yt(), dyt())
690 FOR i = 1 TO n
700 yt(i) = yy(i) + hh * dyt(i)
710 NEXT i
720 CALL derivs(n, xh, yt(), dym())
730 FOR i = 1 TO n
740 yt(i) = yy(i) + hhh * dym(i)
750 dym(i) = dyt(i) + dym(i)
760 NEXT i
770 CALL derivs(n, xx + hhh, yt(), dyt())
780 FOR i = 1 TO n
790 yout(i) = yy(i) + H6 * (dydxx(i) + dyt(i) + 2. * dym(i))
800 NEXT i
810 END SUB
Varianti nw FORTRAN:
SUBROUTINE RKQC(Y,DYDX,N,X,HTRY,EPS,YSCAL,HDID,HNEXT,DERIVS)
PARAMETER (NMAX=10,FCOR=.0666666667,
* ONE=1.,SAFETY=0.9,ERRCON=6.E-4)
EXTERNAL DERIVS
DIMENSION
Y(N),DYDX(N),YSCAL(N),YTEMP(NMAX),YSAV(NMAX),DYSAV(NMAX)
PGROW=-0.20
PSHRNK=-0.25
XSAV=X
DO 11 I=1,N
YSAV(I)=Y(I)
DYSAV(I)=DYDX(I)
11 CONTINUE
H=HTRY
1 HH=0.5*H
CALL RK4(YSAV,DYSAV,N,XSAV,HH,YTEMP,DERIVS)
X=XSAV+HH
CALL DERIVS(X,YTEMP,DYDX)
CALL RK4(YTEMP,DYDX,N,X,HH,Y,DERIVS)
X=XSAV+H
IF(X.EQ.XSAV)PAUSE 'Stepsize not significant in RKQC.'
CALL RK4(YSAV,DYSAV,N,XSAV,H,YTEMP,DERIVS)
ERRMAX=0.
DO 12 I=1,N
YTEMP(I)=Y(I)-YTEMP(I)
ERRMAX=MAX(ERRMAX,ABS(YTEMP(I)/YSCAL(I)))
12 CONTINUE
ERRMAX=ERRMAX/EPS
IF(ERRMAX.GT.ONE) THEN
H=SAFETY*H*(ERRMAX**PSHRNK)
GOTO 1
ELSE
HDID=H
IF(ERRMAX.GT.ERRCON)THEN
HNEXT=SAFETY*H*(ERRMAX**PGROW)
ELSE
HNEXT=4.*H
ENDIF
ENDIF
DO 13 I=1,N
Y(I)=Y(I)+YTEMP(I)*FCOR
13 CONTINUE
RETURN
END
4. 4 Probleme me dy kufinj
Rasti mw i shpeshtw wshtw kur kushtet kufitare jepen nw dy pika kufitare . Nw kwto
raste, po tw fillonim nga njwra pikw sikurse nw rastin e problemit me njw kusht kufitar , duke
integruar hap pas hapi deri tek pika tjetwr, zakonisht do vijmw nw njw vlerw nw pikwn e
dytw qw nuk pwrputhet me kushtin kufitar nw kwtw pikw. Prandaj, pwr problemet me dy
kufinj pwrdoren metodat iterative ose tw “relaksacionit” siç quhen ndryshe. Ne kwtu nuk do
tw trajtojmw algoritmin e plotw tw kwtyre metodave , pasi ai ngjason me ato qw pwrdoren nw
zgjidhjen numerike tw ekuacioneve diferenciale me derivate tw pjeswshwm , qw do tw
trajtohen mw poshtw. Por , po japim vetwm idenw e njw metode qw pwrdoret mw rrallw e qw
quhet metoda “shooting” (marr nw shenjw) . Nw kwtw metodw nisemi nga njera pikw
kufitare integrojmw hap pas hapi si nw rastin me njw kufi , por duke zgjedhur apriori edhe
vlerat e disa parametrave . Kur vijmw nw pikwn tjetwr natyrisht do tw marrim vlera tw
variablave qw nuk pwrputhen me kushtin e dytw kufitar. Duke zbatuar nw kwtw pikw
llogjikwn e gjetjes sw rrwnjwve axhustohen vlerat e parametrave nw mwnyrw qw tw bwjmw
zero diferencat e vlerave tw integruara tw variablave nw pikwn e dytw me vlerat qw kanw
kwto variabla nga kushti kufitar nw kwtw pikw. Kjo ngjason me atw qw bwn qitwsi gjatw
qitjes , pas sw shtwnws sw parw ai pwrmirwson shinjestrwn pwr tw kapur objektivin.
Numri parametrave , vlerat e tw cilwve merren apriori nw fillim , wshtw aq sa wshtw numri
kushteve qw na jepen pwr kufirin e dytw (zakonisht sa numri i variablave, pra numri i
ekuacioneve tw sistemit ).
Nw metodat e relaksacionit , qw pwrdoren mw shpesh, ekuacionet diferenciale
zevwndwsohen me ekuacinet e diferencave tw fundme (shih zgjidheje e ekuacioneve
diferenciale me derivate tw pjeswshwm) nw njw rjet pikash qw mbulojnw intervalin e
integrimit. Nw fillim u jepen variablave vlera tw nnjwjta nw gjithw rrjetin dhe mandej gjatw
iteracioneve vlerat e variablave duke pwrdorur ekuacionet e diferencave tw fundme .
Iteracionet vazhdojnw derisa zgjidhja tw mos ndryshojw mw (brenda kufirit tw gabimeve) .
Atwhere themio qw zgjidhja prehet (relax) nw zgjidhjen e kwrkuar.
4.4 Ekuacione diferenciale me derivate tw pjeswshme
Ekuacionet diferenciale me derivate tw pjeswswm njihen nw literaturw me shkurtimin
PDE (Partial Differential Equations). Ato pwrdoren shpesh nw situata fizike ku madhwsitw
ndryshojnw nw hapwsirw dhe nw kohw. Kwtu pwrfshihen fenomene shumw tw ndryshme si
difuzioni, pawrhapja e valwve, lwvizja e fluideve (hidrodinamika), lwvizja e mikrogrimcave
(mekanika kuantike) etj. . Kwto ekuacione nuk mund tw zgjidhen analitikisht, prandaj
pwrdoren metodat numerike pwr tw marrw rezultate kuantitative. Nw njw trajtim tipik
numerik variablat e varura siç mund tw jenw temperatura, potenciali elektrik, etj pwrshkruhen
nga vlerat e tyre nw njw rrjet pikash diskrete tw variablave tw pavarura siç mund tw jenw
kordinatat hapwsinore dhe koha.Me anw tw njw diskretizimi tw pwrshtatwshwm, ekuacioni
diferencial reduktohet nw njw bashkwsi ekuacionesh algjebrikw . Nw parim kwto ekuacione
algjebrike mund tw zgjidhen me metodat e njohura (shih kapitullin e II) , por pwr dimensionet
e mwdha tw matricave tw formuara (dimensione sa numri i pikave tw rrjetit tw variablave tw
pavarura, qw arrijnw me mijwra) , metodat direkte janw jo praktike. Pwr fat , sistemet e
ekuacioneve algjebrike qw dalin nga diskretizimi janw shumw “lokalistw” ( nw çdo ekuacion
hyn vlera e variablave tw varur nw pikwn e dhwnw dhe vlerat e tyre nw pikat mw tw afwrta).
Prandaj matricat e ekuacioneve algjebrike wshtw e rrallw (“sparse”) , dmth shumica e
elementeve tw tyre janw zero. Pwr matrica tw tilla metodat iterative mund tw jenw shumw tw
efektwshme.
Shumica e PDE qw ndeshen ne Fizikw janw tw rendit tw dytw dhe klasifikohen nw
tre tipe : a) ekuacione tw tipit parabolik , b) ekuacione tw tipit eliptik , d) ekuacione tw tipit
hiperbolik . Ekuacionet e tipit parabolik pwrmbajnw derivat tw rendit tw parw nw lidhje me
njw variabwl (psh koha) dhe derivate tw rendit tw dytw nw lidhje me tw gjithw variablave tw
tjerw (psh, variablat hapsinorw). Tw tilla ekuacione janw ekuacioni i difuzionit, ekuacioni
kohor i Shredingerit etj. Ekuacionet e tipit eliptik kanw derivate tw rendit tw dytw nw lidhje
me çdo variabwl dhe kur ato grupohen nw njwrwn anw tw ekuacioni kanw tw njwjtwn
shenjw. tw tilla janw ekuacioni i Puassonit (nw rastin e veçantw tw tij ekuacioni i Laplasit),
ose ekuacioni stacionar i Shredingerit etj. Ekacionet e tipit hiperbolik pwrmbajnw derivate tw
rendit tw dytw nw lidhje me çdo variabwl por kur derivatet janw nw tw njwjtwn anw tw
ekuacionit kanw shenjw tw kundwrt derivatet hapwsinorw me ato kohorw . Tipik pwr kwtw
rast wshtw ekuacioni i pwrhapjes sw valwve nw njw mjedis. Nw kwtw kapitull ne do
trajtojmw vetwm ekuacionet diferenciale tw tipit eliptik ose hiperbolik.
4.5 Diskretizimi i zonws dhe parimi variacional
Pwr thjeshtwsi po shqyrtojmw njw ekuacion tw tipit eliptik nw rastin me dy variabla tw
pavarur dhe njw varvariabwl tw varur , siç wshtw rasti i potencialit elektrostatik nw plan, i
cili kwnaq ekuacionin:
2
2
2
2x yS x y( , ) (5.1)
ku funksioni S(x,y) karakterizon shpwrndarjen e burimeve (densiteti i ngarkesaveelektrike).
Pwr zgjidhjen e ekuacionit (5.1) duhen ditur edhe kushtet kufitare. Kushtet kufitare janw
3 llojesh : a) Kushte kufitare tw tipit Dirikle , kur jepet vlera e variablit tw varur (nw rastin
tonw potenciali) nw njw sipwrfaqe tw mbyllura (nw rastin e problemit nw plan nw kurba tw
mbyllura) dhe nw infinit (zakonisht merret zero nwse shpwrndarja e burimeve wshtw nw zona
tw fundme hapwsinore). b) Kushte kufitare tw tipit Nojman , kur jepet vlera e derivatit normal
(derivati sipas drejtimit pingul me sipwrfaqen ) nw sipwrfaqe tw mbyllura . c) Kushte kufitare
tw tipit Koshi , kur jepet vlera kombinimit linear tw variablit tw varur dhe derivatit normal nw
sipwrfaqe tw mbyllura.
Le ta zemw se nw problemi tonw jepet potenciali nw disa kurba tw mbyllura (kushtet
kufitare tw tipit Dirikle) brenda njw katrori brinjwt e tw cilit merren 1 njwsi duke konsideruar
qw kwto brinjw janw shumw larg kurbave tw mbyllura , pra mund tw konsiderohen me
potencial konstant .
Rjeti i pikave nw
plan
Kushtet kufitare
jepen ne brinjwt
e katrorit dhe nw
kurbat e
mbyllura brenda
rrjetit.
Nwse h wshtw
hapi i rrjetws,
atwhere numri i
pikave tw rrjetit
wshtw
(N+1)·(N+1) , ku
N =1/h wshtw
numri i
intervaleve h nw
secilwn brinjw
tw katrorit.
Cdo pikw e
rrjetit (i,j) ka
kordinatat nw plan xi = i·h , yj =j·h , ku i,j= 0,1,2...N . Potencialin (variabli i varur nw
ekuacionin 5.1) nw çdo pikw tw tw rjetws e shwnojmw ij = (xi , yj) dhe ana e djathtw e
ekuacionit 5.1 merr vlerat Sij = S(xi , yj) nw pikat e rrjetws.
Nwqoftwse derivatet e dyta nw ekuacionin 5.1 i pwrafrojmw numerikisht me formulwn e
tre pikave (shih kapitullin e parw) , atwhere ekuacioni diferencial (5.1) sillet nw sistemin e
ekuacioneve algjebrike:
i j i j ij ij ij ij
ijh h
S1 1
2
1 1
2
2 2 (5.2)
Ekuacionin (5.1) ne mund ta nxjerrim edhe nw bazw tw parimit variacional. Pra, tw
zgjedhim njw funksional tw tillw qw minizimi ( nw pwrgjithwsi ekstremizimi) i tij tw na
sjellw nw ekuacionin (5.1) ashtu siç veprohet nw parimin e veprimit minimal pwr tw nxjerrw
ekuacionet e Lagranzhit (shih tekstin Mekanika Teorike). Le tw zgjedhim njw funksional tw
formws:
E S dxdy0
12
0
1
2( ) / (5.3)
ku wshtw gradienti i potencialit . Nw kwtw rast E pwrfaqwson energjinw e sistemit, por
kjo nuk do tw thotw qw pwr ndonjw ekuacion tjetwr funksionali E tw paraqesw enegjinw.
Variacioni i funksionalit E gjatw variacionit tw potencialit , wshtw:
E S dxdy0
1
0
1
(5.4)
i cili, sipas kushtit tw ekstremumit tw E wshtw i barabartw me zero.
Duke integruar me pjesw integralin 0
1
0
1
, marrim:
E dl S dxdyC
n 2
0
1
0
1
(5.5)
ku integrali i parw wshtw nw kufijtw e zonws(brinjwt e katrorit nw rastin tonw) dhe n wshtw
vektori njwsi i normales nw kwto kufinj . Por variacioni i nw kwto kufinj wshtw zero , pasi
vlera e potencialit nw kufinjtw e zonws wshtw e pwrcaktuar ( =0) , prandaj integrali i parw
bwhet zero dhe barazimi me zero : E=0 sjell nw barazimin me zero tw shprehjes nw kllapa
nwn integraline dytw ( pwr tw çfardoshme):
2 + S = 0 ,
qw pwrputhet me ekuacionin (5.1). Prandaj pwr tw marrw njw pwrafrim diskret tw
ekuacionit (5.1), ne mund tw diskretizojmw nw fillim integralin (5.2) nw shumwn :
E h Sij i j ij ij ijj
N
i
N
1
2
1
22
11
2/ (5.6)
dhe mandej duke barazuar me zero derivatet : E
ij
0 , marrim sistemin e ekuacioneve
algjebrike (5.2). Kjo dmth tw kwrkohet ekstremumi (minimumi) i E ndaj ndryshimit tw
potencialit nw kikat e rjetws.
Sigurisht, saktwsi mw e madhe merret duke pwrdorur njw pwrafrim mw tw mirw
numerik pwr derivatet e rendit tw parw . Nw rastin e formulws (5.6) wshtw marrw pwrafrimi i
dy pikave ( shih derivimin numerik , kapitulli i I)
Deri tani nw pwrafrimin numerik nuk kemi folur se ku hyjnw kushtet kufitare. Do ishte
mirw qw sistemi kordinativ i pwrdorur t’i pwrshtatej gjeometrisw sw kushteve kufitare. Psh
nwse na jepej potenciali nw njw sferw mirw ishte qw tw pwrdorej sistemi i kordinatave
sferike. Nw rastin kur ne kemi pwrdorur kordinatat karteziane nw plan, sipwrfaqja e çrregullt
brenda katrorit (fig. 5.1) ku jepet potenciali ( nw rastin e konditave kufitare tw tipit Dirikle),
do tw pwrafrohej me bashkwsinw e pikave tw rrjetws qw bien mbi kwtw sipwrfaqe. Nw
praktikw, pwr sipwrfaqet ku jepen kushte kufitare mirw wshtw qw tw pwrdoret njw rrjet
pikash mw i dendur. Nw pikat ku jepet potenciali , ekuacionet algjebrike (6.2) shkruhen nw
formwn qw potenciali tw dalw nw anwn e djathtw tw ekuacionit ku nuk hyjnw tw panjohurat.
Psh , ekuacionet pwr pikat ngjtitur me kufirin e jashtwm tw zonws, ta zemw pranw brinjws sw
sipwrme tw katrorit (i,N-1), do shkruhej:
4· iN-1 - i+1N-1 - i-1N-1 - iN-2 = h2 ·SiN-1 + iN (5.7)
pra potenciali iN wshtw hedhur nw anwn e djathtw tw ekuacionit. Njwlloj min tw veprohet
edhe pwr sipwrfaqet e brendwshme ku mund tw jepet potenciali (kushtet kufitare Dirikle) ose
derivati normal i potencialit (kushtet kufitare Neuman) ose kombinimi i tyre (kushtet kufitare
Koshi) . Psh nwse do tw na jepej derivati normal nw brinjwn e katrorit paralel me boshtin X :
yg x( ) nw y = 1 (pra nw pikat j=N) , atwhere numerikisht do kishim barazimin:
iN - iN-1 = h·gi , gjw qw tregon se nw j=N , ekuacionet (5.2) do shkruheshin:
3 iN-1 - i+1N-1 - i-1N-1 - iN-2 = h2· SiN-1 + h·gi .
Kur marrim nw konsideratw edhe kushtet kufitare, ekuacionet afwr sipwrfaqeve ku ka
kushte kufitare do tw shkruhen ndryshe nga ekuacionet (5.2) pur pwrswri janw ekaucine
algjebrike linearw , ku nw anwn e majte hyjnw tw panjohurat qw janw vlerat e potencialit nw
pikat e rrjetws. Nw fund tw fundit ne do tw merrnim njw sistem ekuacionesh algjebrike
lineare qw nw trajtw tw pwrgjithwshme shkruhen:
M S^
(5.8)
ku M wshtw matrica e sistemit -wshtw vektori elementwt e tw cilit janw vlera e potencialit
tw renditura me njw indeks , pra 11 = 1 , 12 = 2 etj.. Ndwrsa vektori S ka vlera e anws sw
djathtw tw ekuacionit (5.1) nw pikat jo kufitare dhe nw pikat kufitare merr vlera propocional
me vlerat e potencialit ose derivatit tw tij ( sipas kushteve kufitare).
Sistemi algjebrik (5.8) pwrmban zakonisht shumw ekuacione , prandaj pwr zgjidhje e tyre
pwrdoren metoda iterative.
4.6 Njw metodw iterative pwr problemet kufitare
Pwr thjeshtwsi po marrim njw problem njw dimensional, ekuacioni analog me (5.1) do
ishte :
d x
dxS x
2
2( ) (6.1)
dhe kushtet kufitare nw formwn Dirikle, pra jepen vlerat e potencialit (variablit tw varur) nw
pikat e skajeve tw segmentit [0,1] : (0) dhe (1).
Ekuacioni (6.1) meret nga ekstremizimi i funksionalit (energjisw):
E d dx S dx1 22
0
1
/ / (6.2)
i cili mund tw diskretizohet nw rrjetwn uniforme me hap : h = 1/N , duke zbatuar formulwn e
dy pikave pwr derivatin numerik:
Eh
h Si ii
N
i ii
N1
21
2
1 1
1
(6.3)
Barazimi me zero i variacionit tw E nw lidhje me i , jep ekuacionet :
2 i - i+1 - i-1 = h2 Si (6.4)
Nga kwto ekuacione ne mund ta shprehim secilwn nga tw panjohurat i nw funksion tw
vlerave nw pikat fqinje:
i = ½ [ i+1 + i-1 + h2
Si ] (6.5)
Metoda e iteracioneve konsiston nw kwtw : Zgjidhet fillimisht njw zgjidhje apriori , e cila
merret zakonisht sa vlera e potencialit nw kufinjtw e zonws. Pra merret tw gjitha i sa vlera e
(0) dhe (1) ( qw zakonisht janw tw njwjta sepse janw vlerat e potencialit nw kufinjtw e
largwt tw zonws, pra merren zero) . Mandej pwrmirwsohet vlera e i nw çdo pikw sipas
formulws (6.5) dhe kwto vlera tw pwrmirwsuara pwrdoren nw iteracionin pasardhws po sipas
formulws (6.5). Duke pwrswritur kwtw prosedurw shumw herw mund tw arrihet qw zgjidhja
i tw mos ndryshojw ( ndryshimi mw i vogwl se njw saktwsis e kwrkuar). Nw kwtw rast
themi se zgjidhja “prehet” (relax) tek zgjidhja e kwrkuar. Prandaj metoda quhet ndryshe edhe
si metoda e relaksacionit. Shpesh, pwrmirwsimi i zgjidhjes nw çdo iteracion bwhet nga
kombinimi i zgjidhjes sw vjetwr me zgjidhjen qw jep formula (6.5). Pra, potenciali nw
iteracionin pasardhws merret:
i = (1- )· i + /2 [ i+1 + i-1 + h2 Si ] (6.6)
ku wshtw njw parametwr qw mund tw rregullohet qw tw kontrollojw shpejtwsinw e
procesit tw realaksacionit . Vlera e tij zgjidhet me prova , por intervali i vlerave duhet tw jetw
0 < < 2 , sepse po tw kontrollohet diferenca e vlerave tw energisw sw diskretizuar pwr
rastin kur wshtw futur parametri i relaksacionit me rastin kur nuk wshtw futur parametri i
relaksacionit , del diferenca:
E’-E= - ·(2- )[½( i+1 + i-1 + h2 Si ) - i ]
2 / (2h)
e cila wshtw negative ( pra energjia zvogwlohet) vetwm nwse 0 < < 2 dhe konvergjon drejt
minimumit.
Mw poshtw jepet programi i kwsaj metode, kur S(x)= 12 x2
dhe (0)= (1)=0 . Merret
ky rast sepse dihet edhe zgjidhja analitike e ekuacionit dhe mund tw vlerwsohet saktwsia e
algoritmit.
Varianti BASIC :
10 n = 20
20 h = 1 / n
30 omega = 1!
40 DIM phi(n), s(n)
50 FOR i = 1 TO n
60 x = i * h
70 s(i) = h * h * 12 * x * x
80 phi(i) = 0
90 NEXT i
100 FOR it = 1 TO 500
110 FOR i = 1 TO n - 1
120 phip = (phi(i - 1) + phi(i + 1) + s(i)) / 2
130 phi(i) = (1 - omega) * phi(i) + omega * phip
140 NEXT i
150 IF (it - 1) MOD 20 <> 0 THEN 230
160 PRINT USING "iteration=###"; it
170 e = 0!
180 FOR i = 1 TO n
190 e = e + ((phi(i) - phi(i - 1)) / h) ^ 2 / 2
200 e = e - s(i) / h / h * phi(i)
210 NEXT i
220 PRINT USING "energy=+##.####^^^^"; e * h
230 NEXT it
240 END
Varianti FORTRAN:
PARAMETER (NSTEP=20)
DIMENSION PHI(0:NSTEP),S(0:NSTEP)
50 PRINT *,' Enter omega (.le. 0 to stop)'
READ *, OMEGA
IF (OMEGA .LE. 0) STOP
H=1./NSTEP
DO 10 IX=0,NSTEP
X=IX*H
S(IX)=H*H*12*X*X
PHI(IX)=0.
10 CONTINUE
DO 20 ITER=1,500
DO 15 IX=1,NSTEP-1
PHIP=(PHI(IX-1)+PHI(IX+1)+S(IX))/2
PHI(IX)=(1.-OMEGA)*PHI(IX)+OMEGA*PHIP
15 CONTINUE
IF (MOD(ITER-1,20) .EQ. 0) THEN
E=0.
DO 30 IX=1,NSTEP
E=E+(((PHI(IX)-PHI(IX-1))/H)**2)/2
E=E-S(IX)*PHI(IX)/H**2
30 CONTINUE
E=E*H
PRINT *,' iteration = ',iter,' energy = ',E
END IF
20 CONTINUE
GOTO 50
END
4.7 Rasti dy-dimensional
Zbatimi i metodws sw relaksacionit nw rastin dydimensional (nw plan) nw problemet
kufitare tw ekuacioneve eliptike ilustrohet me shembullin e ekuacionit tw Laplasit. Programi
wshtw marrw i gatwshwm nga literatura dhe zbatohet vetwm nw PC nw gjuhwn QBASIC pasi
janw futur komanda grafike . Programi wshtw iteraktiv dhe pwrdoruesit i kwrkohet nw çdo
hap nwpwrmjet ekranit se çfarw duhet tw bwjw dhe si futen kushtet kufirate brenda njw zone
drejtwkwndwshi ku mund tw ketw edhe kurba me potencial tw njwjtw. Subrutina kryesore ku
zbatohet metoda e relaksacionit sillon nw rreshtin 13000 , potenciali ruhet nw matricwn
dydimensionale P(ROW,COL)
10 '***************************************************************************
20 'Example 6: Solving Laplace's equation in two dimensions
21 'COMPUTATIONAL PHYSICS by Steven E. Koonin
22 'Copyright 1985 by Addison-Wesley Publishing Company
30 '***************************************************************************
40 GOSUB 15000 'display header screen
50 '
60 FIRST%=-1 'define constants, functions
70 DIM INTERIOR%(10) 'array for color of interior
80 DIM BOUNDARY%(10) 'array for color of boundary
90 DIM BUFFER%(24,80) 'gives position in screen buff
100 DIM P(24,80) 'value of potential
110 OMEGA%=-1 'flag to input omega
120 LATTICE%=-1 'flag to input lattice size
130 LSAVE%=0 'flag to save lattice size
140 BC%=0: BCSAVE%=0 'keep size, change bound cond
150 PSAVE%=0 'keep old Phi values
160 CLR%=-1 'flag to clear screen
170 '
180 IF FIRST% THEN GOSUB 1000 'print cautionary message
190 IF LATTICE% AND NOT BCSAVE% THEN GOSUB 2000 'input lattice size, INIT%
200 IF OMEGA% THEN GOSUB 3000 'input OMEGA
210 IF LATTICE% THEN GOSUB 4000 'initialize P array
220 IF FIRST% THEN GOSUB 5000 'display instruction for input
230 IF LATTICE% OR BC% THEN GOSUB 6000 'input P from screen
240 IF SUBLATTICE% THEN GOSUB 9000 'input sublattice from screen
250 GOSUB 11000 'make initial guess for P
260 GOSUB 12000 'display commands
270 '
280 BC%=0: OMEGA%=0: LATTICE%=0: LSAVE%=0 'reset all flags
290 PSAVE%=0: CLR%=0: SUBLATTICE%=0: BCSAVE%=0
300 '
310 LOCATE ,,0: ITERATION%=0 'iteration count begins from 0
320 K$=INKEY$ 'accept keyboard input
330 IF NOT SUBL% THEN GOTO 370 'if there is a sublattice,then
340 X1%=SUBX1%: X2%=SUBX2% ' the limits on X and Y are not
350 Y1%=SUBY1%: Y2%=SUBY2% ' those of the whole lattice
360 '
370 WHILE K$<>"e" 'continue loop until e is typed
380 ITERATION%=ITERATION%+1
390 OLDE=ENERGY: ENERGY=0 'save previous energy
400 OLDDELP=DELTAPMAX: DELTAPMAX=0 'save previous max delta P
410 GOSUB 13000 'relax the lattice
420 '
430 K$=INKEY$ 'accept keyboard input
440 WEND
450 '
460 IF NOT SUBL% THEN GOTO 510 'if there is a sublattice,
470 X1%=XFIRST%: X2%=XLAST% ' typing e once will begin
480 Y1%=YFIRST%: Y2%=YLAST% ' the loop for the entire
490 LOCATE 25,59: PRINT SPACE$(10); ' lattice
500 SUBL%=0: GOTO 310
510 GOSUB 14000 'display options
520 GOTO 180 'begin again
530 '
1000 '*************************************************************************
1010 'subroutine to print cautionary message about POKEing
1020 'input variables: none
1030 'output variables: BOUNDARY%(I%), INTERIOR%(I%), POKING%
1040 'global variables: GRAPHICS%
1050 'local variables: ANSWER$, OPT$
1060 '*************************************************************************
1070 CLS
1080 '
1090 LOCATE 1,34,0
1100 PRINT "C A U T I O N"
1110 LOCATE 3,9
1120 PRINT "For efficient screen display this program uses the POKE command";
1130 LOCATE 5,9
1140 PRINT "which places data directly into memory. The location given in";
1150 LOCATE 7,8
1160 PRINT "POKE (syntax: POKE location,data) is an offset from the current";
1170 LOCATE 9,8
1180 PRINT "segment as given by the DEF SEG statement. This program sets the";
1190 LOCATE 11,10
1200 PRINT "segment to the beginning of either the graphics or monochrome";
1210 LOCATE 13,8
1220 PRINT "screen buffer for the IBM PC. If your memory map isn't the same";
1230 LOCATE 15,8
1240 PRINT "as an IBM, POKE may write over important data in RAM. Check your";
1250 LOCATE 17,9
1260 PRINT "BASIC manual (DEF SEG statement) for the segment of the screen";
1270 LOCATE 19,8
1280 PRINT "buffer and compare with lines 1450,1540 in this program to ensure";
1290 LOCATE 21,33
1300 PRINT "smooth running.";
1310 '
1320 LOCATE 24,1 'input method of screen display
1330 PRINT "Do you wish to use 1)the POKE method, or 2)the slower and sure";
1340 INPUT; " LOCATE method";OPT$
1350 IF OPT$="1" OR OPT$="2" THEN GOTO 1400
1360 LOCATE 25,24: BEEP
1370 PRINT "Try again, the response is 1 or 2";
1380 LOCATE 24,1: PRINT SPACE$(79);
1390 GOTO 1320
1400 IF OPT$="1" THEN POKING%=-1 ELSE POKING%=0
1410 IF NOT POKING% THEN RETURN
1420 '
1430 IF NOT GRAPHICS% THEN GOTO 1540
1440 GOSUB 16000 'switch screens
1450 DEF SEG=&HB800 'set memory
1460 RESTORE 1510
1470 FOR I%=0 TO 9 'set up array for colors
1480 READ INTERIOR%(I%)
1490 BOUNDARY%(I%)=INTERIOR%(I%)+96
1500 NEXT I%
1510 DATA 4,5,1,3,2,12,13,9,11,10
1520 RETURN
1530 '
1540 DEF SEG=&HB000 'set memory
1550 FOR I%=0 TO 9 'set up arrays for colors
1560 INTERIOR%(I%)=2 ' (viz. boldface or regular
1570 BOUNDARY%(I%)=11 ' type)
1580 NEXT I%
1590 RETURN
1600 '
2000 '*************************************************************************
2010 'subroutine to input Nx, Ny, INIT%
2020 'input variables: LATTICE%, LSAVE%
2030 'output variables: INIT%, STP%, XFIRST%, XLAST%, YFIRST%, YLAST%
2040 'global variables: none
2050 'local variables: NX%, NY%
2060 '*************************************************************************
2070 CLS
2080 IF LSAVE% THEN GOTO 2380
2090 '
2100 LOCATE 3,19 'display introduction
2110 PRINT "This program solves Laplace's equation on a";
2120 LOCATE 4,19
2130 PRINT "uniform rectangular lattice of unit spacing";
2140 '
2150 LOCATE 6,18 'input NX
2160 INPUT; "Enter the number of horizontal points (<=79)";NX%
2170 IF NX%>0 AND NX%<80 GOTO 2230
2180 LOCATE 7,29: BEEP
2190 PRINT "Try again, 0 < Nx <= 79";
2200 LOCATE 6,1: PRINT SPACE$(80);
2210 GOTO 2150
2220 '
2230 LOCATE 9,19 'input NY
2240 INPUT; "Enter the number of vertical points (<=23)";NY%
2250 IF NY%>0 AND NY%<=23 THEN GOTO 2310
2260 LOCATE 10,29: BEEP
2270 PRINT "Try again, 0 < Ny <=24";
2280 LOCATE 9,1: PRINT SPACE$(80);
2290 GOTO 2230
2300 '
2310 YFIRST%=(24-NY%)/2: YLAST%=YFIRST%+NY%-1 'center the lattice
2320 IF NX%>39 GOTO 2350 'if possible, let the
2330 XFIRST%=(79-2*NX%)/2: XLAST%=XFIRST%+2*(NX%-1) ' columns be separated
2340 STP%=2: GOTO 2380 ' by a space
2350 XFIRST%=(81-NX%)/2: XLAST%=XFIRST%+NX%-1
2360 STP%=1
2370 '
2380 LOCATE 12,13 'input bound value of P
2390 INPUT; "Enter the initial value for P along the boundary (1-35)";INIT%
2400 IF INIT%>=1 AND INIT%<=35 THEN GOTO 2460
2410 LOCATE 13,36: BEEP
2420 PRINT "Try again";
2430 LOCATE 12,1: PRINT SPACE$(79);
2440 GOTO 2380
2450 '
2460 RETURN
2470 '
3000 '*************************************************************************
3010 'subroutine to input OMEGA
3020 'input variables: BC%, FIRST%, LATTICE%
3030 'output variables: OMEGA
3040 'global variables: none
3050 'local variables: none
3060 '*************************************************************************
3070 IF NOT LATTICE% THEN CLS 'clear screen
3080 '
3090 IF FIRST% GOTO 3120 'input OMEGA
3100 LOCATE 19,24
3110 PRINT USING "Your last value of Omega was #.##";OMEGA;
3120 LOCATE 18,11
3130 PRINT "Omega is the parameter which controls the rate of relaxation";
3140 LOCATE 20,33
3150 PRINT "0 < OMEGA <= 2";
3160 LOCATE 22,36
3170 INPUT; "OMEGA = ";OMEGA
3180 IF OMEGA>0 AND OMEGA<=2 GOTO 3240
3190 LOCATE 23,36: BEEP
3200 PRINT "Try again"
3210 LOCATE 22,1: PRINT SPACE$(79);
3220 GOTO 3160
3230 '
3240 RETURN
3250 '
4000 '*************************************************************************
4010 'subroutine to input initial values in P and BUFFER% arrays
4020 'input variables: BCSAVE%, INIT%, STP%, XFIRST%, XLAST%, YFIRST%, YLAST%
4030 'output variables: BUFFER%(I%,J%), P(I%,J%)
4040 'global variables: none
4050 'local variables: COL%, ROW%
4060 '*************************************************************************
4070 IF NOT BCSAVE% THEN GOTO 4150 'if saving bound. cond.
4080 FOR ROW%=YFIRST% TO YLAST% ' then release all non
4090 FOR COL%=XFIRST% TO XLAST% STEP STP% ' boundary points
4100 IF P(ROW%,COL%)>=0 THEN P(ROW%,COL%)=0
4110 NEXT COL%
4120 NEXT ROW%
4130 RETURN
4140 '
4150 FOR ROW%=YFIRST% TO YLAST%
4160 FOR COL%=XFIRST% TO XLAST% STEP STP% 'location in
4170 BUFFER%(ROW%,COL%)=((ROW%-1)*80+(COL%-1))*2 ' screen buffer
4180 P(ROW%,COL%)=0 'relase all pts
4190 NEXT COL%
4200 NEXT ROW%
4210 '
4220 FOR ROW%=YFIRST% TO YLAST% 'set all points on the edge of
4230 P(ROW%,XFIRST%)=-INIT% ' of the lattice to the initial
4240 P(ROW%,XLAST%)=-INIT% ' value for P
4250 NEXT ROW%
4260 '
4270 FOR COL%=XFIRST% TO XLAST% STEP STP% 'a negative value for P
4280 P(YFIRST%,COL%)=-INIT% ' indicates that it is a
4290 P(YLAST%,COL%)=-INIT% ' boundary point
4300 NEXT COL%
4310 '
4320 RETURN
4330 '
5000 '*************************************************************************
5010 'subroutine to display instructions for altering boundary conditions
5020 'input variables: none
5030 'output variables: none
5040 'global variables: none
5050 'local variables: none
5060 '*************************************************************************
5070 CLS
5080 '
5090 LOCATE 1,8,0
5100 PRINT "The initial boundary conditions will be displayed on the screen";
5110 LOCATE 3,17
5120 PRINT "and you will be able to alter them as follows:";
5130 LOCATE 5,27
5140 PRINT "Use "+CHR$(24)+CHR$(25)+CHR$(26)+CHR$(27)+" to move the cursor";
5150 LOCATE 7,18
5160 PRINT "At any point you may enter characters 1-9,a-z";
5170 LOCATE 9,14
5180 PRINT "corresponding to Dirichlet boundary values from 1-35";
5190 LOCATE 11,10
5200 PRINT "Entering . at any point will release it from boundary conditions";
5210 LOCATE 13,24
5220 PRINT "Type return when you are finished";
5230 LOCATE 16,3
5240 PRINT "Then by placing a < in the upper left hand and ";
5250 PRINT "a > in the lower right hand";
5260 LOCATE 18,8
5270 PRINT "corners you may specify a sublattice which will be relaxed first,";
5280 LOCATE 20,11
5290 PRINT "thus speeding the relaxation process for the whole lattice.";
5300 LOCATE 22,14
5310 PRINT "Type . to erase a mistake, type return when finished.";
5320 '
5330 LOCATE 25,31,1
5340 PRINT "Type c to continue";
5350 IF INKEY$<>"c" THEN GOTO 5350
5360 LOCATE ,,0
5370 '
5380 RETURN
5390 '
6000 '*************************************************************************
6010 'subroutine to input boundary conditions from the screen
6020 'input variables: PSAVE%, STP%, XFIRST%, XLAST%, YFIRST%, YLAST%
6030 'output variables: SUBL%, SUBLATTICE%, SUBSAVE%, X1%,X2%, Y1%, Y2%
6040 'global variables: BOUNDARY%(I%), INTERIOR%(I%), POKING%
6050 'local variables: ASKII%, ATT%, COL%, OPT$, P%, ROW%
6060 '*************************************************************************
6070 X1%=XFIRST%: X2%=XLAST% 'set values so that the entire
6080 Y1%=YFIRST%: Y2%=YLAST% ' lattice will be displayed
6090 IF NOT PSAVE% THEN GOSUB 7000 ELSE GOSUB 8000 'display lattice
6100 '
6110 LOCATE 24,16 'display instructions
6120 PRINT "enter values 1-9,a-z; type return when finished";
6130 '
6140 COL%=XFIRST%: ROW%=YFIRST% 'start cursor in upper right
6150 '
6160 LOCATE ROW%,COL%,1 'place cursor at current pos
6170 COLOR 15 'attribute for boundary
6180 K$=INKEY$ 'wait for keyboard input
6190 IF K$="" THEN GOTO 6180
6200 LOCATE 25,34: PRINT SPACE$(13); 'erase old error message
6210 '
6220 IF LEN(K$)<2 THEN GOTO 6420 'check for two character
6230 K$=RIGHT$(K$,1) ' input indicating cursors
6240 '
6250 IF K$<>CHR$(72) THEN GOTO 6290 'up arrow
6260 ROW%=ROW%-1
6270 IF ROW%<YFIRST% THEN ROW%=YFIRST%
6280 GOTO 6160
6290 IF K$<>CHR$(80) THEN GOTO 6330 'down arrow
6300 ROW%=ROW%+1
6310 IF ROW%>YLAST% THEN ROW%=YLAST%
6320 GOTO 6160
6330 IF K$<>CHR$(77) THEN GOTO 6370 'left arrow
6340 COL%=COL%+STP%
6350 IF COL%>XLAST% THEN COL%=XLAST%
6360 GOTO 6160
6370 IF K$<>CHR$(75) THEN GOTO 6610 'right arrow
6380 COL%=COL%-STP%
6390 IF COL%<XFIRST% THEN COL%=XFIRST%
6400 GOTO 6160
6410 '
6420 IF K$=CHR$(13) THEN GOTO 6640 'typing return exits
6430 '
6440 IF K$<>CHR$(46) THEN GOTO 6490 'release point if . entered
6450 P(ROW%,COL%)=0 'P=0 indicates released point
6460 ASKII%=46 '. is ASCII character 46
6470 COLOR 7: ATT%=INTERIOR%(0) 'get correct attribute
6480 GOTO 6560
6490 ASKII%=ASC(K$) 'find ASCII code for input
6500 IF ASKII%<49 OR ASKII%>122 GOTO 6610 'if code in this
6510 IF ASKII%>57 AND ASKII%<97 GOTO 6610 ' range, not 1-9,a-z
6520 IF ASKII%>96 THEN P%=ASKII%-87 ELSE P%=ASKII%-48
6530 P(ROW%,COL%)=-P% 'translate ASCII to P value
6540 ATT%=BOUNDARY%(P% MOD 10) 'get correct attribute
6550 '
6560 IF NOT POKING% THEN LOCATE ROW%,COL%: PRINT CHR$(ASKII%);
6570 IF POKING% THEN POKE BUFFER%(ROW%,COL%),ASKII%
6580 IF POKING% THEN POKE BUFFER%(ROW%,COL%)+1,ATT%
6590 GOTO 6160
6600 '
6610 LOCATE 25,34: COLOR 7: PRINT "Illegal input";
6620 GOTO 6160
6630 '
6640 COLOR 7: LOCATE 24,1: PRINT SPACE$(79); 'do you want a sublattice
6650 LOCATE 25,1: PRINT SPACE$(79);
6660 LOCATE 24,19
6670 INPUT; "Do you wish to specify a sub lattice (y/n)";OPT$
6680 IF OPT$="y" OR OPT$="n" THEN GOTO 6730
6690 LOCATE 25,36: BEEP
6700 PRINT "Try again"
6710 LOCATE 24,1: PRINT SPACE$(79);
6720 GOTO 6660
6730 IF OPT$="y" THEN SUBL%=-1 ELSE SUBL%=0 'flag to relax sublattice
6740 IF OPT$="y" THEN SUBLATTICE%=-1 ELSE SUBLATTICE%=0 'flag to enter sublat
6750 IF OPT$="y" THEN SUBSAVE%=-1 ELSE SUBSAVE%=0 'flag to redo sublattice
6760 ' if only Omega is changed
6770 RETURN
6780 '
7000 '*************************************************************************
7010 'subroutine to display lattice on the screen
7020 'input variables: BUFFER%(I%,J%), CLR%, P(I%,J%), STP%,X1%, X2%, Y1%,Y2%
7030 'output variables: none
7040 'global variables: BOUNDARY%(I%), INTERIOR%(I%), POKING%
7050 'local variables: ASKII%, ATT%, COL%, MP%, NEG%, P%, ROW%
7060 '*************************************************************************
7070 IF CLR% THEN CLS
7080 LOCATE ,,0
7090 IF NOT POKING% THEN GOTO 7250
7100 '
7110 FOR ROW%=Y1% TO Y2% 'the attribute is different for
7120 FOR COL%=X1% TO X2% STEP STP% ' bound and non-bound points so
7130 P%=ABS(P(ROW%,COL%)) ' that they look different on
7140 IF P%<10 THEN ASKII%=P%+48 ELSE ASKII%=P%+87 ' the screen
7150 IF P(ROW%,COL%)=0 THEN ASKII%=46
7160 MP%=P% MOD 10: IF P(ROW%,COL%)<0 THEN NEG%=-1 ELSE NEG%=0
7170 IF NEG% THEN ATT%=BOUNDARY%(MP%) ELSE ATT%=INTERIOR%(MP%)
7180 POKE BUFFER%(ROW%,COL%)+1,ATT%
7190 POKE BUFFER%(ROW%,COL%),ASKII%
7200 NEXT COL%
7210 NEXT ROW%
7220 '
7230 RETURN
7240 '
7250 FOR ROW%=Y1% TO Y2% 'the color is different for
7260 FOR COL%=X1% TO X2% STEP STP% ' bound. and non-bound. pts
7270 P%=ABS(P(ROW%,COL%))
7280 IF P%<10 THEN ASKII%=P%+48 ELSE ASKII%=P%+87
7290 IF P(ROW%,COL%)=0 THEN ASKII%=46
7300 IF P(ROW%,COL%)<0 THEN COLOR 15 ELSE COLOR 7
7310 LOCATE ROW%,COL%,0: PRINT CHR$(ASKII%);
7320 NEXT COL%
7330 NEXT ROW%
7340 '
7350 COLOR 7: RETURN
7360 '
8000 '*************************************************************************
8010 'subroutine to put lattice on screen when P is to be saved
8020 'input variables: BUFFER%(I%,J%), CLR%, P(I%,J%), STP%, XFIRST%, XLAST%,
8030 ' YFIRST%, YLAST%
8040 'output variables: none
8050 'global variables: BOUNDARY%(I%), INTERIOR%(I%), POKING%
8060 'local variables: ASKII%, ATT%, COL%, MP%, P%, ROW%
8070 '*************************************************************************
8080 IF CLR% THEN CLS
8090 LOCATE ,,0
8100 IF NOT POKING% THEN GOTO 8250
8110 '
8120 FOR ROW%=YFIRST% TO YLAST% 'non-bound pts will be displayed
8130 FOR COL%=XFIRST% TO XLAST% STEP STP% ' as ., but the value in P will
8140 IF P(ROW%,COL%)<0 THEN P%=-P(ROW%,COL%) ' not be lost
8150 IF P%<10 THEN ASKII%=P%+48 ELSE ASKII%=P%+87
8160 IF P(ROW%,COL%)>0 THEN ASKII%=46
8170 MP%=P% MOD 10
8180 IF ASKII%=46 THEN ATT%=INTERIOR%(0) ELSE ATT%=BOUNDARY%(MP%)
8190 POKE BUFFER%(ROW%,COL%),ASKII%
8200 POKE BUFFER%(ROW%,COL%)+1,ATT%
8210 NEXT COL%
8220 NEXT ROW%
8230 RETURN
8240 '
8250 FOR ROW%=YFIRST% TO YLAST%
8260 FOR COL%=XFIRST% TO XLAST% STEP STP%
8270 IF P(ROW%,COL%)<0 THEN P%=-P(ROW%,COL%)
8280 IF P%<10 THEN ASKII%=P%+48 ELSE ASKII%=P%+87
8290 IF P(ROW%,COL%)>0 THEN ASKII%=46
8300 IF ASKII%=46 THEN COLOR 7 ELSE COLOR 15
8310 LOCATE ROW%,COL%: PRINT CHR$(ASKII%);
8320 NEXT COL%
8330 NEXT ROW%
8340 COLOR 7: RETURN
8350 '
9000 '*************************************************************************
9010 'subroutine to input parameters of sublattice
9020 'input variables: BUFFER%(I%,J%), P(I%,J%), STP%, XFIRST%, XLAST%,
9030 ' YFIRST%, YLAST%
9040 'output variables: SUBX1%, SUBX2%, SUBY1%, SUBY2%
9050 'global variables: BOUNDARY%(I%), INTERIOR%(I%), POKING%
9060 'local variables: ASKII%, ATTRIBUTE%, BOTH%, COL%, CORRECT%, DELX%,
9070 ' DELY%, K$, ONEDIM%, P%, ROW%, SWITCHED%, SUB1%, SUB2%
9080 ' TYPEOVER%
9090 '*************************************************************************
9100 SUB1%=0: SUB2%=0 'set flags to zero
9110 '
9120 LOCATE 24,1: PRINT SPACE$(79); 'clear bottom of screen
9130 LOCATE 25,1: PRINT SPACE$(79);
9140 LOCATE 24,3 'display instructions
9150 PRINT "Enter < in upper left and > in lower right corners to specify a";
9160 PRINT " sublattice.";
9170 LOCATE 25,13
9180 PRINT "Type . to correct a mistake, type return when finished.";
9190 '
9200 COL%=XFIRST%: ROW%=YFIRST% 'start cursor in upper right
9210 '
9220 LOCATE ROW%,COL%,1 'place cursor at current pos
9230 K$=INKEY$ 'wait for keyboard input
9240 IF K$="" THEN GOTO 9230
9250 '
9260 IF LEN(K$)<2 THEN GOTO 9460 'check for two character
9270 K$=RIGHT$(K$,1) ' input indicating cursors
9280 '
9290 IF K$<>CHR$(72) THEN GOTO 9330 'up arrow
9300 ROW%=ROW%-1
9310 IF ROW%<YFIRST% THEN ROW%=YFIRST%
9320 GOTO 9220
9330 IF K$<>CHR$(80) THEN GOTO 9370 'down arrow
9340 ROW%=ROW%+1
9350 IF ROW%>YLAST% THEN ROW%=YLAST%
9360 GOTO 9220
9370 IF K$<>CHR$(77) THEN GOTO 9410 'left arrow
9380 COL%=COL%+STP%
9390 IF COL%>XLAST% THEN COL%=XLAST%
9400 GOTO 9220
9410 IF K$<>CHR$(75) THEN GOTO 6610 'right arrow
9420 COL%=COL%-STP%
9430 IF COL%<XFIRST% THEN COL%=XFIRST%
9440 GOTO 9220
9450 '
9460 IF K$<>CHR$(13) THEN 9620 'typing return exits
9470 BOTH%=SUB1% AND SUB2% 'make sure that the sublattice
9480 DELX%=SUBX2%-SUBX1% ' parameters are sensible
9490 DELY%=SUBY2%-SUBY1%
9500 ONEDIM%=BOTH% AND (DELX%=0 OR DELY%=0)
9510 SWITCHED%=BOTH% AND (DELX%<0 OR DELY%<0) AND NOT ONEDIM%
9520 CORRECT%=BOTH% AND (DELX%>0) AND (DELY%>0)
9530 IF CORRECT% THEN LOCATE ,,0: COLOR 7: RETURN
9540 LOCATE 25,1: PRINT SPACE$(79);
9550 LOCATE 25,29: BEEP
9560 IF NOT SUB2% THEN PRINT "Specify lower right hand corner.";
9570 IF NOT SUB1% THEN PRINT "Specify upper left hand corner.";
9580 IF ONEDIM% THEN PRINT "Sublattice must be 2 dimensional.";
9590 IF SWITCHED% THEN PRINT "Try again; corners are switched";
9600 GOTO 9200
9610 '
9620 IF K$<>CHR$(60) THEN GOTO 9740 'upper left corner
9630 IF SUB1% THEN GOTO 9700
9640 TYPEOVER%=(SUB2% AND COL%=SUBX2% AND ROW%=SUBY2%)
9650 IF TYPEOVER% THEN SUB2%=0
9660 SUB1%=-1 'set flags
9670 SUBX1%=COL% 'input sublattice parameters
9680 SUBY1%=ROW%
9690 LOCATE ROW%,COL%: PRINT K$;: GOTO 9220
9700 LOCATE 25,1: PRINT SPACE$(79);
9710 LOCATE 25,16: BEEP
9720 PRINT "Upper left already specified, type . to correct";
9730 GOTO 9220
9740 IF K$<>CHR$(62) THEN GOTO 9870 'lower right corner
9750 IF SUB2% THEN GOTO 9820
9760 TYPEOVER%=(SUB1% AND COL%=SUBX1% AND ROW%=SUBY1%)
9770 IF TYPEOVER% THEN SUB1%=0
9780 SUB2%=-1 'set flags
9790 SUBX2%=COL% 'input parameters
9800 SUBY2%=ROW%
9810 LOCATE ROW%,COL%: PRINT K$;: GOTO 9220
9820 LOCATE 25,1: PRINT SPACE$(79);
9830 LOCATE 25,16: BEEP
9840 PRINT "Lower right already specified, type . to correct";
9850 GOTO 9220
9860 '
9870 IF K$<>CHR$(46) THEN GOTO 9220 'typing . corrects a mistake
9880 IF COL%=SUBX1% AND ROW%=SUBY1% THEN SUB1%=0
9890 IF COL%=SUBX2% AND ROW%=SUBY2% THEN SUB2%=0
9900 IF P(ROW%,COL%)<0 THEN GOTO 9930
9910 ASKII%=46: COLOR 7: ATTRIBUTE%=INTERIOR%(0)
9920 GOTO 9970
9930 P%=ABS(P(ROW%,COL%))
9940 IF P%<10 THEN ASKII%=P%+48 ELSE ASKII%=P%+87
9950 COLOR 7: ATTRIBUTE%=BOUNDARY%(P% MOD 10)
9960 '
9970 IF NOT POKING% THEN LOCATE ROW%,COL%: PRINT CHR$(ASKII%);
9980 IF POKING% THEN POKE BUFFER%(ROW%,COL%),ASKII%
9990 IF POKING% THEN POKE BUFFER%(ROW%,COL%)+1,ATTRIBUTE%
10000 GOTO 9220
10010 '
11000 '************************************************************************
11010 'subroutine to guess initial values
11020 'input variables: INIT%, P(I%,J%), STP%, XFIRST%, XLAST%, YFIRST%
11030 ' YLAST%
11040 'output variables: P(I%,J%)
11050 'global variables: none
11060 'local variables: COL%, ROW%
11070 '************************************************************************
11080 IF PSAVE% THEN GOTO 11180
11090 '
11100 FOR ROW%=YFIRST% TO YLAST% 'set all non-bound pts to the
11110 FOR COL%=XFIRST% TO XLAST% STEP STP% ' initial value for the bound
11120 IF P(ROW%,COL%)<0 THEN GOTO 11140
11130 P(ROW%,COL%)=INIT%
11140 NEXT COL%
11150 NEXT ROW%
11160 RETURN
11170 '
11180 FOR ROW%=YFIRST% TO YLAST% 'if saving last PHI, set all
11190 FOR COL%=XFIRST% TO XLAST% STEP STP% ' released points to the init
11200 IF P(ROW%,COL%)<>0 THEN GOTO 11220 ' value for the bound
11210 P(ROW%,COL%)=INIT%
11220 NEXT COL%
11230 NEXT ROW%
11240 '
11250 RETURN
11260 '
12000 '************************************************************************
12010 'subroutine to prepare the screen for relaxation loop
12020 'input variables: FIRST%, SUBL%
12030 'output variables: FIRST%
12040 'global variables: none
12050 'local variables: none
12060 '************************************************************************
12070 CLS: COLOR 7: LOCATE ,,0
12080 IF NOT FIRST% THEN GOTO 12320
12090 '
12100 LOCATE 5,16 'display instructions
12110 PRINT "Typing e will end the current relaxation process.";
12120 LOCATE 8,11
12130 PRINT "If you have specified a sub lattice, typing e once will end";
12140 LOCATE 11,11
12150 PRINT "relaxation of the sub lattice and begin the process for the";
12160 LOCATE 14,11
12170 PRINT "entire lattice. Typing e once more will end the relaxation";
12180 LOCATE 17,31
12190 PRINT "process altogether.";
12200 LOCATE 20,17
12210 PRINT "The energy printed is the value per unit area.";
12220 LOCATE 22,4
12230 PRINT "Delta P is the maximum percentage change in Phi from previous";
12240 PRINT " iteration.";
12250 '
12260 LOCATE 25,31,1
12270 PRINT "Type c to continue";
12280 IF INKEY$<>"c" THEN GOTO 12280
12290 LOCATE ,,0
12300 FIRST%=0
12310 '
12320 GOSUB 7000 'display lattice
12330 '
12340 LOCATE 24,1 'prepare for output
12350 PRINT "iteration = 0";
12360 LOCATE 24,27
12370 PRINT "delta P= 00.000000";
12380 LOCATE 24,57
12390 PRINT "last delta P= 00.000000";
12400 LOCATE 25,1
12410 PRINT "energy = 000.000000";
12420 LOCATE 25,24
12430 PRINT "change in energy = +00.000000";
12440 IF SUBL% THEN LOCATE 25,59: PRINT "sublattice";
12450 LOCATE 25,75: COLOR 15
12460 PRINT "e:end";: COLOR 7
12470 '
12480 RETURN
12490 '
13000 '************************************************************************
13010 'subroutine to relax the lattice
13020 'input variables: DELTAPMAX, ENERGY, ITERATION%, OLDE, OLDDELP,
13030 ' P(I%,J%), X1%, X2%, Y1%, Y2%
13040 'output variables: DELTAPMAX, ENERGY
13050 'global variables: NX%, NY%, OMEGA, STP%
13060 'local variables: A, B, C, COL%, D, DELENERGY, DELTAP, PNEW, POLD, ROW%
13070 '************************************************************************
13080 FOR ROW%=Y1% TO Y2% 'loop over all lattice or
13090 FOR COL%=X1% TO X2% STEP STP% ' sublattice points
13100 IF ROW%=Y1% AND COL%=X1% THEN GOTO 13280
13110 B=ABS(P(ROW%-1,COL%))
13120 D=ABS(P(ROW%,COL%-STP%)) 'don't relax a boundary point
13130 IF P(ROW%,COL%)<0 THEN PNEW=ABS(P(ROW%,COL%)): GOTO 13250
13140 '
13150 POLD=P(ROW%,COL%) 'relax the point
13160 A=ABS(P(ROW%+1,COL%))
13170 C=ABS(P(ROW%,COL%+STP%))
13180 PNEW=(1-OMEGA)*POLD+OMEGA*.25*(A+B+C+D)
13190 P(ROW%,COL%)=PNEW
13200 IF PNEW<1 THEN PNEW=1: P(ROW%,COL%)=1 'avoid neg values
13210 '
13220 DELTAP=ABS(POLD-PNEW)/POLD 'check for max change in P
13230 IF DELTAP>DELTAPMAX THEN DELTAPMAX=DELTAP
13240 '
13250 IF COL%=X1% THEN ENERGY=ENERGY+(PNEW-B)^2: GOTO 13280
13260 IF ROW%=Y1% THEN ENERGY=ENERGY+(PNEW-D)^2: GOTO 13280
13270 ENERGY=ENERGY+(PNEW-B)^2+(PNEW-D)^2'term in the energy
13280 NEXT COL%
13290 NEXT ROW%
13300 '
13310 '
13320 ENERGY=ENERGY/(2*NX%*NY%) 'energy per unit area
13330 DELENERGY=ENERGY-OLDE
13340 IF ITERATION%=1 THEN DELENERGY=0: OLDDELP=0
13350 '
13360 GOSUB 7000 'put new P on screen
13370 LOCATE 24,13,0: PRINT USING "###";ITERATION%;
13380 LOCATE 24,36,0: PRINT USING "##.######";DELTAPMAX;
13390 LOCATE 24,71,0: PRINT USING "##.######";OLDDELP;
13400 LOCATE 25,10,0: PRINT USING "###.######";ENERGY;
13410 LOCATE 25,43,0: PRINT USING "+##.######";DELENERGY;
13420 '
13430 RETURN
13440 '
14000 '************************************************************************
14010 'subroutine to display options
14020 'input variables: SUBSAVE%
14030 'output variables: BC%, BCSAVE%, CLR%, LATTICE%, LSAVE%, OMEGA%,
14040 ' PSAVE%, SUBL%, SUBSAVE%
14050 'global variables: none
14060 'local variables: A$, B$, C$, D$, E$
14070 '************************************************************************
14080 CLS: CLR%=-1
14090 '
14100 LOCATE 1,28 'end command
14110 INPUT; "Do you wish to end (y/n)";A$
14120 IF A$="y" OR A$="n" THEN GOTO 14170
14130 LOCATE 2,36: BEEP
14140 PRINT "Try again";
14150 LOCATE 1,1: PRINT SPACE$(79);
14160 GOTO 14100
14170 IF A$="y" THEN END
14180 '
14190 LOCATE 5,24 'change Omega command
14200 INPUT; "Do you wish to change Omega (y/n)";B$
14210 IF B$="y" OR B$="n" THEN GOTO 14260
14220 LOCATE 6,36: BEEP
14230 PRINT "Try again";
14240 LOCATE 5,1: PRINT SPACE$(79);
14250 GOTO 14190
14260 IF B$="y" THEN OMEGA%=-1 ELSE OMEGA%=0 'set Omega flag
14270 '
14280 LOCATE 9,18 'change lattice size command
14290 INPUT; "Do you wish to change the lattice size (y/n)";C$
14300 IF C$="y" OR C$="n" THEN GOTO 14350
14310 LOCATE 10,36: BEEP
14320 PRINT "Try again";
14330 LOCATE 9,1: PRINT SPACE$(79);
14340 GOTO 14280
14350 IF C$="y" THEN LATTICE%=-1 ELSE LATTICE%=0 'set lattice flag
14360 IF LATTICE% THEN SUBSAVE%=0: RETURN
14370 '
14380 LOCATE 13,34: PRINT "Do you wish to"; 'command to change bound. cond
14390 LOCATE 15,1
14400 PRINT "1)preserve the boundary conditions and start again";
14410 PRINT " (useful for trying new OMEGA)";
14420 LOCATE 16,18
14430 PRINT "2)change boundary conditions and start again";
14440 LOCATE 17,3
14450 PRINT "3)change boundary conditions (starting from current b.c.)";
14460 PRINT " and keep current PHI";
14470 LOCATE 19,29
14480 INPUT; "Enter your choice (1-3)";D$
14490 IF D$="1" OR D$="2" OR D$="3" THEN GOTO 14540
14500 LOCATE 20,36: BEEP
14510 PRINT "Try again";
14520 LOCATE 19,1: PRINT SPACE$(79);
14530 GOTO 14470
14540 IF D$="1" THEN BC%=0: PSAVE%=0: IF SUBSAVE% THEN SUBL%=-1: RETURN
14550 IF D$="1" THEN RETURN
14560 IF D$="3" THEN BC%=-1: PSAVE%=-1: SUBSAVE%=0: RETURN
14570 '
14580 LOCATE 23,11
14590 INPUT; "Do you wish to 1)begin from current b.c. or 2)start fresh";E$
14600 IF E$="1" OR E$="2" THEN GOTO 14640
14610 BEEP: LOCATE 23,1
14620 PRINT SPACE$(80);
14630 GOTO 14580
14640 IF E$="1" THEN LATTICE%=-1: BCSAVE%=-1: PSAVE%=0: SUBSAVE%=0
14650 IF E$="2" THEN LATTICE%=-1: LSAVE%=-1: PSAVE%=0: SUBSAVE%=0
14660 RETURN
14670 '
15000 '************************************************************************
15010 'subroutine to display the header screen
15020 'input variables: none
15030 'output variables: GRAPHICS%, MONO%
15040 'global variables: none
15050 'local variables: G$, M$, ROW%
15060 '************************************************************************
15070 SCREEN 0: CLS: KEY OFF 'program begins in text mode
15080 '
15090 LOCATE 1,30: COLOR 15 'display book title
15100 PRINT "COMPUTATIONAL PHYSICS";
15110 LOCATE 2,40: COLOR 7
15120 PRINT "by";
15130 LOCATE 3,33: PRINT "Steven E. Koonin";
15140 LOCATE 4,14
15150 PRINT "Copyright 1985 by Addison-Wesley Publishing Company";
15160 '
15170 LOCATE 5,10 'draw the box
15180 PRINT CHR$(201)+STRING$(59,205)+CHR$(187);
15190 FOR ROW%=6 TO 19
15200 LOCATE ROW%,10: PRINT CHR$(186);
15210 LOCATE ROW%,70: PRINT CHR$(186);
15220 NEXT ROW%
15230 LOCATE 20,10
15240 PRINT CHR$(200)+STRING$(59,205)+CHR$(188);
15250 '
15260 COLOR 15 'print title, etc.
15270 LOCATE 7,36: PRINT "EXAMPLE 6";
15280 COLOR 7
15290 LOCATE 10,22: PRINT "Laplace's equation in two dimensions"
15300 LOCATE 13,36: PRINT "**********"
15310 LOCATE 15,26: PRINT "Type 'e' to end while running"
15320 LOCATE 16,23: PRINT "Type ctrl-break to stop at a prompt"
15330 '
15340 LOCATE 19,16: BEEP 'get screen configuration
15350 INPUT "Does your computer have graphics capability (y/n)";G$
15360 IF LEFT$(G$,1)="y" OR LEFT$(G$,1)="n" GOTO 15390
15370 LOCATE 19,12: PRINT SPACE$(58): BEEP
15380 LOCATE 18,35: PRINT "Try again,": GOTO 15340
15390 IF LEFT$(G$,1)="y" GOTO 15420
15400 GRAPHICS%=0: MONO%=-1
15410 RETURN
15420 GRAPHICS%=-1
15430 LOCATE 18,15: PRINT SPACE$(55)
15440 LOCATE 19,15: PRINT SPACE$(55)
15450 LOCATE 19,15: BEEP
15460 INPUT "Do you also have a separate screen for text (y/n)";M$
15470 IF LEFT$(M$,1)="y" OR LEFT$(M$,1)="n" GOTO 15490 'error trapping
15480 LOCATE 18,35: PRINT "Try again,": GOTO 15440
15490 IF LEFT$(M$,1)="y" THEN MONO%=-1 ELSE MONO%=0
15500 '
15510 LOCATE 21,14
15520 PRINT "This program uses the iterative relaxation method to";
15530 LOCATE 22,17
15540 PRINT "solve an elliptic partial differential equation"
15550 LOCATE 23,8
15560 PRINT "(viz. Laplace's equation) with user defined boundary conditions";
15570 LOCATE 25,31,1: BEEP
15580 PRINT "Type c to continue";
15590 IF INKEY$<>"c" THEN GOTO 15590
15600 LOCATE ,,0
15610 RETURN
15620 '
16000 '************************************************************************
16010 'subroutine to switch from mono to graphics screen
16020 'input variables: none
16030 'output variables: none
16040 'global variables: none
16050 'local variables: none
16060 '************************************************************************
16070 DEF SEG=0
16080 POKE &H410, (PEEK(&H410) AND &HCF) OR &H10
16090 SCREEN 1,0,0,0: SCREEN 0: WIDTH 80: LOCATE ,,1,6,7
16100 RETURN
16110 '
Ushtrime
1. Zbatoni programin e mwsipwrm me kwto kushte kufitare :
a) njw pikw me potencial tw ndryshwm nga ai i kufirit tw jashtwm,.
b) dy pika simetrike me ptencial tw ndyshwm nga ai i kufirit tw jashtwm
c) Njw katror i vogwl brenda zonws qw ka potencial konstant tw ndryshwm nga kufiri i
jashtwm.
2. Studioni efektin e ndryshimit tw parametrit tw relaksacionit ( ) pwr vlera tw ndryshme tw
tij dhe efektin e diskretizimit tw zonws mw imwt.
3. Modifikoni programin pwr kushte kufitare tw tipit Neuman nw kufinjtw e zonws dhe nw
zona tw vogla katwrkwndwshw brenda zonws.
4. Modifikoni programin nw mwnyrw qw tw zgjidhet ekuacioni i Puasonit, pra qw lejon njw
shpwrndarje ngarkese brenda zonws.
5. Modifikoni programin pwr rasin e njw gjeometrie tjetwr, ku tw pwrdoren kordinatat
cilindrike . Merrni njw kondensator cilindrik dhe studioni shpwrndarjen e potencialit
brenda pllakave tw kondensatorit dhe krahasojeni me rezultatin analitik (nga kursi i
Fizikws). Studioni rastin kur pllakat e kondensatorit afrohen shumw ose largohen shumw.
4.8 Disa ekuacione tw mirwnjohur
a. Ekuacioni i pwrhapjes sw valwve
Njw ekuacion tipik hyperbolik wshtw ekuacioni diferencial i pwrhapjes sw valwve. Nw
rastin njw dimensional ai mund tw shkruhet :
2
2
22
2
u
tv
u
x (8.1)
ku u(x,t) wshtw funksioni valor (variabli i varur) dhe v wshtw shpejtwsia e pwrhapjes sw
valwve qw zakonisht merret konsatnte e njohur. Ky ekuacion mund tw rishkruhet si nw
formwn e dy ekuacioneve tw rendit tw parw :
r
tv
s
xs
tv
r
dx
(8.2)
ku :
r = v· u/ x dhe s = u/ t (8.3)
Po tw shwnojmw u vektorin dydimensional qw ka pwr elementw r dhe s dhe F matricwn dy-
dimensionale qw ka pwr elemente:
F(u)= 0
0 -
v
vu (8.4)
atwhere tw dy ekuacionet (8.2) sillen nw njw ekuacion vektorial diferencial tw rendit tw parw
u F u
t
( )
x (8.5)
ky ekuacion njihet si ekuacioni fluksit konservativ.Njw rast i veçantw i tij wshtw ekuacioni
skalar :
u
tv
u
x (8.6)
ku v wshtw konstante. Zgjidhja e pwrgjithwshme analitike e kwtij ekuacioni wshtw:
u = f (x-v·t) (8.7)
ku f wshtw njw funksion çfardo. Por zgjidhja numerike qw do trajtojmw kwtu mund tw
shwrbejw pwr çdo sistem ekuacionesh tw formws (8.5). Pwrafrojmw numerikisht derivatet qw
hyjnw nw ekuacionin (8.6):
u
x
u u
tO t
j n
j
n
j
n
,
( )
1
(8.8)
u
x
u u
xO x
j n
j
n
j
n
,
( )1 1 2
2 (8.9)
mw shwnimet: ujn = u(tn , xj) , xj = x0 + j x (j=0,1,2...J) , tn = t0 + n t (n=0,1,2...N).
Ekuacioni (8.6) nw pwrafrimin e diferencave tw fundme do shkruhej:
u u
tv
u u
x
j
n
j
n
j
n
j
n1
1 1
2 (8.10)
Por kjo formulw jep rezultate jo tw qwndrueshme pwr funksione qw oshilojnw . Nqse do ta
parqesnim nw trajtwn komplekse :
u ej
n n ikj x (8.11)
ku k wshtw numwr valor real dhe (k) kompleks (faktori i amplifikimit). Nwse moduli i tij do
ishtte | (k)|>1 atwhere zgjidhja do ishte e paqwndrueshme sepse do jepte terma qw rriten
eksponencialisht. Po tw zevendwsojmw (8.11) tek (8.10), pasi pjestojmw me n ( nw fuqi n) ,
marrim:
(k)=1 - i·sin(k x)·(v t / x) (8.12)
moduli i tw cilws wshtw mw i madh se 1 pwr çdo k .
Pwr ta pwrmirwsuar algoritmin tek formulat e derivimit numerik kohor (8.8) nw vend tw
ujn do tw marrim mesataren : ½ (uj+1
n + uj-1
n) dhe ekuacioni i diferencave tw fundme (8.10)
bwhet:
u u uv t
xu uj
n
j
n
j
n
j
n
j
n1
1 1 1 1
1
2 2 (8.13)
Duke zevendwsuar kwtu paraqitjen (8.11) , gjejmw faktorin e amplifikimit :
= cos (k x) - i·sin(k x)·(v t / x) (8.14)
Qw zgjidhja tw jetw stabwl , nga kushti | |2 1 , gjemw kriterin e ashtuquajtur tw Courant:
|v|· t / x 1 (8.15)
Ky kriter zbatohet gjatw diskretizimit tw ekuacioneve nw zonat hapwsirw-kohw edhe nw
rastin kur kemi dy ekuacione skalare ose ekuacionin vektorial (8.5)
b) Ekuacioni i difuzionit
Ekuacioni i difuzionit wshtw i tipit parabolik, nw rastin me njw kordinatw hapsinore ai
shkruhet :
u
t xD
u
x (8.16)
ku D ( 0) wshtw koeficienti i difuzionit.Nw rastin kur D wshtw konstant , ekuacioni shkruhet:
u
tD
u
x
2
2 (8.17)
Ky ekuacion mund tw dikretizohet nw formwn:
u u
tD
u u u
x
j
n
j
n
j
n
j
n
j
n1
1 1
2
2 (8.18)
Duke zevendwsuar kwtu u nw formwn (8.11), gjejmw qw faktori i amlifikomit wshtw :
14
22
2D t
x
k xsin (8.19)
Kushti qw moduli i tij tw jetw | | 1, sjell nw kushtin :
2
12
D t
x (8.20)
i cili duhet patur nw konsideratw gjatw diskretizimit tw zonws sw variablave tw pavarur ( t
dhe x). Zakonisht koha e difuzionit nwpwr hapin hapwsinor wshtw e rendit 2/D .
Por ne jemi tw interesuar nw modelimin e difuzionit me hapa shumw mw tw vegjwl x << .
Nwse kufizohemi nw hapa kohorw qw kwnaqin (8.19) atwhere duhen kryer shumw hapa
kohorw para se tw kemi ndryshime hapwsinore . Prandaj nw diskretizimin e ekuacionit (8.17)
mund tw pwrdorim formwn:
u u
tD
u u u
x
j
n
j
n
j
n
j
n
j
n1
1
1 1
1
1
2
2 (8.21)
ku ana e djathtw wshtw vlerwsuar jo nw intervalin e n - tw kohor por nw intervalin e n+1 -tw,
ose mund pwrdorim kombinimin e tw dy formave (9.18) me (8.21)
u u
t
D u u u u u u
x
j
n
j
n
j
n
j
n
j
n
j
n
j
n
j
n1
1 1 1
1 1
1
1
22
2 2( ) ( ) (8.22)
Nw rastin kur D nuk wshtw konstant, pra D = D(x) , duke zevendwsuar variablin
y=dx
D x( ), atwhere ekuacioni
u
t xD x
u
x( ) bwhet
u
t D y
u
x
1 2
2( ) . Ky ekuacion
ka formwn e ekuacionit (9.17) vetwm se tani duhet diskretizuar edhe D(y) . Kwshtu qw kushti
i stabilitetit tw zgjidhjes numerike (8.20) bwhet :
tD y
j
jmin
2
2 (8.23)
Nwse forma analitike e D(x) nuk njihet, mund tw pwrdoret diskretizimi:
u u
t
D u u D u u
x
j
n
j
n
j j
n
j
n
j j
n
j
n1
1 2 1 1 2 1
2
/ /( ) ( ) (8.24)
ku Dj+1/2=D(xj+1/2).
c) Ekuacioni i Shredingerit
Ekuacioni kohor i Shredingerit nw rastin njw dimensional shkruhet:
ix x
V x2
2( ) (8.25)
(wshtw zghedhur konstantja e Plankut h 1 dhe masa e grimcws m=1/2). Jepen kushtet
fillestare (x,t=0) dhe kushtet kufitare : 0 kur x . Diskretizimi i ekuacionit kur
pwrfarimi kohor wshtw i rendit tw parw sjell nw ekuacionet :
it x
Vj
n
j
n
j
n
j
n
j
n
j j
n
1
1
1 1
1
1
2
12
( ) (8.26)
Vwshtirwsia e kwtij ekuacioni wshtw se futet njwsia imagjinare. Prandaj nw kompilatorwt qw
nuk pwrdorin njwsinw imagjinare si Basic duhen ndarw ekuacionet veç pwr pjeswn reale dhe
veç pwr pjeswn imagjinare tw funksionit valor . Kwtu nuk po ndalemi, pasi pwr ekuacionin
e Shredingerit gjenden subrutina tw gatwshme nw gjuhwn Fortran.
4.9 Metoda tw tjera
Kwtu do tw pwrmendim dy metoda tw tjera qw pwrdoren nw zgjidhjen e PDE , pa i trajtuar
kwto metoda.
Sw pari, pwrmendim metodwn e transformimit Furje. Nw kwto metodw variablat e varur
shkruhen si seri Furje duke i konsideruar ata si periodikw me periodw sa pwrmasat e zonws (
dimensionet hapwsinore pwr variabla tw pavarur hapsinorw dhe intervali maksimal i kohws
deri ku kwrkohet zgjidhja numerike) . Zwvwndwsimi i serive nw ekuacionet diferencialw me
derivate tw pjeswshwm , merren relacione algjebrike midis aplitudave tw zbwrthimit Furje nw
pikat fqinje tw rjetws sw variablave tw pavarur.
Sw dyti do tw pwrdorim metodwn e elementeve tw fundwm , e cila ka gjetur sot zbatim
shumw tw gjerw dhe pwr tw cilwn gjenden subrutina tw gatwshme. Nw kwtw metodw
gjendet funksionali nga ekstremizimi i tw cilit rjedh ekuacioni diferencial me derivate tw
pjeswshwm dhe bwhet diskretizimi i zonws sw variablave tw pavarur me elemente tw
fundwm qw kanw formw e pwrmasa variabwl (forma e tyre zakonisht merret trekwndore) .
Brenda elementeve tw fundwm konsiderohet qw varibli i varur ndryshon linearisht nw lidhje
me variablat e pavararur duke gjetur koeficientwt e linearitetit nga kushti qw nnw nyjet e
elementeve fqinjw tw merren tw njwjta vlera tw variablit tw varur. Funksionali do sillet nw
shumwn e integrimeve brenda secilit element ( integral qw zgjidhet meqwnswse varwsia
brenda elementeve wshtw e njohur dhe integrimi do shprehej nwpwrmjet vlerave tw variablit
nw nyjet ) dhe kushti ekstremumit tw funksionalit nw lidhje me vlerat e varaiblit nw nyjet e
elementeve do tw çonte nw bashkwsinw e ekuacioneve algjebrikw matrica kryesore e anws sw
djathtw njihet dhe zgjidhet me metoda tw njohura.
114
PJESA II
ZBATIME NE FIZIKE
Kapitulli I
MEKANIKA
1.1 Hyrje
Në këtë kapitull do të trajtohen disa përdorime të kompjuterit në mekanikë. Do fillojmë me
një nivel të thjeshtë dhe do vazhdojmë me ngritjen e këtij niveli derisa nga fundi i kapitullit të
arijmë në probleme të vështira të mekanikës klasike. Gjatë kësaj rruge ju do mësoheni me
gjuhën e logaritjeve algoritmike me kompjuter. Kapitulli fillon me lëvizjen një dimensionale
dhe kalon shpejt tek lëvizja e satelitëve. Ai vazhdon me diskutimin e problemit të tre-trupave
dhe disa fenomeneve të shpërhapjes klasike dhe mbyllet me diskutimin e oshilatorëve te
lidhur. Të gjitha shëmbujt janë zbatime të algoritmit F=m a.
1.2 Relacionet kryesore
Në lëvzjet mekanike të sistemeve klasike ,relacioni bazë është ligji i dytë i Njutonit,
F =m a
Disa lloje forcash më të njohura janë :
F = - G M m r /r3
F = -m g dhe F = -k y
Ne do përdorim si përcaktim të shpejtësisë : v r / t për t të vogla dhe për nxitimin :
a v / t për t të vogla.
Njohuri të përgjithëshme mbi ligjet e Keplerit do jenë të nevojëshme më tej si edhe një kuptim
mbi simetrinë dhe si ndikon ajo në zgjidhjet do të jetë i dobishëm.. Konceptet bazë të fizikës
janë sigurisht të domosdoshme sepse ato janë konsideruar të njohura.
1.3 Lëvizja një-dimensionale
Problemi kryesor në mekanikën klasike është : jepet një forcë F ( r , v , t ) ,e cila mund të
varet nga pozicioni, shpejtësia, dhe koha, si edhe kushtet fillestare për pozicionet dhe
shpejtësitë, të gjendet nxitimi a = F / m dhe prej nxitimit të përcaktohet trajektorja r (t ) e
grimcës. Ky problem në disa raste mund të zgjidhet analitikisht dhe të nxirret varësia kohore e
pozicionit si funksion i kohës . Një rrugë tjetër për zgjidhjen e problemit është procedura hap-
pas-hapi dhe kjo rrugë është e përgjithëshme sepse përdoret si në rastet kur problemi ka
zgjidhje analitike edhe kur nuk ka , por sigurisht duke përdorur kompjuterin i cili kryen shumë
operacione aritmetike që duan kohë të madhe të kryhen me dorë. Metoda hap-pas-hapi
konsiston në këto veprime:
1. Fillohet në pikën fillestare (pozicioni fillestar) dhe me shpejtësinë fillestare.
2. Zgjidhet një hap kohor t .
3. Llogaritet forca F dhe prej saj nxitimi a .
4. Llogaritet ndryshimi i shpejtësisë v = a t dhe ndryshimi i pozicionit r = v t .
115
5. Shpejtësia e re dhe pozicioni i ri janë v + v dhe r + r , në kohën e re t + t .
6. Duke qenë në pikën tjetër të trajektores kthehemi tek hapi 3 dhe përsërisim 3,4,5 aq herë
sa të duam.
Duke përdorur këtë procedurë, ju çvendosni grimcën përgjatë trajektores me një hap çdo
herë. Procedura do të jetë e saktë n.q.se t do të ishte pambarimisht i vogël; me që t është e
fundme, metoda mund të jetë vetëm e përafërt. Megjithatë, përafrimet mund të bëhen mjaft të
mira duke përdorur një t mjaft të vogël dhe një kompjuter që ka saktësinë 6 deri në 10
shifra. Nëqoftëse t bëhet tejet i vogël , gabimet ,që vijnë nga fakti që kompjuteri ka saktësi të
fundme, bëhen të mëdha.
Më poshtë jepen programet në gjuhët BASIC dhe FORTRAN , kur forca që vepron mbi
grimcën është forcë gravitacionale uniforme në drejtimin y.
PROGRAMI NE BASIC PROGRAMI NE FPRTRAN
10 Y=100 Y=100.
20 V=5 V=5.
30 M=2 AM=2.
40 D=.02 DT=.1
100 F=-M*9.8 10 F= -M*9.8
110 A=F/M A=F/AM
120 V=V+A*D 16 V=V+A*DT
130 Y=Y+V*D 17 Y=Y+V*DT
140 T=T+D T=T+DT
150 PRINT T,Y PRINT 100,T,Y
160 IF T<5 THEN 100 18 IF (T-5.) 10,20,20
999 END 20 STOP
100 FORMAT (1X,2F 10.4)
END
Dy reshtat e parë vendosin kushtet fillestare, variablat D, DT janë hapi kohor t . Ligji i
forcës (në këtë rast F= - mg ) është shkruar në reshtin 100 (ose komanda 10 në programin
Fortran); nxitimi është llogaritur si F/M . Shpejtësia e re, pozicioni i ri, dhe koha e re T
llogarien në reshtat 120 - 140 (16,17 e pasonjësi në programin Fortran), në këto reshta vlerat
e vjetra zëvëndësohen me vlerat e reja duke u shtuar vlerave të vjetra shtesat përkatëse V (=a
t ), Y (=V t ), t . Instruksionet PRINT printojnë vlerat ndërkohë që programi përsërit
llogaritjet derisa grimca të ketë udhëtuar për 5 s. Forca mund të ndryshohet me një ligj çfardo
(një-dimensionale) si p.sh. -K*Y siç është në rastin e një suste.
Metoda e mësipërme quhet metoda e Ejlerit. ju mund të arrini ne përafrim më të mirë
duke zvogëluar më tej t (D ose DT në program). Por sa më i vogël hapi kohor aq më shumë
operacione dhe kohë duhet në kompjuter. Ka një rrugë të thjeshtë për ta kapërxyer këtë
vështirësi. duke përdorur një metodë konvergjence më të latrtë që konsiston në përgjysmimin
e hapit fillestar. Këtu përdoret një shpejtësi v në mesin e hapit kohor nga t në t+ t kur
llogaritet pozicioni i ri. Duke ruajtur nxitimet në një hap me pozicionet , atëhere automatikisht
nxitimet janë të llogaritur nëpërmjet shpejtësive në gjysmën e intervalit kohor. Ka një teoremë
116
të së mesmes sipas së cilës ekziston një pikë e intervalit (t , t+ t ) në të cilën derivati është sa
pjerësia e kordën që bashkon pikën y me pikën y + y (në se funksioni y( t ) është i
lëmuar) . Ne nuk e dimë këtë pikë , por zakonisht vlera e derivatit (në rastin tonë shpejtësia)
afër qendrës së intervalit është një përafrim më i mirë se vlera e derivatit në fillim të intervalit.
Duke zgjedhur shpejtësinë në pikën e mesit të intervalit (në t +1/2 t ) duhet të shtohen në
programet e mësipërme këto tre reshta:
112 IF T>0 THEN 120 IF (T) 15,15,16
114 V=V+A*D/2 15 V=V+A*DT/2
116 GOTO 130 GOTO 17
Këto hapa e ndryshojnë v me 1/2 t për herën e parë në ciklin e integrimit. Pas kësaj, duke
përdorur t të plotë në çdo llogaritje shpejtësie ruhet gjysëmhapi i shpejtësisë.
Një shtesë tjetër në program shmang printimin e rezultatit në çdo llogaritje të kompjuterit.
Me këto tre reshta shtesë në program sigurohet printimi i rezultatit (çdo 0.2 s) 10 herë më
rallë se llogaritjet e pozicionit :
142 DO=DO+D TPRIN=TPRIN+DT
144 DO<.2 THEN 160 IF (TPRIN-.2) 18,19,19
146 DO=0 19 TPRIN=0.
1.4 Lëvizja dy-dimensionale
Lëvizja dy-dimesionale mund të konsiderohet si 2 lëvizje një-dimensionale në drejtime
pingule. Programi 2DFMA trgon një rrugë se si llogariten integrimet hap-pas-hapi të
ekuacionit dy-dimensional : F=m a . Për ilustrim është marë lëvizja e satelitit ku ligji i forcës
është ai gravitacional : F=-m r / r3
ku njësitë janë zgjedhur në mënyrë që konstanja GM=1.
Në program përdoret nxitimi ,prandaj forca vetë nuk është llogaritur. Rezultatet e llogaritjeve
janë orbitat e satelitit. Figura 1.1 tregon një familje orbitash të llogaritura me procedurën e
treguar në programin 2DFMA . Të gjitha orbitat fillojnë në të njëjtën pikë (-1,0) por që kanë
shpejtësi të ndryshme fillestare (0,vy ) . Pjestarët e kësaj familjeje janë elipsa dhe një rreth që
i takon vy =1 .
2DFMA.BAS 2DFMA.FOR
10 X = -1 20 Y = 0 30 V1 = 0 40 V2 = 1
inicializimi
X = -1. Y = 0. VX = 0. VY = 1.PRNT = 0.
inicializimi
50 D=.01 hapi kohor, t DELTAT=.005 hapi kohor,1/2 t
60 R3 = (X * X + Y *Y) 1.5 70 A1 = -X / R3 80 A2 = -Y / R3
nxitimi
10 RADIUS SQRT(X * X Y *Y) RCUBED = RADIUS**3 XACCEL = -X / RCUBED YACCEL = -Y / RCUBED
nxitimi
90 IF T > 0 THEN 130 100 V1 = V1+ A1* D / 2110 V2 = V2 + A2 * D / 2120 GOTO 150
gjysemhapi fillestar VX = VX + XACCEL* DELTATVY = VY + YACCEL* DELTAT
shp. e re
117
130 V1=V1+A1*D vX i ri DELTAT=.01 hapi i plote kohor
140 V2=V2+A2*D vy i ri X=X+VX*DELTAT x i ri
150 X=X+V1*D x i ri Y=Y+VY*DELTAT y i ri
160 Y=Y+V2*D y i ri T= T+DELTAT koha e re
170 T=T+D koha e re
180 T0 = T0 + D 190 IF T0 <.5 THEN 220200 T0 = 0210 PRINT T,X,Y
grupi i printimit
PRNT = PRNT + DELTAT IF (PRNT-.5) 12,11,1111 PRNT = 0. PRINT 101,T,X,Y
grupi print.
220 IF T<10 THEN 60 rikthim per hapin t. 12 IF (T-10.) 10,20,20 rikthim per hapin t
230 END 101 FORMAT(1X,3E15.5)
20 STOP
END
Figura 1.1 Familja e orbitave rrotull qendrës së forcave gravitacionale. Të gjitha trajektoret
nisin nga pika S (-1,0) me shpejtësitë 0.8, .9, 1, 1.1,1.2 dhe 1.3 në drejtimin y . Njësitë janë
zgjedhur në mënyrë që a = -r / r3 .
Me kurbat e paraqitura në figurën 1.1 mund të demonstrohen tre ligjet e Keplerit. I pari ,
orbitat janë elipse. Gjeni vatrën e dytë të elipsave nga simetria [qendra e forcave është në
pikën (0,0) ] ; llogaritni shumën e largësive nga pozicioni në orbitë deri në dy vatrat. Në se
shuma është konstant , atëhere trajektorja është elips me qendër të forcës në një nga vatrat. I
dyti, rezja e satelitit prej qendrës së fushës përshkon sipërfaqe të barabarta në intervale kohe të
barabarta.. Me që hapi kohor është i njëjtë , atëhere printoni sipërfaqen që përshkohet në cdo
hap. Kjo sipërfaqe është (për njësi kohe) 1/2 e prodhimit të bazës së trekëndëshit të përshkuar
me lartësinë e trekëndëshit, i cili është :
1/2 r x v = 1/2 [(y vz - z vy )2 + (z vx - x vz )
2 + (x vy - y vx )
2 ]
1/2
I treti , perioda në katror është proporcional me gjysëmboshtin e madh në kub. Matet
gjysëmboshti i madh i disa elipsave ; gjendet dyfishi i kohës që sateliti të përshkojë gjysmën e
elipsit (koha deri në ndryshimin e parë të shenjës së y ). Gjeni raportin (periodë në katror)2 /
118
(gjysëmboshti i madh)3 për disa orbita dhe krahasoni (ju mund ta gjeni këtë vlerë edhe
analitikisht) .
1.5 Lëvizja e tre-trupave
Strategjia e përdorur për zgjidhjen e problemit të dy trupave mund të përdoret edhe për tre
trupa ( ose për n trupa siç thuhet në kapitullin e fizikës statistike ). Problemi i lëvizjes së tre
trupave është i komplikuar analitikisht (deri më sot nuk ka zgjidhje analitike të
përgjithëshme); prandaj për të testuar programin duhet të kufizohemi në rastin e lëvizjes
simetrike në plan të tre-trupave. Metoda algoritmike është krejt e përgjithëshme ; pra mund të
fillojë lëvizja e tre trupave në mënyrë krejt çfardo dhe lëvizja do të jetë zakonisht e
komplikuar.
Programi 3BODY tregon një mënyrë për kryerjen e llogaritjeve. Matricat R( ) dhe V( )
përmbajnë pozicionet dhe shpejtësitë e të tri trupave; masat ruhen në vektorin M( ). Vlerat
fillestare janë zgjedhur për thjeshtësi : të tri masat të barabarta dhe nisen nga kulmet e një
trekëndëshi barabrinjës me shpejtësi të barabarta tangent me rrethin që brëndashkruan
trekëndëshin. Përsëri është përdorur një gjysëm-hap fillestar. Forcat e bashkëveprimit
llogariten në çifte Fij ( forca që vepron mbi trupin e i-të nga trupi i j-të , që është e barabartë
me -Fji ). Rezultatet printohen jo për çdo njësi kohore.
Figura 1.2 Orbitat e lëvizjes së tre-
trupave. Masat e trupave janë të njëjta;
pozicionet fillestare ndodhen në kulmet e
një trkëndëshi barabrinjësh; shpejtësitë
fillestare janë pingul me drejtimin për në
qendër të trekëndëshit.
Figura 1.2 tregon një bashkësi orbitash që dalin nga llogaritjet. Kur madhësitë e vlerave
fillestare janë zgjedhur saktë, të tre trupat lëvizin në të njëjtin rreth . Ju mund ta tregoni këtë
analitikisht duke barazuar m v2 /r me forcën rezultante që vepron mbi sejcin trup. Kur
shpejtësitë fillestare nuk zgjidhen pingul me drejtimin prej qendrës së trekëndëshit, orbitat
rezultojnë shumë të deformuara.
3BODY.BAS
100 DIM R(3,3),V(3,3),M(3)
110 READ M(1),M(2),M(3) masat e tre trupave
120 DATA 1,1,1
130 D0=.02 hapi kohor t
140 D=D0/2 hapi kohor fillestar t/2
119
150 READ R(1,1),R(2,1),R(3,1)160 DATA 1,-1,0170 READ R(1,2),R(2,2),R(3,2)180 DATA 0,0,1.73205190 READ R(1,3),R(2,3),R(3,3)200 DATA 0,0,0
pozicionet fillestare (kulmet e trekëndëshit)
210 READ V(1,1),V(2,1),V(3.1)220 DATA .353553,.353553,-.707107230 READ V(1,2),V(2,2),V(3,2)240 DATA .612372,-.612372,0250 READ V(1,3),V(2,3),V(3,3)260 DATA 0,0,0
shpejtësitë fillestare
270 FOR I = 1 TO 3280 FOR J = I + 1 TO 3290 X = R(J,1) - R(I,1)300 Y = R(J,2) - R(I,2)310 Z = R(J,3) - R(I,3)320 R = SQR(X * X + Y * Y + Z * Z)
F1 = -M(I) * M(J) * X / (R * R * R)340 F2 = -M(I) * M(J) * Y / (R * R * R)350 F3 = -M(I) * M(J) * Z / (R * R * R)
V(J,1) = V(J,1) + F1* D / M(J) 370 V(I,1) = V(I,1) - F1* D / M(I)
V(J,2) = V(J,2) + F2 * D / M(J) 390 V(I,2) = V(I,2) - F2 * D / M(I)
V(J,3) = V(J,3) + F3* D / M(J)
r
F
iriiri
v iriv iriv iri
ij
jy
iy
jz
ij
jx
ix
vv
330
360
380
400410 V(I,3) = V(I,3) - F3* D / M(I)
NEXT J430 NEXT I
v iri
shpejtësit ë e reja
iz
420
440 D=D0 rivendosja e hapit kohor t
450 FOR I = 1 TO 3460 FOR J = 1 TO 3470 R(I,J) = R(I,J) + V(I,J) * D480 NEXT J490 NEXT I
pozicionet e reja
500 T=T0+D koha e re
510 T0 = T0 + D520 IF T0 < 1 THEN 620530 T0 = 0540 PRINT "T =";T550 T0 = 0560 FOR I = 1 TO 3570 FOR J = 1 TO 3580 PRINT R(I,J),590 NEXT J600 PRINT610 NEXT I
grupi i printimit
620 IF T<10 THEN 270 rikthim për hapin tjetër t
630 END
3BODY.FOR
120
DIMENSION RAD(3,3),VEL(3,3),FMASS(3)
DATA FMASS /1.,1.,1./ masat e tre trupave
TIMINT=.02 hapi kohor t
TIMI=TIMINT/2 hapi kohor fillestar t/2
DATA RAD(1,1),RAD(2,1),RAD(3,1) / 1.,-1.,0./ DATA RAD(1,2),RAD(2,2),RAD(3,2) / 0.,0.,1.73205 / DATA RAD(1,3),RAD(2,3),RAD(3,3) / 0.,0.,0./
pozicionet fillestare
DATA VEL(1,1),VEL(2,1),VEL(3.1)/.353553,.353553,-.707107 / DATA VEL(1,2),VEL(2,2),VEL(3,2)/.612372,-.612372,0./ DATA VEL(1,3),VEL(2,3),VEL(3,3) / 0.,0.,0./
shpejt. fillestare
DO 20 I = 1,2 DO 10 J = I +1,3 X = RAD(J,1) - RAD(I,1) Y = RAD(J,2) - RAD(I,2) Z = RAD(J,3) - RAD(I,3) R = SQRT(X * X + Y *Y + Z * Z)
FX = -FMASS(I) * FMASS(J) * X / (R * R * R) FY = -FMASS(I) * FMASS(J) *Y / (R * R * R) FZ = -FMASS(I) * FMASS(J) * Z / (R * R * R) VEL(J,1) = VEL(J,1) + FX *TIMI / FMASS(J) VEL(I,1) = VEL(I,1) - FX *TIMI / FMASS(I) VEL(J,2) = VEL(J,2) + FY *TIMI / FMASS(J) VEL(I,2) = VEL(I,2) - FY *TIMI / FMASS(I)
r
F
i rii ri
v i ri
ij
jy
ij
jx
ix
vv
v i riv i riv i ri
shpejtësit ë e reja
iy
jz
iz
10 VEL(J,3) = VEL(J,3) + FZ *TIMI / FMASS(J) VEL(I,3) = VEL(I,3) - FZ *TIMI / FMASS(I)
CONTINUE
20
TIMI=TIMINT rivendosja e hapit kohor t
DO 40 I = 1, 3 DO 30 J = 1,330 RAD(I,J) = RAD(I,J) + VEL(I,J) *TIMI40 CONTINUE
pozicionet e reja
TIM=TIM+TIMINT koha e re
TIM0 = TIM0 + TIMINT IF (TIM0 < -1.)60,50,5050 TIM0 = 0. PRINT 100,TIM DO 80 I = 1,380 PRINT 110,(RAD(I,J),J = 1,3)
grupi i pr imitint
60 IF (TIM-10.) 5,90,90 rikthim për hapin tjetër t
90 STOP
100 FORMAT(1X,3HT =,F10.6)
110 FORMAT(1X,3F10.6)
END
121
1.6 Shpërhapja klasike
Një shembull interesant i shpërhapjes klasike është shpërhapja e elektroneve dhe
pozitroneve pikësore nga një model i thjeshtuar i atomit të hidrogjenit. Në këtë model
bërthama pozitive pikësore është e rethuar nga një re negative uniforme me densitet konstant
(elektroni). Ngarkesa totale e resë barazon ngarkesën pozitive të bërthamës pikësore. Përjashtë
resë (rethi me pika në figurën 1.3) , forca që vepron mbi pozitronin (ose elektronin) që afrohet
është zero. Në çdo pikë brënda resë, një pjesë e shtytjes midis pozitronit dhe bërthamës
pozitive është ekranizuar nga reja negative. Pra , mbetet shytja nga ngarkesa pozitive e
bërthamës pikësore e pakompensuar (ekranuar) nga reja negative. Disa trajektore të
pozitroneve janë treguar në figurën 1.3 . Nga figura të tilla (sigurisht duke vizatuar më shumë
trajektore në të) mund të numurohet numuri i pozitroneve të devijuar në intervalin e këndeve
0 - 10 , 10 -20 , etj.
Energjia=0.5
Figura 1.3 Trajektoret e pozitroneve të shpërhapur nga një atom i modeluar hidrogjeni.
Atomi është një bërthamë pikësore e rrethuar nga një re negative homogjene brenda rrethit të
vizatuar. Energjia kinetike fillestare është 0.5 për të 5 rastet e treguar në figurë me momente
këndore të ndryshme .
Figura 1.4 Trajektoret e elektroneve të shpërhapur nga një atom i modeluar
hidrogjeni. Trajektoret dallohen nga pozicioni fillestar y (parametri i goditjes)
i treguar në figurë.
122
Figura 1.4 tregon disa trajektore të elektroneve të shpërhapur nga një atom hidrogjeni. Në
këtë rast grimcat që i afrohen atomit tërhiqen nga bërthama dhe trajektore me kthesa ku
elektrone që kthehen mbrapsht largohen nga atomi me që kanë energji pozitive, disa herë
elektroni duhet të bëjë disa spirale para se të largohet nga atomi siç tregohet në figurën 1.5.
Figura 1.5 Disa orbita të elektroneve të shpërhapur nga
atomi i modeluar i hidrogjenit. Energjia kinetike
fillestare e elektroneve është 0.25; kurbat janë të
shënuara nga pozicioni fillestar y i elektroneve.
Programi që kryen këto llogaritje mbi shpërhapjen është paksa më i komplikuar se programi
2DFMA . Në veçanti , një metodë me konvergjencë më të lartë duhet përdorur në mënyrë që
llogaritjet të jenë korekte edhe në pikat afër qendrës së forcës. Shpesh del më e dobishme të
përdoret një hap kohor variabël në mënyrë që impulsi F t në çdo hap të jetë afërsisht i njëjtë.
Programi SCAT është një nga rrugët e mundëshme për llogaritje.
Program SCAT.BAS
100 PRINT "vlerat fillestare x,y dhe energjia";
110 INPUT X, Y, E
115 REM X=-8,Y=.5,E=.5 disa vlera të mundëshme për input
120 Q = -1 q/m
130 V1 = SQR(2 * E) vx fillestare
140 V2 = 0 vy fillestare
150 B1=0 inicializimi
160 B2=0
170 B3=0
180 C1=0
190 C2=0
200 C3=0
210 DT = .005
220 R = SQR(X ^ 2 + Y ^ 2)
230 IF R > 1 THEN 430 në se është shumë larg, lere të ikë vetë
240 F1 = Q * (X / (R ^ 3) - X) ax i parë
250 G1 = Q * (Y / (R ^ 3) - Y) ay i parë
260 DT = .05 / (1 + SQR(F1 ^ 2 + G1 ^ 2)) hapi kohor t (variabël)
270 X1 = X + V1 * DT / 2
280 Y1 = Y + V2 * DT / 2
290 R = SQR(X1 ^ 2 + Y1 ^ 2) përafrimi polinomial i ax me :
300 F2 = Q * (X1 / (R ^ 3) - X1) b1+ b2 t + b3 ( t)2
310 G2 = Q * (Y1 / (R ^ 3) - Y1) dhe i ay me :
320 X1 = X + V1 * DT c1+ c2 t + c3 ( t)2
330 Y1 = Y + V2 * DT në çdo interval duke përdorur
340 R = SQR(X1 ^ 2 + Y1 ^ 2) vlerat në t, t+ ½ t , t+ t ;
123
350 F3 = Q * (X1 / (R ^ 3) - X1) dhe pastaj integrimi i polinomeve
360 G3 = Q * (Y1 / (R ^ 3) - Y1)
370 B1 = F1
380 B3 = 4 * (B1 / 2 - F2 + F3 / 2) / (DT ^ 2)
390 B2 = 2 * (F2 - B1 - B3 * DT * DT / 4) / DT
400 C1 = G1
410 C3 = 4 * (C1 / 2 - G2 + G3 / 2) / (DT ^ 2)
420 C2 = 2 * (G2 - C1 - C3 * DT * DT / 4) / DT
430 X = X+V1*DT+B1*DT*DT/2+B2*DT*DT*DT/6+B3*(DT^4)/12 x i ri
440 Y = Y+V2*DT+C1*DT*DT/2+C2*DT*DT*DT/6+C3*(DT^4)/12 y i ri
450 V1 = V1 + B2 * DT * DT / 2 + B3 * DT * DT * DT / 3 + B1 * DT vx i ri
460 V2 = V2 + C2 * DT * DT / 2 + C3 * DT * DT * DT / 3 + C1 * DT vy i ri
470 T = T + DT koha e re
480 T0 = T0 + DT
490 IF T0 < .05 THEN 520 grupi i komandave për të vizatuar
500 T0 = 0 trajektoret në ekran. Në se doni vetëm të
505 X2% = INT(10 * X + 100) printoni rezultatet hiqen komandat grafike
506 Y2% = INT(10 * Y + 100) dhe reshti 510 lihet duke i hequr REM
510 REM PRINT T, X, Y
511 SCREEN 1
512 LINE (0, 100)-(200, 100)
513 LINE (100, 0)-(100, 200)
514 CIRCLE (100, 100), 10
515 PRESET (X2%, Y2%)
516 PSET (X2%, Y2%)
520 IF T < 15 THEN 150 kthim për hapin pasonjës t
530 PRINT
540 GOTO 100 kthim për trajektoren pasonjëse
550 END
Program SCAT.FOR
5 READ(5,110)X,Y,E vlerat fillestare x,y dhe energjia
QTOM = -1. q/m
VX = SQRT(2. * E) vx flestare
VY = 0. vy fillestare
TIM=0.
TPR=0.
10 AX1=0. INICIALIZIMI
AX2=0.
AX3=0.
AY1=0.
AY2=0.
AY3=0.
DT = .05 hapi kohor, t
R = SQRT(X * X + Y *Y)
IF (R -1.) 20,20,30 në se është shumë larg, lere të ikë vetë
20 F1X = QTOM * (X / (R *R*R) - X) ax i parë
F1Y = QTOM * (Y / (R *R*R) - Y) ay i parë
DT = .05 / (1. + SQRT(F1X*F1X + F1Y*F1Y)) hapi kohor t (variabël)
124
X1 = X + VX * DT / 2.
Y1 = Y + VY * DT / 2.
R = SQRT(X1 *X1 + Y1 *Y1) përafrimi polinomial i ax me :
F2X = QTOM * (X1 / (R*R*R) - X1) ax1+ ax2 t + ax3 ( t)2
F2Y = QTOM * (Y1 / (R*R*R) - Y1) dhe i ay me :
X1 = X + VX * DT ay1+ ay2 t + ay3 ( t)2
Y1 = Y + VY * DT në çdo interval duke përdorur
R = SQRT(X1 *X1 + Y1 *Y1) vlerat në t, t+ ½ t , t+ t ;
F3X = QTOM * (X1 / (R*R*R) - X1) dhe pastaj integrimi i polinomeve
F3Y = QTOM * (Y1 / (R*R*R) - Y1)
AX1 = F1X
AX3 = 4. * (AX1 / 2. - F2X + F3X / 2.) / (DT*DT)
AX2 = 2. * (F2X - AX1 - AX3 * DT * DT / 4.) / DT
AY1 = F1Y
AY3 = 4. * (AY1 / 2. - F2Y + F3Y / 2.) / (DT *DT)
AY2 = 2. * (F2Y - AY1 - AY3 * DT * DT / 4.) / DT
X=X+VX*DT+AX1*DT*DT/2.+AX2*DT*DT*DT/6.+AX3*DT*DT*DT*DT/12. x i ri
Y=Y+VY*DT+AY1*DT*DT/2.+AY2*DT*DT*DT/6.+AY3*DT*DT*DT*DT/12. y i ri
VX = VX + AX1*DT+AX2 * DT * DT / 2. + AX3 * DT * DT * DT / 3. vx i ri
VY = VY + AY1*DT+AY2 * DT * DT / 2. + AY3 * DT * DT * DT / 3. vy i ri
TIM = TIM + DT koha e re
TPR = TPR + DT
IF (TPR-1.) 40,30,30 grupi i komandave për të printuar
30 TPR = 0.
PRINT 120,TIM,X,Y
40 IF (TIM-10.) 10,5,5 kthim për hapin pasonjës t
110 FORMAT(3F10.6)
120 FORMAT(1X,3F10.6) kthim për trajektoren pasonjëse
END
1.7 Lëvizja dy-dimensionale në një potencial të dhënë
Mund të zgjidhim edhe problemin e lëvizjes dy-(ose më shumë) dimensionale në një
potencial të dhënë V(r) në mënyrë analoge si kur jepet forca F(r). Zakonisht është më e
thjeshtë të gjesh potencialin se sa vetë forcën (veçanërisht në problemet e elektrostatikës).
Relacioni midis potencialit dhe forcës është F=-grad(V), ku gradienti është një vektor i cili në
kordinata karteziane ka përbërëset ( V/ x, V/ y, V/ z).
Kur problemi ka simetri sferike, pra kur potenciali varet vetëm nga r r (problemet me
fushë qendrore ), lidhja midis forcës dhe potencialit është më e thjeshtë :
F(r)=dV r
dr
( ) r
r
Në një program mund të gjendet derivati dV/dr numerikisht duke vlerësuar potencialin V në
dy pika (r dhe r+ r ) dhe duke pjestuar me r .
Disa shembuj të thjeshtë potencialesh që ndeshen shpesh në Fizikë janë : V(r)=- a/r ,
potenciali Kulonian për lgjin e forcës invers-proporcional me katrorin e largësisë ;
V(r)= - a exp(-r/r0 ) / r , potenciali i ekranizuar Kulonian ; V(r)=a/r12
- b/r6 , potenciali i
Lenard- Xhonsonit. a , b , r0 janë konstante që varen nga problemi konkret. Potenciali
125
Kulonian është më i përshtatëshmi për problemet gravitacionale dhe ato elektrostatike me
ngarkesa pikësore. Potenciali i ekranizuar Kulonian del në problemet e sistemeve me shumë
elektrone. Ndërsa potenciali Lenard-Xhons përdoret në problemet e Fizikës molekulare dhe të
Fizikës së trupave të ngurtë.
Programi 2DV llogarit trajektoret dy-dimensionale në një potencial të dhënë V(r) .
programi 2DV.BAS
50 REM levizja ne potencialin V=1/r
100 DEF fnv (r) = -1 / r përcaktimi i funksionit potencial
110 DEF fnf (r) = -(fnv(r + .0001) - fnv(r - .0001)) / .0002 Forcë/masë
120 PRINT "vlerat fillestare x,y,vx,vy"; inicializimi
130 INPUT x, y, v1, v2
140 t = 0
150 t1 = 0
160 dt = 1 / 320 hapi kohor t
170 t0 = 15 koha finale
180 PRINT t, x, y, v1, v2
190 r = SQR(x ^ 2 + y ^ 2)
200 a = fnf(r)
210 a1 = a * x / r përbërëset e nxitimit
220 a2 = a * y / r
230 IF t > 0 THEN 270
240 v1 = v1 + a1 * dt / 2 gjysëm-hapi fillestar
250 v2 = v2 + a2 * dt / 2
260 GOTO 290
270 v1 = v1 + a1 * dt përbërëset e reja të nxitimit
280 v2 = v2 + a2 * dt
290 x = x + v1 * dt pozicioni i ri
300 y = y + v2 * dt
310 t = t + dt koha e re
320 t1 = t1 + dt
330 IF t1 < t0 / 320 THEN 360 grupi i vizatimit në ekran të trajektores,
340 t1 = 0 nëse nuk do vizatohen ato atëhëre hiqen komandat
341 x1 = INT(20 * x + 100) grafike dhe lihet vetëm reshti 350 duke hequr REM
342 y1 = INT(20 * y + 100)
343 SCREEN 1
344 LINE (0, 100)-(200, 100)
345 LINE (100, 0)-(100, 200)
346 PRESET (x1, y1)
347 PSET (x1, y1)
350 REM PRINT t, x, y, v1, v2
360 IF t < t0 THEN 190 rikthim për hapin pasonjës kohor
370 SCREEN 0
380 GOTO 120 rikthim për trajektoren tjetër
390 END
Programi 2DV.FOR
POTEN (R) = -1 / R potenciali V(r)
126
F(r) = -(POTEN(R + .0001) - POTEN(R - .0001)) / .0002 forcë/masë
5 READ(5,100)X,Y,VX,VY INICIALIZIMI
IF (X-999.) 7,45,45
7 T = 0.
PRNTT = 0.
DELT = 1. / 32.0 t
ENDT = 6. koha finale
PRINT 101,T, X, Y, VX, VY
10 R = SQRT(X*X + Y*Y)
A = F(R)
AX = A * X / R përbërëset e nxitimit
AY = A * Y / R
IF (T) 15,15,20
15 VX = VX + AX * DELT / 2. gjysëm-hapi fillestar
VY = VY + AY * DELT / 2.
GOTO 25
20 VX = VX + AX * DELT përbërëset e reja të shpejtësisë
VY = VY + AY * DELT
25 X = X + VX * DELT pozicioni i ri
Y = Y + VY * DELT
T = T + DELT koha e re
PRNTT = PRNTT+ DELT grupi i printimit
IF *PRNTT-ENDT/16.) 40,30,30
30 PRNTT = 0.
PRNT 101,T,X,Y,VX,VY
40 IF (T-ENDT) 10,5,5
45 STOP
101 FORMAT(1X,5F10.4)
END
1.8 Oshilatorët e çiftuar
Si zbatim të fundit nga mekanika kemi zgjedhur oshilatorët e lidhur ose siç thuhet ndryshe të
çiftuar, pra dy sisteme njëdimensionalë që mund të kryejnë lëkundje harmonike janë lidhur
(çiftuar) me njeri tjetrin në mënyrë që lëvizja e njerit prodhon lëvizje tek tjetri. Në figurën 1.6
tregohet një rast i tillë : dy masa të varura në susta janë lidhur midis tyre me një sustë të tretë.
Figura 1.6 Sistemi i masave dhe sustave
formon një sistem dy oshilatorësh vertikalë
të çiftuar.
127
Gjatë zhvendosjeve të vogla vertikale të masave, forcat që veprojnë mbi sejcilin trup nga ana e
sustave të deformuara janë përkatësisht :
F1 = - k1 y1 - k0 ( y1 - y2 ) ; F2 = - k2 y2 - k0 ( y2-y1 )
ku, y1 dhe y2 janë zhvendosjet e masave m1 dhe m2 nga pozicioni i ekuilibrit. Ekuacionet
mund të zgjidhen direkt me teknikën numerike të zgjidhjes së ekuacionit F = m a . Programi
COUPLE është një rrugë për ta bërë këtë. Është treguar rasti i thjeshtë ku m1 = m2= k1= k2=
1 (me k0 =0.1), por programi është i përgjithëshëm për çfardo vlerash.
Modet normale mund të ilustrohen me këtë program. Në modet normale energjia nuk kalon
nga njeri oshilator tek tjetri . Për sistemin e dy oshilatorëve një-dimensional të lidhur ka dy
mode normale; nga simetria mund të merret me mënd që (për rastin special me m1 = m2= k1=
k2= 1) të dy modet normale mund të fillojnë ose me y1 =1, y2 = 1, v1 = v2 = 0, ose me y1 = -1,
y2 = 1, v1 = v2 = 0 . Ju mund të demostroni me anë të programit që me këto dy palë kushtesh
fillestare nuk ka shkëmbim lëvizjeje apo energjie midis masave. Çdo lëvizje në përgjithësi e
masave (duke filluar me kushte fillestare jo simetrike) mund të shkruhet analitikisht si një
kombinim linear i lëvizjeve në modet normale.
Program COUPLE.BAS
10 REM programi couple.bas llogarit zhvendosjet e dy oshilatoreve te lidhur
20 REM kushtet fillestare merren 1,0,1,0 ose -1,0,1,0
30 REM open "couple.dat" for output as file #3
100 READ k1, m1, k2, m2, k0
110 DATA 1,1,1,1,.1
120 PRINT "kushtet fillestare y1,v1,y2,v2";
130 INPUT y1, v1, y2, v2
140 t = 0
150 t0 = 0
160 dt = .005
170 d0 = .01
180 a1 = (-k1 * y1 - k0 * (y1 - y2)) / m1
190 a2 = (-k2 * y2 - k0 * (y2 - y1)) / m2
200 v1 = v1 + a1 * dt
210 v2 = v2 + a2 * dt
220 dt = d0
230 y1 = y1 + v1 * dt
240 y2 = y2 + v2 * dt
250 t = t + dt
260 t0 = t0 + dt
270 IF t0 < 3.14159 / 16 THEN 300
280 t0 = 0
281 SCREEN 1
282 x = INT(10 * t)
283 y = INT(10 * y1 + 100)
284 PRESET (x, y)
285 PSET (x, y)
286 y = INT(10 * y2 + 100)
287 PRESET (x, y)
128
288 PSET (x, y)
290 REM PRINT #3, t, y1, y2
300 IF t < 4 * 3.14159 THEN 180
310 REM PRINT
320 REM GOTO 120
330 END
Program COUPLE.FOR
DATA AK1,AM1,AK2,AM2,AK0/1.,1.,1.,1.,1./ konstantet e sustave dhe masat
5 READ(5,100)Y1,VY1,Y2,VY2 kushtet fillestare
IF (Y1-999.) 7,50,7
7 T=0. INICIALIZIMI
PRNTT=0.
DELT=0.01 hapi kohor t
DELTT=DELT/2 hapi kohor fillestar ½ t
10 AY1=(-AK1*Y1-AK0*(Y1-Y2) )/AM1 nxitimi për masën e parë
AY2=(-AK2*Y2-AK0*(Y2-Y1))/AM2 nxitimi për masën e dytë
VY1=VY1+AY1*DELTT shpejtësia e re për masën e parë
VY2=VY2+AY2*DELTT shpejtësia e re për masën e dytë
DELTT=DELT hapi i plotë kohor
Y1=Y1+VY1*DELTT pozicioni i ri i masës së parë
Y2=Y2+VY2*DELTT pozicioni i ri i masës së dytë
T=T+DELTT koha e re
PRNTT=PRNTT+DELTT grupi i printimit
IF (PRNTT-3.14159) 20,15,15
15 PRNTT=0.
PRINT 101,T,Y1,Y2
20 IF (T-4.*3.14159) 10,5,5 kthim në hapin pasonjës ose në kushte të reja fillestare
50 STOP
100 FORMAT(4F10.4)
101 FORMAT(1X,3F10.4)
END
Medota mund të përdoret edhe për çdo numur oshilatorësh sado kompleks. Çiftimi mund të
mos jetë thjeshtë me anë të sustës . Por në të gjitha rastet oshilatorët merren me lëkundje të
vogla , pra forcat janë harmonike ose kuazi-harmonike , ku mund të zbatohet ideja e modeve
normale.
Ky kapitull ishte një hyrje e shkurtër për mënyrat e thjeshta të zgjidhjes numerike të
ekuacionit F = m a në problemet e mekanikës. Edhe probleme më të komplikuara të
mekanikës së grimcave mund të trajtohen me të njëjtën mënyrë. Avantazhi i kësaj mënyre
është se është e përgjithëshme dhe kuptohet lehtë. Disavantazhi më i madh është se vetitë
globale të zgjidhjeve (siç janë ligjet e ruajtjes) nuk janë evidente në zgjidhjet. Ligjet e ruajtjes
mund të ilustrohen lehtë prej zgjidhjeve dhe zakonisht janë një test i përshtatshëm për
saktësinë e metodës numerike , por këto ligje nuk derivojnë nga llogaritjet numerike.
Algoritmi i ecjes nëpër kurbë do të përdoret përsëri në kapitujt e tjerë.
Ushtrime
1. Duke përdorur një program që ka stategjinë e zgjidhjes së ekuacionit F = m a për një
qendër forcash gravitacionale në origjinë të kordinatave (problemi i satelitit ),
129
a. Të gjenden 5 orbita të mbyllura që kalojnë nëpër pikën (-2,0) me shpejtësi të
ndryshme ( 0, vy ).
b. Për një nga këto orbita provoni që është elips me vatër në qendrën e forcës.
c. Për një nga këto orbita provoni që sipërfaqja që përshkohet në intervale kohe të njëjta t
është e njëjtë.
d. Provoni se katrori i periodës është proporcional me kubin e gjysëmboshtit të madh, duke
përdorur disa orbita.
2. Duke përdorur një program me strategjinë e zgjidhjes së ekuacionit F = m a për një
qendër forcash gravitacionale në origjinë të kordinatave ,
a. Të gjenden 5 orbita që kalojnë në pikën (-1 ,0 ) që kanë të njëjtën energji në këtë pikë
por momente këndore të ndryshme. (Këto janë orbita që kanë të njëjtën madhësi të
shpejtësisë fillestare por kanë drejtime të ndryshme të kësaj shpejtësie në pikën iniciale.)
b. Demonstroni tre ligjet e Keplerit për këto orbita.
3. Duke përdorur një program me strategjinë e zgjidhjes së ekuacionit F = m a për dy qendra
të fiksuara forcash gravitacionale (me të njëjtën masë në to) në pikat (0 , 0) dhe ( 10 , 0),
a. Gjeni një orbitë që i qarkon nga jashtë të dy qendrat e forcave dhe rikthehet (pak a shumë)
në pikën nisëse ( -1 , 0).
b. Gjeni një orbitë në formën e figurës së tetës që qarkon të dy qendrat e forcave, që nisin
nga pika (-1,0).
c. Llogaritni diferencën e energjive totale midis dy orbitave të pikave a. dhe b.
4. Në një sistem njësish në të cilin ligji i forcës gravitacionale ka formën e thjeshtuar( GM=1),
a. Gjeni largësinë midis Tokës dhe Hënës, masat e Tokës dhe Hënës, dhe largësinë prej
qendrës së Tokës deri te orbita rrethore 150 km mbi sipërfaqen e Tokës.
b. Gjeni shpejtësitë fillestare korekte ( që janë totalisht në drejtimin y ) që japin orbita që
qarkojnë Hënën dhe rikthehen në Tokë , që startojnë një satelit 150 km mbi sipërfaqen e
Tokës. Gjeni një orbitë që qarkon nga jashtë Tokën dhe Hënën dhe një me trajtën e
figurës së tetës.
c. Gjeni sa është diferenca e energjive midis dy orbitave të pikës b. Pse programi Apollo
(veçanërisht Apollo 8) përdori orbitën “kursimtare” në formën e tetës ?
5. Janë dhënë tre trupa me masë të njëjtë që bashkëveprojnë me forca gravitacionale që
ndodhen në kulmet një trekëndëshi barabrinjësh ,
a. Gjeni 3 shpejtësi fillestare që japin lëvizje interesante të ndryshme për tre trupat.
b. Hetoni ruajtjen e energjisë së plotë dhe momentit këndor të sistemit, për seicilen nga
shpejtësitë fillestare.
c. Për njerin trup hetoni ndryshimin në kohë të energjisë kinetike, potenciale dhe asaj të
plotë si dhe të momentit këndor për seicilen nga shpejtësitë fillestare.
6. Jepet potenciali i Jukavës V (r) = - exp(- r )/ r (ku qendra e forcës është në origjinë),
a. Gjeni disa orbita që kalojnë nëpër pikën (2,0) duke përdorur programin e lëvizjes dy-
dimensionale në potencial të dhënë.
b. Gjeni shpejtësinë korekte për të patur një orbitë rrethore që kalon nga (2,0) duke përdorur
këtë program.
c. Duke barazuar forcën që derivon nga potenciali i Jukavës me forcën centripete, gjeni
shpejtësinë dhe krahasojeni me atë të pikës b.
7. Jepet potenciali i Jukavës V (r) = - exp(- r )/ r ,
a. Duke përdorur programin e lëvizjes dy-dimesionale në një potencial të dhënë, nisni
grimca që lëvizin paralelisht me boshtin x nga pikat (-5, y ). Llogaritni trajektoret dhe
130
matni këndet që formon drejtimi përfundimtar i trajektoreve ( kur largohen nga fusha) me
drejtimin e boshtit x (drejtimi fillestar i trajektoreve).
b. Vizatoni grafikun e varësisë së numurit të grimcave që devijojnë në intervalet 00-10
0 ,
100-20
0 , etj. nga këndi i devijimit.
c. Përsëritni trajektoret për potencialin V (r) = - exp(- r/5 )/ r , dhe tregoni që grafiku i
pikës b. ndryshon.
d. Shpjegoni se si trajektoret e grimcave të shpërhapura mund të japin informacion mbi
potencialin.
8. Konsiderojmë një sistem masash në susta (të çiftuar) si në Figurë 1.7.
a. Shkruani ekuacionet e lëvizjes në drejtimin x (gjatësor) të dy masve të barabarta.
b. Duke përdorur një program me strategjinë e ligjit F = m a , gjeni lëvizjet që rezultojnë
kur masat nisen në mënyrat e mëposhtëme:
(1) Të dy masat nisen nga prehja duke qënë të zhvendosura me të njëjtën masë djathtas.
(2) Të dy masat nisen nga prehja duke qënë të zhvendosura me të njëjtën masë në anë të
kundërta.
(3) Njera masë niset nga pozicioni i ekuilibrit dhe tjetra niset duke qënë e zhvendosur në
të djathtë.
c. Merini sustat sikur nuk janë lineare , pra F=- k(x+0.1 x3). Përsëritni pikën b. dhe krahasoni
Figura 1.7 Sistemi i masave dhe sustave për dy oshilatorë horizontalë të lidhur.
131
KAPITULLI II
TERMODINAMIKA DHE STATISTIKA
Hyrje
Në këtë kapitull do të shikohen disa shembuj të zgjidhjes së problemeve të Termodinamikës
dhe Fizikës statistike.Këta shembuj mund të ilustrojnë reversibilitetin e proceve
termodinamikë në shumë lëndë , megjithëse shembujt marin si lëndë gazin ideal. Megjithatë
mënyra e llogaritjeve është e vlefëshme për çdo lëndë e cila mund të ketë për ekuacion të
gjendjes (ekuacioni PVT) një relacion të ndërlikuar ose një tabelë vlerash
2.1 Sipërfaqet PVT
Çdo lëndë në gjendje ekuilibri termodinamik karakterizohet nga një lidhje midis shtypjes
(presionit) P , volumit V dhe temperaturës T . Në përgjithësi , për një lëndë reale lidhja është
e ndërlikuar, meqënëse në intervale të ndryshme të vlerave të parametrave P,V,T , lënda
mund të jetë në gjendje të ndryshme : të ngurtë ,të lëngët apo të gaztë.
Një idealizim i dobishëm është gazi ideal i cili ka për ekuacion gjendjeje relacioni e thjeshtë :
PV= n RT
ku R është konstante universale e gazeve (8.314 103
J/kg mol grad) dhe n është numuri i
moleve që përmban sasia e dhënë e gazit. P është shrypja në njuton për metër katror; V është
volumi në metër kub dhe T është temperatura absolute në gradë Kelvin. Të gjithë gazet jo
shumë të ngjeshur janë një përafrim mjaft i mirë i gazit ideal.. Por ai nuk mund të paraqesë
gjendjet në intervale të gjera të P,V,T ku gazet realë kondensohen në lëngje apo trupa të
ngurtë.
Figura 2.1 tregon një pjesë të lidhjes P,V,T për gazin ideal. Shtypja në njerin bosht është
njësi N/m2 (1 atmosferë është 1.013 10
5 N/m
2 ). Volumi në boshtin e dytë është në m
3 (deri
në 0.005 m3 ). Temperatura në boshtin e tretë është deri në 1350 K. Kurbat me shtypje
konstane (izobarat) janë vija të drejta , V T Kurbat me volum konstant (izokorat) janë
vijat e drejta P T . Kurbat me temperaturë konstante (izotermat) janë hyperbolat P 1/V.
Sipërfaqja PVT paraqet gjithë gjendjet e mundëshme të ekuilibrit që mund të ketë lënda
(në këtë rast gazi ideal) . Proceset reversibël në të cilat mund të kalojë lënda janë kalime njera
pas tjetrës nëpër gjendjet e ekuilibrit, pra ata paraqiten me një farë vije në sipërfaqen PVT.
Proceset ireversibël nuk janë kalim nëpër gjendje ekuilibri dhe nuk mund të paraqiten me
konture në sipërfaqen PVT .
Shumë madhësi që karakterizojnë lëndën , veçanërisht energjia e brendëshme U dhe
entropia S , janë funksione të gjendjes së lëndës, kjo nënkupton që U dhe S kanë vlerë të
vetme (me saktësinë e shtimit të një konstanteje sikurse tek energjia potenciale) në çdo pikë të
sipërfaqes PVT . Ndryshimet që pësojnë U dhe S , kur sistemi i nënshtrohet ndonjë procesi ,
varen vetëm nga gjendjet fillestare dhe përfundimtare të sistemit.
132
Figura 2.1 Sipërfaqet PVT për gazin
ideal. Konturet e treguara izotermat
(me vijë të plotë) dhe izobarat e
izokorat (me vija të ndërprera).
Nxehtësia Q e shkëmbyer midis lëndës dhe mjedisit që e rethon varet nga gjendjet fillestare e
përfundimtare si dhe nga mënyra se si kalon sistemi nga një gjendje tek tjetra. Po ashtu edhe
puna W e kryer nga sistemi ose që kryhet mbi sistem varet gjithashtu nga rruga që ndjek
sistemi. Një nga detyrat themelore të termodinamikës është që duke përdorur ligjet empirike të
termodinamikës, të gjejë Q ,W , U dhe S për proceset e kryera mbi një lëndë reale. Ky
kapitull përqëndrohet në proceset reversibël të kryera mbi një gaz ideal.meqënëse këto procese
janë më lehtë për tu kuptuar. Megjithatë kompjuteri mund të përdoret po aq mirë edhe për
lëndë reale me procese ireversibël.
Figura 2.2 Një cikël Karno i kryer
mbi një gaz ideal. Ai përbëhet nga dy
procese izotermikë (T) dhe dy procese
adiabatikë (A) . Efektiviteti
(rendimenti) është puna e kryer W e
pjestuar me nxehtësinë e thithur Q.
Figura 2.2 tregon një cikël Karno për një gaz ideal. Sipërfaqja PVT është ajo e treguar në
figurën 2.1 . Një cikël Karno përbëhët nga dy procese izotermikë dhe dy procese adiabatikë
(procesi adiabatik është ai që kryhet pa shkëmbim nxehtësie, PV =një konstante, ku =Cp/Cv
dhe Cp e Cv janë nxehtësitë specifike në shtypje dhe në vëllim konstant) Izotermat janë
133
shënuar me T ndërsa adiabatat janë shënuar me A .Efektiviteti (rendimenti, puna e kryer për
njësi të nxehtësisë së harxhuar) e=W/Q është 0.52 për këtë cikël. Ky rendiment është funksion
vetëm i temperaturave më të ulët e më të lartë Tu dhe Tl . Gjithë proceset (ciklet) e
pakthyeshëm që kryhen midis këtyre temperaturave kanë të njëjtin rendiment dhe asnjë proces
ireversibël nuk mund të ketë rendiment më të lartë.
Llogaritjet me anë të kompjuterit japin një rrugë të lehtë për gjetjen e nxehtësisë, punës ,
ndryshimit të energjisë dhe ndryshimit të entropisë për çdo proces. Duke lëvizur nëpër
konturin PVT [duke përdorur relacionin PVT për të llogaritur P (ose V ose T) në funksion të
V dhe T (ose P e T ose P e V )] e duke llogaritur në çdo hap nxehtësinë ( Q=C T , ku C
është kapaciteti termik) dhe punën ( W=P V ). Nxehtësia e plotë Q që merr sistemi është
atëhere Q dhe puna totale është W . Ndryshimi i energjisë së brendëshme U është
llogaritur nga ligji i parë i termodinamikës :
U = Q - W
Ndryshimi i entropisë nga shumat në çdo hap të S sipas përcaktimit :
S = Q / T dhe S = S
Programi PVT ilustron një mënyrë të këtyre llogaritjeve për proceset izotermik, izohorik ,
izobarik dhe adiabatik. Inetgrimi është bërë me një mënyrë të thjeshtë , por ju mund të
përdorni rregullin e Simpsonit në se dëshironi.Nxehtësia specifike në volum konstant CV
është 3/2 për gazin ideal monoatomik; nzehtësia specifike në shtypje konstante CP është 5/2 ,
është 5/3 ose 1.667. Në variantin basic të programit proceset vizualizohen në ekran dhe
sqarimet e programit janë dhënë në reshtat me REM.
Program PVT.BAS
10 REM programi pvt.bas llogarit W , Q , U , S për proceset izotermik,
20 REM izohorik,izobarik dhe adiabatik.Konstantet termodinamike në ek.PV=NRTjane:
30 REM R,N dhe kapaciteti termik C dhe G= =Cp /Cv.
100 READ R, N, C, G
110 DATA 8.314,.223,12.45,1.667
112 REM LEXON PROCESIN,GJENDJET FILLESTARE(TEMP.=Y0,VELL=X) E
PERFUNDIMTARE.
120 IF l >= 4 THEN 710
121 READ I, y0, x0, X1
122 l = l + 1
123 REM TE DHENAT JANE PER NJE CIKEL KARNO
130 DATA 1,275,.0045,.003,4,169952,.003,.001
140 DATA 1,572.233,.001,.0015,4,707288,.0015,.0045
150 W = 0
160 Q = 0
170 S = 0
180 D = (X1 - x0) / 10000
181 REM KY ESHTE HAPI I INTEGRIMIT PER VOLUMIN X
190 IF I = 2 THEN 330
200 IF I = 3 THEN 440
210 IF I = 4 THEN 570
220 Z0 = N * R * y0 / x0
230 FOR J = 1 TO 10000
240 v = x0 + (J - .5) * D
250 p = N * R * y0 / v
134
260 W = W + p * D
270 Q = Q + p * D
280 S = S + p * D / y0
281 SCREEN 1
282 x% = INT(v * 60000)
283 y% = 150 - INT(p / 10000)
284 LINE (0, 0)-(0, 150)
285 LINE (0, 150)-(300, 150)
286 PRESET (x%, y%)
287 PSET (x%, y%)
290 NEXT J
300 Y1 = y0
310 Z1 = N * R * Y1 / X1
320 GOTO 680
330 Z0 = N * R * y0 / x0
340 FOR J = 1 TO 10000
350 T = y0 + (J - .5) * D
360 p = N * R * T / y0
370 Q = Q + N * C * D
380 S = S + N * C * D / T
390 W = 0
381 x% = INT(v * 60000)
382 y% = 150 - INT(p / 10000)
383 PRESET (x%, y%)
384 PSET (x%, y%)
400 NEXT J
410 Y1 = y0
420 Z1 = N * R * X1 / Y1
430 GOTO 680
440 Z0 = y0 * x0 / (R * N)
450 T2 = Z0
460 FOR J = 1 TO 10000
470 v = x0 + (J - .5) * D
480 T = y0 * v / (R * N)
490 Q = Q + N * C * G * (T - T2)
500 S = S + N * C * G * (T - T2) / (T - (T - T2) / 2)
510 W = W + y0 * D
520 T2 = T
521 x% = INT(v * 60000)
522 y% = 150 - INT(p / 10000)
523 PRESET (x%, y%)
524 PSET (x%, y%)
530 NEXT J
540 Y1 = y0
550 Z1 = Y1 * X1 / (N * R)
560 GOTO 680
570 K = y0 * x0 ^ G
580 Z0 = y0 * x0 / (R * N)
590 FOR J = 1 TO 10000
135
600 v = x0 + (J - .5) * D
610 p = K / v ^ G
620 W = W + p * D
630 Q = 0
640 S = 0
641 x% = INT(v * 60000)
642 y% = 150 - INT(p / 10000)
643 PRESET (x%, y%)
644 PSET (x%, y%)
650 NEXT J
660 Y1 = K / X1 ^ G
670 Z1 = Y1 * X1 / (N * R)
680 REM PRINT I, Q, W, Q - W, S
690 REM PRINT "GJENDJA FILLESTARE V,T,P:"; X0; Y0; Z0, "GJENDJA PERFUND.
VTP:"; X1; Y1; Z1
700 GOTO 120
710 REM SCREEN 0
720 END
Programi PVT.FOR
REAL N
DATA R,N,C,G/ 8.314,.223,12.45,1.667/ konstantet termodinamike
1 READ(5,100)I,Y0,X0,X1 lloji i procesit,gjendjet fillestare e përfundimtare
IF (I-999) 5,90,90
5 W= 0.
Q = 0.
S = 0.
D = (X1 - X0) / 1000. hapi për integrimin
IF (I - 2) 6,20,6
6 IF (I - 3) 7,40,7
7 IF (I - 4) 8,60,8
8 Z0 = N * R * Y0 / X0 DO 10 J = 1,1000 V = X0 + (J - .5) * D P = N * R * Y0 / V W = W + P * D Q = Q + P * D 10 S = S + P * D / Y0 Y1 = Y0 Z1 = N * R *Y1/ X1 GOTO 80
procesi izotermik (I=1)
20 Z0 = N * R * X0 / Y0 DO 30 J = 1,1000 T = X0 + (J-.5) * D P = N * R *T / Y0 Q = Q + N *C * D S = S + N *C * D / T 30 W = 0. Y1 = YO Z1 = N * R * X1/ Y1 GOTO 80
procesi izohorik (I=2)
136
40 Z0 = Y0* X0 / (N * R) T2 = Z0 DO 50 J = 1,1000 V = X0 + (J-.5) * D T = Y0* V / (R * N) Q = Q + N *C *G *(T - T2) S = S + N *C * G *(T - T2)(T - (T - T2) / 2) W = W + Y0* D 50 T2 = T Y1 = Y0 Z1 = Y1* X1/ (N * R) GOTO 80
procesi izobarik (I=3)
60 AK = Y0* X0**G Z0 = Y0* X0 / (R * N) DO 70 J = 1,1000 V = X0 + (J-.5) * D P = AK / V **G W = W + P * D Q = 0. 70 S = 0. Y1 = AK / X1**G Z1 = Y1* X1/ (N * R)
procesi adiabatik (I=4)
80 PRINT 101,X0,Y0,Z0 Q0 = Q - W PRINT 102,I,Q,W,Q0,S PRINT 101,X1,Y1,Z1
grupi i printimit
GOTO 1 rikthim për procesin tjetër
90 STOP
100 FORMAT(I5,3F15.10)
101 FORMAT(3X,3E12.4)
102 FORMAT(1X,I5,4E12.4)
END
Figura 2.3 tregon një cikël Diezel, ai përbëhet nga një izobarë,dy adiabata dhe një
izohore.Efektiviteti, që është raporti W/Q , është e=0.48 .Të katër kulmet e ciklit kanë
(T,V,P)=(216,0.004,105), (554,0.001,1.01x10
6), (1000,0.001,1.85x10
6) ,
(396,0.004,1.84x105).
137
Figura 2.3 Një cikël Diezel për gazin
ideal. Ai përbëhet nga dy adiabata (A),
një izobarë (P) dhe një izokorë (V ).
Rendimenti i ciklit është e=0.48.
Figura 2.4 tregon një cikël Otto (dy izohora dhe dy adiabata)
Kjo metodë mund të zbatohet edhe për metarjale reale, duke vendosur relacionin e
përshtatshëm PVT në vëndin e duhur . Lëngjet dhe trupat e ngurtë janë pothuaj të
pangjeshëshëm dhe kanë nxehtësi specifike krejt të ndryshme nga gazet. Në ndryshim nga
gazet, gjithë parametrat për një lëndë reale varen nga shtypja dhe temperatura. Shumë
materjale (të tilla si uji) ka disa faza të ngurta të ndryshme, të ndryshme nga fazat e lëngëta e
të gazta.
Figura 2.4 Një cikël Otto i kryer mbi
një gaz ideal. Ai përbëhet nga dy
procese adiabatikë (A) dhe dy procese
izohorikë (V).
Problema
1. a. Gjeni një cikël Karno midis gjëndjes standarte të temperaturës dhe shtypjes (shkurt
shënohet STP , kur temperatura është 273 0K dhe shtypja 1 atmosferë) dhe temperaturës
138
770K (temperatura e nitrogjenit të lëngët). Sa është efektiviteti (rendimenti) i ketij cikli
duke supozuar se lenda është gaz ideal.
b. Përsëriteni kërkesën a. duke supozuar një gaz me ekacion gjendjeje ai i Van der Valsit.
Krahasoni rezultatet.
2. a. Gjeni një cikël Diezel midis gjendjes STP dhe temperaturës 770K. Sa është efektiviteti
i këtij cikli? Supozohet gaz ideal.
b. Përsëriteni kërkesën a. për një gaz të Van der Valsit.Krahasoni rezultatet
3. a. Gjeni një cikël Otto midis gjendjes STP dhe temperaturës 770K Sa është efektiviteti i
i këtij cikli? Supozohet gaz ideal.
b. përsëriteni kërkesën a. për një gaz të Van der Valsit. Krahasoni rezultatet.
4. a. Kërkoni nëpër manuale të dhëna për gjendjet PVT të ujit.
b. Futini të dhënat në një skedar në kompjuter.
c. Shkruani një variant të programit PVT i cili i lexon të dhënat nga skedari i mësipërm
(dhe jo duke i llogaritur nga ekuacioni i gjendjes)
d. Gjeni një cikël Karno duke përdorur gjendjet PVT nga skedari i krijuar për ujin.
2.2 Gazi prej n-grimcash
Një problem interesant nga Fizika Statistike që mund të trajtohet me metodat kompjuterike
është ai i gazit të përbërë nga n grimca (molekula) . Këto n molekula (që në praktikë merren
zakonisht një dyzinë) kanë pozicione fillestare dhe shpejtësi fillestare të dhëna. Lëvizjet e
mëtejshme të tyre mund të gjenden dhe të çfaqen në ekran. Një nga mënyrat e llogaritjes është
përdorimi ligjit F = m a që është diskutuar në kapitullin e parë. Për shumicën e gazeve është
mjaft i mirë përafrimi që merr në konsideratë vetëm bashkëveprimet dyshe të molekulave si
dhe goditjet e molekulave me paretet e enës. Një situatë dy-dimensionale i ilustron efektet po
aq mirë sa situata reale tre-dimensionale. Programi NGAS ilustron pikërisht një situatë dy-
dimesionale.
Programi NGAS.BAS
10 REM programi ngas.bas llogarit pozicionet e n molekulave te nje gazi
20 REM brenda nje ene kubike me brinje l kur molekulat bashkeveprojne
30 REM vetem gjate goditjes me njera tjetren sipas potencialit L-Xh
100 DIM X(100), Y(100), U(100), V(100)
110 DT = .01
120 L = 10
130 T1 = 150
140 PRINT "numuri i molekulave?"
150 INPUT N
160 FOR I = 1 TO N
170 X(I) = (-1) ^ INT(10 * RND) * RND * L
180 Y(I) = (-1) ^ INT(10 * RND) * RND * L
190 U(I) = (-1) ^ INT(10 * RND) * RND * L / 10
200 V(I) = (-1) ^ INT(10 * RND) * RND * L / 10
210 NEXT I
220 T0 = 0
230 T = 0
240 D1 = DT / 2
139
250 FOR I = 1 TO N
260 X0 = X(I)
270 Y0 = Y(I)
280 U = 0
290 V = 0
300 FOR J = I + 1 TO N
310 X2 = X(J) - X0
320 Y2 = Y(J) - Y0
330 R2 = X2 * X2 + Y2 * Y2
340 IF R2 > 16 * .04 THEN 430
350 R6 = R2 ^ 3
360 F5 = 3.6E-11 / (R6 * R6 * R2) - .000006 / (R6 * R2)
370 F1 = F5 * X2
380 F2 = F5 * Y2
390 U(J) = U(J) + F1 * D1
400 V(J) = V(J) + F2 * D1
410 U = U - F1 * D1
420 V = V - F2 * D1
430 NEXT J
440 U(I) = U(I) + U
450 V(I) = V(I) + V
460 NEXT I
470 FOR I = 1 TO N
480 X = X(I) + U(I) * DT
490 Y = Y(I) + V(I) * DT
500 IF (X + L) * (X - L) <= 0 THEN 590
510 S1 = SGN(X)
520 X0 = X(I)
530 X3 = S1 * L
540 U = -U(I)
550 D3 = DT * (X3 - X0) / (X - X0)
560 X = X3 + U * (DT - D3)
570 U(I) = U
580 P1 = P1 + 2 * ABS(U)
590 IF (Y + L) * (Y - L) <= 0 THEN 680
600 S1 = SGN(Y)
610 Y0 = Y(I)
620 Y3 = S1 * L
630 V = -V(I)
640 D3 = DT * (Y3 - Y0) / (Y - Y0)
650 Y = Y3 + V * (DT - D3)
660 V(I) = V
670 P1 = P1 + 2 * ABS(V)
680 X(I) = X
690 Y(I) = Y
691 SCREEN 1
692 LINE (0, 0)-(200, 0)
693 LINE (0, 0)-(0, 200)
694 LINE (200, 0)-(200, 200)
140
695 LINE (0, 200)-(200, 200)
696 XP% = INT(X(I) * 10 + 100)
697 YP% = INT(Y(I) * 10 + 100)
698 PRESET (XP%, YP%)
699 PSET (XP%, YP%)
700 NEXT I
710 T = T + DT
720 IF (T - T0) >= T1 THEN 750
730 D1 = DT
740 GOTO 250
750 E1 = 0
760 FOR I = 1 TO N
770 U = U(I)
780 V = V(I)
790 E1 = E1 + U*U + V * V
800 NEXT I
810 REM PRINT T, P1 / (4 * L * T1), E1
820 FOR I = 1 TO N
830 REM PRINT X(I), Y(I), U(I), V(I)
840 NEXT I
850 END
Program NGAS.FOR
DIMENSION XMOL(100), YMOL(100), VXMOL(100), VYMOL(100)
D = .01 hapi kohor
AL = 10. gjatësia e kutisë (enës)
T1 = 5. koha e printimit
DATA N/10/ numuri i të dhënave
AN=N
DO 5 I = 1,N
XMOL(I) = (I -1) *2.*AL / AN - AL YMOL(I) = AL - (I -1) *2.*AL / AN VXMOL(I) = 2. *A L / 10. 5 VYMOL(I) = - 2.* AL / 20.
pozicionet dhe shpejtësitë fillestare
T0 = 0.
T = 0.
D1 = D / 2. gjysëm-hapi fillestar, t/2
7 DO 25 I = 1,N hapi nga një grimcë në tjetrën
X0 = XMOL(I)
Y0 = YMOL(I)
VX = 0.
VY = 0.
DO 20 J = I + 1,N
X2 = XMOL(J) - X0
Y2 = YMOL(J) - Y0
R2 = X2 * X2 + Y2 * Y2
largësia nga grimca e i-të në atë të j-të
IF (R2-16. * .04) 10,20,20 nëse janë shumë larg,të mos bashkëveprojnë
141
10 R6 = R2 ** 3
FR = 3.6E -11 / (R6 * R6 * R2) - 6.E - 6 / (R6 * R2) FX = FR * X2 Fx / m Fy = FR * Y2 Fy / m
forca F ji
VXMOL(J) = VXMOL(J) + FX * D1 VYMOL(J) = VYMOL(J) + FY * D1
shpejtësia e re e j-të
VX = VX - FX * D1 VY = VY - FY * D1
shpejtësia e re e i-të (e përkohëshme)
20 CONTINUE
VXMOL(I) = VXMOL(I) + VX 25 VYMOL(I) = VYMOL(I) + VY
shpejtësia e re e i-të
DO 40 I = 1,N
X = XMOL(I) + VXMOL(I) * D pozicioni i ri (i përkohëshëm)
Y = YMOL(I) + VYMOL(I) * D
IF ((X + AL) * (X - AL) ) 30,30,27 nësë është brenda enës ,lere
27 X0 = XMOL(I) X3 = SIGN(X) * AL VX = - VXMOL(I) D3 = D * (X3 - X0) / (X - X0) X = X3 + VX * (D - D3) VXMOL(I) = VX P1 = P1 + 2 * ABS(VX) shkwmbimi i impulsit
pasqyrimi në paret
30 IF ((Y +AL) * (Y -AL) ) 35,32,32 nëse është brenda enës,lere
32 Y0 = YMOL(I) Y3 = SIGN(Y) * AL VY = - VYMOL(I) D3 = D * (Y3 - Y0) / (Y - Y0) Y = Y3 + VY * (D - D3) VYMOL(I) = VY P1 = P1 + 2 * ABS(VY) shkwmbimi i impulsit
pasqyrimi në paret
35 XMOL(I) = X pozicioni i ri
40 YMOL(I) = Y
T = T + D koha e re
D1 = D heqja gjysëm-hapit fillestar
IF (T-T1) 7,50,50 nëse duhet të printojë
50 EN = 0. DO 45 I = 1,N VX = VXMOL(I) VY = VYMOL(I) 45 EN = EN + VX * VX + VY * VY
gjetja e energjisë totale
PRES=P1/(4.*AL*T1) shtypja(presioni)
PRINT 101,T, PRES, EN
DO 80 I = 1,N
80 PRINT 100,XMOL(I), YMOL(I), VXMOL(I), VYMOL(I) printimi
STOP
100 FORMAT(1X,4E12.4)
101 FORMAT(1X,2HT=,F10.3,5H P=,E12.4,5H E=,E12.4)
END
142
Në këtë program janë përdorur dy ligje bashkëveprimi midis molekulave . Ligji i parë është ai
i sferave të ngurta, pra molekulat e gazit konsiderohen si sfera me një farë rezeje R që nuk
bashkëveprojnë veçse kur goditen në mënyrë elastike. Kjo situatë e përafron fare mirë gazin
ideal shumë i rralluar (nR3 « L
3 , ku ena është konsideruar një kub me brinjë L dhe në të ka n
molekula). Një ligj i dytë force është bshkëveprimi Lenard-Xhons (1/r6-1/r
12 ) , që është një
model për gazet realë.
Temperatura e gazit përcaktohet nga energjia kinetike fillestare mesatare e molekulave
(duke supozuar që në situatën fillestare ka bashkëveprim të papërfillëshëm midis molekulave):
___
½ mv2 = 3/2 kT __
ku m është masa e çdo molekule , v2 është mesatarja kuadratike e shpejtësisë dhe k është
konstantja e Boltzmanit, 1.38x10-23
J/grad. Meqë të gjitha bashkëveprimet nuk e ndryshojnë
energjinë (goditjet me paretin janë elastike), temperatura (në shumicën e rasteve) mbetet
konsatant ndërsa shpejtësitë tentojnë të shpërndahen sipas shpërndarjes së Boltzmanit.
Relacioni PVT mund të gjendet duke shqyrtuar të njëjtën numur grimcash ne disa enë me
përmasa të ndryshme, në çdo rast për disa temperatura. shtypja llogaritet nga mesatarizimi i
impulseve që shkëmbejnë grimcat me paretet e enës gjatë goditjeve.
Vështirësia është se këto llogaritje kërkojnë kohë të gjatë llogaritjeje në kompjuter.
Zgjidhni një metodë që e minimizon këtë kohë sa më shumë të jetë e mundur. Zakonisht ,
është e dobishme të llogariten forcat për distanca të vogla midis molekulave dhe vetëm për
largësi të tilla të përdoret algoritmi i rendit të katërt Runge-Kuta ose ndonjë algoritëm tjetër.
Në përshtatje të kompjuterit që keni në përdorim mund të lindë nevoja e ndryshimeve
përkatëse . Në variantin BASIC mund të vizualizoni grimcat që lëvizin në çdo PC që ka softin
QBASIC.
2.3 Mesataret statistikore
Të gjithë sistemet në ekuilibër termik kanë një shpërndarje të përcaktuar të shpejtësive të
grimcave. Një funksion i shpërndarjes është funksioni i Boltzmanit :
f(r,v) drdv = A” exp
E
kT
( )r v, dx dy dz dvx dvy dvz
ku A” është një konstante normalizimi (një numër që bën që integrali f drdv të jetë = 1) dhe
E(r,v) është energjia totale e grimcës në pzicionin r dhe shpejtësinë v . Funksioni i
shpërndarjes f varet si nga pozicioni (r) edhe nga shpejtësia (v).
Kur nuk ka bashkëveprim midis grimcave , shpërndarja thjeshtohet në shpërndarjen e
Maksuellit. Energjia totale është energjia kinetike ½m(vx2 + vy
2 + vz
2) :
f(vx , vy , vz ) = A’ exp
m v v v
kT
x y z( )2 2 2
2
Duke integruar këtë funksion shpërndarjeje sipas të gjitha drejtimeve të shpejtësisë merret
shpërndarja e Maksuellit për shpejtësitë:
f(v) = A v2 exp
mv
kT
2
2 , ku A = 4
m
kT2
3 2
/
Ky funksion shpërndarje f varet vetëm nga moduli i shpejtësisë v=| v |.
143
Duke përdorur këtë funksion shpërndarjeje mund të gjenden shpejtësia mesatare, shpejtësia
më e mundëshme (më probabël), shpejtësia rms (rrënja katrore e mesatares kuadratike) etj.
Ndërkohë mund të aplikojmë edhe shpërndarjen ku futet edhe një energji potenciale e grimcës
p.sh në fushën gravitacionale , m g h (i ashtuquajturi ligji i atmosferës).. Me anë të komjuterit
mund të gjenden edhe madhësi të tjera interesante si p.sh. numuri i grimcave që kanë shpejtësi
më të vogël se një v0 duke integruar numerikisht (rezultati analitik përmban një funksion që
quhet funksioni i gabimit erf x ,që mund të llogaritet vetëm numerikisht). Mund të llogariten
mesataret termike të çdo madhësie , pjesa e molekulave që kanë energji kinetike më të madhe
se një farë vlere KE0, propabilitetin e ndodhjes së grimcave në një interval të dhënë
pozicionesh ose shpejtësish etj. . Të gjitha këto madhësi statistike mund të llogariten në
kompjuter me anë të integrimit numerik. Prgrami DSTFN printon vlerat e funksionit të
Maksuellit të shpërndarjes së shpejtësive. Programi DSTRFN llogarit propabilitetin që çdo
molekulë të ketë shpejtësi më të vogël se v0 dhe programi EMOLS llogarit pjesën e
molekulave që kanë energji më të madhe se një energji e dhënë . Të gjitha programet përdorin
shpërndarjen e Maksuellit të shpejtësive për një gaz pa bashkëveprime (dy programet e fundit
përdorin regullin e Simpsonit për integrimin).
Programi DSTFN.BAS
10 REM programi dstfn.bas llogarit vlerat e funksionit te shperndarjes
20 REM te Maksuellit per nje gaz ideal.
100 DEF fnm (v) = a * v * v * EXP(-m * v * v / (2 * k * t))
110 m = 1.67E-27
120 k = 1.38E-23
130 t = 300
140 a = 4 * 3.141519 * (m / (2 * 3.141519 * k * t)) ^ 1.5
150 v0 = SQR(2 * k * t / m)
160 PRINT "v (m/s)", "energjia", "propabiliteti"
170 FOR v = 0 TO 3 * v0 STEP v0 / 10
180 PRINT v, .5 * m * v * v, fnm(v)
190 NEXT v
200 END
Programi DSTNFN.FOR
FMAX(V)=A*V*V*EXP(-AM*V*V/(2.*AK*T)) shpërndarja e Maksuellit
AM = 1.67E-27 masa e hidrogjenit
AK = 1.38E-23 konstantja e Boltzmanit
T = 300. Temperatura
AK = 4.* 3.141519 * SQRT((AM / (2 * 3.141519 * AK * T))**3) koeficienti
V0 = SQRT(2. *AK *T /AM)
DO 10 i=1,31 hapi nga një shpejtësi në tjetrën
V = (I-1)* V0/ 10.
E=.5*AM*V*V
F=FMAX(V)
10 PRINT 100,V,E,F
STOP
100 FORMAT(1X,3E13.5)
END
Programi DSTRFN.BAS
10 REM programi dstrfn.bas llogarit propabilitetin qe molekula te kete
144
20 REM shpejtesi v<v0 ne shperndarjen e Maksuellit per nje gaz ideal.
100 DEF fnm (v) = a * v * v * EXP(-m * v * v / (2 * k * t))
110 m = 1.67E-27
120 k = 1.38E-23
130 t = 300
140 a = 4 * 3.141519 * (m / (2 * 3.141519 * k * t)) ^ 1.5
150 v0 = SQR(2 * k * t / m)
160 d = SQR(2 * k * t / m) / 128
170 FOR v = 0 TO v0 - d STEP d
180 s1 = s1 + (fnm(v) + fnm(v + d)) * d / 2
190 s2 = s2 + fnm(v + d / 2) * d
200 NEXT v
210 PRINT s1 / 3 + 2 * s2 / 3
220 END
Programi DSTRFNB.FOR
FMAX(V) = A * V * V * EXP(-M * V * V / (2. * AK * T)) shpërndarja e Boltzmanit
AM = 1.67E-27 masa e hidrogjenit
AK = 1.38E-23 konstantja e Boltzmanit
T = 300 temperatura
A = 4. * 3.141519 * SQRT((AM / (2 * 3.141519 *AK * T))**3) konstantja
V0 = SQRT(2. * AK * T / AM) kufiri i sipërm i integrimit
D = SQRT(2. * AK * T / AM) / 128. hapi i integrimit
S1=0.
S2=0.
N=V0/D numri i intervaleve në shumën integrale
DO 10 I=1,N
V = (I-1)*D shpejtësia
S1 = S1 + (FMAX(V) + FNAX(V + D)) * D / 2. rregulli i trapezit në integrim
10 S2 = S2 + FMAX(V + D / 2.) * D shuma me pikë mesi
S=S1/3.+2.*S2/3. rregulli i Simpsonit
PRINT 100,T,V0,S
STOP
100 FORMAT(1X,3E13.5)
END
Programi EMOLS.BAS
10 REM programi emols.bas llogarit fraksionin e molekulave qe kane
20 REM energji E>E0 ne shperndarjen e Maksuellit per nje gaz ideal.
100 DEF fnm (v) = a * v * v * EXP(-m * v * v / (2 * k * t))
110 m = 1.67E-27
120 k = 1.38E-23
130 t = 300
140 e0 = k * t
150 v0 = SQR(2 * e0 / m)
160 v9 = 5 * v0
170 a = 4 * 3.14159 * (m / (2 * 3.14159 * k * t)) ^ 1.5
180 d = SQR(2 * k * t / m) / 100
190 s1 = 0
200 s2 = 0
210 FOR v = v0 TO v9 STEP d
145
220 s1 = s1 + (fnm(v) + fnm(v + d)) * d / 2
230 s2 = s2 + fnm(v + d / 2) * d
240 NEXT v
250 PRINT s1 / 3 + 2 * s2 / 3
260 END
Programi EMOLS.FOR llogarit fraksionin e molekulave me
energji nën një vlerë të dhënë
DEF FMAX (V) = A * V * V * EXP(-AM * V * V / (2. * AK * T))
AM = 1.67E-27 masa e atomit të hidrogjenit
AK = 1.38E-23 konstantja e Boltzmanit
T = 300. temperatura
E0 = AK * T energjia e dhënë
V0 = SQRT(2. * E0 /AM) shpejtësia për energjinë e dhënë
VEND = 5. * V0 shpejtësia në bishtin e shpërndarjes
A = 4. * 3.14159 * SQRT((AM / (2. * 3.14159 * AK * T)) **3) koeficienti
D = SQRT(2. * AK * T /AM) / 100. hapi i integrimit
N=(VEND-V0)/D numri i intervaleve të integrimit
S1 = 0.
S2 = 0.
DO 10 I=1,N+1 cikli i integrimit
V=V0+(I-1)*D
S1 = S1 + (FMAX(V) + FMAX(V + D)) * D / 2. shuma trapezoidale
10 S2 = S2 + FMAX(V + D / 2.) * D shuma me pikë mesi
S=S1 / 3. + 2. * S2 / 3. rregulli i Simpsonit
PRINT 100,S
STOP
100 FORMAT(1X,E12.4)
END
Figura 2.5 tregon shpërndarjen e Maksuellit të shpejtësive për një gaz me atome
hidrogjeni në temperaturat T=3000
K, 5000 K, 1000
0 K dhe 1500
0 K, ndërsa figura 2.6 tregon
shpërndarjen në 10000 K me më shumë detaje , me mp (shpejtësia më probabël), av (shpejtësia
mesatare ) dhe rms që është v 2. Energjia kinetike e një atomi me shpejtësi rms është 3/2 kT.
146
Figura 2.5 Shpërndarjet e Maksuellit të
shpejtësive, për temperaturat 3000 K,
5000 K, 1000
0 K. Janë treguar për
intervalin e shpejtësive 0 deri 1500
m/s.
Figura 2.6 Shpërndarja e Maksuellit e
shpejtësive për temperaturën 1000K në
të tregohen shpejtësia më probabël,
shpejtësia mesatare dhe shpejtësia rms .
2.4 Gazi me goditje të rastit
Duke përdorur kompjuterin mund të kuptojmë diçka edhe për zhvillimin e funksionit të
shpërndarjes duke shqyrtuar në kohë të ndryshme gazin e përbërë nga grimca që godinen
elastikisht me njëra tjetrën në mënyrë të rastit. Programi GAS3D kryen llogaritjet për këtë.
Grimcat mund ta nisin lëvizjen nga çdo gjendje që të doni. Një menyrë e përshtatëshme
është të nisen grimcat me energji të rastit brenda një intervali rreth një vlere të dhënë
mesatare. Pasi zgjidhet se sa goditje duam që të pësojë gazi dhe sa shpesh duam ta printojmë
rezultatin, fillojmë procesin e goditjeve. Për çdo goditje duhen zgjedhur në mënyrë të rastit dy
molekula që duhet të goditen . Pastaj duhet zgjedhur parametrat të cilat përcaktojnë që goditja
është elastike. Në rastin tre-dimensional mund të zgjidhen këndet (kosinuset e këndeve) me të
147
cilat grimcat lëvizin pas goditjes; në bazë të ligjit të kosinuseve drejtues të një drejtimi dhe në
bazë të ligjit të ruajtjes së energjisë, përcaktohen energjitë e të dy grimcave pas goditjes. (Në
rastin një- dimensional mund të zgjidhet energjia e njerës grimcë pas goditjes dhe nga ligji i
ruajtjes gjendet energjia e grimcës tjetër. Në një situatë të tillë nuk ruhet impulsi). duke
përdorur një gjenerator numrash të rastit që ka kompjuteri, u jepen vlera të reja (të rastit)
parametrave të rastit.
Këto goditje të rastit kryhen një numer herësh që zgjidhet. Është e përshtatëshme që ta
ruajmë funksionin e shpërndarjes (numri i grimcave që kanë energji të ndryshme) gjatë
vazhdimit të egzekutimit të programit. Kjo mund të bëhet duke përcaktuar një vektor densiteti
elementët e të cilit paraqesin numrat e grimcave që kanë energji midis 0 dhe E, E dhe 2 E,
2 E dhe 3 E etj. Për të egzaminuar funksionin e shpërndarjes çdo herë printohet vektori i
shpërndarjes (ose vizatohet në grafik numri i grimcave në funksion të energjisë).
Ndërkohë që numri i goditjeve rritet, shpërndarja i afrohet asaj të Maksuell-Boltzman. Një
zgjerim tjetër i këtyre ideve do të ishte shqyrtimi i shpërndarjes së grimcave pas një numer
goditjesh në hapësirën fazore. Mund të vihet re se goditjet e rastit e çojnë gazin gjithnjë e më
afër funksionit të shpërndarjes të mirënjohur.
Programi GAS3D.BAS
10 REM programi gas3d llogarit funksionin e shperndarjes sipas energjive
20 REM ne nje gaz ideal me molekula qe goditen ne menyre te rastit.
100 DIM e(2001), d(101), x(101), y(101)
110 n = 2000
120 e1 = 12.5 / 100
130 n0 = 1000
140 FOR i = 1 TO n
150 e(i) = e1* 100 * RND
160 n1 = 1 + INT(e(i) / e1)
170 d(n1) = d(n1) + 1
180 NEXT i
190 REM PRINT "energjia", "nr. i molek afer kesaj energjie"
200 FOR k = 1 TO 5
210 FOR i = 1 TO n0
220 j0 = 1 + n * RND
230 j1 = 1 + n * RND
240 e0 = e(j0) + e(j1)
250 n1 = 1 + INT(e(j0) / e1)
260 d(n1) = d(n1) - 1
270 n1 = 1 + INT(e(j1) / e1)
280 d(n1) = d(n1) - 1
290 c0 = RND
300 c1 = RND
310 REM e(j0) = e0 / 2 + SQR(e0 ^ 2 - 4 * e(j0) * e(j1) * c0 * c0) * c1 / 2
311 e(j0) = e0 / 2 + (e(j0) - e(j1)) * c0 / 2
320 e(j1) = e0 - e(j0)
330 n1 = 1 + INT(e(j0) / e1)
340 d(n1) = d(n1) + 1
350 n1 = 1 + INT(e(j1) / e1)
360 d(n1) = d(n1) + 1
370 NEXT i
148
375 SCREEN 1
380 FOR i = 1 TO 101
390 REM PRINT (i - .5) * e1, d(i)
391 y(i) = INT(d(i) / 2)
392 x(i) = INT(40 * (i - .5) * e1)
393 REM PRESET (x%, y%), k
394 REM PSET (x%, y%), k
395 LINE (x(i - 1), y(i - 1))-(x(i), y(i)), k
400 NEXT i
401 LINE (0, 0)-(250, 0)
402 LINE (0, 0)-(0, 200)
410 NEXT k
413 SCREEN 0
420 END
Programi GAS3D.FOR
DIMENSION EN(2000), NDENS(26)
NPART = 2000 numri i grimcave
DELTE=12.5/25. E për çdo densitet
NCOLL=1000 numri i goditjeve midis printimeve të rezultatit
DO 10 I=1,NPART
EN(I) = DELTE*25. * RANF(0.) energjia fillestare
N = 1 + INT(EN(I) / DELTE)
10 NDENS(N) = NDENS(N) + 1 densiteti i shpërndarjes
DO 40 K = 1,5 numri i printimit të rezultateve
DO 50 I = 1,NCOLL hapi nga njera goditje në tjetrën
J0 = 1 + NPART * RANF(0.) zgjedhja e grimcave që goditen rastësisht
J1 = 1 + NPART * RANF(0.)
ETOT = EN(J0) + EN(J1) energjia totale e çiftit që goditet
N = 1 + INT(EN(J0) /DELTE)
NDENS(N) = NDENS(N) - 1 heq grimcën e parë nga densiteti
N = 1 + INT(EN(J1) /DELTE
NDENS(N) = NDENS(N) - 1) heq grimcën e dytë nga densiteti
C0 = RANF(0.) zgjedhja e parametrave të goditjes
C1 = RANF(0.) në mënyrë të rastit
EN(J0)=ETOT/2.+SQRT(ETOT**2 - 4.*EN(J0)* EN(J1)*C0*C0)*C1/2. ener.e re
EN(J1)= ETOT-EN(J0) energjia e re e grimcës së dytë
N = 1 + INT(EN(J0) / DELTE)
NDENS(N) = NDENS(N) + 1 shton grimcën e parë në densitet
N = 1 + INT(EN(J1) / DELTE)
50 NDENS(N) = NDENS(N) + 1 shton grimcën e dytë në densitet
DO 40 I =1,26
AI=I
E=(AI-.5)*DELTE
40 PRINT 100,E,NDENS(I) printimi i densitetit të grimcave
100 FORMAT(1X,F10.2,I8)
STOP
END
2.5 Metoda Monte Karlo e përdorur për modelin e Izingut
149
Proceset statistikorë mund të simulohen duke përdorur një gjenerator numrash të rastit.
Modeli i Izingut që është një rjetë dy-dimensionale në kulmet e së cilës ndodhen spine që janë
të orientuara poshtë ose lart , shërben si një ilustrim. Supozojmë se rjeta e spineve ndodhet në
një fushë manjetike uniforme. Seicili spin ka dy energji të mundëshme për dy orientime të
mundëshme të drejtimit të spinit në lidhje me fushën magnetike. Nëse, vec kësaj, çdo spin
ndjen edhe fushën magnetike të spineve fqinjë, atëhere rezulton një numër i madh i energjive
të mundëshme në varësi të asaj se si janë orientuar spinet fqinje (pra edhe fusha magnetike e
krijuar nga këto spine).
Nëse çiftimi midis spineve fqinje është mjaft i fortë, atëhere të gjitha spinet do të
orientoheshin në një drejtim spontanisht në temperatura mjaft të ulta. Nëse çiftimi midis
spineve është i tillë që i bën fqinjët të tentojnë të parelelizojnë spinet me njeri tjetrin, atëhere
rezulton një ferromagnet; nëse fqinjët tentojnë të të jenë antiparalel atëhere rezulton një
antiferromagnet. Në temperatura mjaft të larta ky çiftim midis spineve prishet nga çorientimi
termik, pra spinet nuk mund të paralelizohen edhe sikur të tentojnë si rezultat i
bashkëveprimit me fqinjët.
Metoda Monte-Karlo për këtë problem procedon me mënyrën e mëposhtëme. Kalohet
nëpër gjithë spinet e rjetës . Për çdo spin llogaritet energjia e spinit në drejtimin që është dhe
në drejtimin e kundërt. Nëse energjia është më e ulët në rastin e dytë atëhere përmbyset spini
(kthehet në drejtimin e kundërt);nëse energjia nuk është më e ulët, atëhere shqyrtojmë faktorin
e Boltzmanit (exp(- E/kT)), ku E është diferenca e energjive midis dy orientimeve të
ndryshme të spinit. Nëse energjia nuk është më e ulët kur përmbyset spini , atëhere spini
përmbyset në mënyrë statistikore me një probabilitet për njësi të kohës të dhënë nga faktori i
Boltzmanit. Teknika Monte-Karlo thërret një numër të rastit (midis 0 dhe 1) dhe krahason
numrin e rastit me faktorin e Boltzmanit. Nëse numri i rastit është më i vogël ose baraz me
faktorin e Boltzmanit atëhere kompjuteri e përmbys spinin; nëse numri i rastit është më i
madh se faktori i Boltzmanit; spini mbetet i pandryshuar. Duke qënë se numri i rastit ndryshon
në çdo hap,atëhere sekuenca e hapave simulon procesin statistikor. Programi që e realizon
këtë është programi ISING.
Me këtë program mund të studiohet rjeta e spineve në detaje. Jo vetëm mund të llogaritet
spini total mesatar (magnetizimi) i rjetës në një temperaturë të dhënë (i mesatarizuar mbi
shumë gjendje të mundëshme, dmth pas shumë iteracionesh nëpër rjetë) por mund të
llogariten edhe depërtueshmëria magnetike (susceptibiliteti ) dhe nxehtësia specifike e
sistemit (të cilat janë të lidhura me me fluktuacionet e sistemit rreth energjisë mesatare dhe
magnetizimit). Mund të printohen rjeta e spineve pas çdo iteracioni dhe të shqyrtohen një
numër statistikisht ekuivalentë gjendjesh të mundëshme.
Nëse çiftimi i spineve fqinje është i fortë dhe temperatura jo mjaft e ulët sa të lejojë
gjendjen komplet të renditur , atëhere tendenca e orientimit të spineve nuk e mposht dot
çorientimin termik dhe fluktuacionet e mesme e të mëdha bëhen të dukëshme. Rajone të
rjetës bëhen me spine të renditur megjithëse gjithë rjeta nuk e është e renditur. Temperatura
kalimit nga kjo gjendje në gjendje komplet të çorientuar quhet temperatura Kyri, e njejta
temperaturë për antiferromagnetikët quhet temperatura Neel. Përcaktimi i këtyre
temperaturave ka rëndësi të madhe praktike (në teknologji).
Programi ISING.BAS
10 REM PROGRAMI ISING LLOGARIT NXEHTESINE SPECIFIKE DHE
SUSCEPTIBILITETIN
20 REM E NJE MODELI ISING TE NJE RJETE SPINESH.
100 DIM S(11, 11), T(11, 11)
150
110 PRINT "NUMRI I SPINEVE TE ORIENTUAR NE NJE ANE?";
120 INPUT N0
130 PRINT "KONSTANTJA E CIFTIMIT (NE MAGNETON TE BOHR-IT)?";
140 INPUT J0
150 PRINT "NUMURI I RASTEVE PER MESATARIZIM TE ANSAMBLIT?";
160 INPUT N9
170 PRINT
180 PRINT "T(KELVIN),B(TESLA)?";
190 INPUT T, B
200 FOR I = 1 TO N0 + 1
210 FOR J = 0 TO N0 + 1
220 S(I, J) = 1
230 T(I, J) = 1
240 NEXT J
250 NEXT I
260 N8 = 1
270 FOR K = 1 TO N9
280 FOR I = 1 TO N0
290 FOR J = 1 TO N0
300 S0 = T(I - 1, J) + T(I + 1, J) + T(I, J - 1) + T(I, J + 1)
310 E1 = -9.47E-24 * (B + J0 * S0) * S(I, J)
320 E3 = -E1
330 IF (E3 - E1) < 0 THEN 360
340 E9 = EXP(-(E3 - E1) / (1.3806E-23 * T))
350 IF E9 < RND THEN 370
360 S(I, J) = -S(I, J)
370 NEXT J
380 NEXT I
390 FOR I = 1 TO N0
400 T(N0 + 1, I) = S(1, I)
410 S(N0 + 1, I) = S(1, I)
420 T(0, I) = S(N0, I)
430 S(0, I) = S(N0, I)
440 T(I, N0 + 1) = S(I, 1)
450 S(I, N0 + 1) = S(I, 1)
460 T(I, 0) = S(I, N0)
470 S(I, 0) = S(I, N0)
480 NEXT I
490 IF N8 = 1 THEN 630
500 E1 = 0
510 M1 = 0
520 FOR I = 1 TO N0
530 FOR J = 1 TO N0
540 S0 = S(I + 1, J) + S(I - 1, J) + S(I, J + 1) + S(I, J - 1)
550 E1 = E1 - .67174 * (B + J0 * S0) * S(I, J) / T
560 M1 = M1 + S(I, J)
570 NEXT J
580 NEXT I
590 E0 = E0 + E1
151
600 E2 = E2 + E1 * E1
610 M0 = M0 + M1
620 M2 = M2 + M1 * M1
630 NEXT K
640 IF N8 = 2 THEN 710
650 E0 = 0
660 E2 = 0
670 M0 = 0
680 M2 = 0
690 N8 = 2
700 GOTO 270
710 E0 = E0 / N9
720 E2 = E2 / N9
730 M0 = M0 / N9
740 M2 = M2 / N9
750 PRINT "ENERGJ. MESATARE="; E0 / (N0 * N0); "KT="; E0 * 1.3806E-23 * T
760 PRINT "NXEHT. SPECIFIKE="; (E2 - E0 * E0) / (N0 * N0); "NE NJESI
KT/NR.GRIMC."
770 PRINT "MAGNETIZ. MESATAR="; M0 / (N0 * N0)
780 PRINT "SUSCEPTIBILITETI="; .67174 * (M2 - M0 * M0) / (N0 * N0 * T);
"MAGN./TESLA-NR.GRIM."
790 GOTO 170
800 END
Programi ISING.FOR modeli 2-dimesional i Isingut për spinet që baskëveprojnë
REAL J0,MAG0,MAG1,MAG2,MAGAV
DIMENSION SNEW(12, 12), SOLD(12, 12)
DATA NSPIN,J0,NAV/10,.1,20/ gjeometria e spineve
ANSPIN=NSPIN
ANV=NAV
10 READ(5,100)T,B
IF (T-999.) 5,90,90
5 DO 20 I = 1,NSPIN+2 inicializimi i spineve
DO 20 J = 1,NSPIN+2
SNEW(I,J)=1.
20 SOLD(I,J)=1.
N8=1 kalimi për herën e parë nëpër rjetë
22 DO 70 K=1,NAV hapi nga një iteracion në tjetrin
DO 30 I=2,NSPIN+1 hapi nga një spin në tjetrin
DO 30 J=2,NSPIN+1
S0 = SOLD(I - 1, J) + SOLD(I + 1, J) + SOLD(I, J - 1) + SOLD(I, J + 1)
EN1 = -9.47E-24 * (B + J0 * S0) * SNEW(I, J) energjia e spineve lart
E3 = -EN1 energjia e spineve poshtë
IF (E3 - EN1) 28,25,25 nëse rritet energjia,përmbys spinin
25 E9 = EXP(-(E3 - EN1) / (1.3806E-23 * T)) faktori exp(- E/kT)
IF (E9 - RANF(0)) 30,28,28 përmbys spinin statikisht
28 SNEW(I, J) = -SNEW(I, J)
30 CONTINUE
DO 40 I=2,NSPIN+1
152
SOLD(NSPIN + 2, I) = SNEW(1, I) kushtet kufitare periodike
SNEW(NSPIN + 2, I) = SNEW(1, I)
SOLD(1, I) = SNEW(NSPIN, I)
SNEW(1, I) = SNEW(NSPIN, I)
SOLD(I, NSPIN + 2) = SNEW(I, 2)
SNEW(I, NSPIN + 2) = SNEW(I, 2)
SOLD(I, 1) = SNEW(I, NSPIN+1)
40 SNEW(I, 1) = S(I, NSPIN+1)
IF (N8 - 1) 45,70,45
45 EN1 = 0.
MAG1 = 0.
DO 50 I = 2,NSPIN+1 shumimi i spineve
DO 50 J = 2 ,NSPIN+1
S0 = SNEW(I + 1, J) + SNEW(I - 1, J) + SNEW(I, J + 1) + SNEW(I, J - 1)
EN1 = EN1 - .67174 * (B + J0 * S0) * SNEW(I, J) / T energjia e spineve
50 MAG1 = MAG1 + SNEW(I, J) magnetizimi i spineve
EN0 = EN0 + EN1 shumimi për energjinë mesatare
EN2 = EN2 + EN1 * EN1 shumimi për nxehtësinë specifike
MAG0 = MAG0 + MAG1 shumimi për magnetizimin mesatar
MAG2 = MAG2 + MAG1 * MAG1 shumimi për susceptibilitetin
70 CONTINUE
IF (N8 - 2) 80,85,80
80 EN0 = 0.
EN2 = 0.
MAG0 = 0.
MAG2 = 0.
N8 = 2 kalimi për herën e dytë nëpër rjetë
GOTO 22
85 EN0 = EN0 / ANAV madhësitë mesatare
EN2 = EN2 / ANAV
MAG0 = MAG0 / ANAV
MAG2 = MAG2 / ANAV
EAV=EN0/ANSPIN**2 energji/spin
SPHT=(EN2-EN0**2)/NSPIN**2 nxehtësia specifike
MAGAV=MAG0/NSPIN**2 magnetizimi/spin
SUSC=.67174*(MAG2-MAG0**2)/(T*NSPIN**2 susceptibiliteti
PRINT 101,EAV,SPHT,MAGAV,SUSC
GOTO 10
90 STOP
100 FORMAT(2F10.5)
101 FORMAT(1X,4E12.4)
END
Problema
1. a. Shkruani një program që llogarit shpërndarjen e Maksuellit të shpejtësive.
b. Vizatoni shpërndarjen e Maksuellit për 1022
grimca në 40 K, 77
0 K, 20
0 C
10000 C dhe 10000
0 C.
c. Për seicilën temperaturë të pikës b. , përcaktoni sa grimca kanë energji të
mjaftueshme për të jonizuar atomin e hidrogjenit.
153
2. a. Shkruani një program që llogarit shpërndarjen e Maksuellit të shpejtësive.
b. Modifikojeni programin në mënyrë që të trajtojë edhe shpërndarjen e
Boltzmanit për energjitë duke përfshirë energjinë kinetike dhe gravitacionale
(në fushën e Tokës vetëm).
c. Duke përdorur formën e përgjithëshme të energjisë gravitacionale, të tregohet
që rezulton ligji i atmosferës (që presupozon energjinë potenciale mgh ) kur
grimcat janë afër sipërfaqes së Tokës.
d. Studioni shpërndarjen e grimcave shumë larg Tokës.
154
KAPITULLI I III
ELEKTRICITETI
3.1 Hyrje
Fushat elektrike zakonisht vizualizohen me anë të vijave të fushës ose sipërfaqeve
ekuipotenciale. Vijat e fushës elektrike kanë këto veti : 1) Në çdo pikë, tangentja në vijën e
fushës është paralel me fushën elektrike në këtë pikë. 2) Në çdo pikë, numri i vijave të fushës
(që çpojnë njësinë e sipërfaqes pingul me vijat) është proporcional me intensitetin e fushës në
këtë pikë, kjo dmth që aty ku intensiteti i fushës është më i madh aty vijat e fushës janë më të
dendura.Kjo tablo vizualizimi i fushës mund të përdoret edhe për fushën magnetike.
Sipërfaqet ekuipotenciale janë ato sipërfaqe në të cilat mund të lëvizë një ngarkesë
pikësore provë pa kryer punë, pra janë sipërfaqet pingul me vijat e fushës (F·dl =0). Kështu
mund të vizatohet një kontur ekuipotencial duke lëvizur pingul me vijat e fushës dhe kjo është
një mënyrë për të vizatuar konturet ekuipotenciale.
3.2 Formulat kryesore
1. Forca e bashkëveprimit midis dy ngarkesave pikësore q1 dhe q2 është:
F =1
4 0
1 2
3
q q
r
r ,
ku r është vektori që bashkon dy ngarkesat.
2. Forca që vepron mbi një ngarkesë pikësore q nga ana e ngarkesave q1 , q2 ...qN është:
Ftotale = Fi
i
N
1
=q q
r
i
4 0
3 r
3. Intensiteti i fushës elektrike , në çdo pikë jepet:
E = lim F
q0
, ku F është forca totale që vepron mbi ngarkesën
q00
q0 në pikën e dhënë nga ana e gjithë ngarkesave të tjera.
4. Vijat e fushës elektrike fillojnë në ngarkesa pozitive dhe mbarojnë në ngarkesa negative ose
në infinit.
5. Fluksi i vijave të fushës elektrike në çdo sipërfaqe S është : E SdS
.
6. Diferenca e potencialeve midis dy pikave A dhe B është VAB =WAB /q0 , ku WAB është
puna e kryer nga forca elektrike kur ngarkesa q0 zhvendoset nga A në B.
W dAB
A
B
F l
7. Potenciali i fushës që krijon një ngarkesë pikësore q në një pikë në largësi r prej saj është
Vq
r
1
4 0 , kur potenciali në infinit merret zero.
155
8. Në të gjitha pikat e një sipërfaqeje ekuipotenciale, potenciali është i njëjtë.
9. Vijat e fushës elektrike në çdo pikë janë pingul me sipërfaqet ekuipotenciale.
3.3 Llogaritjet e vijave të fushës
Vijat e fushës mund të llogariten me anën e një procedure hap-pas-hapi. Në çdo hap përdoret
vetia e vijave që tangentja në to është paralel me drejtimin e fushës. Le të ndalemi në rastin
dy- dimensional (figura 3.1). Le ta zëmë se fusha është krijuar nga disa ngarkesa pikësore që
ndodhen në një plan dhe shqyrtojmë fushën në një pikë (x , y ) të këtij plani. Intensiteti i
fushës në këtë pikë eshtë gjetur nga shumimi i termave ( / )( )q r4 0
3 r / për të gjitha
ngarkesat. Le të përshkojmë një hap të vogël s përgjatë vijës së fushës nga pika (x, y) në
pikën (x+x , y+y ) . Për hapa të vegjël s , trekëndëshi i formuar nga x ,y dhe s është i
ngjashëm me trekëndëshin e formuar nga Ex , Ey dhe E Ex y
2 2 .
Figura 3.1 Trekëndëshat (x ,y , s)
dhe (Ex , Ey , E ) janë të ngjashëm në
çdo pikë të vijës së fushës.
Kështu x dhe y jepen nga
x sE
E E
x
x y
2 2
; y sE
E E
y
x y
2 2
. Duke nisur nga pika e re (x+x , y+y )
e duke nisur përsëri procesin ne mund të ecim hap pas papi nëpër vijën e fushës.
E njëjta strategji mund të përdoret edhe për trasimin e kontureve ekuipotenciale. Me që
këto konture janë pingule me vijat e fushës , mjafton që në çdo hap të lëvizet pingul me E .
Nëse çvendosemi me s përgjatë një konturi ekuipotencial atëhere kemi :
x sE
E E
y
x y
2 2
; y sE
E E
x
x y
2 2
. Të njëjtat rezultate do merreshin sikur të
rrotullonim sistemin x , y të kordinatave me këndin 900 në lidhje me orientimin e përdorur
për vijat e fushës. Duke nisur nga pika e re (x +x ,y+y ) në konturin ekuipotencial mund ta
përsërisim procesin . Programi EV kryen llogaritjet e vijave të fushës dhe konturet
ekuipotenciale sipas këtij algoritmi.Varianti BASIC i këtij programi përmban edhe komandat
grafike për vizualizimin e vijave të fushës dhe kontureve ekuipotenciale.
156
Programi EV.BAS
10 REM PROGRAMI EV.BAS LLOGARIT VIJAT E FUSHES ELEKTRIKE DHE
KONTURET EKUIPOTENCIALE.
100 DIM Q(10), X(10), Y(10)
110 PRINT "NUMRI I NGARKESAVE";
120 INPUT N0
130 FOR I = 1 TO N0
140 PRINT "Q,X,Y PER NGARKESEN E"; I
150 INPUT Q(I), X(I), Y(I)
160 NEXT I
170 PRINT
180 PRINT "VIJA FUSHE (+1) OSE EKUIPOTENCIALE(-1)";
190 INPUT E
200 PRINT "PIKA E NISJES (X,Y)"
210 INPUT X0, Y0
220 REM PRINT "X", "Y"
230 X1 = X0
240 Y1 = Y0
250 D = 0
260 F1 = 0
270 F2 = 0
280 F0 = .1
290 F3 = 0
300 F4 = 0
310 FOR I = 1 TO N0
320 X9 = X1 + F1 / 2 - X(I)
330 Y9 = Y1 + F2 / 2 - Y(I)
340 R9 = SQR(X9 ^ 2 + Y9 ^ 2)
350 R9 = R9 ^ 3
360 F3 = F3 + Q(I) * X9 / R9
370 F4 = F4 + Q(I) * Y9 / R9
380 NEXT I
390 F5 = SQR(F3 ^ 2 + F4 ^ 2)
400 IF E = -1 THEN 440
410 F1 = F0 * F3 / F5
420 F2 = F0 * F4 / F5
430 GOTO 460
440 F1 = F0 * F4 / F5
450 F2 = -F0 * F3 / F5
460 X1 = X1 + F1
470 Y1 = Y1 + F2
480 D = D + F0
490 IF D < .5 THEN 520
500 D = 0
510 REM PRINT X1, Y1
520 IF ABS(X1 - X0) + ABS(Y1 - Y0) < .9 * F0 THEN 170
530 FOR I = 1 TO N0
540 IF ABS(X1 - X(I)) + ABS(Y1 - Y(I)) < .9 * F0 THEN 170
550 NEXT I
157
560 IF ABS(X1) + ABS(Y1) > 300 THEN 170
561 SCREEN 1
562 FOR I = 1 TO N0
563 IF Q(I) < 0 THEN 566
564 LINE (INT(X(I)) - 1, INT(Y(I)))-(INT(X(I)) + 1, INT(Y(I)))
565 LINE (INT(X(I)), INT(Y(I)) - 1)-(INT(X(I)), INT(Y(I)) + 1)
566 LINE (INT(X(I)) - 1, INT(Y(I)))-(INT(X(I)) + 1, INT(Y(I)))
567 CIRCLE (INT(X(I)), INT(Y(I))), 2
568 NEXT I
569 PRESET (INT(X1), INT(Y1))
570 PSET (INT(X1), INT(Y1))
571 REM SCREEN 0
572 GOTO 290
580 END
Programi EV.FOR
DIMENSION Q(10), XPOS(10), YPOS(10)
READ(5,100)NUMQ
DO 10 I = 1,NUMQ,1
10 READ(5,101) Q(I), XPOS(I), YPOS(I) gjeometria e ngarkesave
20 READ(5,101) CONTUR,XSTART,YSTART pika nisëse
X = XSTART
Y = YSTART
PDIST = 0. inicializimi
DELTAX=0.
DELTAY=0.
DELTAS=0. hapi s
30 XFIELD = 0.
YFIELD =0.
DO 40 I = 1,NUMQ,1 shumimi për të gjithë burimet e fushës
XTOQ = X + DELTAX / 2. - XPOS(I)
YTOQ = Y + DELTAY / 2. - YPOS(I)
RTOQ = SQRT(XTOQ**2 + YTOQ**2) largësia r prej çdo ngarkese deri te pika
RCUBED= RTOQ**3 r3
XFIELD= XFIELD + Q(I) * XTOQ / RCUBED Ex
40 YFIELD= YFIELD + Q(I) * YTOQ / RCUBED Ey
ABSFLD=SQRT(XFIELD**2+YFIELD**) E
IF (CONTUR) 60,95,50
50 DELTAX=DELTAS*XFIELD/ABSFLD x për vijën e fushës
DELTAY=DELTAS*YFIELD/ABSFLD y për vijën e fushës
goto 70
60 DELTAX= - DELTAS*YIELD/ABSFLD x për konturin ekuipotencial
DELTAY=DELTAS*XELD/ABSFLD y për konturin ekuipotencial
70 X=X+DELTAX x i ri
Y=Y+DELTAY y i ri
PDIST=PDIST +DELTAS grupi i printimit
IF (PDIST.LT..5) GOTO 80
158
PDIST=0.
PRINT 102,X,Y
80 IF (ABS(X-XSTART)+ABS(Y-YSTART).LT..9*DELTAS) GOTO 20 kushti i
rikthimit në vijën tjetër.
DO 90 I=1,NUMQ,1
90 IF (ABS(X-XPOS(I)+ABS(Y-YPOS(I)).LT..9*DELTAS) GOTO 20 kushti i
rikthimit tek ngarkesa tjetër
GOTO 30 rikthim tek hapi tjetër
100 FORMAT(I2)
101 FORMAT(3F5.2)
102 FORMAT(1X,2E15.5)
95 STOP
END
Duke përdorur këtë program mund të vizatohen vijat e fushës dhe sipërfaqet ekuipotenciale
për një sistem N ngarkesash pikësore. Edhe shpërndarje të tjera ngarkesash (si shufra të
ngarkuara, ngarkesa sferike etj) mund të përdoren në llogaritje, pra metoda nuk vë kufizime
për formën e shpërndarjes së ngarkesës. Figura 3.2 është një shembull prove për metodën.Në
të janë treguar vijat e fushës elektrike që fillojnë çdo 450 përreth një ngarkese pikësore si dhe
disa sipërfaqe ekuipotenciale që kanë të njëjtën diferencë potenciali. Vijat e fushës janë
radiale dhe sipërfaqet ekuipotenciale janë sferike (konturet ekuipotenciale janë rrethore) .
Figura 3.3 tregon një rast pak më të komplikuar , rasti i dy ngarkesave një pozitive dhe një
negative në madhësi të barabarta (dipoli elektrik).
Figura 3.2 Vijat e fushës dhe konturet
ekuipotenciale për një ngarkesë
pikësore. Vijat janë zgjedhur çdo 450
përreth ngarkesës; ekuipotencialet janë
për V=1,2,3,4 (në njësi të normalizuara)
159
Figura 3.3 Vijat e fushës dhe konturet
ekuipotenciale për një dipol . Vijat e
fushës fillojnë në ngarkesën pozitive
dhe mbarojnë në ngarkesën negative.
3.4 Metoda e pasqyrimit
Një rezultat interesant i elektrostatikës është se, tabloja e fushës që krijon një ngarkesë
pikësore (ose disa ngarkesa pikësore) afër një pllake përcjellëse (të tokëzuar) (ose një grupi
pllakash) është i njëjtë me atë të krijuar nga ngarkesat origjinale dhe pasqyrimet e tyre nga
pllaka (ose pllakat). Nëse kemi vetëm një ngarkesë dhe një plan përcjellës atëhere ka vetëm
një ngarkesë të pasqyruar, e cila është e njëjtë në madhësi me ngarkesën origjinale por në
shenjë të kundërt dhe e vendosur prapa planit në të njëjtën largësi prej planit sa edhe ngarkesa
origjinale. Kur janë të pranishme më shumë plane atëhere ngarkesat e pasqyruara kanë
ngarkesa të tjera të pasqyruara dhe situata ndërlikohet.
Kompjuteri mund të përdoret për të plotuar vijat e fushës dhe ekuipotencialet pas
llogaritjes së fushës totale në çdo pikë. Kompjuteri mund të përdoret edhe për të llogaritur
pozicionet dhe vlerat e ngarkesave të pasqyruara. Programi PASQYRIM llogarit vijat e fushës
për një ngarkesë pikësore të vendosur në çdo vend midis dy pllakave përcjellëse paralele të
tokëzuara. Kur ngarkesa është në mesin e largësisë midis pllakave , pozicionet e ngarkesave të
pasqyruara i ngjajnë një serie binormale. Kur ngarkesa është jashtë qendrës, pozicionet
formojnë një seri të ndërlikuar. Kompjuteri gjen (dhe ruan) vlerat e pozicioneve të ngarkesave
pasqyrim në mënyrë iterative; ai llogarit pasqyrimet e pasqyrimeve me radhë. Duke patur të
ruajtura ngarkesat pasqyrim ai llogarit vijat e fushës (dhe ekuipotencialet) me metodën
iterative hap-pas-hapi duke supozuar që fusha krijohet nga ngarkesa origjinale dhe të gjitha
pasqyrimet e tyre.
Programi PASQYRIM.BAS
10 REM PROGRAMI PASQYRIM.BAS LLOGARI VIJAT E FUSHES OSE
15 REM EKUIPOTENCIALE PER
20 REM NJE NGARKESE MIDIS DY PLLAKAVE TE TOKEZUARA.
100 DIM Q(20), Y(20)
110 PRINT "LARTESIA E Q,LARGESIA MIDIS PLLAKAVE?"
120 INPUT D, L
130 N0 = 20
140 Q(1) = 1
160
150 Y(1) = D
160 Q(2) = -1 —————————————— y=L
170 Y(2) = 2 * L - D Q
180 Q(3) = -1 D {
190 Y(3) = -D _____________________________ y=0
200 FOR I = 4 TO N0
210 IF INT(I / 2) <> I / 2 THEN 250
220 Y(I) = L + (L - Y(I - 1))
230 Q(I) = -Q(I - 1)
240 GOTO 270
250 Y(I) = -Y(I - 3)
260 Q(I) = -Q(I - 3)
270 NEXT I
280 PRINT "VIJA FUSHE (+1) OSE EKUIPOTENCIALE(-1),(X,Y) I NISJES?"
290 INPUT E, X1, Y1
300 REM PRINT "X", "Y"
310 X0 = X1
320 Y0 = Y1
330 F1 = 0
340 F2 = 0
350 F0 = .1
360 F3 = 0
370 F4 = 0
380 FOR I = 1 TO N0
390 X9 = X1 + F1 / 2
400 Y9 = Y1 + F2 / 2 - Y(I)
410 R9 = SQR(X9 ^ 2 + Y9 ^ 2)
420 R9 = R9 ^ 3
430 F3 = F3 + Q(I) * X9 / R9
440 F4 = F4 + Q(I) * Y9 / R9
450 NEXT I
460 F5 = SQR(F3 ^ 2 + F4 ^ 2)
470 IF E = -1 THEN 510
480 F1 = F0 * F3 / F5
490 F2 = F0 * F4 / F5
500 GOTO 530
510 F1 = F0 * F4 / F5
520 F2 = -F0 * F3 / F5
530 X1 = X1 + F1
540 Y1 = Y1 + F2
550 REM PRINT X1, Y1
560 IF ABS(X1 - X0) + ABS(Y1 - Y0) < F0 THEN 580
570 IF Y1 * (Y1 - L) > 0 THEN 280
571 SCREEN 1
572 LINE (0, 10)-(200, 10)
573 LINE (0, INT(L) + 10)-(200, INT(L) + 10)
574 CIRCLE (100, INT(D) + 10), 2
575 PRESET (INT(X1), INT(Y1) + 10)
576 PSET (INT(X1), INT(Y1) + 10)
161
580 GOTO 360
590 END
Programi PASQYRIM.FOR
DIMENSION Q(20), YQ(20)
DATA HT,SEP,NUMQ/.5,1.,20/ lartësia e ngarkesës,largësia midis
pllakave,numri i ngarkesave të pasqyruara që merren në konsideratëimeve
Q(1) = 1. ngarkesa origjinale
YQ(1) = HT pozicioni i saj
YQ(2) = -1. pasqyrimi i parë njera pllakë
YQ(2) = 2. * SEP - HT pozicioni i saj
YQ(3) = -1. pasqyrimi i parë nga pllaka e dytë
YQ(3) = -HT pozicioni i saj
DO 10 I = 4,NUMQ cikli i pasqyrimeve të njëpasnjëshme
AI=I
IF (I / 2-AI / 2.) 5,4,5
4 YQ(I) = SEP + (SEP - YQ(I - 1))
Q(I) = -Q(I - 1)
GOTO 10
5 YQ(I) = -YQ(I - 3)
Q(I) = -Q(I - 3)
10 CONTINUE
15 READ(5,100)LINE,XST,YST vija fushe apo ekuipotenciale dhe pika fillestare
IF (LINE-999) 17,90,90
17 X = XST
Y = YST
DX = 0.
DY = 0.
DS = .1 hapi s
20 EX = 0.
EY = 0.
DO I = 1,NUMQ shumimi për gjithë ngarkesat
XTEM = X + DX / 2.
YTEM = Y + DY / 2. - YQ(I)
RTEM = (XTEM** 2 + YTEM** 2)**1.5 latgësia e seicilës ngarkesë nga
pika e fushës (me gjysëm-hap)
EX = EX + Q(I) * XTEM / RTEM Ex
40 EY = EY + Q(I) * YTEM / RTEM Ey
E = SQRT(EX** 2 + EY** 2) E
IF (LINE+1) 50,60,50
50 DX = DS*EY/ E x për ekuipotencialin
DY = -DS*EX/ E y për ekuipotencialin
GOTO 70
60 DX = DS*EX/ E x për vijën e fushës
DY = DS*EY/ E y për vijën e fushës
GOTO 70
70 X = X + DX x i ri
Y = Y + DY y i ri
162
PRINT 101,X,Y
IF (ABS(X - XST) + ABS(Y - YST) - DS/2.) 15,15,80 rikthim në nisje?
80 IF(Y * (Y - SEP)) 20,15,15 a është jashtë pllakës?
90 STOP
100 FORMAT(15,2F10.5)
101 FORMAT(1X,2F10.4)
END
3.5 Lëvizja e ngarkesave në fushë elektrike
Me eksperiencën që është fituar nga programet që zbatojnë ligjin F= ma , ju mund të gjeni
trajektoret e ngarkesave në fushë elektrike dhe të demostroni ndryshimin midis trajektoreve
dhe vijave të fushës. Në fillim plotohet tabloja e vijave të fushës psh të një dipoli me ngarkesa
në pozicionet (+1,0) dhe (-1,0). Pastaj shkruhet programi i lëvizjes dy-dimensionale F = ma
ku si forcë merret qE në çdo pikë. Fillohet lëvizja psh nga pika (+1,+1) dhe duke integruar në
ligjin F = ma gjendet trajektorja e një ngarkese q. Do të vihet re se sapo ngarkesa fiton impuls
ajo tenton ti lërë vijat e fushës. Figura 3.4 tregon trajektore të një ngarkese pozitive në fushën
e një dipoli.
Figura 3.4 Trajektore e grimcës së
ngarkuar (vijat më të holla ) në fushën
e një dipoli.
Problema.
1. Llogaritni forcën që vepron mbi një ngarkesë pozitive njësi në pikën (0,+y) nga ana
e dyngarkesave pozitive 101 njësi të vendosura në pikëat (+x , 0) dhe (-x , 0). Merni
në fillim x =1. Vendosni edhe një ngarkesë në origjinë. Zgjidhni y =0.001,1,10,100
dhe 1000 njësi. Provoni që për y të vegjël ngarkesa e fiksuar në qendër është
e rëndësishme ,ndërsa për vlera të ndërmjetme të y, rezultati mund të përafrohet
me një shufër uniforme të pafundme të ngarkuar. Çfarë ndodh kur y merr vlera
të mëdha?
2. Llogaritni forcën mbi një ngarkesë provë nga ana e 36 ngarkesave të vendosura
në intervale 100 nëpër një rreth. Gjeni forcën për një seri pikash. Pse rezultati
163
për qendrën e rrethi është jo tamam zero?
3. a. Të përafrohet një katror i ngarkuar (me një njësi brinja) që mbart ngarkesë
totale 1 njësi me një bashkësi 100 ngarkesash pikësore seicila me 0,01 njësi.
Të llogaritet fusha elektrike (në planin e ngarkesave) e këtyre ngarkesave në disa
pika të hapësirës. Sa larg prej katrorit ju mund të merni një përafrim të mirë?
Çfarë ndodh kur jemi shumë larg katrorit?
b. Duke përdorur llogaritjet e pikës a. dhe një subrutinë për vijat e fushës në
3 dimensione, llogaritni vijat e fushës së katrorit të përafruar.
c. Duke përdorur llogaritjet e pikës a., llogaritni dhe plotoni disa konture ekuipotenciale
në planin e katrorit.
4. Duke përdorur programin për vijat e fushës dhe ekuipotencialet, llogaritni dhe plotoni
vijat e fushës dhe ekuipotencialet për disa nga shpërndarjet e ngarkesave të mëposhtëme.
a. Ngarkesat pikësore: +2 në pikën (+1,0); -1 në pikën (0,0)
b. Ngarkesat pikësore: +1 në kulmet e një katrori; -4 në qendrën e tij
c. Ngarkesat pikësore : +1 dhe -1 të alternuara në kulmet e një oktaedri (një oktapol dy-
dimensional)
d. Dy sfera të vogla të ngarkuara uniformisht në shenja të kundërta
e. Katër drejtëza të pafundme uniformisht të ngarkuara pozitivisht që presin planin në kulmet
e një katrori.
5. Duke përdorur programin për integrimin e ekuacionit F = m a , të gjenden disa trajektore
për një ngarkesë pikësore a)pozitive dhe b)negative në fushën e një ngarkese të vetme
pozitive të fiksuar.
Përse për ngarkesa negative ndodhin orbita të mbyllura eliptike, ndërkohë që për të dy
sistemet ekuipotencialet janë rrathë? (Kujtoni që lëvizja orbitale ka energjinë totale
konstante)
6. a. Shkruani një program që llogarit fluksin nëpër plane pingule me boshtet kordinative
karteziane. Gjeni fluksin nëpër disa plane të tillë për fushën e krijuar nga një
ngarkesë pikësore në origjinë, një dipol me gjatësi të fundme të centruar në origjinë,
dhe një kuadripoli një dimensional të fundëm të centruar në origjinë.
Kujtoni tablotë e fushave për çdo rast shpërndarjeje.
b. Vendosini së bashku të gjitha llogaritjet për të gjetur fluksin nëpër sipërfaqen e një
kubi me me brinjë L të centruar në origjinë. Tregoni që ligji i Gausit kënaqet për çdo
shpërndarje ngarkesash për çdo kub (me çfardo brinje).
7. Fusha elektrike është konservative meqënëse diferenca e potencialeve midis çdo dy
pikave në fushë nuk varet nga rruga që ndiqet nga njera pikë në tjetrën. Shkruani një
program që llogarit diferencën e potencialeve për rrugë me pjesë segmentesh paralele
me boshtet kordinativë.
Fushën merreni të krijuar nga katër ngarkesa të barabarta në kulmet e një katrori.
Tregoni që diferenca e potencialeve nuk varet nga rruga që ndiqet. Me anë të kompjuterit
nuk mund të provohet pavarësia për çdo rrugë, prova bëhet vetëm analitikisht.
8. Ky problem demonstron një mënyrë për ndjekjen e vijave të fushës dhe ekuipotenciale
në mënyrë të ndryshme nga ajo e përshkruar deri tani.
a. Vendosim dy ngarkesa pikësore pozitive të njëjta në pikat (+1,0) dhe (-1,0). Mbuloni
katrorin me kulme ( 2,2) me një rjet prej 100 pikash. Llogaritni potencialin në çdo
pikë të kësaj rjete. Duke parë vlerat e potencialit ndiqni disa konture ekuipotencile.
duke parë vlerat e potencialit gjeni drejtimet e ndryshimit më të shpejtë të potencialit
në çdo pikë, që japin drejtimet e vijave të fushës.
b. Përfytyroni që këtë punë ta bëjë kompjuteri pra të ndjekë vlerat e potencialit të
ruajtura në kujtesë dhe të gjejë ekuipotencialet? Të shkruhet një program për
164
këtë.Nganjëherë kjo mënyrë është më e mirë se ajo e diskutuar në tekst, nëse duam
të gjejmë shumë ekuipotenciale. Si mund të gjejmë vijat e fushës në këtë mënyrë?
9. Duke përdorur një program tuajin për vijat e fushës dhe ekuipotencialet, të gjënden ato
për një çift ngarkesash pikësore ose një shpërndarje vizore të ngarkesës që ju
mendoni se është interesant. Pastaj duke përdorur programin për F = m a , tregoni që
ngarkesa provë në fushë shumë rrallë do ndjekë vijat e fushës.
10. Mendoni për ndonjë problem të mësuar në kursin e elektricitetit në të cilin mund
të përdoret kompjuterin. Provoni ta zgjidhni problemin me kompjutër dhe krahasoni
rezultatin me atë që keni marrë nga kursi teorik.
3.6 Ekuacioni i Laplasit dhe i Puasonit.
Operacinet matematike si divergjenca,gradienti,rotori,laplasiani përdoren shumë në teorinë e
përgjithëshme të fushave elektrike e magnetike. P.sh. Intensiteti i fushës elektrike E është
gradienti i potencialit elektrostatik V : E = - V . Ligji i Gausit në trajtë diferenciale mund
të shkruhet nëpërmjet divergjencës së vektorit E ( E ) ,në formën :
E(x,y,z) = -
( , , )x y z
0
ku (x,y,z) është densiteti i ngarkesave në pikën (x,y,z). Aty ku nuk ka ngarkesa ana e djathtë e
ekuacionit bëhët zero. Një nga vetitë kryesore të fushës elektrostatike është që rotori i saj (
E) është zero kudo. Duke ditur që divergjenca e gradientit të një vektori ( E) jep
operatorin e Laplasit (2 = =
2
2
2
2
2
2x y z ) atëhere ekuacioni bazë i elektrostatikës
shkruhet :
2
V(x,y,z)= -
x y z, ,
0
,
që quhet edhe ekuacioni i Puasonit. Në zonat ku nuk ka ngarkesa , ky ekuacion sillet në
ekuacionin e Laplasit :
2
V(x,y,z)= 0 .
Para se të filloni zgjidhjen me kompjuter të ekucione të tilla, që janë ekuacione diferencile me
derivate të pjesëshme është mirë të praktikoheni me llogaritje derivatesh të pjesëshme. Në
programin GRAD ilustrohet një mënyrë e llogaritjes së komponenteve të gradientit të një
funksioni skalar i tre variablave. Funksioni i marë si shembull është potenciali elektrostatik i
fushës së krijuar nga një ngarkesë pikësore pozitive (me madhësi q = 0 ) të vendosur në
origjinë të kordinatave. Meqë fusha elekrike është radiale me kahe që i largohet ngarkesës q ,
gradienti në çdo pikë duhet të jetë drejtuar drejt origjinës. Për llogaritjen e derivateve është
përdorur përafrimi më i thjeshtë (diferenca në dy pika):
f
x
f x x y z f x x y z
x
( , , ) ( , , )
2
Në të njëjtën mënyrë janë përafruar edhe derivatet në lidhje me y dhe z . Ne mund të llogaritim
vlerat e komponenteve të gradientit numerikisht edhe nëse nuk mund të shkruajmë ekuacion
për funksionin skalar, sepse funksioni skalar mund të jepet edhe si një bashkësi vlerash, p.sh.
kur fusha elektrike është gjetur nga matjet e potencialit elektrik.
Programi GRAD.BAS llogarit gradientin e funksionit F(r)
100 DEF FNF(X,Y,Z)=1/SQR(X*X+Y*Y+Z*Z) F(r)
110 D=2^(-20) madhësia e intervalit
120 PRINT “PIKA E FUSHES” ;
165
130 INPUT X0,Y0,Z0
140 G1=(FNF(X0+D,Y0,Z0)-FNF(X0-D,Y0,Z0))/(2*D) komponentja x e gradientit
150 G2=(FNF(X0,Y0+D,Z0)-FNF(X0,Y0-D,Z0))/(2*D) komponentja y e gradientit
160 G3=(FNF(X0,Y0,Z0+D)-FNF(X0,Y0,Z0+D))/(2*D) komponentja z e gradientit
170 PRINT “GRAD=“;G1,G2,G3
180 PRINT
190 GOTO 120
200 END
Programi GRAD.FOR llogarit gradientin e funksionit F(r)
F(X,Y,Z)=1/SQRT(X*X+Y*Y+Z*Z) F(r)
D=2.**(-20) madhësia e intervalit
10 READ(5,100) X0,Y0,Z0 pika e fushës
INPUT X0,Y0,Z0
20 GX=(F(X0+D,Y0,Z0)-F(X0-D,Y0,Z0))/(2*D) komponentja x e gradientit
GY=(F(X0,Y0+D,Z0)-F(X0,Y0-D,Z0))/(2*D) komponentja y e gradientit
GZ=(F(X0,Y0,Z0+D)-F(X0,Y0,Z0+D))/(2*D) komponentja z e gradientit
PRINT 101,X0,Y0,Z0
PRINT 102 GX,GY,GZ
GOTO 10
90 STOP
100 FORMAT(3F10.5)
101 FORMAT(1X,3F10.4)
102 FORMAT(1X,5H GRAD=,3E12.4)
END
Programi DIVROT tregon një mënyrë se si mund të gjenden divergjenca dhe rotori i një
vektori. Komponentet x,y,z të vektorit të fushës F janë funksione, në shembullin e zgjedhur
ato janë për fushën e një ngarkese pozitive të vendosur në origjinën e kordinatave. Edhe
divergjenca edhe rotori do të jenë zero kudo me përjashtim të origjinës së kordinatave.
Programi DIVROT.BAS divergjenca dhe rotori i vektorit F(r)
100 DEF FNX(X,Y,Z)=X/(X*X+Y*Y+Z*Z)^(3/2) Fx
110 DEF FNY(X,Y,Z)=Y/(X*X+Y*Y+Z*Z)^(3/2) Fy
120 DEF FNZ(X,Y,Z)=Z/(X*X+Y*Y+Z*Z)^(3/2) Fz
130 D=1/1024 intervali hapësinor për derivmin
140 PRINT “PIKA E FUSHES (X,Y,Z)”;
150 INPUT X0,Y0,Z0
160 D0=(FNX(X0+D,Y0,Z0)-FNX(X0-D,Y0,Z0))/(2*D)
170 D0=D0+(FNY(X0,Y0+D,Z0)-FNY(X0,Y0-D,Z0))/(2*D)
180 D0=D0+(FNZ(X0,Y0,Z0+D)-FNZ(X0,Y0,Z0+D))/(2*D) divergjenca
190 PRINT “DIV=“;D0
200 C1=(FNZ(X0,Y0+D,Z0)-FNZ(X0,Y0-D,Z0))/(2*D)
210 C1=C1-(FNY(X0,Y0,Z0+D)-FNY(X0,Y0,Z0-D))/(2*D) përbërësja x e rotorit
220 C2=(FNX(X0,Y0,Z0+D)-FNX(X0,Y0,Z0-D))/(2*D)
230 C2=C2-(FNZ(X0+D,Y0,Z0)-FNZ(X0-D,Y0,Z0))/(2*D) përbërësja y e rotorit
240 C3=(FNY(X0+D,Y0,Z0)-FNY(X0-D,Y0,Z0))/(2*D)
250 C3=C3-(FNX(X0,Y0+D,Z0)-FNX(X0,Y0-D,Z0))/(2*D) përbërësja z e rotorit
260 PRINT “ROT=“;C1;C2;C3
166
270 PRINT
280 GOTO 140 rikthim tek pika e re e fushës
290 END
Programi DIVROT.FOR divergjenca dhe rotori i vektorit F(r)
FX(X,Y,Z)=X/(X*X+Y*Y+Z*Z)**1.5 Fx
FY(X,Y,Z)=Y/(X*X+Y*Y+Z*Z)**1.5 Fy
FZ(X,Y,Z)=Z/(X*X+Y*Y+Z*Z)**1.5 Fz
D=1./1024. intervali hapësinor për derivmin
10 READ(5,100)X0,Y0,Z0 pika e fushes
IF (X0-999.) 20,90,20
20 D0=(FX(X0+D,Y0,Z0)-FX(X0-D,Y0,Z0))/(2.*D)
D0=D0+(FY(X0,Y0+D,Z0)-FY(X0,Y0-D,Z0))/(2.*D)
D0=D0+(FZ(X0,Y0,Z0+D)-FZ(X0,Y0,Z0+D))/(2.*D) divergjenca
CX=(FZ(X0,Y0+D,Z0)-FZ(X0,Y0-D,Z0))/(2.*D)
CX=CX-(FY(X0,Y0,Z0+D)-FY(X0,Y0,Z0-D))/(2.*D) përbërësja x e rotorit
CY=(FX(X0,Y0,Z0+D)-FX(X0,Y0,Z0-D))/(2.*D)
CY=CY-(FZ(X0+D,Y0,Z0)-FZ(X0-D,Y0,Z0))/(2.*D) përbërësja y e rotorit
CZ=(FY(X0+D,Y0,Z0)-FY(X0-D,Y0,Z0))/(2.*D)
CZ=CZ-(FX(X0,Y0+D,Z0)-FX(X0,Y0-D,Z0))/(2.*D) përbërësja z e rotorit
PRINT 101,X0,Y0,Z0
PRINT 102,D0,CX,CY,CZ
GOTO 10 rikthim tek pika e re e fushës
90 STOP
100 FORMAT(3F10.5)
101 FORMAT(1X,3F10.4)
102 FORMAT(1X,6H DIV=,E10.4,7H ROT=,3E10.4)
END
3.6 Zgjidhja e problemeve të Elektrostatikës
Problemi i përgjithëshëm i Elekrostatikës është zgjidhja e ekuacionit të Puasonit: 2 V =- / 0
Ky ekuacion është thjeshtë kombinimi i ligjit të Gausit me faktin që E = - V . Në zonat ku
nuk ka ngarkesa, ekuacioni sillet në ekuacionin e Laplasit : 2 V = 0 . Situata më zakonshme
është kur njihet potenciali në sipërfaqen qe rrethon zonën që na intereson; duke përdorur
ekuacioni e Puasonit ose të Laplasit gjejmë potencialin kudo brenda zonës . Për ti zgjidhur
numerikisht këto ekuacione do ti përafrojmë derivatet e pjesëshme me diferencat :
a) e thjeshta (formula e dy pikave):
f
x
f x x y z f x x y z
x
f
x
f x x y z f x y z f x x y z
x
( , , ) ( , , );
( , , ) ( , , ) ( , , )
2
22
2 2
ose
b)të rendit më të lartë të përafrimit (formula e 4 pikave):
f
x
f x x y z f x x y z f x x y z f x x y z
x ( , , ) ( , , ) ( , , ) ( , , )2 8 8 2
12
,
2
2 2
2 16 30 16 2
12
f
x
f x x y z f x x y z f x y z f x x y z f x x y z
x ( , , ) ( , , ) ( , , ) ( , , ) ( , , )
167
Duke përdorur këto diferenca mund të gjendet një shprehje që jep vlerën në një pikë në
funksion të vlerave në pikat përreth saj. Për thjeshtësi le të shqyrtojmë një zonë dy-
dimensionale. E ndajmë zonën në një rjetë pikash të barazlarguara me x dhe y. Vlera e V
në pikën (x , y ) mund të shprehet nëpërmjet vlerave në pikat më të afërta në rjetë. P.sh. duke
përdorur përafrimin e thjeshtë , ekuacioni i Laplasit shkruhet (me x = y =D) :
V x D y V x y D V x D y V x y D V x y
D
( , ) ( , ) ( , ) ( , ) ( , )
40
2 ose :
V x yV x D y V x y D V x D y V x y D
( , )( , ) ( , ) ( , ) ( , )
4 .
Pra potenciali në një pikë të të rjetës është përafruar si e mesme e vlerave në katër pikat fqinje
më të afërta. Programi LAPLAS ilustron një mënjyrë të zgjidhjes së ekuacionit të Laplasit me
këtë përafrim. Potenciali në kufirin e zonës katërkëndëshe këndrjetë ndryshon linearisht.
Fillimisht, të gjitha vlerat e V brenda zonës janë vendosur si mesatare e vlerave në
kufi.Ekuacioni i mësipërm për V në çdo pikë të rjetës është përdorur përsëri e përsëri në pikat
e brendëshme të rjetës derisa diferenca midis iteracioneve bëhet mjaft i vogël. Pikat kufitare
mbeten gjithë kohës në vlerat e tyre fillestare të përcaktuara.
Programi LAPLAS.BAS Zgjidhja e ekuacionit të Laplasit 2-dimensional
100 DIM V(10,10),U(10,10)
110 I0=10 numri i intervaleve sipas x
120 J0=10 numri i intervaleve sipas y
130 FOR I=1 TO 10 cikli i dhënies së vlerave të potencialit në dy brinjë të katerkëndshit
140 V(I,1)=I
150 V(I,J0)=J0+(I-1)
160 V0=V0+V(I,1)+V(I,J0)
170 NEXT I
180 FOR J=2 TO J0-1 cikli i dhënies së vlerave të potencialit në dy brinjët e tjera
190 V(1,J)=J
200 V(I0,J)=I0+(J-1)
210 V0=V0+V(1,J)+V(I0,J)
220 NEXT J
230 V0=V0/(2*(I0+J0)) mesatarizimi i V në kufi (katërkëndëshi)
240 FOR I=2 TO I0-1 inicializimi i potencialit në brendësi të katërkëndëshit
250 FOR J=2 TO J0-1
260 V(I,J)=V0
270 NEXT J
280 NEXT I
290 V1=0
300 FOR I=1 TO I0 ckli i ruajtjes së vlerave të potencialit nga iteracioni i fundit
310 FOR J=1 TO J0
320 U(I,J)=V(I,J)
330 NEXT I
340 NEXT J
350 FOR I=2 TO I0-1 kalimi nëpër të gjitha pikat e brendëshme
360 FOR J=2 TO J0-1
370 V(I,J)=(U(I+1,J)+U(I-1,J)+U(I,J+1)+U(I,J-1))/4 potenciali i ri
380 IF V1>ABS((V(I,J)-U(I,J))/V(I,J)) THEN 400
390 V1=ABS((V(I,J)-U(I,J))/V(I,J)) ndryshimi fraksional i fundit i potencialit
168
400 NEXT J
410 NEXT I
420 N=N+1 numri i iteracionit
430 IF V1>.001 THEN 290 prova për saktësi 0,1 %
440 PRINT “# I ITERACIONEVE NEPER RJETE =“;N grupi i printimit
450 FOR J=J0 TO 1 STEP -1
460 FOR I=1 TO I0
470 PRINT V(I,J),
480 NEXT I
490 PRINT
500 NEXT J
510 END
Programi LAPLAS.FOR Zgjidhja e ekuacionit të Laplasit 2-dimensional
DIMESION V(10,10),U(10,10)
I0=10 numri i intervaleve sipas x
J0=10 numri i intervaleve sipas y
DO 10 I=1,10 cikli i dhënies së vlerave të potencialit në dy brinjë të katerkëndshit
V(I,1)=I
V(I,J0)=J0+(I-1)
10 VAV=VAV+V(I,1)+V(I,J0)
DO 20 J=2,J0-1 cikli i dhënies së vlerave të potencialit në dy brinjët e tjera
V(1,J)=J
V(I0,J)=I0+(J-1)
20 VAV=VAV+V(1,J)+V(I0,J)
VAV=VAV/(2*(I0+J0)) mesatarizimi i V në kufi (katërkëndësh)
DO 30 I=2,I0-1 inicializimi i potencialit në brendësi të katërkëndshit
DO 30 J=2,J0-1
30 V(I,J)=VAV
NUMIT=0
35 DVMAX=0.
DO 40 I=1,I0 ckli i ruajtjes së vlerave të potencialit nga iteracioni i fundit
DO 40 J=1,J0
40 U(I,J)=V(I,J)
DO 50 I=2,I0-1 kalimi nëpër të gjitha pikat e brendëshme
DO 50 J=2,J0-1
V(I,J)=(U(I+1,J)+U(I-1,J)+U(I,J+1)+U(I,J-1))/4. potenciali i ri
50 DVMAX=AMAX0 (DVMAX,ABS((V(I,J)-U(I,J))/V(I,J))) ruan ndryshimin
fraksional më të madh
NUMIT=NUMIT+1 numri i iteracionit
IF (DVMAX-.001) 55,55,35 prova për saktësi 0,1 %
55 PRINT 100,NUMIT grupi i printimit
DO 60 J=1,J0
DO 60 I=1,I0
60 PRINT 101.I,J,V(I,J)
STOP
100 FORMAT(1X,27H# I ITERACIONEVE NEPER RJETE = , i3)
101 FORMAT(1X,2I4,F10.4)
END
169
Në mënyrë të ngjashme mund të zgjidhet edhe ekuacioni i Puasonit. duke përdorur të njëjtin
përafrim për 2 V dhe duke shtuar në çdo pikë densitetin e ngarkesës, ekuacioni për
diferencat bëhet :
V x yV x D y V x y D V x D y V x y D D x y
( , )( , ) ( , ) ( , ) ( , ) ( / ) ( , )
2
0
4
.
Programi PUASON ilustron këtë metodë për një katërkëndësh këndrejtë me potencial 0 në
brinjët e tij. /0 është zgjedhur që të jetë 1 kudo.
Programi PUASON.BAS Zgjidhja e ekuacionit të Puasonit
100 DIM V(10,10),U(10,10)
110 I0=10 numri i intervaleve sipas x
120 J0=10 numri i intervaleve sipas y
130 FOR I=1 TO 10 cikli i dhënies së vlerave të potencialit në 4 brinjët e katerkëndshit
140 FOR J=1 TO 10
150 V(I,J)=0
160 NEXT J
170 NEXT I
180 V0=V0/(2*(I0+J0)) mesatarizimi i V në kufi (katërkëndëshi)
190 FOR I=2 TO I0-1 inicializimi i potencialit në brendësi të katërkëndëshit
200 FOR J=2 TO J0-1
210 V(I,J)=V0
220 NEXT J
230 NEXT I
240 V1=0
250 FOR I=1 TO I0 ckli i ruajtjes së vlerave të potencialit nga iteracioni i fundit
260 FOR J=1 TO J0
270 U(I,J)=V(I,J)
280 NEXT I
290 NEXT J
300 FOR I=2 TO I0-1 kalimi nëpër të gjitha pikat e brendëshme
310 FOR J=2 TO J0-1
320 R=1 (x,y)/0
330 V(I,J)=(U(I+1,J)+U(I-1,J)+U(I,J+1)+U(I,J-1)+R)/4 potenciali i ri
340 IF V1>ABS((V(I,J)-U(I,J))/V(I,J)) THEN 360
350 V1=ABS((V(I,J)-U(I,J))/V(I,J)) ndryshimi fraksional i fundit i potencialit
360 NEXT J
370 NEXT I
380 N=N+1 numri i iteracionit
390 IF V1>.001 THEN 290 prova për saktësi 0,1 %
400 PRINT “# I ITERACIONEVE NEPER RJETE =“;N grupi i printimit
450 FOR J=J0 TO 1 STEP -1
460 FOR I=1 TO I0
470 PRINT V(I,J),
480 NEXT I
490 PRINT
500 NEXT J
170
510 END
Programi PUASON.FOR Zgjidhja e ekuacionit të Puasonit
DIMENSION V(10,10),U(10,10)
I0=10 numri i intervaleve sipas x
J0=10 numri i intervaleve sipas y
DO 10 I=1,10 cikli i dhënies së vlerave të potencialit në 4 brinjët e katerkëndshit
DO 10 J=1,10
V(I,J)=0.
10 V0=V0+V(I,J)
V0=V0/(2.*(I0+J0)) mesatarizimi i V në kufi (katërkëndëshi)
DO 20 I=2,I0-1 inicializimi i potencialit në brendësi të katërkëndëshit
DO 20 J=2,J0-1
20 V(I,J)=V0
NUMIT=0
30 DVMAX=0.
DO 40 I=1,I0 ckli i ruajtjes së vlerave të potencialit nga iteracioni i fundit
DO 40 J=1,J0
40 U(I,J)=V(I,J)
DO 50 I=2,I0-1 kalimi nëpër të gjitha pikat e brendëshme
DO 50 J=2,J0-1
RHO=1. (x,y)/0
V(I,J)=(U(I+1,J)+U(I-1,J)+U(I,J+1)+U(I,J-1)+RHO)/4 potenciali i ri
50 DVMAX=AMAX0 (DVMAX,ABS((V(I,J)-U(I,J))/V(I,J))) gjen ndryshimin maximum
NUMIT=NUMIT+1 numri i iteracionit
IF (DVMAX-.001) 55,55,30 prova për saktësi 0,1 %
55 PRINT 100,NUMIT grupi i printimit
DO 60 J=1,J0
DO 60 I=1,I0
60 PRINT 101.I,J,V(I,J)
STOP
100 FORMAT(1X,27H# I ITERACIONEVE NEPER RJETE = , I3)
101 FORMAT(1X,2I4,F10.4)
END
Zgjidhja e ekuacioni të Laplasit dhe Puasonit në zona me shumë kufinj është më i
ndërlikuar. Disa raste do te jepen në pjesën e dytë të këtij teksti. Ka një problem të përbashkët
për këto zona, të cilin e ilustrojmë me rastin kur kemi vendosur një ngarkesë pikësore pozitive
brenda një zone pa ngarkesa e cila ka potencial të fiksuar në kufijtë e saj. Një mënyrë e
zgjidhjes së problemit është të fiksojmë potencialin në pikat e rjetës që janë shumë afër
ngarkesës sepse në këto pika kontributi kryesor në krijimin e fushës është ai i ngarkesës
pikësore. Pra, aty ku ka ngarkesa pikësore mund të imagjinojmë brima sferike rreth
ngarkesave (shumë afër tyre) me potenciale të fiksuara.
Problema
1. Shqyrtojmë një zonë dy-dimensionale katrore pa ngarkesa në kufijtë e të cilës potenciali
rritet linearisht.
171
a. Duke përdorur programin që zgjidh ekuacionin e
Laplasit, të gjendet potenciali brenda katrorit me
saktësi deri 0.1%.
b. Varioni numrin e pikave të rjetit që mbulon zonën
dhe gjeni se sa shpejt (në numër iteracionesh dhe kohë
ekzekutimi në kompjuter të përdorur) arrihet saktësia
0.1%.
c.Për një numër të caktuar pikash të rjetit, varioni
saktësinë dhe shikoni sa kohë zgjat ekzekutimi në
kompjuter.
2. Shqyrtojmë një zonë në formë katërkëndësh këndrejtë pa ngarkesa me potencial
konstant në brinjët e katërkëndëshit.
a. Duke përdorur programin që zgjidh ekuacionin e Laplasit , gjeni
potencialin brenda katërkëndëshit me saktësi deri 0.1%.
b. Varioni numrin e pikave të rjetit që mbulon zonën dhe gjeni sa
shpejt (në numër itëracionesh dhe kohë ekzekutimi në
kompjuter përdoret) arrihet skatësia 0.1%.
c. Për një numër të caktuar pikash të rjetit, varioni saktësinë
dhe shikoni sa kohë zgjat ekzekutimi në kompjuter.
3. Shqyrtojmë një zonë dy-dimensionale në formë katrore me një ngarkesë elektrike të
shpërndarë uniformisht brenda katrorit me densitet konstant =0 dhe me kufinj që
mbahen në potencial V=0.
a. Duke përdorur programin për zgjidhjen e ekuacionit të Puasonit, gjeni potencialin në
pikat brenda katrorit me saktësi deri 0.1%.
b. E zemë se densiteti i ngarkesës ndryshon me pozicionin sipas (x,y)=0 xy. Gjeni
potencialin e brendëshëm me saktësi deri 0.1%.
4. Të përdoren përafrimet e rendeve më të lartë për derivatet e dyta në ekuacionin e
Laplasit.
a. Shkruani programin duke përdorur këtë përafrim.( Për pikat afër kufirit është e
nevojëshme përdorimi i përafrimit të thjeshtë.)
b. Gjeni vlerat për potencialin e brendëshëm (me saktësi 0.1%) për një zonë katrore
pa ngarkesa dhe me potencial konstant në kufijtë e saj. Krahasoni këtë rezultat me
atë që merret kur përdoret përafrimi i thjeshtë. Shikoni numrin e iteracioneve dhe
kohën e ekzekutimit në kompjuter për një saktësi të dhënë.
c. Përgjithësojeni programin për zgjidhjen e ekuacionit të Puasonit.
3.7 Fusha Magnetike
Fushat magnetike statike krijohen nga rrymat stacionare . Telat ku rjedhin rrymat mund të jenë
të drejtë ose të përkulur; bobinat përcjellëse janë më të zakonëshme për prodhimin e fushave
magnetike. Sikurse fushat elektrostatike , fushat magnetostatike mund të vizualizohen me anë
të vijave fushës .Nëse rrymat ndryshojnë mjaft ngadalë në kohë , fusha magnetike që ndryshon
me kohën mund të llogaritet njëlloj si fushat statike . Vijat e fushës përcaktohet nga po ato
veti:
172
1. Në çdo pikë, tangentja në vijën e fushës është paralel me fushën (vektorin e induksionit B )
në këtë pikë.
2. Në çdo pikë, numri i vijave të fushës (që kalojnë në njësinë e sipërfaqes pingul me vijat e
fushës) është proporcional me madhësinë e fushës (B) në këtë pikë.
Në rastin dy-dimensional , duke ecur sipas vijës së fushës me një hap s atëhere përbërëset e
zhvendosjes paralel me boshtet kordinative janë:
x sB
B By s
B
B B
x
x y
x
x y
2 2 2 2
Një ndryshim midis magnetostatikës dhe elektrostatikës është që nuk mund të veçojmë një
ngarkesë magnetke pozitive nga nje ngarkesë magnetike negative. Si pasojë në dallim nga
vijat e fushës elektrike , vijat e fushës magnetike nuk kanë fillim ose mbarim, pra janë të
mbyllura. Si ilustrim do shikojmë fusha të krijuara nga bobina e tela. Për këtë do kemi
parasysh formulat e mëposhtëme:
1. Forca që vepron mbi një ngarkesë q0 e cila lëviz me shpejtësi V në fushë elektrike e
magnetike është:
F=q0 ( E + V B )
ku E është intensiteti i fushës elektrike dhe B është induksioni i fushës magnetike.
2. Fusha magnetike që krijon një përcjellës i drejtë me rrymë I jepet :
B
0
02
I ,
drejtimi i saj përcaktohet nga rregulla e dorës së djathtë.
3. Cirkulacioni i fushës magnetike në një vijë të mbyllur jepet :
B l d I0 ,
ku I është intensiteti total i rrymës në sipërfaqen që qarkon kjo vijë e mbyllur.
4. Fusha magnetike e një elementi të vogël dl me rrymë I në një pikë në largësi r prej
elementit jepet nga ligji Bio-Savar :
dI d
rB
l r
0
34 dhe B = dB
5. F.e.m. (forca elektromotore) që lind në një kontur si rezultat i ndryshimit të fluksit në
sipërfaqen që kufizon konturi është :
E E l = -dd
dt
3.8 Disa raste të fushës magnetike
Si rasti më i thjeshtë është llogaritja e fushës magnetike që krijojnë përcjellsat drejtëvizorë.
Programi BWIRE bën ndjekjen evijave të fushës së disa përcjellsave drejtvizorë. Varianti
BASIC vizaton vijat e kësaj fushe.
Programi BWIRE.BAS
10 REM Programi BWIRE.BAS llogarit vijat e fushës të deri 100përcjellsave paralel me
boshtin Z
173
90 DIM x(100), y(100), I(100)
100 S0 = .02 hapi s
110 PRINT " Numri i përclellsave?" ;120 INPUT N0130 FOR j = 1 TO N0140 PRINT " X, Y, I për përc jellsin e " ; j;150 INPUT x(j), y(j), I(j)160 NEXT j
gjeometria e pwrcjellsave
170 PRINT "Pika nisëse X,Y ";
180 INPUT X0, Y0
190 PRINT "X", "Y"
200 X1 = X0210 Y1 = Y0220 X2 = 0230 Y2 = 0240 B1 = 0250 B2 = 0
inicializimi
260 FOR j = 1 TO N0 shumimi sipas pwrcjellsave
270 X9 = Y1 + Y2 / 2 - y(j)280 Y9 = - (X1 + X2 / 2 - x(j))290 r2 = X9 * X9 + Y9 * Y9
r prej pwrcjellsit deri te pika e fushws(gjys.hap)
300 B1 = B1 + .0000002 * I(j) * X9 / r2 Bx
310 B2 = B2 + .0000002 * I(j) * Y9 / r2 By
320 NEXT j
330 B0 = SQR(B1 * B1 + B2 * B2) B
340 X2 = S0 * B1 / B0 x
350 Y2 = S0 * B2 / B0 y
360 X1 = X1 + X2 x i ri
370 Y1 = Y1 + Y2 y i ri
380 REM PRINT X1, Y1
390 IF ABS(X1 - X0) + ABS(Y1 - Y0) < .9 * S0 THEN 170 kthim nw nisje?
400 IF ABS(X1) + ABS(Y2) > 400 THEN 170 a wshtw shumw larg?
401 SCREEN 1402 FOR j = 1 TO N0403 IF I(j) < 0 THEN 405404 LINE (INT(x(j)), INT(y(j)) - 1) - (INT(x(j)), INT(y(j)) + 1)405 LINE (INT(x(j)) - 1, INT(y(j))) - (INT(x(j)) + 1, INT(y(j)))406 CIRCLE (INT(x(j)), INT(y(j))), 2407 NEXT j408 PRESET (INT(X1), INT(Y1))409 PSET (INT(X1), INT(Y1))
plotimi i vijave
410 GOTO 240 rikthim pwr njw vijw tjetwr
420 END
Programi BWIRE.FOR Vijat e fluksit magnetik të disa përclellsave paralel me Z
DIMENSION X(100), Y(100), CUR(100)
DATA NWIR,X(1),Y(1),CUR(1),X(2),Y(2),CUR(2)/2,1.,0.,1.,-1.,0.,1./
DS = .02 hapi s
10 READ(5,100)XST,YST pika nisëse
IF (XST-999.) 15,90,15
174
15 X1 = XST inicializimi
Y1 = YST
DX = 0.
DY = 0.
20 BX = 0.
BY = 0.
DO 30 j = 1,NWIR cikli për shumim për gjithë përcjellsit
X9 = Y1 + DY / 2. - Y(j)
Y9 = -(X1 +DX / 2. - X(j))
r2 = X9 * X9 + Y9 * Y9 r nga çdo përclellës tek pika e fushës(gjysëm-hapi)
BX = BX + .0000002 * CUR(j) * X9 / r2 Bx
30 BY = BY + .0000002 * CUR(j) * Y9 / r2 By
B = SQRT(B1 * B1 + B2 * B2) |B|
DX = DS * BX / B x
DY = DS * BY / B y
X1 = X1 + DX x i ri
Y1 = Y1 + DY y i ri
PRINT 101,X1, Y1
IF (ABS(X1 - XST) + ABS(Y1 - YST) - .9 * DS) 10,20,20 fillon vijë e re?
90 STOP
100 FORMAT(2F10.5)
101 FORMAT(1X,2F10.4)
END
Një rast tjetër është fusha e krijuar nga një përcjellës rrethor dhe pastaj duke marrë disa
përcjellsa të tillë gjendet fusha e bobinave.E njejta gjë mund të bëhet edhe për bobinat me
spira katrore ose katërkëndëshe. Në të gjitha rastet fusha magnetike në çdo pikë llogaritet në
bazë të ligjit Bio-Savar. P.sh. le të jetë një spirë rrethore paralel me planin xy me rreze A
(figura 3.4) e me qendër në pikën (0,0,z). Kërkojmë fushën në pikën (x2,y2,z2). E ndajmë
spirën në segmente të vegjël dhe e përafrojmë çdo segment me një vijë të drejtë dl .Përdorim
ligjin Bio-Savar për të gjetur fushën e çdo segmenti të vogël dhe i mbledhim fushat e gjithë
segmenteve. Produkti vektorjal në ligjin Bio-Savar në kordinata karteziane merret:
(dlr)x = (dl)y (r)z - (dl)z (r)y
(dlr)y = (dl)z (r)x - (dl)x (r)z
(dlr)z = (dl)x (r)y - (dl)y (r)x
Rezultati i kësaj subrutine do të jetë fusha magnetike (Bx , By , Bz ) në pikën (x2 , y2 , z2 ).
Këtë fushë magnetike të gjetur mund ta përdorim qoftë për të ecur një hap gjatë vijës së fushës
dhe në pikën tjetër ta rithërasim subrutinën qoftë për të llogaritur fushën e një spire tjetër.
P.sh. duke mbledhur fushat e dy spirave me qendra në (0,0,-A/2) dhe (0,0,+A/2) mund të
gjendet fusha e spirave të Helmholcit (fig. 3.6). Gjithashtu, një solenoid të shkurtër mund ta
përafrojmë me një seri spirash (fig. 3.7)
Programi COIL kryen llogaritjet e fushës magnetike ndërsa programi BLINE llogarit
fluksin e vijave të fushës të një vargu spirash rrethore paralel me planin YZ.
Programi COIL.BAS Fusha e N0 spirave paralel me planin YZ
100 N0=2 numri i spirave
175
110 DIM X(N0), R(N0), I(N0), C(100),S(100)120 FOR J = 1 TO N0130 READ X(J), R(J), I(J)140 NEXT J
gjeometria e spirave
150 DATA .5,1,1,-.5,1,1
160 PI=6.2831850 2
170 N9=10 numri i segmenteve pwr çdo spirw
180 FOR I = 1 TO N9190 T = PI * (I-.5) / N9200 C(I) = COS(T)210 S(I) = SIN(T)220 NEXT I
ruhen vlerat e sinusit dhe kosinusit pwr çdo segment
230 PRINT “PIKA E FUSHES X,Y,Z?”
240 INPUT X0,Y0,Z0
250 B1 = 0260 B2 = 0270 B3 = 0
inicializimi
280 FOR J=1 TO N0 shumimi pwr gjithw spirat
290 FOR I=1 TO N9 shumimi pwr gjithw segmentet e çdo spire
300 L1 = 0310 L2 = -PI *R(J) *S(I) / N9320 L3 = PI *R(J) *C(I) / N9
dl
330 L7 = X(J)340 L8 = R(J) *C(I)350 L9 = R(J) *C(I)
kordinatat e elementit dl
630 X6 = X0- L7370 Y6 = Y0- L8380 Z6 = Z0- L9390 R6 = SQR(X6*X6+ Y6*Y6+ Z6*Z6)
r prej segmentit deri te pika e fushws
400 R6=R6*R6*R6 r3
410 C1 = L2*Z6- L3*Y6420 C2 = L3*X6- L1*Z6430 C3 = L1*Y6- L2*X6
dl r
440 B1=B1+1E-7*I(J)*C1/R6 Bx
450 B2=B2+1E-7*I(J)*C2/R6 By
460 B3=B3+1E-7*I(J)*C3/R6 Bz
470 NEXT I
480 NEXT J
490 PRINT B1;B2;B3
500 GOTO 230 rikthim pwr pikwn tjetwr tw fushws
510 END
Programi COIL.FOR Fusha B e disa spirave në paralel me planin XY
DATA CURENT,RADIUS,NCOIL,SEP/1.,.01,2,.005/ gjeometria e spiave
10 READ (5,101)X,Y,Z pika e fushës
BX=0.
BY=0.
BZ=0.
DO 20 N=1,NCOIL,1 shumimi sipas spirave
176
AN=N
ZCOIL=(AN-1.)*SEP Z i spirës
BXCOIL=0.
BYCOIL=0.
BZCOIL=0.
DO 30 I =1,16,1 shumimi sipas sementeve të çdo spire
AI=I
ANG=(AI-1.)*3.14159/16.
COSANG=COS(ANG)
SINANG=SIN(ANG)
DLX=-6.28318*RADIUS*SINANG/32. dlx
DLY=6.28318*RADIUS*COSANG/32. dly
DLZ=0.
XSEG=X-RADIUS*COSANG
YSEG=Y-RADIUS*SINANG
ZSEG=Z-ZCOIL
RSEG=SQRT(XSEG**2+YSEG**2+ZSEG**2) r prej dl deri te pika e fushës
RCUBED=RSEG**3 r3
XCROSS DLY*ZSEG DLZ*YSEGYCROSS DLZ*XSEG DLX*ZSEGZCROSS DLX*YSEG DLY*XSEG
dlr
BXCOIL=BXCOIL+1E-7*CURENT*XCROSS/RCUBED Bx për një spirë
BYCOIL=BYCOIL+1E-7*CURENT*YCROSS/RCUBED By për një spirë
30 BZCOIL=BZCOIL+1E-7*CURENT*ZCROSS/RCUBED Bz për një spirë
BX=BX+BXCOIL Bx totale
BY=BY+BYCOIL By totale
20 BZ=BZ+BZCOIL Bz totale
PRINT 102, BX,BY,BZ
IF (CURENT) 10,40,10 rikthim tek pika tjetër e fushës
101 FORMAT(3F5.3)
102 FORMAT(1X,3E15.5)
40 STOP
END
Programi BLINE.BAS Vijat e fushws pwr disa spira paralel me planin YZ
100 N0=2 numri i spirave
110 DIM X(N0),R(N0),I(N0),C(100),S(100)
120 FOR J = 1 TO N0130 READ X(J), R(J), I(J)140 NEXT J150 DATA .5,1,1,-.5,1,1
gjeometria e spirave
160 PI=6.2831850 2
170 N9=10 numri i segmenteve pwr çdo spirw
180 FOR I = 1 TO N9190 T = PI * (I-.5) / N9200 C(I) = COS(T)210 S(I) = SIN(T)220 NEXT i
sinuset dhe kosinuset qw duhen nw llogaritje
230 D=.1 hapi s
177
240 PRINT “(X,Y) PIKA E FILLIMIT TE VIJES SE FUSHES ?”
250 INPUT X5,Y5
260 X0 = X5270 Y0 = Y5280 X1 = 0290 Y1 = 0300 S0 =.5310 S = 0 320 B1 = 0330 B2 = 0
inicializimi
340 B3=0
350 FOR J=1 TO N0 shumimi sipas gjithw spirave
360 FOR I=1 TO N9 shumimi sipas gjithw segmenteve tw çdo spire
370 L1 = 0380 L2 = -PI *R(J) *S(I) / N9390 L3 = PI *R(J) *C(I) / N9
dl
400 L7 = X(J)410 L8 = R(J) *C(I)420 L9 = R(J) *C(I)
kordinatat e dl
430 X6 = X0+ X1/ 2 - L7440 Y6 = Y0+ Y1/ 2 - L8450 Z6 = Z0- L9460 R6 = SQR(X6*X6+ Y6*Y6+ Z6*Z6)
r prej dl deri te pika e fushws
470 R6=R6*R6*R6 r3
480 C1 = L2*Z6- L3*Y6490 C2 = L3*X6- L1*Z6500 C3 = L1*Y6- L2*X6
dlr
510 B1=B1+1E-7*I(J)*C1/R6 Bx
520 B2=B2+1E-7*I(J)*C2/R6 By
530 B3=B3+1E-7*I(J)*C3/R6 Bz
540 NEXT I
550 NEXT J
560 B0=SQR(B1*B1+B2*B2+B3*B3) B
570 X1=D*B1/B0 x
580 Y1=D*B2/B0 y
590 X0=X0+X1 x i ri
600 Y0=Y0+Y1 y i ri
610 S = S + D620 IF S < S0 THEN 650630 S = 0640 PRINT X0, Y0
grupi i printimit
650 IF ABS(X0)+ABS(Y0)>10 THEN 670 a wshtw pika shumw larg?
660 IF ABS(X0-X5)+ABS(Y0-Y5)>.9*D THEN 320 kthim nw nisjw?
670 PRINT X0,Y0 printo pikwn e fundit
680 GOTO 240 rikthim nw vijwn tjetwr
690 END
Programi BLINE.FOR Fluksi i vijave te fushës sëdisa spirave në paralel me planin XY
DIMENSION X(10),R(10),CUR(10),C(10),S(10)
178
NCOI=2 numri i spirave
DATA X(1),R(1),CUR(1),X(2),R(2),CUR(2)/.5,1.,1.,-.5,1.,1./ gjeometria e spiave
NPIEC=10 numri i segmenteve për çdo spirë
TWOPI=6.2831853 2
DO 10 I = 1,NPIEC AI = I T = TWOPI *(AI-.5) / NPIEC C(I) = COS(T) 10 S(I) = SIN(T)
ruhen vlerat e sinusit e cosinusit që do përdoren
DS=.1 hapi S
15 READ (5,100)XST,YST pika e nisëse e vijës
IF (XST-999.) 20,90,90
10 X0 = XST Y0 = YST 20 DX = 0. DY = 0. PRNTS =.5 DIST = 0. 25 BX = 0. BY = 0. BZ = 0.
Inicializimi
DO 30 J=1,NCOI shumimi sipas spirave
DO 30 I=1,NPIEC shumimi sipas segmenteve të çdo spire
DLX=0. dlx
DLY=TWOPI*R(I)*S(I)/NIPEC dly
DLZ=TWOPI*R(I)*C(I)/NIPEC dlz
XDL=X(J) kordinata x e elementit dl
YDL=R(J)*C(I) kordinata y e elementit dl
ZDL=R(J)*S(I) kordinata z e elementit dl
XX=X0+DS/2.-XDL
Y=Y0+DY/2.-YDL
Z=-ZDL
RR=SQRT(XX**2+Y**2+Z**2) r prej dl deri te pika e fushës
CX DLY*Z- DLZ*YCY DLZ*XX DLX*ZCZ DLX*Y DLY*XX
dlr
BX=BX+1E-7*CUR(J)*CX/RR Bx për një spirë
BY=BY+1E-7*CUR(J)*CY/RR By për një spirë
30 BZ=BZ+1E-7*CUR(J)*CZ/RR Bz për një spirë
B=SQRT(BX**2+BY**2+BZ**2) B
DX=DS*BX/B x
DY=DS*BY/B y
X0=X0+DX x i ri
Y0=Y0+DY y i ri
DIST = DIST + DS IF (DIST - PRNTS) 50,40,40 40 DIST = 0. PRINT 101,X0,Y0
grupi i printimit
50 IF (ABS(X0-XST)+ABS(Y0-YST)-.9*DS) 60,60,25 rikthim tek fillimi?
60 PRINT 101,X0,Y0
179
GOTO 15 rifillimi i një vije tjetër
90 STOP
100 FORMAT(2F10.5)
101 FORMAT(1X,2F10.4)
END
Figura 3.4 Një spirë rrethore paralele
me planin xy; (0,0,z) është qendra e
spirës ; (x2 , y2 , z2 ) është pika në të
cilën llogaritet fusha magnetike.
Figura 3.5 Vijat e fushës magnetike të një
spire përclellëse me rrymë. Spira është pingul
me planin e figurës , megjithëse në figurë është
vizatuar në formën e një elipsi. Vijat e fushës
janë simetrike në lidhje me boshtin e spirës.
180
Figura 3.6 Vijat e fushës magnetike të çiftit
të spirave të Helmholcit (dy spira të njejta të
larguara njera nga tjetra aq sa është rrezja e
tyre). Spirat janë pingul me planin e vizatimit.
Afër mesit midis spirave fusha është
homogjene.
Figura 3.7 Vijat e fushës magnetike të 7
spirave të njejta të baraslarguara , që janë
pingul me planin e vizatimit. Ato përafrojnë
solenoidin e shkurtër. Spirat duhet të jenë sa
më afër njera tjetrës në mënyrë që të realizohet
fushë homogjene brenda solenoidit. Sigurisht
spirat përcjellëse duhet të jenë të izoluara njera
nga tjetra.
3.9 Lëvizja e ngarkesave në fushë magnetike
Tashmë që e dimë se si llogaritet fusha magnetike, mund të provojmë të llogaritim trajektoret
e ngarkesave që lëvizin në këto fusha. Programi kryesor është për ligjin F=ma, ku forca është
ajo e Lorencit : F = q (vB). Meqë forca varet nga shpejtësia duhet të kemi kujdes në
integrimin e ekuacionit F=ma . Programi EBTRAJ është pikërisht për llogaritjen e
trajektoreve në fushë magnetike.
Programi EBTRAJ.BAS Lwvizja e ngarkesws nw E, B
100 D=.1 hapi kohor t
110 D1=1 koha e printimit
120 Q=1 q/m
130 READ E1, E2, E3, B1, B2, B3140 DATA 0,0,0,0,0,1
E dhe B (pwrbwrwset e tyre)
150 PRINT “KUSHTET FILLESTARE (X,Y,Z) & (VX,VY,VZ)?”
181
160 INPUT X1,Y1,Z1,V1,V2,V3
170 T=0
180 T0=10 koha pwrfundimtare
190 V0=SQR(V1*V1+V2*V2+V3*V3)
200 PRINT T,X1,Y1,Z1,V0
210 A1 = Q*((V2*B3- V3*B2) + E1)220 A2 = Q*((V3*B1- V1*B3) + E2)230 A3 = Q*((V1*B2 - V2*B1) + E3)
llogaritja e parw e nxitimit
240 IF T > 0 THEN 290250 V1 = V1+ A1* D / 2260 V2 = V2 + A2 * D / 2270 V3 = V3 + A3* D / 2280 GOTO 380
gjyswm-hapi fillestar
290 U1 = V1+ A1*D / 2300 U2 = V2 + A2*D / 2310 U3 = V3+ A3*D / 2
vlerwsimi i shpejtwsisw nw çdo hap
320 A1 = Q*((U2*B3- U3*B2) + E1)330 A2 = Q*((U3*B1- U1*B3) + E2)340 A3 = Q*((U1*B2 - U2*B1) + E3)
vlerwsimi i dytw i nxitimit
350 V1 = V1+ A1*D360 V2 = V2 + A2*D370 V3 = V3+ A3*D
shpejtwsia e re (nw çdo gjysem-hapi)
380 X1 = X1+ V1*D390 X2 = X2 + V2*D400 Z1 = Z1+ V3*D
pozicioni i ri
410 T=T+D koha e re
420 IF ABS(T - D1) > D / 2 THEN 460430 V0 = SQR(U1*U1+ U2*U2 + U3*U3)440 PRINT T, X1, Y1, Z1, V0450 D1 = D1+1
grupi i printimit
460 IF T<T0 THEN 210 rikthim pwr hapin tjetwr t
470 END
Programi EBTRAJ.FOR Grimca e ngarkuar në E,B
DT=.01 hapi kohor t
PINT=1. koha e printimit
QTOM=1. q/m
DATA EX,EY,EZ,BX,BY,BZ/0.,0.,0.,0.,0.,1./ E dhe B
DATA X,Y,Z,VX,VY,VZ/-1.,0.,0.,0.,1.,0./ pozicioni filestar dhe shpejtësia
TIM=0.
TEND=10. koha përfundimtare
VMAG=SQRT(VX**2+VY**2+VZ**2)
PRINT 101,TIM,X,Y,Z.VMAG
5 AX = QTOM *((VY*BZ - VZ*BY) + EX) AY = QTOM *((VZ*BX - VX*BZ) + EY) AZ = QTOM *((VX*BY - VY*BX) + EZ)
llogaritja e parë e nxitimit
182
IF (TIM) 10,10,20 10 VX = VX + AX*DT / 2. VY = VY + AY*DT / 2. VZ = VZ + AZ*DT / 2.
gjysëm-hapi fillestar
GOTO 30
20 V1X = VX + AX*DT / 2. V1Y = VY + AY*DT / 2. V1Z = VZ + AZ*DT / 2.
vlerësimi i përkohëshëm i shpejtësisë
AX = QTOM*((V1Y*BZ - V1Z*BY) + EX) AY = QTOM*((V1Z*BX - V1X*BZ) + EX) AZ = QTOM*((V1X*BY - V1Y*BZ) + EZ)
llogaritja e dytë e nxitimit
VX = VX + AX*DT VY = VY + AY*DT VZ = VZ + AZ*DT
shpejtësia e re
30 X = X + VX*DT Y = Y + VY*DT Z = Z + VZ*DT
pozicioni i ri
TIM=TIM+DT koha e re
IF (ABS(TIM - PINT) - DT / 2. ) 40,40,50 40 VMAG = SQRT(V1X**2 + V1Y**2 + V1Z**2) PRINT 101, TIM, X, Y, Z, VMAG PINT = PINT +1.
grupi i printimit
50 IF (TIM-TEND) 5,60,60 rikthim tek hapi tjetër t
60 STOP
101 FORMAT(1X,5F10.5)
END
Problema
1. Llogaritni forcën totale mbi njësinë e ngarkesës pozitive në fushat e mëposhtëme.
Zgjidhni disa pika të ndryshme në hapësirë për llogaritjen e forcës
a. E=0, B uniforme në drejtimin +Z; shpejtësia e ngarkesës v=1 paralel me boshtin +X
dhe v=1 paralel me boshtin +Z
b. E që krijohet nga një ngarkesë pozitive njësi e vendosur në origjinë, ndërsa B dhe
v janë si në pikën a.
2. Shkruajmë forcën mbi një element me gjatësi dl e me rrymë I në formën :
dF=I dl B
a. Llogaritni forcën totale mbi një spirë katërkëndëshe (me brinja 1 dhe 2 m) që
shtrihet në planin xy dhe ka rrymë prej 1 A. Fusha mgnetike është uniforme 1 T
paralel me boshtin +z. Pastaj mereni B paralel me boshtin +x dhe përsëri llogaritni
forcën.
b. Një spirë përcjellse rrethore (me rreze 1 m) është futur në fushë magnetike uniforme
B paralel me boshtin +z si në pikën a. Spira mund të rrotullohet përreth diametrit
paralel me boshtin +x. Llogaritni forcën totale mbi spirë për kohë të ndryshme gjatë
një rrotullimi të plotë.
3. Shkruani një program që llogarit integralin e Bdl përgjatë segmenteve drejtvizorë paralel
me boshtet kordinative. Duke përdorur këtë program dhe programin për llogaritjen e fushës
magnetike të provohet Ligji i Amperit për situatat e meposhtëme:
183
a. Fusha mganetike është krijuar nga një përcjellës i drejtë me rrymë 1 A.
b. Fusha magnetike është krijuar nga një spirë rrethore me rrymë 1 A.
c. Fusha magnetike është krijuar nga një shpërndarje rryme çfardo që e zgjidhni vetë. A
mund të provohet një ligj si ai i Amperit me anë te kompjuterit?
4. a. Shkruani një program që përdor ligjin e Bio-Savarit për të llogaritur fushën e krijuar nga
një përcjellës i drejtë me gjatësi l paralel me boshtin x , në një pikë çfardo.
b. Rishkruajeni programin si një subrutinë. përcjellsin e drejtë merreni të shtrirë midis dy
pikave çfardo (x1 , y1 , z1 ) dhe (x2 ,y2 ,z2 ) që jepen saherë thirret subrutina.
c. Përdoreni subrutinën e mësipërme për të llogaritur fushën e një spire katërkëndëshe në
disa pika.
d. Duke zhvilluar këtë procedurë llogaritni fushën e krijuar nga një solenoid i shkurtët me
seksion katërkëndësh këndrejtë,
5. a. Duke përdorur idenë e spirës rrethore , shkruani një program që llogarit fushën magnetike
të një kuadripoli i formuar nga spira.
b. Fushat magnetike të kuadripoleve përdoren në kontrollin dhe drejtimin e tufës së
grimcave të ngarkuara.Llogaritni trjektoret e disa grimcave të ngarkuara në një fushë të
tillë.
6. Ligji i Faradeit lidh f.e.m. në një qark me shpejtësinë e ndryshimit të fluksit magnetik në
sipërfaqen që kufizon qarku.Konceptet që lidhen me ligjin e Faradeit janë induktiviteti
reciprok dhe auto induktiviteti.
a. Supozojmë se rryma në një spirë ndryshon sipas ligjit I=I0 sin t. Duke përdorur
subrutinën e gjetjes së fushës magnetike llogaritni fushën diku në çdo kohë t .
b. Vendosni një spirë të dytë me rreze tjetër dhe me orintim sipas fushës së spirës së parë.
Ndajeni seksionin tërthor të spirës në një numër pjesësh dhe llogaritni fluksin ne spirë
sipas:
B i
i
N
1
A i në çdo moment kohe.
c. Gjeni f.e.m. në spirën e mësipërme duke llogaritur derivatin kohor të fluksit të llogaritur
në pikën b. Si varet f.e.m nga orientimi relativ i dy spirave? Për disa pozicione dhe
orientime gjeni induktivitetin reciprok M =/I.
d. Mbajmë rrymën në spirë të pandryshuar dhe largojeni spirën e dytë nga spira e parë me
shpejtësi konstante në drejtime të ndryshme dhe për orientime relative të ndryshme.
Llogaritni shpejtësinë e ndryshimit të fluksit në spirën e dytë dhe f.e.m. Kjo është f.e.m
e lëvizjes , si varet ajo nga shpejtësia e zhvendosjes së spirës?
e. Kur rryma është konstante në spirën e parë, rrotullojeni spirën e dytë dhe llogaritni f.e.m
Si varet ajo nga frekuenca e rrotullimit? Në këtë bazohet puna e motorit gjenerator.
7. Mendoni ndonjë problem të vështrë të magnetostatikës që mund ta sqaroni me anë të
kompjuterit duke hartuar edhe programin përkatës.
3.10 Relativiteti i vektorëve E dhe B
Sipas parimit të relativitetit të gjithë sistemet inercialë të referimit janë ekuivalentë. Në një
sistem referimi ku një ngarkesë provë është në prehje fusha magnetostatike nuk krijon forcë
mbi të (forca e Lorencit F=q(vqB) është zero kur vq është zero). Në sistemin laboratorik ku
ngarkesa është në lëvizje , forca nuk është zero.Sipas parimit të relativitetit rezultati duhet të
jetë i njëjtë në të dy sistemet e referimit, por ajo që në sistemin laboratorik çfaqet si fushë
magnetike në sistemin ku ngarkesa prehet çfaqet si fushë elektrike. Në teorinë speciale të
relativiteti jepen lidhjet e vektorëve të fushave E dhe B kur kalojmë nga një sistem inercial
184
referimi në një tjetër. Ato bazohen në transformimet e Lorencit për kordinatat dhe kohën për
dy sisteme inercialë S dhe S’ që lëvizin ndaj njeri tjetrit me shpejtësi v :
x’=(x - vt) dhe inversi x=(x’
+ vt)
y’=y y=y
’
z’=z z=z
’
t' (t
vx
c2) t t
vx
c ( '
')
2
ku
1
1 2 2v c/ , boshtet x dhe x
’ janë zgjedhur paralel, t dhe t
’ janë zgjedhur të jenë
zero kur origjinat e të dy sistemeve përputhen.
Një nga rjedhimet e transformimeve të Lorencit është shkurtimi Lorencian, pra që një
shufër me gjatësi L0 në prehje në sistemin S’ , paralel me boshtin x (drejtimi i lëvizjes së
sistemeve ndaj njeri tjetrit), rezulton që në sistemin S ka gjatësinë : L L v c 0
2 21 / :
L x xx x
Lv
c
( )
( )' '
2 1
2 1
0
2
21
Vrojtuesi në prehje në sistemin S’, që është sistemi ku shufra prehet, do të thotë që skajet e
shufrës janë matur në kohë të ndryshme t’ . Këto kohë (për vrojtuesin në prehje në lidhje me
shufrën ), janë:
tt vx
ct
t vx
c2
2
2 1
1
2
'
'
'
'
;
Më poshtë jepet një program i shkurtër (LOROBS) që llogarit pozicionet e pikave që lëvizin ,
pozicionet sipas boshteve pingul me lëvizjen (boshtet y dhe z) nuk ndryshonjë në dy sistemet e
referimit.
Programi LOROBS.BAS Vrojtuesi relativist Lorencian
10 C=1 shpejtësia e dritës
20 V=.9*C shpejtësia relative e sistemeve
30 G=1/SQR(1-V*V/(C*C)) gama
40 INPUT T koha e vrojtimit
50 FOR I=1 TO 6
60 READ X1,Y1,Z170 DATA -1,-1,0,1,-1,0,1,0,080 DATA 1,1,0,-1,1,0,-1,0,0
Kordinatat e pikave të objektit
90 T1=T/G-V*X1/(C*C) kaha në sistemin e referimit të objektit
100 X=G*(X1+V*T1) Transformimi i Lorencit për x
110 PRINT X,Y1,Z1
120 NEXT I
130 RESTORE
140 GOTO 40 rikthim për një kohë tjetër observimi
150 END
Programi LOROBS.FOR Vrojtuesi relativist Lorencian
DIMENSION X(6,3)
DATA C,V/1.,.9/ shpejtësia e dritës , shpejtësia relative e sistemeve
GAM=1/SQRT(1.-V*V/(C*C)) gama
185
DATA X(1,1),X(1,2),X(1,3) / -1.,-1.,0./ DATA X(2,1),X(2,2),X(2,3) / 1.,-1.,0./ DATA X(3,1),X(3,2),X(3,3) / 1.,0.,0./ DATA X(4,1),X(4,2),X(4,3) / 1.,1.,0./ DATA X(5,1),X(5,2),X(5,3) / -1.,1.,0./ DATA X(6,1),X(6,2),X(6,3) / -1.,0.,0./
Kordinatat e pikave të objektit
5 READ(5,100)T Koha e vrojtimit
IF (T-999.) 7,20,20
7 DO 10 I=1,6
TPRIM=T/GAM-V*X(I,1)/(C*C) kaha në sistemin e referimit të objektit
XOBS=GAM*(X(I,1)+V*TPRIM) Transformimi i Lorencit për x
10 PRINT 101,XOBS,X(I,2),X(I,3)
GOTO 5 rikthim për një kohë tjetër observimi
100 FORMAT(F10.4)
101 FORMAT(3E12.4)
20 STOP
END
Një objekt (shufër) që lëviz prej -x (larg) deri +x (larg) dhe shikohet nga një vrojtues lokal i
vendosur p.sh. në origjinën e kordinatave do të duket në fillim më i gjatë se gjatësia e prehjes
e objektit dhe më i shkurtër se gjatësia e shkurtuar lorenciane në fund. Drita që arrin në sytë e
vrojtusit vjen nga pika të ndryshme të shufrës në momente kohe të ndryshme për dy arsye: Së
pari ,për arsye të vetë transformimit të Lorencit; së dyti, duhet kohë e ndryshme që drita nga
pikat e ndryshme të objektit të arrijë në sy. Le të jetë t koha në të cilën drita arrin sytë nga
pika e dukëshme (x,y,z) në sistemin S dhe t’ e (x
’ , y’ , z
’ ) koha dhe kordinatat e pikës së
objektit në sistemin S’ (sistemi ku objekti prehet), atëhere nga transformimet e Lorencit kemi:
tx y z
ct
vx
cx x vt y y z z
2 2 2
2 2 '
'' ' ' ', , ,
Duke zëvëndësuar barazimin e dytë tek barazimi i parë ,gjendet kuadratik për t’ :
c2 (t
’)2 - 2tc2
(t’) + [c
2 t
2 -2tvx
’ - (x
’)2 - (y
’)2 - (z
’)2 ] = 0 . Ndërsa duke zëvëndësuar në këtë
ekuacion t’=(x/-x’)/v, gjendet ekuacioni kuadratik për x :
x2/2
-2(x/+vt).x+ x’2/2
+ 2.v.t.x’/ + v2.t
2 +v
2/c
2 .[-y’
2 + z’
2 ]=0 ,
i cili zgjidhet me formulën kuadratike . Programi LOCOBS kryen këto llogaritje.
Programi LOCOBS.BAS Vrojtuesi lokal relativist
100 C=1 shpejtësia e dritës
110 V=.9*C shpejtësia relative e sistemeve
120 G=1/SQR(1-V*V/(C*C)) gama
130 PRINT “KOHA KUR SYRI SHIKON?”
140 INPUT T koha e vrojtimit
150 FOR I=1 TO 6
160 READ X1,Y1, Z1170 DATA -1,-1,0,1,-1,0,1,0,0180 DATA 1,1,0,-1,1,0,-1,0,0
Kordinatat e pikave të objektit
186
190 A0 1/ (G *G)200 B0 2*(X1/ G V*T)210 C0 V^2*T^2 + X1^2 / G^2 + 2*X1*V*T / G220 C0 = C0- V^2*(Y1^2 + Z1^2) / C^2
koeficentët e formulës kuadratike
230 X=(-B0-SQR(B0^2-4*A0*C0))/(2*A0) kordinata e vrojtuar x
240 PRINT X,Y1,Z1
250 NEXT I
260 RESTORE
270 GOTO 130 rikthim për një kohë tjetër observimi
280 END
Programi LOCOBS.FOR Vrojtuesi lokal relativist
DIMENSION X(6,3)
DATA C,V/1.,.9/ shpejtësia e dritës , shpejtësia relative e sistemeve
GAM=1/SQRT(1.-V*V/(C*C)) gama
ACOE=1./(GAM*GAM) koeficenti kuadratik
DATA X(1,1),X(1,2),X(1,3) / -1.,-1.,0./ DATA X(2,1),X(2,2),X(2,3) / 1.,-1.,0./ DATA X(3,1),X(3,2),X(3,3) / 1.,0.,0./ DATA X(4,1),X(4,2),X(4,3) / 1.,1.,0./ DATA X(5,1),X(5,2),X(5,3) / -1.,1.,0./ DATA X(6,1),X(6,2),X(6,3) / -1.,0.,0./
Kordinatat e pikave të objektit
5 READ(5,100)T Koha e vrojtimit
IF (T-999.) 7,20,20
7 DO 10 I=1,6 cikli nëpër pikat e objektit
BCOE 2*(X(I,1) / GAM V*T) CCOE V**2*T**2 + X(I,1) **2 / GAM**2 + 2.*X(I,1) *V*T / GAM CCOE = CCOE - V**2*((X(I,2)**2 + X(I,3) **2) / C**2
koeficentët e formulës kuadratike
XOBS=(-BCOE-SQRT(BCOE**2-4.*ACOE*CCOE))/(2.*ACOE kordinata e
vrojtuar x
10 PRINT 101,XOBS,X(I,2),X(I,3)
GOTO 5 rikthim për një kohë tjetër observimi
100 FORMAT(F10.4)
101 FORMAT(3E12.4)
20 STOP
END
Le të shqyrtojmë tani tablonë e vijave të fushës së një ngarkese pikësore të vrojtuar nga një
vrojues Lorencian që lëviz ndaj ngarkesës. Vizatimin e vijave të fushës në sistemin e referimit
të prehjes e kemi bërë me programin EV. Për çdo pikë të vijës së fushës (ose ekuipotenciale),
transformojmë kordinatat për vrojtuesin që lëviz paralel me boshtin x me shpejtësi v . Në këtë
situatë ne njohim pozicionin në një sistem referimi dhe kohën në sistemin tjetër, pra problemi
sillet në shkurtimin Lorencian të kordinatës x. Figura 3.8 tregon vijat e fushës dhe një
ekuipotencial ashtu siç vrojtohen nga vrojtuesi që lëviz me shpejtësi 0.9 c. Në sistemin e
referimit ku ngarkesa është në prehje vijat e fushës janë shpërndarë simetrikisht (të ndara me
të njëjtin kënd) dhe ekuipotenciali është rreth , pra konturet E dhe V janë pingul. Ndërsa në
187
sistemin e referimit ndaj të cilit ngarkesa lëviz me shpejtësi 0.9 c vijat e fushës janë më të
ngjeshura në drejtimin pingul me lëvizjen (megjithëse janë radiale). Konturi ekuipotencial
është eliptik dhe jo më pingul me vijat e fushës.Fakti që konturi nuk është më pingul me vijat
e fushës elektrike të vrojtuar tregon se një fushë tjetër ekziston që në një farë mënyre
Figura 3.8 Vijat e fushës dhe një kontur
ekuipotencial ashtu siç duken nga një vrojtues
Lorencian që lëviz në drejtimin +x me shpejtësi
0.9 c
ekuilibron komponenten tangeciale të forcës që shkakton fusha elektrike E. Kjo fushë shtesë
është një fushë magnetike B. Pra ndërsa për vrojtuesin në prehje ndaj ngarkesës fusha është
thjeshtë elektrostatike , për vrojtuesin ku ngarkesa lëviz fusha është elektromagnetike,
Vektorët E dhe B janë relativë. Tablo të ngjashme mund të merren edhe për shpërndarje të
tjera të ngarkesave duke përdorur programin EV dhe transformimet e Lorencit.
Në rastet më të përgjithëshme kur drejtimi i lëvizjes së sistemeve të referimit është
çfardo mund të veprohet në mënyrë analoge duke futur tek transformimet e Lorencit tre
përbërëse të shpejtësisë (vx , vy , vz ) dhe ngjeshja Lorenciane e vijave të fushës bëhet në të tre
drejtimet.
Problema
1. a. Shkruani një program që llogarit shkurtimin Lorencian të gjatësisë paralel me boshtin
x dhe nuk ndryshon përmasat në drejtimet y dhe z.
b. Shqyrtojmë një sferë që lëviz me 99% të shpejtësisë së dritës. Duke gjetur pikat
në vijat e paraleleve dhe meridianeve në sistemin e referimit ku sfera është në prehje
dhe duke përdorur programin e pikës a. , vizatoni se si vrojtohet sfera nga një vrojtues
Lorencian në sistemin e referimit ku sfera lëviz.
c. Çfarë efekti tjetër duhet të merni në konsideratë për të vizatuar se si çfaqet sfera për
një vrojtues lokal në sistemin e referimit ku sfera lëviz?
2. a. Shkruani një program që llogarit ngjeshjen Lorenciane të gjatësive paralel me boshtin
x dhe nuk i ndryshon përmasat sipas y dhe z. Çfarë situate fizike i korespondon kjo?
b. Shqyrtojmë një ngarkesë që lëviz me 99% të shpejtësisë së dritës . Duke llogaritur
pikat mbi vija fushe dhe ekuipotenciale në sistemin e prehjes së ngarkesës dhe duke
përdorur programin e transformimit të këtyre pikave në sistemin e referimit
laboratorik, plotoni vijat e fushës dhe ekuipotencialet siç duken nga vrojtuesi Lorencian
i sistemit laboratorik.
c. Shpjegoni lidhjen midis plotimit tuaj dhe konceptit të fushës magnetike.
76
KAPITULLI I KATERT
OPTIKA GJEOMETRIKE
4.1 Hyrje
Optika gjeometrike ka të bëjë me thjerrzat (lentet) dhe pasqyrat dhe është e bazuar në
trasimin e rrezeve të dritës nëpër mjedise të ndryshme. Ne do ta fillojmë këtë kapitull me
përdorimin e kompjuterit në zgjidhjen e problemave të thjeshta me pasqyra e thjerrza të holla.
Duke u praktikuar me këto shembuj të thjeshtë do të kuptoni më mirë shembëllimet virtuale
dhe objektet virtuale. Në vënd të idealizimit të rrezeve paraksiale dhe lenteve të holla, ju
mund shqyrtoni edhe lente të trasha ose rreze larg boshtit . Në të gjithë shembujt ne do të
mbështetemi në këto formula kryesore:
1. Rrezja rënëse, e pasqyruar dhe e thyer ndodhen në një plan (i cili përmban gjithashtu
normalen mbi sipërfaqen ndarëse në pikën e ndërprerjes).
2. Pasqyrimi: këndi i rënies 1 = këndin e pasqyrimit 2 .
3. Thyerja: n1 sin 1 = n2 sin 2 .
4. Pasqyrimi i plotë i brëndëshëm : sin kritike = n1 / n2 .
5. Këndi i polarizimit : tg polaizim = n2 / n1 .
6.Formula e lentes së hollë ose pasqyrës : 1/a1 + 1/a2 = 1/f , ku a1 ëhtë largësia e objektit ,
a2 është largësia e shëmbëllimit , f është largësia e vatrës (largësia fokale) (janë të gjitha
madhësi me shenja).
7. Për lentet e holla : 1/f = (n - 1) (1/r1 - 1/r2 ) .
8. Pasqyra sferike : f = r/2
4.2 Lentet dhe pasqyrat sferike
Si shembull i parë është zgjedhur zbatimi i formulave të lenteve të holla ose pasqyrave.
Programi LENMIR kërkon si të dhëna largësinë fokale, pozicionin dhe lartësinë e objektit dhe
llogarit kordinatat e shëmbëllimit (pozicionin dhe lartësinë).
Programi LENMIR.BAS
10 REM PROGRAMI LLOGARIT POZICIONIN DHE LARTESINE E SHEMBELLIMIT
NGA LENTET OSE PASQYRAT
100 PRINT “PASQYRE APO LENTE”;
110 INPUT M$
120 IF M$=“PASQYRE” THEN 240
130 PRINT “FUT LARGESINE FOKALE , NEPERMJET RREZEVE APO NDRYSHE (PO
APO JO)”;
140 INPUT Y$
150 IF Y$=“PO” THEN 210
160 PRINT “TREGUESI i THYERJES, RREZJA E SIPERFAQE SE PARE & RREZJA E
SIPERFAQES SE DYTE”;
170 INPUT N,R1,R2
180 F=1/((N-1)*(1/R1-1/R2))
190 PRINT “LARGESIA FOKALE=“;F;”cm.”
200 GOTO 230
77
210 PRINT “LARGESIA FOKALE E LENTES”;
220 INPUT F
230 GOTO 280
240 PRINT “RREZJA E KURBATURES”;
250 INPUT R1
260 F=R1/2
270 PRINT “LARGESIA FOKALE =“;F;”cm.”
280 PRINT “POZICIONI DHE LARTESIA E OBJEKTIT(999,999 PER TA
PERFUNDUAR)”;
290 INPUT X5,Y5
300 IF (X5-999)*(Y5-999)=0 THEN 410
310 IF X5><F THEN 340
320 PRINT “NUK MUND TE LLOGARIT RASTET INFINIT.”
330 GOTO 280
340 X6=1/(1/F-1/X5)
350 M=-X6/X5
360 Y6=Y5*M
370 PRINT “POZICIONI i SHEMBELLIMIT DHE LARTESIA: “;X6;”,”;Y6;”cm.”
380 PRINT “ZMADHIMI:”;M
390 PRINT
400 GOTO 280
410 END
Programi LENMIR.FOR Lentja e hollë dhe pasqyra
DATA ANLEN,R1LEN,R2LEN/1.5,10.,-10./ tregusi i thyerjes,rrezet e sipërfaqeve
DATA RMIR/10./ rrezja e pasqyrës
FLEN=1./((ANLEN-1.)*(1./R1LEN-1./R2LEN)) largësia fokale e lentes
FMIR=RMIR/2. largësia fokale e pasqyrës
5 READ(5,100) XOBJ,YOBJ pozicioni dhe lartësia e objektit
IF(XOBJ-999.) 10,50,10
10 PRINT 101,XOBJ,YOBJ
XLIM=1./(1./FLEN-1./XOBJ) formula e lentes
ALMAG=XLIM/XOBJ zmadhimi
YLIM=YOBJ*ALMAG
XMIM=1./(1./FMIR-1./XOBJ) formula e pasqyrës
AMMAG=XMIM/XOBJ zmadhimi
YMIM=YOBJ*AMMAG
PRINT 102,FMIR,XMIM,YMIM,AMMAG
PRINT 102,FNEN,XLIM,YLIM,ALMAG
GOTO 5
50 STOP
100 FORMAT(2F10.4)
101 FORMAT(1X,2E12.4)
102 FORMAT(1X,4E12.4)
END
Programi THLEN trason rrezen nëpër një seri mjedisesh me trgues thyerje të ndryshëm.
Mjediset janë të ndara me sipërfaqe sferike që e kanë qendrën mbi boshtin x . Si të dhëna për
programin do futni pikën nisëse të rrezes dhe këndin që formon kjo rreze me boshtin x;
programi llogarit pikprerjen e rrezes me sipërfaqen e parë. Duke përdorur këndin midis
78
normales në sipërfaqe dhe rrezes rënëse gjendet nga ligji i thyerjes këndi i thyerjes në mjedisin
tjetër; pastaj llogaritet këndi që formon rrezja e thyer me boshtin x dhe procesi përsëritet.
Programi është kufizuar për një renditje të caktuar të sipërfaqeve ndarëse sferike, por edhe ky
kufizim mund të hiqet dhe ta bëni programin më të përgjithëshëm.
Programi THLEN.BAS Trasimi i rrezeve nëpër lentet e trasha
100 PRINT “SA ZONA TW NDRYSHME KENI?”;
110 INPUT N0
115 DIM N(N0),X(N0),R(N0)
120 FOR I=1 TO N0-1
130 PRINT “TREGUESI I THYERJES PER ZONEN”;I;
140 INPUT N(I)
150 PRINT “POZ. I KULMIT & RREZJA E SIPERFAQES MIDIS ZONAVE”;I;”&”;I+1
160 INPUT X(I),R(I)
170 NEXT I
180 PRINT “TREGUESI I THYERJES I ZONES SE FUNDIT”;
190 INPUT N(N0)
200 I=0
210 PRINT “Y I BURIMIT,KENDI I RREZES ME BOSHTIN (GRADE)”;
220 INPUT Y0,A
230 A=3.14159*A/180
240 X1 = 0250 Y1 = Y0260 PRINT X1, Y1
pika fillestare mbi rreze
270 I=I+1
280 IF I=N0 THEN 650
290 T=TAN(A) pjerrësia e rrezes
300 RR=R(I)
310 X7=X(I)+RR
320 E=T*T+1
330 F=2*(Y0*T-X7-X1)
340 G=Y0*Y0+X7*X7-RR*RR+X1*X1-2*Y0*X1
350 F1=F*F-4*E*G
E,F,G janë koeficientët në
ekuacionin kuadratik për gjetjen e pikprerjes së rrezes me sipërfaqen tjetër
360 IF F1>0 THEN 400
370 PRINT “MUNGON SIPERFAQJA TJETER”
380 PRINT
390 GOTO 200
400 IF RR<0 THEN 430
410 X0=(-F+SQR(F1))/(2*E)
420 GOTO 440
430 X0=(-F+SQR(F1))/(2*E) x i pikprerjes së rrezes me sipërfaqen
440 Y0=Y0+T*(X0-X1) y i pikprerjes së rrezes me sipërfaqen
450 X1=X0
460 Y1=Y0
470 PRINT X1,Y1 pika tjetër mbi rreze
480 A1=ATN(Y0/(X7-X0)) këndi i rrezes me boshtin x
490 A3=A1
79
500 A0=A+A3 këndi i rrezes me normalen në sipërfaqe
510 FOR J=1 TO 4
520 IF ABS(A0)-J*3.14159/2>0 THEN 550 në cilin kuadrant bie këndi
530 J0=J-1
540 GOTO 560
550 NEXT J
560 S1=SIN(A0)
570 S2=N(I)*S1/N(I+1) ligji i thyerjes
580 IF ABS(S2)<1 THEN 610
590 PRINT “PASQYRIM I PLOTE I BRENDESHEM”
600 GOTO 200
610 A2 = ATN(S2 / SQR(1-S2*S2))620 A2 = A2 -SGN(A0) *J0*3.14159 / 2630 A = A2 - A3
gjen këndin e ri
640 GOTO 270
650 Y1 = Y1+ TAN(A) *(10- X1)660 X1 = 10670 PRINT X1, Y1
gjen pikën e fundit mbi rreze
680 GOTO 200
690 END
Programi THLEN.FOR Trasimi i rrezeve nëpër lentet e trasha
DIMENSION AN(3),VERT(2),RAD(2)
DATA AN(1),VERT(1),RAD(1)/1.,-5.,3./
DATA AN(2),VERT(2),RAD(2),AN(3)/2.,5.,-3.,1./
10 REDA(5,101) Y,ANG pika fillestare dhe këndi i rrezes
IF (Y.EQ.9999.) GOTO 70
ANG=3.14158*ANG/180.
X=0.
PRINT 104,X,Y pika e parë mbi rreze
TANANG=SIN(ANG)/COS(ANG)
DO 60 I=2,3,1
XCENT=VERT(I-1)+RAD(I-1)
ASQR=TANANG**2+1.
BSQR=2.*(Y*TANANG-XCENT-X*TANANG**2)
CSQR=Y**2+XCENT**2-RAD(I-1)**2+(TANANG*X)**2-2.*Y*TANANG*X
DSQR=BSQR**2-4.*ASQR*CSQR
IF (DSQR) 20,30,30
20 PRINT 102
GOTO 10
30 XTEMP=X
X=(-BSQR-(RAD(I-1)/ABS(RAD(I-1))*SQRT(DSQR))/(2.*ASQR)
Y=Y+TANANG*(X-XTEMP)
PRIMT 104,X,Y
ANGTOX=ATAN(Y/ABS(XCENT-X))
ANGTONANGTOX+(RAD(I-1)/ABS(RAD(I-1)))*ANG
SINNEW=AN((I-1)*SIN(ANGTON)/AN(1)
IF (ABS(SINNEW)-1.) 50,50,40
40 PRINT 103
GOTO 10
80
50 ANG=ATAN(SINNEW/SQRT(1.-SINNEW**2))
ANG=-(RAD(I-1)/ABS(RAD(I-1)))*(ANGTOX-ANG)
60 TANANG=SIN(ANG)/COS(ANG)
Y=Y+TANANG*(10.-X)
X=10.
PRINT 104,X,Y
GOTO 10
101 FORMAT(2F5.2)
102 FORMAT(1X,27HMUNGON SIPERFAQJA E LENTES.)
103 FORMAT(1X,30PASQYRIM I PLOTE I BRENDESHEM)
104 FORMAT(1X,2E15.5)
70 STOP
END
Me anë të këtij programi ju mund edhe të vizualizoni aberracionet e sistemit të lenteve. P.sh.
aberracioni sferik mund të duket duke plotuar rreze te ndryshme që bien paralel me boshtin
optik, siç tregohet në figurën 4.1 për një lente dopjo konvekse , ku rrezet paralele që janë larg
boshtit fokusohen në pika të ndryshme nga fokusi. Disa rreze që bien mbi sipërfaqen e dytë
me kënde të mëdhenj pësojnë pasqyrim të plotë të brëndëshëm. Në figurën 4.2 tregohen rrezet
që kalojnë nëpër një lente dopjo konkave. Në qoftë se lentet do të ishin të holla dhe rrezet
paraksiale, rrezet që dalin nga lentja do të dukeshin sikur divergjojnë nga një pikë , vatra. Për
lentet e trasha , rrezet duket sikur dalin nga pika të ndryshme.
Figura 4.1 Trasimi i rrezeve nëpër lenten e
trashë bikonvekse. Rrezet paraksiale priten
në vatër, rezet larg boshtit çfaqin
aberracion dhe rrezet shumë larg pësojnë
reflekrim të plotë të brëndëshëm.
Figura 4.2 Trasimi rrezeve nëpër lenten
bikonkave.Rrezet paraksiale duket sikur
divergjojnë nga vatra. Rrezet më larg
çfaqin aberracion dhe rrezet shumë larg
pësojnë reflektim të plotë të brëndëshëm
Llogaritje të ngjashme , duke përdorur metodën e trasimit të rrezeve , mund të kryhen edhe
për pasqyrat [shih programin MIRROR].
Programi MIRROR.BAS Pasqyrimi i rrezeve nga pasqyra sferike
100 PRINT “RREZJA, RREZJA E KURBATURWS”;
110 INPUT R,R1
81
120 PRINT “LARGESIA E BURIMIT NGA PASQYRA, LARTESIA MBI BOSHT”;
130 INPUT L,L1
140 PRINT “# I HAPAVE NGA “;-R;”NE “;R;
150 INPUT S
160 FOR I=-R TO R STEP 2*R/S hap pas hapi nëpër pasqyrë
170 X1= L180 Y1= L1190 PRINT X1,Y1
pika fillestare e rrezes(origjina e boshtit x është kulmi i pasqyrës)
200 Y1=I kordinata y e pikës në pasqyrë ku bie rrezja
210 X0=R1-SQR(R1*R1-I*I) kordinata x e pikës në pasqyrë ku bie rrezja
220 X1=X0
230 PRINT X1,Y1
240 T1=ATN(I/(R1-X0)) këndi që formon normalja në pasqyrë me boshtin x
250 T2=ATN((I-L1)/(L-X0)) këndi që formon rrezja rënëse me boshtin x
260 T3=-(2*T1-T2) këndi që formon rrezja e pasqyruar me boshtin x
270 T4=TAN(T3) pjerrësia e rrezes së pasqyruar
280 X1=10 pika më e fundit e rrezes së pasqyruar
290 Y1=1+T4*(X1-X0)
300 PRINT X1,Y1
310 PRINT
320 NEXT I
330 END
Programi MIRROR.FOR Pasqyrimi nga pasqyra sferike
DATA RAD,RADCU/3.,5./ rrezja,rrezja e kurbaturës
DATA XSOUR,YSOUR,NSTEP/10.,1.,8/ pika burim,numri i rrezeve
DO 60 I=1,NSTEP+1 hapi nëpër pasqyrë
YMIR=-RAD+(I-1)*2.*RAD/NSTEP
X=XMIR pika fillestare e rrezes
Y=YSOUR
PRINT 100,X,Y
XMIR=RADCU-SQRT(RADCU**2-YMIR**2) pika ku bie rrezja në Pasq.
X=XMIR
PRINT 100,X,YMIR
ATN1=ATAN2(YMIR,RADCU-X)
ATN2=ATAN2(YMIR-YSOUR,XSOUR-X)
ATN3=-(2.*ATN1-ATN2)
TN3=SIN(ATN3)/COS(ATN3) pjerrësia e rrezes së pasqyruar
X=10. pika më e largët në rreze
Y=YMIR+TN3*(X-XMIR)
60 PRINT 100,X,Y
STOP
100 FORMAT(1X,2F10.4)
END
Figura 4.3 tregon rrezet e pasqyruara nga pasqyra sferike. në të mund të shikoni efektin e
aberracionit sferik. Njëkohësisht, për lentet dhe pasqyrat ju mund të tregoni që duke zgjedhur
82
me formë të përshtatëshme sipërfaqet mund të arrijmë që për burimin pikësor të merret një
pikprerje e rrezeve të thyera(ose të pasqyruara) pra të zhduket aberacioni sferik.
Figura 4.3 Trasimi i rrezeve për një pasqyrë
sferike. Rrezja e pasqyruar formon me
normalen në siërfaqen e pasqyrës të njëjtin
kënd. Janë treguar rrugët e disa rrezeve që
dalin nga një burim pikësor.
4.3 Trasimi i rrezeve në një mjedis të vazhduar
Metoda e trasimit të rrezeve mund të shtrihet edhe në situatat kur treguesi i thyerjes është
funksion i vazhduar i pozicionit. Situata të tilla ndodhin gjatë mirazheve dhe fenomeneve të
lidhura me to. Kur Toka është më e nxehtë se ajri, një shtresë ajri që është afër Tokës ka
tregues thyerje më të vogël se shtresat më lart dhe rrezet e dritës përkulen gjatë hyrjes në këtë
shtresë të rralluar, disa nga këto rreze pësojnë pasqyrim total të brendëshëm dhe kthehen
përsëri lart në ajër. Këto rreze krijojnë shëmbëllime (imazhe) virtuale të objekteve nga vijnë ,
ato janë të përmbysura dhe duken si poshtë Tokës. Mirazhet tipike të rrugës janë imazhet e
qiellit.
Programi MRAG kryen llogaritjet e rrugës që ndjek rrezja në një mjedis ku treguesi i
thyerjes n është funksion i lartësisë y, n(y), duke përdorur ligjin e thyerjes në çdo pikë të
rrezes.Rrezja ndiqet hap pas hapi. Po të lëvizim me një distancë ds përgjatë rrezes (shih
figurën 4.4) nga ligji i thyerjes kemi :
nth sin th = nr sin r ose ndx
dsn
dx
dsth
th
r
r
kështu që dx=dsn
n
dx
ds
r
th r
dy ds dx
22
Kështu arrijmë në pozicionin e ri (x+dx, y+dy). Metoda na kujton programin për zgjidhjen e
ekuacionit F=ma ose programin për plotimin e vijave të fushës. Meqë nuk e dimë nth atë
mund ta gjejmë duke konsideruar që ndryshimi i n në këtë hap është i njëjtë me hapin e
mëparëshëm ose mund të përdorim procedurën e gjysëm-hapit për të rritur saktësinë. Figura
4.5 tregon disa rreze prej një objekti. Treguesi i thyerjes në këtë figurë është një model i
ndryshimit të n mbi Tokën e nxehtë. Disa rreze arrijnë tek vrojtuesi në të djathtë të figurës
drejtpërdrejtë nga objekti; rreze të tjera janë përkulur dhe duket sikur vijnë nga një pikë poshtë
tokës. Megjithëse nga ana cilësore rruga e rrezeve nuk varet nga formula e saktë se si
ndryshon n me latësinë, rruga e saktë e rrezeve dhe ku çfaqet mirazhi varet shumë nga modeli
i n(y). fenomeni ka analogji edhe me përhapjen e radiovalëve nëpër jonosferë.
83
Figura 4.4 Gjeometria për ligjin e thyerjes
dhe llogaritjen e mirazhit. Rrezja vjen nga
mjedisi me indeks r (rënëse) dhe del në
mjedisin me indeks th (thyer).
Figura 4.5 Trasimi i rrezeve nëpër një
zonë mirazhi. Indeksi i thyerjes ndryshon
me lartësinë mbi Tokën e nxehtë. Rrezet
janë përkulur në mënyrë të tillë që që një
vrojtues sheh edhe objektin edhe një
shëmbëllim të objektit të përmbysur nën
Tokë.
Programi MRAG.BAS Trasimi i rrezeve të mirazhit
100 PRINT “PIKA FILLESTARE (X,Y) DHE KENDI I RREZES ME BOSHTIN X
(GRADE)”;
110 INPUT X1,Y1,T
120 T=90-T këndi me vertikalen
130 T=3.14159*T/180
140 I=0
150 D3=SIN(T) x/s fillestar
160 D2=COS(T) y/s fillestar
170 S9=SGN(T)
180 PRINT “X”,”Y”
190 I=I+1
200 D1=.1 hapi s
210 N0=N
220 Y=Y1+D2*D1/2 lartësia me gjysëm-hapi
230 N=2
240 IF Y>3 THEN 260
250 N=1+.1*Y*Y treguesi i thyerjes
260 IF i>1 THEN 290
270 N0=N treguesi fillestar i thyerjes
280 D1=0
290 D3=N0*D3/N ligji i thyerjes; y/s i ri
300 IF ABS(D3)<=1 THEN 340
310 S9=-S9
320 D2=-D2
330 GOTO 350
84
340 D2=S9*SQR(1-D3*D3)
350 Y1=Y1+D2*D1 y i ri
360 X1=X1+D3*D1 x i ri
370 IF ABS(X1- X0) + ABS(Y1- Y0) <.5 THEN 410380 PRINT X1, Y1390 X0 = X1400 Y0 = Y1
grupi i printimit
410 IF X1*(X1-10) > 0 THEN 430420 IF Y1*(Y1-10) <= 0 THEN 190
prova nëse jemi jashtë faqes
430 PRINT
440 GOTO 100 rikthim për rreze tjetër
450 END
Programi MRAG.FOR Trasimi i rrezeve gjatë mirazhit
10 READ(5,100)X,Y,ANG pozicioni fillestar dhe këndi i rrezes
IF (X.EQ.9999.) GOTO 80
ANG=(90.-ANG)*3.14159/180. këndi me vertikalen në radian
PDIST.=0.
DXDS=SIN(ANG) x/s fillestare
DYDS=COS(ANG) y/s fillestare
SIGNDY=DYDS/ABS(DYDS
DS=.001 hapi s
AN=Y-DYDS*DS
20 ANOLD=AN
AN=Y
DXDS =ANOLD*DXDS/AN ligji i thyerjes; x/s i ri
IF (ABS(DXDS) -1.) 40,40,30 30 SIGNDY = -SIGNDY DYDS = -DYDS GOTO 45
pasqyrim i plotë i brëndëshëm
40 DYDS=SIGNDY*SQRT(1.-DXDS**2) y/s i ri
45 Y=Y+DYDS*DS y i ri
X=X+DXDS*DS x i ri
PDIST = PDIST + DS IF (PDIST-.5) 60,60,50 50 PRINT 101,X,Y PDIST = 0.
grupi i printimit
60 IF (X*(X-10.)) 70,70,10 prova nëse është shumë larg
70 IF (Y*(Y-7.)) 20,10,10
100 FORMAT(3F5.2)
101 FORMAT(1X,2E15.5)
80 STOP
END
4.4 Valët mbi pasqyra
85
Më lart fenomenet e optikës gjeometrike i kemi përshkruar me anë të rrezeve. Për objektet me
përmasa të mëdha në krahasim me gjatësinë e valëve ky përshkrim është i përshtatshëm. Por
në disa fenomene si kalimi i dritës nëpër pengesa , përshkrimi me anë të valëve është më i
përshtatshëm. Me anë të kompjuterit ne mund të ndjekim tablonë e valëve që përplasen në
pengesa. Një shembull për këtë jepet në programin SPHR. Një burim S emeton paketa valore
që përhapen me shpejtësi v , të cilat bien mbi një pasqyrë . Në një çast kohe t fronti i valëve
sferike që lëshon burimi ka arritur distancën D=vt (figura 4.6) prej burimit. Kontrollojmë
gjithë pikat e pasqyrës nëse fronti i valëve ka mbritur në to. Në se ka mbritur në pikën e
pasqyrës , atëhere llogaritet se ku do të përfundonte kjo pjesë e valës në kohën t .Pra , gjendet
distanca D0 që fronti i valëve përshkruan pasi ka goditur pasqyrën, duke ditur edhe këndin A
që formon drejtimi i valëve me normalen në pasqyrë (po kaq është edhe këndi midis drejtimit
të valëve të pasqyruara me normalen).
Figura 4.6 Gjeometria e një fronti valor të
emetuar nga një burim dhe është duke mbritur
në pasqyrë. Fronti valor ecën me shpejtësi v.
Gjatë kohës t ka përshkuar distancën vt.
Procedura është e përgjithëshme në program. Përdorusi përcakton formën e pasqyrës
nëpërmjet një funksioni njëvariabël psh të x që të jetë i derivueshëm . Programi përdor
produktin skalar për të gjetur kosinusin e këndit A dhe produktin vektorjal për të gjetur sinusin
e këndit Përdorimi i produkteve të vektorëve është më i shpejtë në kompjuter sepse përdor
vetëm operacionet matematike (+,-,*,/).
Programi SPHR.BAS Fronti i valëve sferike mbi pasqyrë
100 PRINT “BURIMI I VALEVE DHE SHPEJTESIA E TYRE”;
110 INPUT S1,S2,V kordinatat në plan të burimit dhe shpejtësia e valëve
120 PRINT “KOHA”;.
130 INPUT T koha gjatë të cilës fronti i valëve është përhapur
140 D=T*V largësia që ka përshuar fronti i valëve
150 FOR J=-5 TO 5 STEP .5 hapi sipas x
160 F=J*J/4 forma e pasqyrës : funksioni y=x2/4
170 F1=J/2 derivati i parë i funksionit të formës
180 F2=SQR(1+F1*F1)
190 Y2=S2-F y prej burimit tek pika e rradhës e pasqyrës
200 X2=S1-J x prej burimit tek pika e rradhës e pasqyrës
210 R=SQR(X2*X2+Y2*Y2) r prej burimit tek pika e rradhës e pasqyrës
220 IF D<R THEN 330 në se fronti ka arritur tek pasqyra
230 D0=D-R distanca pas pasqyrimit
240 N1=-F1/F2 përbërësja x e vektorit njësi normal me pasqyrën
250 N2=1/F2 përbërësja y e vektorit njësi normal me pasqyrën
86
260 C=X2/R*N1+Y2/R*N2 kosinusi i këndit midis rrezes dhe normales
270 S=Y2/R*N1-X2/R*N2 sinusi i këndit midis rrezes dhe normales
280 D1 = C*N1+S*N2290 D2 = C*N2 -S*N1
vektori njësi i normales mbi frontin e valës së pasqyruar
300 X = J + D1*D0310 Y = F + D2*D0
kordinatat e pikës mbi frontin e pasqyruar
320 GOTO 350
330 X = S1- X2 / R*D340 Y = S2 - Y2 / R*D
kordinatat e pikës mbi frontin e papsqyruar
350 PRINT X,Y
360 NEXT J
370 GOTO 120 rikthim për një kohë tjetër përhapjeje
380 END
Programi SPHR.FOR Fronti i valëve sferike mbi pasqyrë
DATA XSOUR,YSOUR,C/2.,0.,1./ Burimi,shpejtësia
10 READ(5,100)T koha e përhapjes
IF (T-999.) 20,90,90
20 D=T*V distanca e përhapjes
DO 80 J=1,21 hap pas hapi sipas x
AJ=-.5+(J-1)*.5
F=AJ*AJ/4. forma e pasqyrës
F1=AJ/2. derivati i parë i funksionit të formës
F2=SQRT(1.+F1*F1)
Y2=YSOUR-F y prej burimit tek pika e rradhës e pasqyrës
X2=XSOUR-AJ x prej burimit tek pika e rradhës e pasqyrës
R=SQRT(X2*X2+Y2*Y2) r prej burimit tek pika e rradhës e pasqyrës
IF (D-R) 70,30,30 nese ka arritur pasqyrën
30 D0=D-R distanca pas pasqyrimit
AN1 = -F1/ F2 AN2 = 1./F2
vektori njësi i normales
C=X2/R*AN1+Y2/R*AN2 kosinusi i këndit midis rrezes dhe normales
S=Y2/R*AN2-X2/R*AN1 sinusi i këndit midis rrezes dhe normales
D1 = C*AN1+S*AN2 D2 = C*AN2 -S*AN1
vektori njësi në drejtimin e pasqyruar
X = AJ + D1*D0 Y = F+ D2*AN1
pika mbi frontin e pasqyruar
GOTO 80
70 X=XSOUR-X2/R*D pika mbi frontin e papasqyruar
Y=YSOUR-Y2/R*D
80 PRINT 101,X,Y
GOTO 10 rikthim për një kohë të re përhapjeje
90 STOP
100 FORMAT(F10.5)
101 FORMAT(1X,2F10.4)
END
87
Në programin SPHR pasqyra është zgjedhur paraboloide dhe nëqoftë se burimi ndodhet në
vatër të tij, atëhere të gjitha frontet valorë pas pasqyrimit janë paralel me njeri tjetrin, kështu
që vala totale e pasqyruar (mbështjellsja e gjithë fronteve valore të pasqyruara) është plan-
paralele. Ka vënd edhe e kundërta d.m.th., valët plan-paralele pas pasqyrimit do të fokusohen
në vatër të pasqyrës paraboloide. Kjo përdoret në teleskopët optikë. Nëse pasqyra do të ishte
sferike dhe valët rënëse sferike me burim në vatër(në lagësinë sa gjysma e rrezes prej kulmit të
pasqyrës) valët e pasqyruara do të jenë thuajse plan-paralele afër qendrës ndërsa në skaje do
çfaqin aberracion sferik. Nëse pasqyra do të ishte elipsoidale programi do të tregojë se valët
sferike të emetuara nga vatra e elipsit do të jenë të fokusuara në vatrën tjetër të elipsit. Kjo
veti përdoret në lazerat pulsues. Të gjitha këto veti të pasqyrave të ndryshme mund të
ilustrohen me programin SPHR duke futur ekuacionin përkatës për sipërfaqen e pasqyrës. Një
teknikë e ngjashme mund të përdoret edhe për valët e thyera ose për kombinimin e pasqyrimit
dhe të thyerjes.
Problema
1. Të gjendet pozicioni dhe latrësia e shëmbëllimit për secilin nga objektet më poshtë kur
jepen edhe të dhënat për pasqyrën:
a. r=10 cm; objektet(pozicioni, lartësia): (10,1),(5,1),(-10,1),(-5,1),(10,-1)
b. r=-10 cm; objektet : sikurse në pikën a.
2. Të gjendet pozicioni dhe lartësia e shëmbëllimit për secilin nga objektet më poshtë kur
jepen të dhënat për lenten:
a. n=1.5, r1 =10, r2 =-10;objektet (pozicioni, lartësia): (10,1),(-10,1),(2.5,1),(-2.5,1)
b. n=1.5, r1 =10, r2 =10; objektet: sikurse në pikën a.
3. a. Shkruani një program për gjetjen e këndit të pasqyrimit të çdo rrezeje nga çdo pikë e
pasqyrës sferike.
b. Duke përdorur programin e mësipërm, gjeni dhe plotoni disa rreze nga ndonjë objekt.
Demostroni aberracionin.
c. Demostroni se rrezet paraksiale i binden teorisë së thjeshtë (formulave në hyrje).
4. a. Shkruani një program që trason rrezet nëpër një lente që kufizohet nga dy sipërfaqe
sferike me rreze dhe tregues thyerje që i zgjidhni vetë.
b. Ekzekutoni programin e mësipërm dhe plotoni disa rreze.Demostroni aberracionin.
c. Provoni se për rrezet paraksiale dhe lentet e holla ka vend teoria e thjeshtë.
d. Treguesit e thyerjes janë zakonisht funksione të gjatësisë së valëve (ngjyrës).
Provoni aberracionin kromatik (të ngjyrës) duke përdorur programin tuaj dhe rrezet
që keni zgjedhur por me dy tregues thyerje të ndryshme - një për dritën e kuqe dhe
një për dritën blu.
5. Një model i ndryshimit të n mbi tokën e nxehtë është: n=1+n0 [1-exp(-y/y0)], ku n0+1
është treguesi i thyerjes larg tokës dhe y0 një lartësi karakteristike.
a. Shkruani një program që trason rrezet nëpër mjedisn ku n=n(y).
b. Duke përdorur këtë model për n , gjeni rrugën e disa rrezeve që dalin nga një burim
pikësor në lartësinë y . I plotoni pastaj këto rreze.
88
201
KAPITULLI I V
ANALIZA FURJE DHE PERHAPJA E VALEVE
5.1 Hyrje
Çdo funksion periodik mund të paraqitet me anë të një serie Furje; dhe pothuaj çdo funksion
mund të paraqitet me një integral Furje (transformim Furje). Kuptimi i analizës Furje shtron
rrugën për një kuptim më të plotë mbi përhapjen e valëve, një nga fushat më të rëndësishme të
Fizikës. Valët ndeshen kudo në natyrë - jo vetëm si valë zanore ose valë në ujë për edhe valët
e lëndës (grimcat në mekanikë kuantike). Shumë nga vetitë e valëve që do të diskutohen në
këtë kapitull ndeshen shpesh në Fizikë.
Së pari, ne do fillojmë me seritë Furje për çdo funksion periodik dhe do të vazhdojmë
me përhapjen e paketave valore dhe përdorimin e transformimit Furje. Zakonisht është e
mundur që për situatat e ndryshme fizike të gjejmë zgjidhje në formën e funksioneve të njohur
si sinusi, kosinusi, funksionet e Besselit ose polinomet e Lezhandrit. Zbërthimi i një vale
çfardo në valë sinusoidale ose kosinusoidale me anë të transformimit Furje është i ngjashëm
me zbërthimin në funksione të tjerë. Zgjidhjet e ekuacioneve shpesh janë më të lehta për tu
interpretuar kur zbërthimi bëhet në funksione të thjeshtë.
Zakonisht, në kurset e hyrjes të Fizikës trajtohen vetëm situata kur të gjithë përbërëset e
valëve (që kanë frekuenca të ndryshme) përhapen së bashku me të njëjtën shpejtësi (përhapja e
valëve pa dispersion) . Për disa valë, ky përafrim është i vlefshëm. Por më realiste është kur
valët përbërëse me frekuenca të ndryshme përhapen me shpejtësi të ndryshme. Siç do të
shohim, kompjuteri është mjaft i përshtatëshëm për studimin e valëve dispersive.
Më poshtë do të jepen disa fakte dhe ekuacione bazë.
1. Valët jodispersive: çdo valë (e çdo forme) përhapet me shpejtësi fazore v , shpejtësia me të
cilën çdo fazë lëviz me kohën.
Për një valë skalare plane : Nëse f(x) është forma e valës në t=0, atëhere f(x-vt) është
forma e saj në kohën t. [f(x+vt) do paraqiste valën që përhapet në drejtim të kundërt]
2. Teorema Furje: Çdo funksion f(x) i diferencueshëm dhe për të cilin ekziston integrali :
| ( )|f x dx , mund të zbërthehet në formën (transformimi ose integrali Furie) :
f x a k kx b k kx dk( ) [ ( ) cos( ) ( ) sin( )] ; ku
a k f x kx dx( ) ( ) cos( )1
2 dhe b k f x kx dx( ) ( ) sin( )
1
2
3. Seritë Furje: Nëse një funksion f është periodik, zbërthimi i f do të përmbajë vetëm
harmonika të frekuencës themelore (frekuenca që i takon periodës L të funksionit ):
f xA
Anx
LB
nx
Ln n
n
( ) [ cos( ) sin ( )]0
12
2 2 ; ku :
AL
f xnx
Ldxn
L2 2
0
( ) cos( ) dhe BL
f xnx
Ldxn
L2 2
0
( ) sin( )
4. Në çdo mjedis linear, çdo harmonikë përbërëse e valëve përhapet pavarësisht nga të tjerat.
Përbërëset mund ose jo të kenë shpejtësi të njëjtë përhapjeje (ato mund të mos
202
absorbohen në mënyrë të njëjtë).
5.2 Seritë Furje
Për çdo funksion që mund të zbërthehet në seri Furje mund të gjenden koeficientët An dhe Bn
sipas formulave që jepen më në hyrje. P.sh. le të shqyrtojmë funksionin që është paraqitur në
figurën 5.1 .
Figura 5.1 Një valë në formë trekëndëshe e
ndërprerë. Gjatësia e valës ose perioda është L.
Ky është një funksion çift i x , f(-
x)=f(x); prandaj nuk ka terma me
sinuse në zbërthimin Furje të tij.
Pra të gjithë koeficientët Bn janë
zero dhe mbetet të llogarisim vetëm
koeficirntët An .
AL
f xnx
Ldx
L
x
L
nx
Ldx
x
L
nx
Ldx
nx
L L
L
n
nx
L
L
n
nx
L
L
L
n
L
L
L
L
L
L
L
2 2 21
3 21
3 2
2 6
4
2
2
2
4
2
2
3
0
0
3
3
3
2
2
2 2 3
0
2
2
( ) cos cos cos
sin cos sin
/
/
/
/
/
/
/
1
n
-6
2 2 0
32
2
2
n
nx
L
L
n
nx
L
Lcos sin /
Përfundimisht kemi :
An
nA
Lf x dxn
L3
12
3
2 2
32 2 0
0
cos ( ) dhe
Tani mund të shkruajmë serinë Furje të funksionit f(x):
f xn
n n
L( ) cos cos
1
3
31
2
3
22 2
Një seri e tillë konvergjon shpejt dhe pas shumimit të pak harmonikave merret një përafrim i
mirë i funksionit. Kjo realizohet në programin SPIKE.
Programi SPIKE.BAS Sinteza e një vale trekëndëshe të ndërprerë.
f x
Lx
L
Lx
Lx
Lx x
L
Lx
L
( )
,
,
,
,
02 3
13
30
13
03
03 2
203
100 P=3.14159
110 L=3 perioda
120 H=50 numri i harmonikave
130 PRINT “X”,”AMPLITUDA”
140 FOR X=0 TO L STEP L/(5*H) hapi sipas boshtit x
150 Y=1/3
160 FOR N=1 TO H shumimi sipas harmonikave
170 A=3/(P*P*N*N)*(1-COS(2*P*N/3)) koeficienti
180 Y=Y+A*COS(2*P*N*X/L) amplituda
190 NEXT N
200 PRINT X,Y
210 NEXT X
220 END
Programi SPIKE.FOR Sinteza e valës trekëndëshe të ndërprerë
PI=3.14159
ALEN=3. perioda
NHARM=50 numri i harmonikave
NSTEP=5*NHARM+1
ANSTEP=NSTEP-1
DO 20 I=1,NSTEP,1 hapi sipas x
AI=I-1
X=AI*ALEN/ANSTEP
Y=1./3.
DO 10 N=1,NHARM,1 shumimi sipas harmonikave
AN=N
A=(3./(PI**2*AN**2))*(1.-COS(2.*PPI*AN/3.)) koeficienti
10 Y=Y+A*COS(2.*PI*AN*X/ALEN) amplituda
20 PRINT 100,X,Y
100 FORMAY(1X,3E15.5)
30 STOP
END
Figura 5.2 tregon rezultatin e shumimit të serisë për numër harmonikash të ndryshme.
Funksioni është vizatuar deri në largësi 2L për të treguar periodicitetin e serisë.
204
Figura 5.2 Shumimi i nje numri të
ndryshëm harmonikash të valëve
trekëndëshe të ndërprerë : duke filluar
nga grafiku më i sipërm i figurës: n=1 ,
n=2 , n=4 , n=10.
Në mënyrë të ngjashme mund të
gjendet paraqitja Furje e funksioneve të tjerë periodike, disa shembuj funksionesh të tillë janë
funksioni trekëndësh dhe funksioni katror :
f x L
Lx
Lx x
Lf x
xL
Lx L
( ) ( )1+
2x
0
+1 0
20
12
2
2
12
ose funksioni në formën e dhëmbëve të sharrës: f(x)=x 0<x<L .
Eshtë mirë që për këto funksione të llogaritni koeficientët Furje . Në figurën 5.3 është
treguar rezultati i shumimit të një numri të ndryshëm harmonikash të valëve në formë katrori
(funksioni i dytë i mësipërm). Në këtë rast (edhe në rastin e valëve në formë sharre) edhe për
numër të madh harmonikash vihet re një kapërxim vlere (përtejvlera) në pikat ku funkasioni
nuk është i vazhdueshëm, ky njihet si fenomeni i Gibsit. Programi SQRWAVE kryen
shumimin e harmonikave për valët katrore. Në disa kompjuter, llogaritja e sinuseve dhe
kosinuseve është i ngadaltë, prandaj përdoret një teknikë (FFT, Fast Furie Transformation) që
do të trajtohet në pjesën e dytë të këtij kursi.
205
Figura 5.3 Shumimi i një numri të
ndryshëm harmonikash për valët katrore.
Prrogrami SQRWAVE Sinteza e valëve katrore
100 P=3.14159
110 L=2*P Perioda
120 H=50 numri i harmonikave
130 DIM B(50)
140 FOR N=1 TO H
150 B(N)=2/(P*N)*(1-COS(P*N)) koeficienti për harmonikën e N
160 NEXT N
170 PRINT “X”, “AMPLITUDA”
180 FOR X=0 TO L STEP L/10 hapi sipas x
190 Y=0
200 FOR N=1 TO H
210 Y=Y+B(N)*SIN(2*P*N*X/L) shumimi sipas harmonikave
220 NEXT N
230 PRINT X,Y
240 NEXT X
250 END
Programi SQRWAVE.FOR Sinteza e valëve katrore
DIMESNSION B(50)
PI=3.14159265
WL=2.*PI Perioda
IH=50 numri i harmonikave
DO 5 N=1,IH
5 B(N)=2./(PI*N)*(1-COS(PI*N)) koeficienti për harmonikën e N
DO 15 IX=1,11 hapi sipas x
X=(IX-1)*WL/10.
206
Y=0.
DO 10 N=1,IH shumimi sipas harmonikave
10 Y=Y+B(N)*SIN(2*PI*N*X/WL) Amplituda
15 PRINT 100,X,Y
20 STOP
100 FORMAT(1X,2F10.4)
END
Nuk është e domosdoshme që të kemi një shprehje të thjeshtë analitike për një funksion në
mënyrë që të përcaktojmë zbërthimin Furje të tij. Programi FSCOEFF përdor integrimin
numerik për të gjetur koeficientët Furje të çdo funksioni periodik ose për çdo bashkësi të
dhënash periodike. Ai mund të përdoret për llogaritjen e koeficientëve të valëve katrore të
parqitur në figurën 5.3 . Amplituda e valës katrore , për vlera të x të barazlarguara, ruhet në
një vektor. Integrimi numerik është kryer sipas regullit trapezoidal. Sa më i vogël është hapi
sipas x , aq më e madhe është saktësia e llogaritjes së koeficientëve , sidomos koeficientëve të
rendit të lartë. Duke mbushur një vektor me pika të dhënash, mund të bëjmë analizën Furje të
çdo funksioni periodik duke përcaktuar koeficientët. Integrimi numerik është më i lehtë nëse
pikat e të dhënave janë të barazlarguara gjatë gjithë periodës.
Programi FSCOEFF.BAS Llogaritja e koeficientëve Furje
100 DIM F(101)
110 P=3.14159
120 N1=10 numri i koeficientëve që do llogariten
130 N=100 numri i intervaleve të të dhënave
140 FOR I=1 TO N+1 cikli i leximit të vlerave të funksionit
150 READ F(I)
160 NEXT I
170 DATA .5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
180 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
190 DATA .5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
200 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.5
210 A0=1/N*F(1)/2 koeficienti i rendit zero
220 FOR I=2 TO N cikli i integrimit numerik (rregulli i trapezit)
230 A0=A0+1/N*F(I)
240 NEXT I
250 A0=A0+1/N*F(N+1)/2 koeficienti i rendit zero
260 PRINT “A0=“;2*A0
270 PRINT “HARMONIKA”,”A”,”B”
280 FOR J=1 TO N1 cikli për koeficientet e rendeve 1 deri N
290 A=0
300 B=0
310 FOR I=1 TO N+1 cikli i integrimit numerik (rregulli i trapezit)
320 A=A+2/N*F(I)*COS(2*J*P*(I-1)/N)
330 B=B+2/N*F(I)*SIN(2*J*P*(I-1)/N)
340 NEXT I
350 A=A-1/N*F(1)-1/N*F(N+1)
360 PRINT J,A,B
370 NEXT J
380 END
207
Programi FSCOEFF.FOR Llogarit koeficientët e serisë Furie
DIMENSION FNCT(101)
PI=3.14159
NUM=10 Numri i koeficientëve që do llogariten
INTRVL=100 numri i intervaleve të dhëna
FINT=INTRVL
DATA FNCT/.5,49*0.,.5,49*1.,.5/ forma e valës
A0=1./FINT koeficienti i rendit zero
DO 10 LOC=2,INTRVL shumimi(regulli trapezoidal) për llogaritjen e koef. rend.0
10 A0=A0+1./FINT*FNCT(LOC+1)/2.
A0=2.*A0
PRINT 101,A0
DO 20 INDEX=1,NUM cikli i llogaritjes së koeficentëve të rendeve jo zero
FINDEX=INDEX
A=0.
B=0.
DO 30 LOC=1,INTRVL+1
FLOC=LOC
A=A+2./FINT*FNCT(LOC)*COS(2.*FINDEX*PI*(FLOC-1.)/FINT)
30 B=B+2./FINT*FNCT(LOC)*SIN(2.*FINDEX*PI*(FLOC-1.)/FINT)
A=A-1./FINT*FNCT(1)-1./FINT*FNCT(INTRVL+1)
20 PRINT 106,INDEX,A,B
101 FORMAT(1X,3HA0=,F10.5)
106 FORMAT(I3,2F10.5)
END
Ka një numër të madh zbatimesh të analizës Furje në trajtimin e të dhënave. Ju mund
krijoni bjë bashkësi të dhënash eksperimentale p.sh. duke fotografuar një EKG ose një ton
muzikor të çfaqur në një oshiloskop.Nga kjo mund të nxjerrim një seri vlerash për një
funksion kohor perodik të dhënë numerikisht, të cilat mund ti nënshtrohet analizës Furje si
më lart. Rezultati është spektri frekuencial , i cili për shembujt e përmëndur ka frekuencën
bazë (atë të rrahjeve të zemrës ose tonin themelor te sinjalit muzikor); komponentët më të
latrë vijnë nga lëvizjet e pjesëve të ndryshme të zemrës ose nga overtonet e instrumentit
muzikor. Mbi çdo informacion real vendoset një tablo zhurme. e cila në hapësirën e
frekuencave Furje mund të kapet lehtë dhe mund të eliminohet gjatë sintetizimit të
harmonikave duke përmirësuar kështu sinjalin , ndërkohë që informacioni për spektrin
frekuencial mbetet në kompjuter për përpunim të mëtejshëm. Në shembullin e paraqitur në
figurën 5.4, të dhënat e një EKG për një segment kohor .83 sek i janë nënshtruar analizës
Furje dhe vlerat që rezultojnë të koeficientëve për 45 harmonikat e para janë paraqitur në
tabelën që pason.
n An Bn n An Bn n An Bn
1 47.5 39.4 16 33.8 19.5 31 5.2 10.3
208
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0.8
117.4
31
88.5
60.6
102.2
72.2
63.2
48.7
21.2
27.8
20.7
16.6
37.4
-100.4
-53.4
28.2
-8.5
46.3
19.6
16.9
36.3
21.9
30.9
25.8
26.8
20.3
22.8
17
18
19
20
21
21
23
24
25
26
27
28
29
30
31.7
24.3
23.3
21.8
19.9
8.7
12.7
15.3
10
-0.5
4.6
-0.8
0.6
3.5
24.9
15.6
20.6
8.8
10.9
9.2
2.6
6.1
2.5
3.1
6.3
11.9
3.6
11.7
32
33
34
35
36
37
38
39
40
41
42
43
44
45
6.2
0.2
2.5
2.4
5.8
5
3.6
6.2
0.1
2.9
-0.9
0.3
0.8
3.5
14.1
7.3
4.3
4.4
0.9
5.5
6.3
7.7
7.2
1.6
5.2
-0.6
3.3
-1.9
Figura 5.4 Një plot i një EKG dhe
sinteza e saj me 25 harmonika dhe 100
harmonika. Për 25 harmonika, shumica
e zhurmave janë hequr. Për 100
harmonika, kurba është riprodhuar
pothuaj ekzaktësisht.
5.3 Transformimi Furje
Shumica e valëve në natyrë janë pulsive, pra që parqiten nga një funksion jo periodik por që
shuhet pas një intervali kohe. Sipas teoremës Furje këto funksione mund të konsiderohen si
shumë e një infiniteti harmonikash me frekuenca të ndryshme shumë afër njera tjetrës. P.sh. ,
konsiderojmë një puls trekëndësh simetrik ndaj x=0 (figura 5.5) . Kur e transformojmë këtë
puls në hapësirën Furje (të ashtuquajturën k hapësirën ose hapësirën e vektorëve valorë) , do
209
të gjejmë vetëm valë cosinusoidale (harmonikat mind të jenë sinusoidale dhe kosinusoidale).
Kjo për arsye se f(x)=f(-x), pra pulsi është simetrik. Kosinuset janë funksione çift ndërsa
sinuset janë funksione tek.
Figura 5.5 Një puls trekëndor simetrik ndaj zeros.
Koeficientët e valëve kosinusoidale mund të gjenden nga
integrali :
a k f x kx dx( ) ( ) cos( )1
2 , ku për çdo vlerë të k kemi një amplitudë a(k); a(0) është
amplituda më e madhe për pulsin trekëndor (fig. 5.5) ; a(k) është kryesisht sasia e cos(kx) në
pulsin origjinal.
Valët sinusoidale ose kosinusoidale përhapen në mjedis me shpejtësinë e tyre që në
përgjithësi varet nga numri valor v(k) [edhe absorbimi i tyre në përgjithësi varet nga numri
valor A(k)]. Programi WAVES jep një mënyrë për kryerjen e llogaritjeve të përhapjes së
valëve . Në fillim llogaritet transformimi Furje i pulsit fillestar. Pastaj kryhen llogaritjet e
përhapjes së komponentit valor me numër valor k sipas shpejtësisë v(k) për një farë kohe.
Pastaj programi risintetizon (i rimbledh harmonikat) pulsin duke përdorur të njëjtat sasira
a(k) të komponenteve që ishin prezent fillimisht (pra duke konsideruar që nuk kemi absorbim
të valëve përbërëse) [ju mund ta rishkruani programin duke futur edhe absorbimin, duke i bërë
koeficientët më të vegjël në një mjedis “linear” pra që i absorbon valët përbërëse në mënyrë
të njëjtë ose “jo linear” duke i ndryshuar a(k) në mënyrë jo të njëjtë para risintetizimit].
Programi WAVES i përafron integralet infinitë të analizës Furje në integrale nga -5 në +5 me
hap /16. Janë zgjedhur këto vlera sepse duket se për to integralet infinite llogariten me
saktësi të arsyeshme duke minimizuar kohën në kompjuter
Programi WAVES.BAS Përhapja dispersive e pulseve valorë
100 DIM F(161),G(161)
110 FOR I=1 TO 161 Cikli ku ruhen amplitudat Furje të komponenteve
120 K0=-5*3.14159+(I-1)*3.14159/16
130 F(I)=1.41421*EXP(-K0*K0) pjesa reale
140 IF F(I)>1E-12 THEN 160 nëse amplituda është shumë e madhe
150 F(I)=0
160 G(I)=0
170 NEXT I
180 DIM C(360),S(360)
190 P0=6.28318/360
200 FOR I=1 TO 360 ckli i llogaritjes së sinuseve dhe kosinuseve
210 C(I)=COS((I-1)*P0)
220 S(I)=SIN((I-1)*P0)
230 NEXT I
210
240 PRINT “KOHA”;
250 INPUT T1 koha e përhapjes
260 PRINT “X”,”AMPLITUDA 2”
270 FOR X1=-5 TO 5 STEP .5 hapi sipas x
280 I1=0
290 I2=0
300 FOR I=1 TO 161 shumimi i gjithë komponeteve
310 K0=-5*3.14159+(I-1)*3.14159/16
320 V0=1+.01*K0 shpejtësia për vektorin valor k0
330 K9=K0*(X1-V0*T1)
340K8=1+INT((K9-INT(K9/6.28318)*6.28318)/P0) këndi i saktë për sinusin dhe kosinusin
350 R1=C(K8)*F(I)+S(K8)*G(I) pjesa reale e sintezës
360 R2=C(K8)*G(I)-S(K8)*F(I) pjesa imagjinare
370 I1=I1+R1
380 I2=I2+R2
390 IF (I-1)*(I-161)<>0 THEN 420 pikat e skajeve në rregullin trapezoidale
400 I1=I1-R1/2
410 I2=I2-R2/2
420 NEXT I
430 I1=I1*3.14159/16/SQR(6.18318) normalizimi pjesës reale
440 I2=I2*3.14159/16/SQR(6.18318) normalizimi pjesës imagjinare
450 PRINT X1,I1*I1+I2*I2
460 NEXT X1
470 PRINT
480 GOTO 240 rikthim për një kohë tjetër të përhapjes
490 END
Programi WAVES.FOR Përhapja dispersive e pulseve valorë
DIMENSION REPULS(161),REFOUR(161),AIFOUR(161)
PI=3.14159
DO 20 IK=1,161,1 ruan amplitudat Furje të komponenteve
AIK=IK-1
AK=-5.*PI+AIK*PI/16.
REFOUR(IK)=1.41421*EXP(-AK*AK) pjesa reale e amplitudës Furje
IF (REFOUR(IK)-1.E-12) 15,20,20
15 REFOUR(IK)=0.
20 AIFOUR(IK)=0.
30 READ(5,100)TPROPD koha e përhapjes se pulsit
IF (TPROPD.EQ.999.) GOTO 60
DO 50 IX=1,21 hapi sipas x
AIX=IX-1
X=-5.+AIX*.5
RESYN=0.
AIMSYN=0.
DO 40 IK=1,161 shumimi i komponentev(harmonikave)
AIK=IK-1
AK=-5.*PI+AIK*PI/16.
VELATK=1.+.01*AK shpejtësia për vektorin valor të radhës
CSSYN=COS(AK*(X-VELATK*TPROPD))
211
SNSYN=SIN(AK*(X-VELATK*TPROPD))
RESYN=RESYN+(1.25331/16.)*(CSSYN*REFOUR(IK)+SNSYN*AIFOUR(IK)
40 AIMSYN=AIMSYN+(1.25331/16.)*(CSSYN*AIFOUR(IK)+SNSYN*REFOUR(IK)
AMPL=RESYN**2+AIMSYN**2 amplituda
50 PRINT 101,X,AMPL
GOTO 30 rikthim për një kohë tjetër përhapjeje
100 FORMAT(E5.2)
101 FORMAT(1X,2E15.5)
60 STOP
END
Figura 5.6 Përhapja e një impulsi
trekëndësh nëpër një mjedis pak
dispersiv . a) Impulsi origjinal; b)Pjesa
reale e transformimit Furje të impulsit
fillestar; c) - g) Impulsi pas 2,4,6,8,10
njësi kohe. Deformimi i impulsit bëhet
për shkak të natyrës dispersive të
mjedisit. Zeroja e kordinatave hapsinore
në transformimin Furje është në qendër
të figurës; majtas dhe djathtas figurës i
takon -4 dhe +4 .
Figura 5.6 tregon përhapjen e një pulsi trekëndësh në një mjedis që është pak dispersiv.
Shpejtësia e përhapjes së valëve në mjedis është marë: v(k)=v0 (1+0.01k) . Pra shpejtësia
varet pak nga numri valor k i komponenteve (harmonikave). Kur komponentet risintetizohen
japin një distorsion (deformim) të formës së pulsit valor. Ky distorsion rritet gjatë lëvizjes së
pulsit. Shpejtësia e grupit e pulsit përcaktohet si shpejtësia me të cilën përparon qendra e
pulsit valor. Kjo shpejtësi mund të mos jetë e njëjtë me shpejtësinë e ndonjë komponenteje.
Mund të shqyrtohen edhe mjedise me dispersion më të fortë , psh v(k)=v0(1+0.1k) ose pulse
valore me formë tjetër, psh një copë prej një sinusoide. Në të dy rastet distorsioni i pulsit në
mjedis do të jetë më i dukshëm.
Figura 5.7 (a) Përhapja e një paketi
valor fonon nëpër një rjetë një-
dimensionale. Figura tregon impulsin
origjinal, spektrin e tij Furje dhe
përhapjen e tij pas 12 dhe 24 njësi
kohore. impulasi ka gjatësi vale shumë
më të madhe se konstantja e rjetës,
prandaj distorsioni është i vogël.
212
Figura 5.7 (b) Përhapja e paketit valor
fonon nëpër një rjetë një-dimensionale.
Figura tregon efektet kur gjatësia bazë e
impulsit është afro dy herë konstanten e
rjetës. Distorsioni i impulsit është më i
dukshëm dhe shpejtësia e grupit është
më e vogël.
Figura 5.7 tregon një zbatim interesant të përhapjes dispersive të valëve në fizikën e trupit
të ngurtë. Del se valët elastike (fotonet) që përhapen nëpër një kristal ( një-dimensional) me
shpejtësi fazore : v(k)=v0 sin(ka/2), ku a është distanca midis atomeve të rjetës (kristalit) dhe
k=2 / , ku është gjatësia e valës. Kur gjysma e gjatësisë se valës është sa hapi i rjetës a
,vala nuk përhapet [ka= , pra v(k)=0]. në rastin a) të figurës 5.7 ëhtë marë një puls me gjatësi
vale shumë më të madh se a pulsi valor përhapet dhe deformohet pak. Në rastin b) gjysëm-
gjatësia e pulsit valor është shumë afër a, pulsi valor deformohet më shpejt dhe shpejtësia e
grupit është mjaft më e vogël.
Ka një sërë efektesh që mund të ilustrohen në situatat e përhapjes së valëve reale .
Problema
1. Duke përdorur seritë Furje, të shkruhet një program që shumon 1,5,10 dhe 100 terma për
funksionet e mëposhtëme:
a. funksioni trekëndësh
b. funksioni në formën e dhëmbëve të sharrës
c. funksioni katror
Tregoni dhe shpjegoni fenomenin e Gibsit.
2.a. Shqyrtoni transformimin Furje të pulsit katror.
b. Shkruani një program për përhapjen e pulseve katrorë në një mjedis të tillë që v(k)=k2.
[fillimisht e kontrolloni programin duke marë: v(k)=a (konstante)]
c. Përhapeni pulsin në kahen e rritjes së kohës dhe atë të zvogëlimit të kohës. Shpjegoni
rezultatin fizikisht.
3. a. Merrni një fotografi (duke përdorur oshiloskopin, një mikrofon dhe kamer fotografike)
të amlitudës në varësi të kohës për disa nota muzikore pë luajtura në një instrument.
Sigurohuni që çdo fotografi ka 1½ deri 2 cikle pë formës valore që përsëritet.
b. Nga fotografia lexoni amplitudat për 100 intervale kohore të barazlarguar të një cikli (101
pika duke përfshirë edhe skajet e ciklit). Futini këto amplituda si të dhëna në programin
që
llogarit koeficientët Furje. Sa është frekuenca e seicilës notë?
c. Gjeni koeficientët Furje për 10 harmonikat e para të fomës valore të fotografuar.
d. Vrojtoni me kujdes përmbajtjen në harmonika të çdo note (nga instrumenta të ndryshëm).
213
Përpiquni të lidhni përmbajtjen në harmonika me timbrin e notës.
4. Wshtë e mundur që të bëjmë me kompjuter analizën Furje të çdo pulsi me formë çfardo
në spektrin e tij Furje [duke bërë integrimin numerik f x kx dx( ) cos( ) etj. ] . Shkruani një
program për analizën Furje dhe analizoni ndonjë puls me formë interesante që nuk mund
trajtohet analitikisht. (Së pari kontrollojeni programin për një puls trekëndësh për të cilin
spektrin Furje e njohim).
214
KAPITULLI I VI
VALET E QENDRUESHME DHE INTERFRENCA
6.1 Hyrje
Valët janë procese që ndeshen shpesh në natyrë , efekte të tilla si rezonanca, interferenca,
difraksioni etj janë të zakonëshme në jetën e përditëshme. Përhapja e tingujve nga një
altoparlant shoqërohet nga efektet e difraksionit; hyrja e dritës nëpër çarje i dedikohet
difraksionit; tingulli i instumentave me tela është rezultat i valëve të qëndrueshme; tablotë e
brezave të ngjyrosur janë rezultat i interferencës; valët zanore në frekuencën e rezonanës
mund të thyejnë qelqin e një gote; etj.
Valët, kur mbivendosen mblidhen. Në qoftë se në një pikë të hapësirës arrijnë njëkohësisht
dy valë me të njëjtën frekuencë dhe gjatësi vale [ njëra valë A1 cos(kx+t+1 ); vala e dytë A2
cos(kx+t+2 )] atëhere rezultati i lëkundjeve në këtë pikë është thjeshtë:
A=A1 cos(kx+t+1 )+ A2 cos(kx+t+2 ). Një rezultat interesant merrët kur fazat 1 , 2
janë të tilla që valët shuajnë ose forcojnë njera tjetra. Praktikisht matet(ndjehet) intensiteti i
valëve (mesatarja kohore e katrorit të amplitudës) rezultante. Interferenca ndodh për shkak të
termit të dytë në katrorin e A. Çdo numër valësh mund të interferojë në çdo pikë dhe tabloja e
intensitetit rezultant pas interferencës mund të jetë e komplikuar. Valët e qëndrueshme
ndodhin kur një seri valësh nga i njëjti burim vazhdimisht arrijnë të njëjtën pikë me diferencë
faze të pandryshuar.
6.2 Valët e qëndrueshme
Teoria e përgitheshme e valëve të qëndrueshme është e ndërlikuar, veçanërisht nëse merren
parasysh edhe humbjet e valëve. Por ideja bazë e kësaj teorie është e lehtë për tu kuptuar.
Rezultatet e llogaritjeve të valëve të qëndrueshme një-dimensionale tregojnë se do kemi
përgjigje rezonative nga sistemi ku përhapen valët vetëm për frekuenca dhe gjatësi vale
të përcaktuara.P.sh. , nëse dy skajet e një shufre janë të fiksuara (ose tubi i organos ka dy
skajet të mbyllura), atëhëre pritet rezonancat për =2L,L,2
3
L , 1
2
L ,.. , ku L është gjatësia e
shufrës.Valët e pasqyruarta në skajet e shufrës (ose tubit) janë në diferencë faze me 1800 me
valët rënëse; kështu që në tablonë e valëve të qëndrueshme kemi nyje në këto skaje.
Në qoftë se njeri nga skajet është i fiksuar (i mbyllur) dhe tjetri i lirë(i hapur), atëhere
rezonancat priten për =4L,4
3
L , 4
5
L ,.., sepse valët e pasqyruara në skajin e hapur janë në
fazë me valët rënësë. Në se të dy skajet janë të hapura, përsëri do kemi rezonancë të ngjashme
me rastin kur të dy skajet janë të mbyllura me ndryshimin që nyjet e valëve bien aty ku binin
barqet në tubin e mbyllur dhe barqet bien aty ku binin nyjet në tubin e mbyllur. Në këto
arsyetime është nënkuptuar që kemi pasqyrime perfekte pa zvogëlim të amplitudës,
megjithëse realisht mund të kemi humbje të valëve dhe devijime në kufijtë e mjediseve ku ato
pasqyrohen.
Metoda e përdorur në kompjuter mund të zbatohet si për rastet e pasqyrimeve perfekte në
skaje ashtu edhe për rastet reale me kushte kufitare reale të caktuara. Një burim emeton valë
që arrijnë pikën e observimit drejtpërsëdrejti. Këto valë gjithashtu vazhdojnë rrugën deri në
skaj dhe pasqyrohet (pjesërisht). Vala e pasqyruar arrin pikën e observimit dhe i mblidhet
valës primare. Valët vazhdojnë të pasqyrohen nga skajet dhe rezultantja në pikën e observimit
215
është rezultat qoftë i valëve që vijnë direkt qoftë të pasqyruara. Vala e vrojtuar është shuma e
një serie. Nëse shpejtësia e valëve është v dhe frekuenca e valëve është f , atëhere vektori
valor është k=2/=2f/v . Nëse burimi është në pikën x9 dhe pika e observimit në pikën x0 ,
vala direkte është Acos[k(x0 - x9)], ku A është amplituda origjinale. {Një humbje e amplitudës
si rezultat i absorbimit mund të futet duke ndryshuar amplitudën. P.sh. , vala origjinale mund
të bëhet me amplitudë Aexp[-(x0-x9)]}. Kur vala e pasqyruar për herë të parë kthehet tek pika
e observimit, ajo ka amplitudë të ndryshme [Apasq.=(Arënës)· (koeficienti i pasqyrimit)] dhe fazë
të ndryshme {Ppasq.=Prënës + [2k(xskaj - x0 )]}. Kemi përdorur faktin që vala ka bërë dy rrugë-
një drejt skajit dhe një mbrapsht. Vala tjetër e pasqyruar bën ndryshime të ngjashme por
pasqyrohet nga skaji tjetër.
Programi STAND kryen këto llogaritje duke përdorur funksionet sinus dhe cosinus. Rezultat
i ekzekutimit të programit është apmlituda në pikën e observimit pas pasqyrimeve të
shumëfishta në skaje. Ju mund ta ekzekutoni programin për disa frekuenca dhe të demonstroni
kurbat e rezonancës.
Programi STAND.BAS Valët e qëndrueshme
100 READ X1,R1,X2,R2,X9,A,V skaji i pare , koeficienti i pasqyrimit, skaji i dytë, koefic.
110 DATA 0,-.8,.165,-.8,0,1,330 i pasqyrimit, pozic. i burimit,amplituda, shpejtësia e valëve
120 I0=-7.6/LOG(ABS(R1*R1)) numri i pasqyrimeve që konsidertohen
130 PRINT “SKAJET E TUBIT:”;X1,X2
140 PRINT “SHPEJTWSIA E VALEVE=“;V
150 PRINT “PIKA E OBSERVIMIT”;
160 INPUT X0
170 PRINT “FREK. ME E ULET , FREK. ME E LARTE”;
180 INPUT F1,F2
190 PRINT “F”,”LLANDA”,”AMPLITUDA”
200 FOR F=F1 TO F2 STEP (F2-F1)/10 hapi sipas frekuencave
210 W=2*3.14159*F frekuenca këndore
220 K=W/V vektori valor
230 A0=0
240 T0=3.141519/W perioda
250 FOR T=0 TO T0 STEP T0/18 hapi nëpër periodë
260 A8=A
270 P8=K*(X0-X9)-W*T faza në pikën e obsevimit
280 A1=A*COS(P8) amplituda në pikën e observimit
290 FOR i=1 TO I0 shumimi sipas pasqyrimeve
300 A8=A8*R2
310 P8=P8+2*K*(X2-X0) faza në skajin e dytë
320 A1=A1+A8*COS(P8) amplituda në skajin e dytë
330 A8=A8*R1
340 P8=P8+2*K*(X0-X1) faza në skajin e parë
350 A1=A1+A8*COS(P8) amplituda në skajin e parë
360 NEXT i
370 IF ABS(A1) < A0 THEN 390380 A0 = ABS(A1)390 NEXT T
gjen amplitudën maksimale
400 PRINT F,2*3.14159/K,A0
410 NEXT F
420 GOTO 170 rikthim për një interval tjetër frekuencash
216
430 END
Programi STAND.FOR Valët e qëndrueshme
DATA END1,RFCOE1,END2,RFCOE2/0.,-.8,.165,-.8/
DATA SOURC,AMPLI,V/0.,1.,330./
I0=IFIX(-7.6/ALOG(ABS(RFCOE1*RFCOE2)))
5 READ(5,100)PTOBS,ALF,UF pika e observimit,kufijtë e frekuencave
IF(PTOBS-999.) 10,80,80
10 DO 70 J=1,11 hapi për frekuencat
F=ALF+(J-1)*(UF-ALF)/10.
W=2.*3.14159*F frekuenca këndore
AK=W/V vektori valor
AMX=0.
T0=4.14159/W perioda
DO 60 IT=1,19 hapi për përiodën e plotë
T=(IT-1)*T0/18.
AM=AMPLI
PHA=AK*(PTOBS-SOURC)-W*T faza në pikën e observimit
AM1=AMPLI*COS(PHA) amplituda në pikën e observimit
DO 50 I=1,I0 shumimi i pasqyrimeve
AM=AM*RFCOE2
PHA=PHA+2.*AK*(END2-PTOBS) faza në skajin e dytë
50 AM1=AM1+AM*COS(PHA) amplituda pas skajit të dytë
60 AMX=AMX1(AMX,ABS(AM1)) gjen amplitudën maksimale
ALAM=2.*3.1415/AK
70 PRINT 101,F,ALAM,AMX
GOTO 5 rikthim për frekuencën tjetër
80 STOP
100 FORMAT(3F10.4)
101 FORMAT(1X,3F10.4)
END
Figura 6.1 Përgjigjet rezonuese të
një sistemi(tubi) me dy skaje të
mbyllura. Amplituda e valës në
qendër të tubit është treguar në
varësi të frekuencës.Gjatësia etubit
është zgjedhur në mënyrë që tubi të
rezonojë në 1000 Hz. Koeficientët e
pasqyrimit për kurbat e ndryshme
janë -0.8,-0.6,-0.4, dhe 0. Modet për
2000 dhe 4000 Hz mungojnë sepse
amplituda e tyre në qendër është
shumë e vogël.
217
Figura 6.2 Përgjigjet rezonative të
sistemit si në figurën 6.1 . Pika e
observimit është 1/8 e gjatësisë së
tubit larg prej skajit të tij, kështu që
observohen të gjitha rezonancat nën
5000 Hz.
Figura 6.3 Përgjigjet rezonative
të një tubi me njerin skaj të
hapur dhe skajin tjetër të
mbyllur. Pika e observimit është
në skajin e hapur; janë treguar
rezultatet për keficientët e
pasqyrimit ±0.8,±0.6,±0.4,±0.2
dhe 0.
Figura 6.4 Përgjigjet rezonative të
një tubi me të dy skajet të hapur.
Rezonancat vrojtohen në skajin e
hapur ; përgjigja rezonative në
frekuencën 0 është zgjidhje triviale.
Janë treguar kurbat e rezonancës për
koeficientët e pasqyrimit
±0.8,±0.6,±0.4±0.2 dhe 0.
Figura 6.1 tregon efektet e rezonanacës në një tub me dy skaje të mbyllur. Për rezonancën më
të mprehtë , në çdo pasqyrim humbet 20% e valës. Gjithashtu në çdo pasqyrim faza ndryshon
me 1800 . Kurbat e tjera në figurë janë për koeficientë pasqyrimi -0.6,-0.4,-0.2, dhe 0. Gjatësia
është regulluar për një tub organoje 1000Hz, pra rezonancat priten për 1000,2000... Hz.
Megjitahtë, nëse observimi është në qendër të tubit, si në figurën 6.1, ju do observoni
amplituda të mëdha rezonuese për modet teke; për modet çifte (për të cilat 2,4,6 ... , gjysëm-
valëshe janë sa tubi) kanë amplitudë thuajse zero në qendër. Figura 6.2 tregon të njëjtin tub
me skaje të mbyllur, por tani pika e observimit është në një të tetën larg nga skaji i tubit. Aty
218
tregohen të gjithë rezonancat që ndodhin deri në 5000 Hz. Figura 6.3 tregon rezonancat në
tubin me njerin skaj të hapur dhe njerin skaj të mbyllur; pika e vrojtimit është në skajin e
hapur. Sa më perfekte bëhën pasqyrimet aq më të mprehta e më të mëdha bëhen rezonancat.
Përgjigje rezonative observohen edhe tej frekuencave rezonative. Një madhësi që karakterizon
cilësinë ose mprehtësinë e rezonancës është Q=(frekuenca rezonative)/(gjërësia e rezonancës
në ghysëm-lartësinë e amplitudës). Sa më perfekt të jetë pasqyrërimi në skaje aq më e lartë
është Q .
Figura 6.4 tregon rezonancat në një tub me dy skaje të hapura. Rezonanca për frekuencën
zero është pa kuptim fizik; ajo quhet zgjidhje triviale. Kjo zgjidhje triviale mund të gjëndet
edhe duke zgjidhur analitikisht ekuacionin diferencial përkatës.
Kjo metodë kompjuterike për valët e qëndrueshme është e përgjithëshme. Ju mund të futni
humbjet e valëve në mjedis ose pasqyrime me fazë komplekse në skaje. Metoda është
gjithashtu lehtësisht e kuptueshme fizikisht.
6.3 Parimi i Hygensit
Sipas Hygensit valët mund të trajtohen thjesht në mënyrë gjeometrike. Parimi i Hygensit thotë
se gjithë pikat mbi një front valor mund të konsiderohen si burime pikësore që prodhojnë valë
sekondare. Pas një kohe t , pozicioni i frontit valor do të jetë sipërfaqja tangente
(mbështjellëse) me këto valë sekondare. Ky parim përdoret shumë në optikë. Në optikën
gjeometrike, nxjerja e ligjit të thyerjes, duke përdorur parimin e Hygensit, ilustron faktin që
shpejtësia e dritës në një mjedis është më e vogël se ajo në vakum dhe motivon përcaktimin e
treguesit të thyerjes si n=c/v. Në optikën fizike, parimi i Hygensit jep një metodë llogaritjeje
për rastet e pengesave në rrugën e valëve. Metoda e valëve sekondare mund të programohet
lehtë. Një program i tillë do të llogariste konturet e amplitudës konstante të valëve në një çast
kohe. Rezultati do të ishte një tablo e valëve në këtë çast (figura 6.5). Vijat e maksimumit të
intensitetit çfaqen si drejtime në të cilat valët prej burimeve sekondarë të ndryshëm lëvizin në
fazë të njëjtë. Duke parë një ose dy tablo të tilla, ju mund të plotoni vetë me kompas e vizore.
Figura 6.5 Ndërtimi i tablosë
së interferencës sipas paeimit të
Hygensit. Janë paraqitur vetëm
valët që ecin në njërën anë.
Gjatësia e valës është sa gjysma
e largësisë midis burimeve,
kështu që maksimumi në këndet
0,300 , 90
0 me drejtimin
përpara. Drejtimet në të cilat
frontet valore janë
bashkëtangent janë drejtimet e
maksimumeve të intensitetit.
Vini re që gjërësia këndore e
maksimumit reth 900 eshtë më
e madhe se ajo e maksimumeve
rreth drejtimeve të tjera.
219
Shpesh , interferenca (ose difraksioni) vizualizohet nëpërmjet tablosë së intensitetit në një
ekran të vendosur në fushën valore ose në përgjithësi me anë të plotimi polar të intensitetit, ku
si origjinë polare merret pozicioni i burimit. Ne do të shohim se mund të prodhohen me anë të
kompjuterit tablotë e intensitetit për një shpërndarje çfardo shpërndarje burimesh të valëve.
Më poshtë do të japim disa formula bazë që do të përdoren:
1. Koeficienti i pasqyrimit=Amplituda e valës së pasqyruar/Amplituda e valës rënëse
Koeficienti i depërtimit=Amplituda e vlës së depërtuar/Amplituda e valës rënëse
2. Pasqyrimi në skaje të mbyllur fut një ndryshim faze 1800
Pasqyrimi në skaje të hapur nuk fut ndryshim faze
3. Interferenca nga çarje të dyfishta (Eksperimenti i Jungut):
I()=4I0 cos2 , ku =d sin /
Maksimumet në d sin = m , m=0,1,2,3.. (Interferencë konstruktibve)
Minimumet në d sin = (m+½) (Interferencë destruktive) ; d=ndarja e çarjeve
4. Diferenca e fazave midis dy valëve = 2
(| | | |)r r2 1, ku r1,r2 janë largësitë nga dy burimet
koherentë të valëve .
5. Difraksioni nga një çarje: I() = Imax sin
2
, ku
a sin dhe a = gjerësia e
çarjes.
6. Difraksioni nga N çarje : I() = N IN2
0
2
2
2
2
sin sin
sin
, ku , janë si më lart dhe N
është numri i çarjeve identike të barazlarguara nga njera tjetra.
Në programin NSLIT, kompjuteri llogarit zgjidhjet për problemin e difraksionit nga N çarje.
Programi IVANG llogarit tablonë e intensitetit si funksion i këndit rreth një shpërndarje të
përgjithëshme të burimeve valorë. Programi THNFLM llogarit efektet e interferencës nga një
shtresë e hollë dielektrike (shtresë vaji ose qelqi).
Për programet AMPLI, INTEN dhe IVSANG burimet e valëve mund të vendosen kudo në
planin xy. Programi AMPLI llogarit amplitudat e valëve prej çdo burimi që arrin një pikë të
caktuar dhe pastaj printon amplitudën totale. Programi INTEN llogarit intensitetin e
mesatarizuar sipas fazave në një pikë të caktuar observimi. Programi IVSANG printon
intensitetet në një numër pikash mbi një rreth të madh. Pasi llogarit shumën e amplitudave të
valëve për një numër të ndryshëm kohësh (ose fazash), programi printon katrorët e
amplitudave. rezultati është intensiteti (prej gjithë burimeve) në çdo pikë të rrehit (intensiteti
si funksion i këndit).
Programi NSLIT.BAS Difraksioni nga N çarje(I() e normalizuar te 1)
100 L0=1
110 X0=.005
120 PRINT“DISTANCACAR-EKRAN=“;L0;”m.;GJERESIAEEKRANIT=“;1E3*X0;”mm.”
130 PRINT
140 PRINT “# i CARJEVE (ZERO PER TE MBARUAR)”;
150 INPUT N
160 IF N=0 THEN 500
170 PRINT “GJERESIA E CARJES(NE mm)”;
180 INPUT A
220
190 A=A*1E-3
200 IF N=1 THEN 240
210 PRINT “DISTANCA MIDIS CARJEVE (NE mm)”;
220 INPUT H
230 H=H*1E-3
240 PRINT “GJATESIA E VALES (ANGSTROM)”;
250 INPUT L
260 L=L*1E-10
270 PRINT “POZICIONI”,”INTENSITETI”
280 X5=X0/(32*N) Intervali për hapin nëpër ekran
290 FOR X1=-X0/2 TO X0/2 STEP X5 hapi nëpër ekran
300 S=X1/L0 sin() për të vegjël
310 IF S >< 0 THEN 350320 Y1= 1330 PRINT X1,Y1340 GOTO 470
Qendra e tablosë
350 A1=3.14159*A*S/L gjerësia sin()/
360 IF N>1 THEN 400
370 S5 = SIN(A1)380 S4 = 1385 S6 = 1390 GOTO 450
Kur kemi vetëm një çarje
400 D=3.14159*H*S/L ndërçarja sin()/
410 S4=SIN(D) sin()
420 IF S4=0 THEN 320
430 S5=SIN(A1) sin()
440 S6=SIN(N*D) sin(N)
450 Y1=S5*S5*S6*S6/(A1*A1*N*N*S4*S4) formula e N çarjeve
460 PRINT X1,Y1
470 NEXT X1
480 PRINT
490 GOTO 140 rikthim për një gjeometri tjetër
500 END
Programi NSLIT.FOR Difraksioni nga N çarje (I i normalizuar te 1)
TOSCRN=1. Distanca deri te ekrani
XWIDTH=.001 gjerësia e ekranit
10 READ(5,100)SLTNUM,SLTWID,SLTSEP,WAVEL
IF (SCTNUM.EQ.0.) GOTO 40
WAVEL=1.E-10*WAVEL gjatësia e valës
DO 20 i=1,21,1 hapi nëpër ekran
AI=I-1
X=-XWIDTH/2.+AI*XWIDTH/20.
SINT=X/TOSCRN sin() për të vegjël
ALPHA=3.14159*SLTWID*SINT/WAVEL gjerësia sin()/
SINALP=SIN(ALPHA)
BETA=3.14159*SLTSEP*SINT/WAVEL ndërçarja sin()/
SINBET=SIN(BETA)
221
IF (SINBET.NE.0.) GOTO 30Y = 1.GOTO 20
qendra e tablosë
30 SINNBE=SIN(SLTNUM*SLTSEP) sin(N)
Y=SINALP**2*SINBE**2/(ALPHA**2*SLTNUM**2*SINBET**2) formula e
N çarjeve
20 PRINT 101,X,Y
GOTO 10 rikthim për një gjeometri tjetër
100 FORMAT(4F5.4)
101 FORMAT(1X,2E15.5)
40 STOP
END
Programi AMPLI.BAS Amplituda prej burimeve valorë në 2D
100 DIM X(10),Y(10),A(10),P(10)
110 PRINT NUMRI i BURIMEVE,GJATESITE E VALEVE;120 INPUT N, L130 PRINT PER SECILIN BURIM:140 PRINT KORDINATAT(X,Y),AMPLITUDA, FAZA(GRADE)150 FOR i = 1 TO N160 INPUT X(I),Y(I),A(I), P(I)170 P(I) = 4.14159 *P(I) / 180180 NEXT i
Gjeometria e burimeve
190 PRINT “KORDINATAT E PIKES OBSERVUESE?”;
200 INPUT X0,Y0
210 PRINT “AMPLITUDA GJATE NJE CIKLI”
220 FOR P0=0 TO 6.28318-3.14159/8 STEP 3.14158/8 Hapi sipas fazës
230 A1=0
240 FOR i=1 TO N shumimi për gjithë burimet
250 X1= X0- X(I)260 Y1= Y0- Y(I)270 R = SQR(X1*X1+ Y1*Y1)
Distanca nga çdo burim te pika e observimit
280 A1=A1+A(I)*SIN(6.28318*R/L+P(I)+P0) shumimi i amplitudave
290 NEXT i
300 PRINT A1
310 NEXT P0
320 GOTO 190 rikthim për pikën tjetër të observimit
330 END
Programi AMPLI.FOR Amplituda prej disa burimesh në 2D
DIMENSION X(10),Y(10),A(10),P(10)
DATA N,AL / 4,1./ DATA Y(1),Y(2),Y(3),Y(4) / 4*0./ DATA X(1),X(2),X(3),X(3) / -1.5,-.5,.5,1.5 / DATA A(1),A(2),A(3),A(4) / 4*1./ DATA P(1),P(2), P(3),P(4) / 4*0./
gjeometria e burimeve
5 READ(5,100)XOBS,YOBS pika e observimit
IF (XOBS-999.) 7,30,7
7 DO J=1,16 hapi nëpër fazë 2
222
PHASE=(J-1)*3.14159/8.
AMPL=0.
DO 10 I=1,N shumimi për gjithë burimeve
DX = XOBS- X(I) DY = YOBS-Y(I) R = SQRT(DX*DX + DY*DY)
Distanca nga çdo burim te pika obsevuese
10 AMPL=AMPL+A(I)*SIN(6.28318*R/AL+P(I)+PHASE) shumimi i amplitudave
20 PRINT 101,AMPL
GOTO 5
30 STOP
100 FORMAT(2F10.4)
101 FORMAT(1X,F10.4)
END
Programi INTEN.BAS Intensiteti prej disa burimeve valorë
100 DIM X(10),Y(10),A(10),P(10)
110 PRINT NUMRI I BURIMEVE, GJATESIA E VALES;120 INPUT N, L130 N9 = 0140 PRINT PER CDO BURIM:150 PRINT KORDINATAT (X,Y),AMLITUDA, FAZA(GRADE)160 FOR I = 1 TO N170 INPUT X(I),Y(I),A(I), P(I)180 P(I) = 3.14159 * P(I) / 180190 N9 = N9 + A(I)200 NEXT I
gjeometria e burimeve
210 N9=N9*N9 konstantja e normalizimit
220 PRINT “KORDINATAT E PIKES OBSERVUESE”;
230 INPUTX0,Y0
240 I0=0
250 FOR P0=0 TO 6.28318-3.14159/8 STEP 3.14159/8 shumimi gjatë një cikli
260 A1=0
270 FOR I=1 TO N shumimi sipas burimeve
280 X1= X0 - X(1)290 Y1= Y0 - Y(1)300 R = SQR(X1* X1 + Y1* Y1)
distanca nga secili burim te pika eobservimit
310 A1=A1+A(I)*SIN(6.28318*R/L+P(I)+P0) shuma e amplitudave
320 NEXT I
330 I0=I0+A1*A1 intensiteti
340 NEXT P0
350 PRINT “INTENSITETI=“;I0/(8*N9)
360 GOTO 220
370 END
Programi INTEN.FOR Intensiteti prej disa burimeve
DIMENSION XSOURC(10),YSOURC(10),AMPL(10),PHASE(10)
223
READ(5,100)NSOURC, WAVEL AMPNOR = 0. DO 20 I = 1, NSOURC,1 READ(5,101)XSOURC(I), YSOURC(I), AMPL(I), PHASE(I) PHASE(I) = 3.1415 * PHASE(I) / 180. 10 AMPNOR = AMPNOR + AMPL(I)
gjeometria e burim.
AMPNOR=AMPNOR**2 konstantja e normalizimit
20 READ(5,102)XOBS,Y(OBS) pika e observimit
IF (XOBS.EQ.9999.) GOT 50
AINTEN=0.
DO 40 IP=1,16,1 shumimi sipas një cikli
AIP=1P-1
AVPHAS=AIP*3.14159/8.
AVAMP=0.
DO 30 IN=1,NSOURC,1 shimimi për gjithë burimet
X = XOBS - XSORC(IN) Y = YOBS - YSOURC(IN) R = SQRT(X **2 + Y **2)
distanca nga secili burim te pika observuese
30 AVAMP=AVAMP+AMPL(IN)*SIN(6.28318*R/WAVEL+PHASE(IN)+AVPHAS)
shumimi i amplitudave
40 AINTEN=AINTEN+AVAMP**2/(8.*AMPNOR) intensiteti
GOTO 20
100 FORMAT(I5,F5.2)
101 FORMAT(4F5.2)
102 FORMAT(2F5.2)
103 FORMAT(1X,3E15.5)
50 STOP
END
Programi IVSANG.BAS Intensiteti si funksion i këndit për disa burime(2D)
100 DIM I(200),S(361),X(10),Y(10),A(10),P(10)
110 FOR I = 1 TO 361120 T0 = (I - 1) * 6.28318 / 360130 S(I) = SIN(T0)140 NEXT I
sinuset e këndeve që do përdoren
150 PRINT SA BURIME , ÇFARE GJATESIE VALE;160 INPUT N9, L0170 N8 = N9 * N9180 PRINT (X,Y), AMPL. DHE FAZA(GRADE) PER ÇDO BURIM:190 FOR I = 1 TO N9200 PRINT BURIMI; I;210 INPUT X(I),Y(I), A(I), P(I)220 P(I) = 3.14159 * P / 180230 NEXT I
gjeometria e burim.
240 PRINT “SA PIKA OBSERVUESE NE RRETH”;
250 INPUT N7
260 J0=0
270 R0=10 rrezja e rrethit të observimit
280 FOR P0=0 TO 6.18318 STEP 6.28318/N7 hapi nëpër rreth
290 J0=J0+1
224
300 X0 = R0 * COS(P0)310 Y0 = R0 *SIN(P0)
kordinatat e pikave në rreth
320 N5=8
330 FOR P5=0 TO 6.28318-3.14159/N5 STEP 3.14159/N5 mesatarizimi sipas fazës
340 I9=0
350 FOR I=1 TO N9 shumimi sipas burimeve
360 X1= X0 - X(I)370 Y1= Y0 - Y(I)380 R1= SQR(X1* X1+ Y1* Y1)
distanca nga çdo burim te pika e rrethit
390 P4 = 2 * 3.14159 * R1/ L0 + P(I)400 P = P4 + P5
faza e çdo vale në rreth
410 P = P - INT(P / (2 * 3.14159)) * (2 * 3.14159)420 J1= INT(P / 3.14159 / 180)
zgjedh sinusin përkatës
430 I9=I9+A(I)*S(J1) shumimi i amplitudave
440 NEXT I
450 I(J0)=I(J0)+I9*I9/N8 mesatarizimi i intensiteteve
460 NEXT P5
470 NEXT P0
480 PRINT PIKA, KENDI, INTENSITETI490 FOR J = 1 TO J0500 I9 = I(J)510 I9 = I9 / N5520 PRINT J, (J - 1) * (6.28318 / N7) *180 / 3.14159, I9530 NEXT J
grupi i printimit
540 PRINT
550 GOTO 150 rikthimi për burim tjetër
560 END
Programi IVSANG.FOR Intensiteti në varësi të këndit për disa burime(2D)
DIMENSION AIN(200),S(361),X(10),Y(10),AMP(10),PHASE(10)
DO 10 I = 1,361 T0 = (I - 1) * 6.28318 / 360. 10 S(I) = SIN(T0)
ruhen sinuset që do përdoren
DATA NSOUR, AL0 / 2,1./ ANCIR = NSOUR * NSOUR DATA X(1), Y(1), AMP(1), PHASE(1)/.5,0. ,1. ,0./ DATA X(2), Y(2), AMP(2), PHASE(2) / -.5,0. ,1. ,0./
numri i burimeve,gjatwsia e valws
gjeometria e burim.
DATA NCIRC/16/ numri i pikave në rreth
ANCIRC=NCIRC
R0=10. rrezja e rrethit të observimit
DO 80 J0=1,NCIRC+1 hapi nëpër rreth
ANGC=(J0-1)*6.28318/ANCIRC
X0 = R0 * COS(ANGC) Y0 = R0 *SIN(ANGC)
kordinatat e çdo pike në rreth
NAV=16
ANAV=NAV
DO 80 IP=1,NAV mesatarizimi në fazë
225
PHAAV=(IP-1)*6.28318/ANAV
AMPLI=0.
DO 70 I=1,NSOUR shumimi sipas burimeve
XOBS = X0 - X(I) YOBS = Y0 - Y(I) ROBS = SQRT(XOBS **2 + YOBS **2)
distanca nga çdo burim te pika e rrethit
PHA = 6.28318 * ROBS / AL0 + PHASE(I) REPHA = PHA + PHAAV
faza e seicilës valë në rreth
REPHA=REPHA-AINT(REPHA/6.28318))*6.28318 zgjedh sinusin përkatës
J1=1+AINT(REPHA/(3.14159/180.))
70 AMPLI=AMPLI+AMP(I)*S(J1) shumimi sipas amplitudave
80 AIN(J0)=AIN(J0)+AMPLI*AMPLI/ANCIR mesatarizimi i intensitetit
DO 85 J = 1, NCIRC + 1 AI = 2.*AIN(J) / ANAV ANG = (J - 1) * (6.28318 / ANCIRC) *180./3.14159 85 PRINT 100, J, ANG, AI
grupi i printimit
STOP
100 FORMAT(1X,2F10.4)
END
Figura 6.6 tregon intensitetin në kënde të ndryshëm për rastin e dy burimeve të figurës 6.5
(eksperimenti me dy çarjet e Jungut). Kjo ilustron përdorimin e programit IVSANG.
Maksimumet më të gjerë janë për drejtimet 900
(interferencë konstruktive). Të tjerët janë në
drejtimet 0 dhe 300 me drejtimet para e mbrapa.
Figura 6.6 Plotimi polar i intensitetit në varësi të këndit për
gjeometrinë e figurës 6.5 . Diagrama tregon tablonë për gjithë
3600. Vini re që lobet e gjera në drejtimet anash dhe që
pozicionet këndore të lobeve përputhen me maksimumet e
figurës 6.5. Në program mund të vendosen burimet kudo në
plan me amplituda e faza të çfardoshme dhe mandej llogariten
intensitetet në një rreth të madh që i rrethon gjithë burimet.
Një problem që mund të trajtohet duke përdorur programin
IVSANG ka të bëjë me skemat e antenave. Në radiostacionet transmetuese disa antenat
identike vendosen të baraslarguara , plani i formuar nga antenat mbulon me sinjale një rajon
urban përballë këtij plani. Shumë nga këto skema janë si skema baterish. Duke përdorur
tablonë e interferencës prej disa burimeve , skemat bateri mund ti drejtojnë shumicën e
sinjaleve në një drejtim. Rajoni që ndodhet në këtë drejtim kap më mirë sinjalet. Ju mund ti
llogaritni efektet e interferencës prej një skeme baterie duke përdorur programin IVSANG në
të cilin mund të provoni skema të ndryshme antenash (burime pikësore në një plan) .
6.4 Interferenca në pllakat(filma, cipa, shtresa) e holla
Një aplikim tjeter në kompjuter është fenomeni i interferencës në pllakat e holla. Thelbi i
fenomenit kuptohet lehtë. Një valë bie nën një kënd mbi një pllakë plan-paralele trashësia e
së cilës është e rendit të gjatësisë së valës. Vala pjesërisht pasqyrohet dhe pjesërisht thyhet
duke kaluar në mjedisin e dytë. Nga kjo pjesë në mjedisin e dytë , një pjesë pasqyrohet në
226
faqen tjetër të pllakës dhe pjesa tjetër del jashtë pllakës në mjedisin e tretë. Procesi përsëritet
(në parim një infinitet herësh) dhe çdo valë ndryshon në amplitudë e fazë nga valët fqinje. Kur
valët mblidhen së bashku (p.sh. nga një lente) ato interferojnë . Nga interferenca konstruktive
ose destruktive ndodhin maksimumet dhe minimumet që varen nga gjatësia e valës ,
trashësia e pllakës d dhe kendi i rënies .
Duke e parqitur valën me vija pingul me frontet valorë, fenomeni mund të paraqitet
skematikisht si në figurën 6.7. Shënojmë R1 raportin e amlitudës së valës së pasqyruar me
amplitudën e valës rënëse (koeficienti i pasqyrimit) në kufirin n1n2 dhe T1 raportin përkatës
të transmetimit (koeficienti i transmetimit) . Shënojmë R2 dhe T2 raportet përkatës në kufirin
n2n1 . Supozojmë se treguesi i thyerjes në mjedisine e tretë n3 është i njëjtë me atë të
mjedisit të parë n1 . Atëhere për valën e i-të në anën e sipërme të pllakës është :
A(I)=A T1 (R2)2i-- 1
T2 me A(0)= A R1 , ku A është amplituda e valëve rënëse. Për
valën e i-të që kalon përtej pllakës kemi : A(I)=A T1 (R2)2(i-- 1)
T2 , A(0)=0 .
Interferenca varet gjithashtu nga diferenca e fazave midis valëve kur ato dalin nga pllaka. Një
lente i mbledh së bashku valët paralele që vijnë prej pikave të tilla si A dhe B në figurë.
Ndërkohë rrezja e i-të ka arritur pikën B , ajo ka kaluar rrugën optike me gjatësi 2n2 d i/cos2
(Rruga optike është produkti i rrugës gjeometrike me treguesin e thyerjes). Në të njëjtin front
vale pika në valën e parë (pika C në figurë) ka kaluar rrugën optike me gjatësi 2n1 d i sin1
tg1 . Diferenca e fazave midis këtyre valëve është : 2(diferenca e rrugëve optike)/ .
Kompjuteri llogarit këto amplituda dhe diferenca fazësh dhe i shton në valën rezultante.
Programi THNFLM bën edhe mesatarizimin gjatë një cikli të valës rënëse në mënyrë që të
sigurohemi që amplituda zero nuk është për një vlerë të vecantë të valës rënëse.
Figura 6.7 Gjeometria e pasqyrimeve dhe transmetimeve të shumëfishta në një pllakë të
hollë me tregues thyerjeje n2
Programi THNFLM.BAS Intereferenca në pllakat e holla
100 DIM A(500),D(500)
227
110 PRINT “GJATESIA E VALES, TRASHESIA E PLLAKES”;
120 INPUT L,D
130 PRINT “KENDI”,”INTENSITETI”
140 N1=1 teguesi i thyerjes (jashtë plakës)
150 N2=2 teguesi i thyerjes (brenda plakës)
160 A=1 amplituda e burimit
170 FOR P9=0 TO 3.14159/2 STEP 3.14159/36 hapi sipas këndeve të rënies
180 i0=0
190 C1=COS(P9)
200 S1=SIN(P9)
210 S2=N1*S1/N2 ligji i thyerjes
220 C2=SQR(1-S2*S2)
230 R1= (N1*C2 - N2*C1) / (N1*C2 + N2*C1)240 T1= 1+ R1250 R2 = -R1260 T2 = 1+ R2
koeficientët e pasqyrimit dhe transmet.
270 I9=INT(-3*2.30259/LOG(ABS(R2))+1)
280 IF i9>500 THEN 110
290 A(0)=A*R1
300 D(0)=0
310 FOR i=1 TO i9 ruhen pasqyrimet
320 D(I)=2*N2*D*I/C2-2*N1*D*S1*I*S2/C2
330 D(I)=2*3.14159*D(I)/L faza
340 A(I)=A*T1*R2^(2*I-1)*T2 amplituda
350 NEXT i
360 FOR i=1 TO 16 mesatarizimi sipas fazës(gjatë një cikli)
370 P0=(J-1)*3.14159/8
380 A1=0
390 FOR i=0 TO i9 shumimi i pasqyrimeve
400 A1=A1+A(I)*SIN(P0+D(I)) shumimi i amplitudave
410 NEXT i
420 I0=I0+A1*A1 intensiteti
430 NEXT J
440 PRINT 180*P9/3.14159,I0/16
450 NEXT P9
460 GOTO 110 rikthim për një gjeometri të re
470 END
Programi THNFLM.FOR Intereferenca në pllakat e holla
DIMENSION A(500),D(500)
10 READ(5,100)ALAM,D , trashësia
IF (ALAM-999.) 20,60,20
20 AN1=1. treguesi i thyerjes(jashtë pllakës)
AN2=2. treguesi i thyerjes(brenda pllakës)
A=1. amplituda e burimit
DO 50 K=1,19 hapi sipas këndeve
ANG=(K-1)*4.14159/36.
AIO=0.
228
CI=COS(ANG)
SI=SIN(ANG)
S2=AN1*S1/AN2 ligji i thyerjes
C2=SQRT(1-S2*S2)
R1= (AN1* C2 - AN2 * C1) / (AN1* C2 + AN2 * C1) T1= 1.+R1 R2 = -R1 T2 = 1+ R2
koeficientet e pasq. e trans.
I9=IFIX(-3.*2.30259/ALOG(R2))+2)
IF (I9-500) 20,20,10
20 A(1)=A*R1
D(1)=0.
DO 30 I=2,I9 ruhen fazat dhe amplitudat e pasqyrimeve
D(I)=2.*AN2*D*I/C2-2.*AN1*S1*I*S2/C2
D(I)=2.*3.14159265*D(I)/ALAM
30 A(I)=A*T1*R2**(2*I-1)*T2
DO 45 J=1,16 mestatarizimi sipas fazës
A1=0.
DO 40 i=1,I9
40 A1=A1+A(I)*SIN(P0+D(I)) amplituda
45 AI0=AI0+A1*A1 intensiteti
AI0=AI0/16.
DANG=180.*ANG/3.14159265
50 PRINT 101,DANG,AI0
GOTO 10
60 STOP
100 FORMAT(2F10.4)
101 FORMAT(1X,2F10.4
END
Figura 6.8 tregon tablonë e intensitetit si funksion i këndit të rënies për /d=0.05, n1=1 dhe
n2=2. Koeficientët e pasqyrimit dhe transmetimit supozohen konstantë : R1=-0.25 (shenja -
tregon që vala e pasqyruar pëson ndryshim faze me 1800), T1=1+R1 , R2=- R1, T2=1+R2. Breza
të errët e të ndritshëm vrojtohen në tufën e pasqyruar dhe në tufën e depërtuar. Intensiteti
maksimal është 0.5 e intensitetit të normalizuar ; tufa e paqyruar ka intensitet zero për =0,
kurse intensiteti i tufës së transmetuar ka maksimum sepse trashësia e pllakës është 80 herë
gjatësinë e valës. Valët e depërtuara janë në fazë me valët rënëse ndërsa valët e pasqyruara
janë në kundërfazë. Figura 6.9 tregon të njëjtën varësi për /d=0.05, n1=1 , n2=2 , por R1=-
0.5. Përsëri vrojtohen brezat e errët e të ndritshëm, por brezat e errët janë më të thellë e më të
mprehtë. Këto figura janë në përgjithësi korrekte, por ndonjë rezultat muk ka kuptim fizik.
P.sh. sasia e valëve të transmetuara nëpër pllakë duhet të shkojë në zero për këndin 900 , me
që vala bie paralel me pllakën. Më tej , për pllaka reale duhet të vrojtohet efekti i këndit të
Brusterit për dritën e polarizuar dhe koeficienti i pasqyrimit R2 duhet të japë pasqyrim të plotë
të brëndëshëm për kënde të mëdhenj 2. Këto efekte mund të çfaqen duke përdorur koeficientë
korrektë të pasqyrimit dhe transmetimit. Këto koeficientë korrektë (nganjëherë quhen
koeficientët e Fresnelit) nxirren nga ekuacionet e Maksuellit dhe kushtet kufitare për vektorët
E dhe B të valës elektromagnetike në kufirin ndarës. Nga këto del që koeficientët janë të
ndryshëm për dritën me vektor E në planin e rënies (E||) nga drita me vektor E pingul me
planin e rënies(E). Për E|| ,T1=1+R1 , R2=-R1 dhe T2=1+R2 . Për E , T1=(cos1)(1+R1)/cos2 ,
229
R2=-R1 , dhe T2=(cos2)(1+R2)/cos1 . Pra ka dy koeficientë të ndryshëm pasqyrimi për dy
polarizimet:
Për E : Rn n
n n1
1 1 2 2
1 1 2 2
cos cos
cos cos
; Për E|| : R
n n
n n1
1 2 2 1
1 1 2 2
cos cos
cos cos
Figura 6.10 tregon tregon koeficientët e pasqyrimit dhe transmetimit në kufirin midis n1=1 dhe
n2=2. Koeficienti i transmetimit T shkon në zero kor arrin 900 për të dy polarizimet. Këndi i
Brusterit i shënuar me B është rreth 63.50 për E||. Figura 6.11 tregon koeficientët e pasqyrimit
dhe transmetimit për n1=2 dhe n2=1. Këndi i Brusterit është 26.60 dhe pasqyrimi i plotë i
brëndëshëm ndodh për kënde më të mëdhenj se 300 (sin=0.5). Këto figura janë plotuar me
anën e programit REFCOE.
Figura 6.10 Koeficientët e pasqyrimit (R )
dhe të transmetimit ( T ) për E në planin e
rënies ( E}} ) dhe për E pingul me planin e
rënies ( E ). Vala shkon nga rajoni n=1 në
rajonin n=2. Këndi i Brusterit është afro 63.50.
Figura 6.11 Koeficientët e pasqyrimit (R ) dhe
të transmetimit ( T ) për E në planin e rënies (
E}} ) dhe për E pingul me planin e rënies ( E )
në varësi të këndit. Vala shkon nga rajoni n=2 në
rajonin n=1. Këndi i Brusterit është afro 26.60
dhe pasqyrimi i plotë i brëndëshëm ndodh për
kënde më të mëdhenj se 300 (sin =0.5).
Programi REFCOE.BAS Koeficientët e Fresnelit
100 PRINT “N1,N2(>N1),THETA(GRADE)”;
110 INPUT N1,N2,T0
120 T0=3.14159*T0/180
130 S1=SIN(T0)
140 C1=COS(T0)
150 S2=N1*S1/N2
160 C2=SQR(1-S2*S2) ligji i thyerjes, sinusi i këndit në mjedisin e dytë
230
170 PRINT “KENDI NE MJEDISIN E DYTE=“;180*ATN(S2/C2)/3.14159
180 R1= (N1*C2 - N2*C1) / (N1*C2 + N2*C1) p pasqyrimi 190 S1= (N1*C1- N2*C2) / (N1*C1+ N2*C2) s pasqyrimi200 T1= C1*(1+ R1) / C2 p transmetimi 210 U1= 1+ S1 s transmetimi
nga mjedisi 1 në mjed. 2
220 PRINT “PER 1 2 : RP,RS,TP,TS”
230 PRINT R1,S1,T1,U1
240 R2=-R1 p pasqyrimi për kalimin nga mjedisi 2 në mjedisin 1
250 S2=-S1 s pasqyrimi për kalimin nga mjedisi 2 në mjedisin 1
260 T2=C2*(1+R2)/C1 p transmetimi për kalimin nga mjedisi 2 në mjedisin 1
270 U2=1+S2 s tansmetimi për kalimin nga mjedisi 2 në mjedisin 1
280 PRINT “PER 2 1 : RP,RS,TP,TS”
290 PRINT R2,S2,T2,U2
300 PRINT
310 GOTO 100 rikthim për një gjeometri tjetër
320 END
Programi REFCOE.FOR Koeficientët e Fresnelit
5 READ(5,100)AN1,AN2,THETA
IF (AN1-999.) 10,20,20
10 THETA=3.14159*THETA/180.
SN1=SIN(THETA)
CS1=COS(THETA)
SN2=AN1*S1/AN2 ligji i thyerjes, sinusi në mjedisin e dytë
CS2=SQRT(1-SN2*SN2) kosinusi në mjedisin e dytë
RP1=(AN1*CS2-AN2*CS1)/(AN1*CS2+AN2*CS1) p pasqyrimi për 12
RS1=(AN1*CS1-AN2*CS2)/(AN1*CS1+AN2*CS2) s pasyrimi për 12
TP1=CS1*(1.+RS1)/CS2 p transmetimi për 12
TS1=1.+SN1 s transmetimi për 12
PRINT 101,RP1,RS1,TP1,TS1
RP2=-RP1 p pasqyrimi për 21
RS2=-RS1 s pasqyrimi për 21
TP2=CS2*(1.+RP2)/CS1 p transmetimi për 21
TS2=1.+SN2 s transmetimi për 21
PRINT 101,RP2,RS2,TP2,TS2
GOTO 5 rikthim për gjeometri tjetër
20 STOP
100 FORMAT(3F10.4)
101 FORMAT(1X,4F10.4)
END
Nëse përdoren këto koeficientë në programin THFLM ne arrimë në rezultate të mira fizike.
Figura 6.12 tregon koeficientët e transmetimit T dhe pasqyrimi R në funksion të këndit të
rënies për /d=0.05, n1=1, n2=2 dhe E . Vala e transmetuar shkon në zero për këndin e
rënies 900 . Figura 6.13 tregon të njëjtën gjë për /d=0.05, n1=1, n2=2 dhe E|| . Këtu duken
efektet e këndit të Brusterit B. figura 6.14 tregon të njëjtën gjë si figura 6.12 por tani gjatësia e
231
valës është e tillë që trashësia e pllakës është 80½ gjatësi valësh. Pasqyrimi qëndror është i
“ndritshëm” dhe transmetimi qëndror është i “errët”.
Të gjitha këto llogaritje janë të vështira për tu kryer analitikisht, prandaj kompjuteri është i
leverdisëshëm sepse valët mblidhen ndërkohë që ruhen vlerat e amplitudave dhe fazave të
valëve që ecin.
Problema
1. Shkruani një program që llogarit tablonë e intensiteteve prej N burimeve . Trgoni që me
rritjen e N (për burime të barazlarguar), mprehtësia e vijave të ndrtitëshme rritet dhe vija
më pak të ndritëshme çfaqen. Tregoni që numri më i madh i brezave brënda
maksimumit të parë të difraksionit nga një çarje varet nga raporti i distancës midis
çarjeve me gjerësinë e çarjes. Provoni që tabloja varet nga gjatësia e valës.
2. Shkruani një program që mbledh valët nga një numër burimesh të vendosur kudo në
një plan. Llogaritni intensitetin në distanca të largëta. Kontolloni llogaritjet tuaja duke
plotuar tablonë e intensitetit në problemin e dy burimeve. Përdoreni programin për
demostrimin e skemës së antenave në formë baterie. Shikoni nëse mundni të ndërtoni
një skemë dy-dimensionale antenash që ka vetëm lobin në një drejtim para (skema e
mirë orientuar)
233
KAPITULLI VII
MEKANIKA KUANTIKE
Hyrje
Në shkallë mikroskopike grimcat kanë sjellje të ngjashme me valët.Elektroni në atomin e
hidrogjenit do të rrezatonte energji dhe do binte në bërthamë nëse nuk do të sillej si një valë e
qëndrueshme rreth protonit. Neutronet që kalojnë nëpër një kristal të ngurtë sillen si valë gjatë
bashkëveprimit me kristalin.
Këto valë të grimcave (që quhen funksione valore ose valë të amplitudës së probabilitetit)
u binden ekuacionit valor që është ekuacioni i Shrödingerit. Ne nuk do shohim rastet e
përgjithëshme tre dimensionale ku hyn edhe koha, por do shqyrtojmë rastin më të thjeshtë
një-dimensional të ekuacionit të Shrödingerit. Ky ekuacion i korespondon ekuacioneve
diferenciale të valëve makanike. Nga studimi i këtij rasti të thjeshtë mund të përfytyrohen
shumë gjëra mbi sjelljen kuantike të grimcave.
Duke përdorur kompjuterin do studiojmë rastin e gropës potenciale katrore të fundme dhe
oshilatorin harmonik një dimensional si dhe probleme të tjera që kanë zgjidhje analitike.
Potencialin një-dimensional do ta marrim simetrik , pra V(-x)=V(x). Do diskutojmë edhe
potenciale simetrike tre-dimensionale për të treguar rrugën e zgjidhjes së problemit.
Programet llogaritin funksionet valore të pa normalizuara. Për të normalizuar një funksion
valor llogaritet integrali I= -+
||2 dx dhe pjestohet funksioni bvalor me I. Metoda tre-
dimensionale vlen për çdo potencial me simetri sferike [ V(r)=V(|r|)] , dhe mund të përdoret
për shumë raste. Në këtë kapitull do shqyrtohen kryesisht probleme të gjëndjeve stacionare
d.m.th gjetja e funksioneve vehtiake dhe vlerave vehtiake të ekuacionit të Shrödingerit. Do të
përmëndet edhe rasti i përhapjes së një pakete valore ku përdoret ekucioni stacionar i
Shrödingerit.
Formulat Bazë
1. Ekuacioni i Shrödingerit për gjëndjet stacionare një-dimensionale:
h2 2
22m
d
dxV x E
( )
Ky ekuacion do të thjeshtohet duke matur V dhe E në njësi atomike (h=m=e=1),pra ekuacioni
do sillet në:
d
dxV x E
2
22
[ ( ) ]
2. Për një funksion valor të normalizuar (pra, -+
||2 dx=1) katrori i funksioni valor |(x)|
2 ,
është densiteti i probabilitetit që grmica të ndodhet në pikën x .
3. Kushtet kufitare:
a) dhe d/dx duhet të jenë të vazhduara për çfardo V(x) të fundme.
b) 0 kur |x| [edhe kur |V(x)| ]për gjëndjet e fundme.
4. Në qoftë se V(-x)=V(x) (potencilai simetrik), atëhere është ose komplet tek [(-x)=-(x)
për çdo x] ose është komplet çift [(-x)=(x) për çdo x].
5. Për një gropë potenciale katërkëndëshe të pafundme [V(x)=0 ,për |x|<a , V(x)= për |x|>a] ,
gjendjet stacionare kanë serinë e vlerave të energjisë (vlerat vehtiake):
234
Em
n
an
h2 2 2
22 4
ku n=1,2,3....
dhe funksioneve vehtiake :
n(x)= konstante sin(n x/2a) për n çift
n(x)= konstante cos(n x/2a) për n tek
ku konstantja normalizon funksionet valore. (Këto janë analoge me modet e qëndrueshme në
një shufër me gjatësi 2a)
6. Për oshilatorin harmonik një-dimensional nivelet energjetike janë:
En= (n-1/2)h për n=1,2,3,... ku = k/m dhe V(x)=k/2 x2
7. Në përgjithësi, funksioni valor oshilon (zakonisht jo sinusoidal) në zonat ku E>V(x) dhe
shkon drejt zeros në zonat ku E<V(x). Nëse V(x)=a konstante dhe E<V(x) atëhere funksioni
valor shkon drejt zeros sipas ~ e-ax
. Shumë potenciale i afrohen kësaj situate asimptotikisht
kur x bëhet shumë i madh.
8. Gjendja stacionare me energji më të ulët e ka energjinë më të madhe se minimumi i
energjisë potenciale.
7.1 Metoda për potencialin simetrik një-dimesional
Një metodë e lehtë për zgjidhjene e ekuacionit të Sredingerit një-dimesional stacionar për
një potencial simetrik është ajo që integron hap pas hapi sipas x duke filluar nga qëndra e
zonës. Meqë potenciali është simetrik, funksionet valore janë me çiftësi të përcaktuar. Nëse
funksioni valor është çift (duke vendosur x=0 në pikën e simetrisë të potencialit) (0)0 dhe
d/dx=‘ =0. Vlerën e (0) mund ta zgjidhni arbitrarisht dhe funksioni valor nuk do të jetë i
normalizuar. Përdorni ekuacionin e Shredingerit për të llogaritur një ‘ të ri dhe një të ri për
çdo hap x. Metoda është e ngjashme me integrimin e ekuacionit F=ma (shih kapitullin e
parë) dhe është quajtur si metoda e gjuajtjeve. Në algoritëm ndiqen hapat e mëposhtëme:
1. Zgjidhet një energi E dhe një vlerë e (0). Vendoset ‘(0).
2. Përdoret ekuacioni i Shredingerit për të llogaritur ‘’ në pikën ku jemi.
3. Gjenden vlera e re e ‘ si ‘vjetër + ‘’x dhe e re si vjetër + ‘x . (Duke përdorur
vlerën e ‘ në gjysëm-hapin është më mirë).
4. Ndryshohet variabli x në x+x ; kontrollohet nëse jemi larg për të përfunduar llogaritjet
(nëse nuk jemi larg rikthehemi tek pika 2.)
5. Shikohet funksioni për vlera të x larg. Nëse E e zgjedhur është një vlerë vehtiake atëhere
duhet të shkojë në zero përndryshe divergjon (rritet në x larg).
Gjendja bazë (n=1) dhe gjendjet me n tek (n=3,5,7..) janë zakonisht me simetri çift .
Ndërsa gjendjet me n çift (n=2,4,6..) janë zakonisht me simetri tek. Në gjendjet me simetri
tek mund të merret (0)=0 dhe të zgjidhet një vlerë arbitrare e ‘(0). Pastaj vazhdohet njësoj
si më lart.
Figurat tregojnë disa shembuj të metodave. Figura 7.1 tregon një potencial në formën e
gropës potenciale katërkëndëshe të fundme. Potenciali është simetrik . Figurat 7.2 e 7.3
tregojnë dy funksionet valore të para dhe vlerat përkatëse të energjisë. Gjendja bazë është me
simetri çifte. dhe gjendja e parë e eksituar është me simetri tek. Me që V0 >>E1 dhe E2 ,
gjendjet e e fillimit janë pothuaj njësoj si për gropën e pafundme. Por funksionet valore janë
zero matanë mureve të gropës potenciale të pafundme.
235
Figura 7.1 Potenciali në formën e gropës
potenciale të fundme . Thellësia e
gropës është 100 dhe gjerësia 2.
Figura 7.2 Funksioni valor i gjendjes bazë
për potencialin e figurës 7.1.
Eshtë treguar gjysma e funksionit
simetrik. Energjia është matur në
njësi që h=m=e=1.
Figura 7.3 Funksioni valor i gjendjes së
parë të eksituar për potencialin
e figurës 7.1. Funksioni valor ka
simetrinë tek.
Logaritjet janë kryer me programin SCH. Të
gjitha problemet ku potenciali është simetrik një-dimesional mund të zgjidhen me këtë
program. Një version me konvergjencë më të lartë (duke përdorur metodën Runge-Kutta për
të rritur saktësinë) është SCH4TH.
Programi SCH.BAS
10 DEF FNV(x)=x*x*x*x Potenciali
110 PRINT “Fundi i intervalit,DELTA -X, Ciftesia (0 = çift; 1 = tek),Energjia”
120 INPUT X9, X7, P ,E
130 X0 = 0
140 X6 = X9/20 Hapi midis printimeve
150 IF P = 1 THEN 190
160 P0 = 1 Vlera fillestare e për çiftësi tek
170 P1 = 0 Vlera fillestare e ‘ për çiftësi tek
180 GO TO 210
190 P1= 1 Vlera fillestare e për çiftësi çift
200 P0 = 0 Vlera fillestare e ‘ për çiftësi çift
210 PRINT “X”, “P(X)”,”/P(X)/2”
V
x
V0=100
0 1.0-1.0
1
E=1.07
0 1.0 1.2
2 E=4.26
0 1.0 1.2
236
220 P2 = 2*(FNV(X0+X7/2)-E)*(P0+P1*X7/2) Ekuacioni i Shredingerit
230 P0=P0+(P1+P2*X7/2)*X7 i ri
240 P1=P1+P2*X7 ‘ i ri
250 X0 = X0+X7 pozicioni i ri
260 IF X0<X6 THEN 290
270 X6=X6+X9/20
280 PRINT X0, P0,P0*P0
290 IF X0<X9 THEN 220 Rikthim për hapin pasonjës
300 PRINT
310 GOTO 110 Rikthim për vlera të tjera
320 END
Programi SCH.FOR
POTEN(X) =X*X*X
5 READ(5,101)ENDX,DX,PAR,E
IF (PAR-999.) 7,70,70
7 X=0.
XINT=ENDX/20.
IF (PAR-1.) 10,20,10
10 PSI0=1.
PSI1=0.
GOTO 30
20 PSI0=0.
PSI1=1.
30 PSI2=2.*(POTEN(X+DX/2.)-E)*(PSI0+PSI1*DX/2.)
PSI0=PSI0+(PSI1+PSI2*DX/2.)*DX
PSI1=PSI1+PSI2*DX
X=X+DX
IF (X-XINT) 50,40,40
40 XINT=XINT+ENDX/20.
PRINT 110,X,PSI0,PSI0*PSI0
50 IF (X-XEND) 30,60,60
GOTO 5
101 FORMAT(4F10.6)
110 FORMAT(1X,3E12.4)
120 FORMAT(1H)
70 STOP
END
12.4 Ekuacioni i Shredingerit për rastin tre-dimensional
Për gjendjet stacionare, ekuacioni i Shredingerit shkruhet:
h2 2
2
2
2
2
22m dx dy dzV E
( )r
Për shumë probleme, potenciali V(r) është i tillë që ekuacioni mund të ndahet në tre
ekuacione diferencilaë të zakonëshëm për secilin nga variablat (mund të ndahen variablat).
Shembulli më i thjeshtë është oshilatori harmonik tre-dimensional.Në këtë rast ekuacioni i
237
Shredingerit sillet në tre ekuacione në x,y,z dhe secili ekuacion është identik me atë të
oshilatorit harmonik një-dimensional të studiuar më lart. Zgjidhja e plotë për oshilatorin tre
dimensional është produkti i funksioneve valore që janë zgjidhjet një-dimensionale : një sipas
x, një sipas y dhe një sipas z.
Kur potenciali ka simetri sferike, pra V(r)=V(|r|), ekuacioni i Shredingerit në kordinata
sferike ndahet në tre ekucione me derivate të zakonëshme sipas secilës nga kordinatat sferike
(r,,) . Ekuacionet sipas dhe zgjidhen menjëherë dhe problemi sillet në zgjidhjen e
ekuacionit radial:
1 2 12
2
2 2r
d
drr
dR
dr
mV E
l l
rR
h
[ (| |) ]( )
r
ku l=0,1,2... është numri që specifikon momentin e impulsit të grimcës ndaj qendrës së forcës.
Ky ekuacion mund të thjeshtohet me zëvëndësimin P(r)=rR(r) dhe duke përdorur njësitë
atomike, ai shkruhet :
d P
drV E
l l
rP
2
2 22
1
[ (| |) ]( )
r
Ky ekuacion mund të zgjidhet njësoj si në problemin një-dimensional. Në njësi atomike njësia
e energisë (e2/a) është dyfishi i potencialit të jonizimit të hidrogjenit, njësitë e ngarkesës dhe
masës janë sa madhësia e ngarkesës dhe masës së elektronit, njësia e gjatësisë është sa rrezja e
orbitës së parë të Bohrit (a=h2/me
2). Potenciali Kulonian në ekuacionin e Shredingerit bëhet
Z/r dhe nivelet energjetike të atomit të hidrogjenit jane -1/(2n2).
Është e dobishme të krahasohen rezultatet numerike me ato analitike . Nëse metoda
numerike zbatohet për potencialin Kulonian, energjitë e niveleve të fillimit përputhen deri në
3 shifra saktësie dhe funksionet valore kanë formë që nuk dallohet nga ajo e zgjidhjes
analitike. Energjitë e gjëndjeve nuk varen nga numri l por funksionet valore varen nga ky
numër. Gjëndjet me l=1 (P-gjëndjet) nuk kanë eergji nën E=-0.125 . Potenciali efektiv
[-1/r+l(l+1)/(2r2)] për l=1 ka një minimum prej -0.25 . Gjëndja bazë me E=-0.25 ka E<
Veff(l=1) dhe zgjidhja del që shuhet kur l=1.
Një shembull tjetër është potenciali Kulonian i “ekranuar” V(r)=-exp(-r/a)/r . Në figurën
7.4 krahasohen potencialet efektive Kulonian dhe ai i “ekranuar” për l=0 dhe l=1 me
parametër ekranimi a=5. Ndërsa figura 7.5 tregon gjendjet me energji më të ulët për l=1 dhe
a=5.
Llogaritjet janë kryer me programin SCHD1, i cili është i ngjashëm me programin SCH
në faktin që inicializimi i funksionit valor bëhet afër origjinës (r=0) ku P(r) shkon sipas rl+1
.
Figura 7.4 Potencialet efektive për gjendjet
l=0 dhe l=1 në rasin Kulonian (C) dhe në rastin
e potencialit të ekranuar (SC). Gjendjet nuk
janë të kufizuara nëse energjia është poshtë
potencialit efektiv. Në njësitë atomike gjendja
bazë e atomit të hidrogjenit E1 =-0.5 dhe nuk
mund të jetë gjendje e kufizuar për l=1.
0.25
Vef
0
-0.250 r 10
SC
C
238
Figura 1.5 Funksioni valor radial R(r) dhe
rR(r) për gjendjen më të ulët P dhe potencialin
e ekranuar exp(-1/5 r)/r në njësii atomike.
SCH3D1.BAS
10 rem Ekuacioni 3D i Shredingerit (jashtë origjinës)
100 DEF FNV(R) = - EXP ( - R/ 8 ) / R Potenciali
110 PRINT “ R ( START), R ( END ), DELTA - R, ORBITAL # ( L ) , ENERGY?”
120 INPUT R8 , R9, R7, L,E
130 P0 = R8 ( L + 1) funksioni valor fillestar, P=rR(r)
140 P1 = ( L + 1)* R8 L vlera fillestare e P’=dP/dr
150 R = R8
160 PRINT R, P0, P0/R
170 R5 = ( R9 - R8) / 20 distanca midis printimeve
180 R6 = R + R7 / 2
190 P2 = 2*(FNV(R6) + L*( L + 1)/( 2*R6*R6) - E)* (P0 + P1*R7/2) ek. i Sredingerit
200 P0 = P0 + (P1 + P2*R7/2)*R7 vlera e re e P (pas gjysëm-hapit)
210 P1 = P1 + P2*R7 vlera e re e P’
220 R = R + R7 distanca e re
230 IF R < R5 THEN 260 grupi i printimit
240 R5 = R5 + ( R9 - R8 )/20
250 PRINT R, P0, P0/R
260 IF R <R9 THEN 180 rikthim për hapin tjetër r
270 PRINT
280 GOTO 110 rikthim për një provë të re
290 END
SCH3D1.FOR
V ( R) = - EXP ( - R/8)/ R
10 READ(5,100)RST,REND,DR,AL,E
L = AL
IF (RST - 999.) 20,90,20
20 P0 = RST **(L + 1)
P1 = (AL +1.)*RST**L
R = RST
PRINT 102, AL, E
PRINT 101 ,R,P0,P0/R
PRNTR = (REND - RST)/ 20
25 RTEMP = R + DR/ 2.
P2 =2.*(V(RTEMP ) +AL*(AL+1.)/(2.*RTEMP**2)-E)*(P0+P1*DR/2.)
P0=P0+P2*DR
R(r)
rR(r)
a=5
l=1
E=-0.0043
r10
239
R=R+DR
IF (R-PRNTR) 40,30,30
30 PRNTR=PNRTR+(REND-RST)/20.
PRINT 101,R,P0,P0/R
40 IF (R-REND) 25,10,10
90 STOP
100 FORMAT(6F10.5)
101 FORMAT(1X,3E12.4)
102 FORMAT(1X,2HL=,F5.2,4H E=,E12.4)
END
7.5 Një metodë tjetër për potencialet tre-dimensionale
Kur nuk mund të inicializohet funksioni valor afër origjinës, mund të përdoret një
mënyrë e thjeshtë numerike. Gjendet një zonë (zakonisht larg origjinës) ku njihet një zgjidhje
e përafërt për dhe ‘ (zgjidhje asimtotike). Duke filluar nga kjo integrohet hap pas hapi
drejt r=0 ku përdoret një kusht kufitar për të gjetur vlerat vehtiake.
Për shembull , për potencialin e Lennard-Jones V(r)=V0 (1/r12
-1/r6 ), në r të mëdha V(r)0
dhe për energji negative (gjendje të kufizuara) ,P = r.R (ku R është funksioni valor radial)
është afërsisht proporcional me exp(- r) ku = (2m/h2)(-E). Atëherë P’=dP/dr= P dhe
këto vlera të P e P’ përdoren për të filluar llogaritjet. Integrohet hap pas hapi drejt r=0 duke
patur parasysh që për një vlerë vehtiake E , P duhet të shkojë drejt zeros në r=0 (meaë V
). Në figurën 7-6 tregohet potenciali L-J , ndërsa në figurën 7.7 tregohet funksioni valor për
gjendjen bazë dhe në figurën 7.8 funksioni valor për gjendjen e parë të eksituar. Llogaritjet
janë kryer me programin SCH3D2.
Figura 7.5 Potenciali Lennard-Jones. Thellësia
e gropës potenciale është 100; minimumi i
potencialit është në 1.225; potenciali bëhet
zero në r=1. Gjendjet e fillimit janë të
kufizuara .
Figura 7.7 Funksioni valor i gjendjes bazë për
potencialin e figurës 7.6 . Megjithëse llogaritjet
janë kryer si në problemin një dimesional,
zgjidhja është funksioni valor radial për S
gjendjen e problemit tre -dimensional.
E1
E2
r2.5
0
V(r)
100
r2.5
1
l=0
E1=-66
0
240
Figura 7.8 Funksioni valor i gjendjes së parë të
eksituar dhe enegjia për potencilain L-J.
Programi SCH3D2.BAS Ekuacioni 3D i Shredingerit (me kahe për nga origjina)
100 DEF FNV(R) = 400*(R(-12) - R(-6))
110 PRINT “R(START), R(END),DELTA -R, ORBITAL # (L), ENERGY?”
120 INPUT R9,R8,R7,L,E
130 LET R7 = -ABS(R7)
140 LET PO = EXP( - SQR (2 *( FNV(R9) - E))*R9)
150 LET P1 = - SQR (2*(FNV(R9)- E ))*P0
160 LET R = R9
170 PRINT R, P0,P0/R
180 LET R5 = (R8 - R9) /20 + R9
190 LET R6 = R + R7 /2
200 LET P2 = 2* (FNV(R6) + L*(L + 1)/ (2*R6*R6) - E)*(P0 + P1*R7/2)
210 LET P0 = P0 + (P1 + P2*R7/2)*R7
220 LET P1 = P1 +P2*R7
230 LET R = R + R7
240 LET IF R > R5 THEN 270
250 LET R5 = R5 + (R8 -R9) / 20
260 PRINT R,P0, P0 / R
270 IF R > R8 THEN 190
280 PRINT
290 GOTO 110
300 END
PROGRAMI SCH3D2.FOR
V(R) = 400.*(1. /R**12 - 1./R**6)
10 READ(5, 100)RST, REND,DR,AL,E
L = AL
IF (RST - 999.) 20,90,20
20 DR = - ABS (DR)
P0 =EXP(- SQRT(2.*(V(RST) - E))*RST)
P1 = - SQRT(2.*(V(RST) - E ))*P0
R = RST
PRINT 102, AL, E
PRINT 101, R, P0, P0 /R
PRNTR = RST + (REND - RST) / 20.
25 RTEMP = R + DR / 2.
P2 = 2.*(V(RTEMP)+ AL*(AL + 1.) / (2.*RTEMP*RTEMP)-E)*(P0 +P1*DR/2.)
P0 = P0 + (P1 + P2*DR / 2.)*DR
2
E2=-22.9
l=0
r2.50
0
241
P1 = P1 + P2*DR
R = R + DR
IF (R - PRINT) 30, 30, 40
30 PRNTR = PRNTR +( REND - RST)/ 2O.
PRINT 101, R, P0, P0 / R
40 IF ( R - REND) 10, 10, 25
90 STOP
100 FORMAT(6F10.5)
101 FORMAT(1X, 3E12.4)
102 FORMAT(1X,2HL = ,F5 . 2 ,4H E= ,E12.4)
END
7.6 Përhapja e paketit valor një-dimensional
Ekuacioni kohor një-dimensional i Shredingerit është:
h
m
x t
xV x t x t i
x t
dt
2 2
22
( , )( , ) ( , )
( , )h
Ky ekuacion mund të zgjidhet duke përdorur teknikën e ekuacioneve diferencialë me derivate
të pjesëshme, por kur potencili nuk varet nga koha [V(x,t)=V(x)],mund të përdoret një metodë
më e thjeshtë. Në këtë rast ekuacioni mund të ndahet duke vendosur në të :
(x,t)=(x)T(t) dhe ekuacioni sillet në dy ekuacione me derivate të zakonshëm, njeri për
(x):
h
m
d x
dxV x x E x
2 2
22
( )( ) ( ) ( ) ,
dhe tjetri për T(t):
dT t
dtiE
T t( )
( )h
,
Ku E është konstant dhe luan rolin e energjisë.
Ekuacioni për T(t) zgjidhet menjëherë dhe jep T(t)=Ae-iEt/h
= Ae-iEt
në njësi atomike.
Konstantja A është konstantja e normalizimit.
Ekuacioni hapsinor mund të zgjidhet analitikisht (për pak probleme) ose numerikisht siç
është bërë në paragrafët më lart. Ne do të diskutojmë për pjesën hapsinore të funksionit valor
për të ashtuquajturat gjedjet e kontiniumit dhe mandej do fusim pjesën kohore dhe përhapjen
e paketit valor që përbëhet nga shumimi i shumë funksioneve valore.
Gjendjet e kontiniumit një-dimensional
Supozojmë se kemi një gropë potenciale të tillë që për |x|>x0 , potencilai V(x) është zero.
Atëhere për |x|>x0 , ekuacioni i Shredingerit për pjesën hapsinore të funksionit valor ka
formën : ‘’(x)=-2E(x) dhe zgjidhja e tij është (x)=cos(kx), (x)=sin(kx) për E>0. Meqë
nuk ka kushte kufitare që kufizon vlerat e energjisë, çdo vlerë e energjisë E>0 është e lejuar.
Këto gjendje formojnë një kontinium.
Nëse potencili V(x) është simetrik, ne mund të kërkojmë që gjendjet të jenë krejt çift në x
ose krejt tek në x . Meqë kombinimi linear i zgjidhjeve të ekuacionit të Shredingerit është
përsëri zgjidhje etij, ne mund të zgjedhim një fazë arbitrare duke bërë sin(kx+) një nga dy
zgjidhjet tona dhe zgjidhja tjetër do ishte cos(kx+).
Potenciali më i thjeshtë do të ishte V(x)=o kudo (grimca e lirë) dhe atëhere funksionet
valore çift e tek për energjinë E do ishin cos(kx) dhe sin(kx) ku k=2E në njësi atomike dhe
funksionet valorë të plotë (x,t) për gjendjet me energji E do ishin (x,t)= cos(kx).exp(-ik2
242
t/2) dhe (x,t)= sin(kx).exp(-ik2 t/2). Ne do ti vendosim të gjitha këto gjendje së bshku për të
formuar paketet valore.
Paketi valor i lirë
Në kontinium kemi një numër të madh energjish të lejuara afër njera tjetrës dhe vektorësh
valorë përkatës me të cilat mund të ndërtojmë një valë në formë pulsi që quhet paket valor.
P.sh. për të formuar një paket valor që ka formën e shpërndarjes së Gausit, exp(-x2/x0
2),
përdoret një interval vlerash të paketit valor k (vlera rrotull një farë vlere qëndrore k0) ku për
seicilën vlerë kemi amplitudën A(k) të formës :
A(k)x0.exp[-½(k-k0)2 x0
2 ]. Ju mund të ndërtoni pakete valore të lira me formë që
dëshironi, duke përdorur transformimin furie të formës së paketit. P.sh. për një pketë valor
katror me gjerësi x0 , kemi : A(k)=x0 . {sin[½(k-k0)x0]}/{½(k-k0)x0} ndërsa për një paketë
valor në formë trekëndëshi me gjerësi 2x0 kemi :
A(k)=x0 . {sin2 [½(k-k0)x0]}/{½(k-k0)x0}
2
Vlera e vektorit valor të qendrës k0 përcakton shpejtësinë e përhapjes së pkaetit valor sepse
shpejtësia e grupit është =dE/dk=hk0/m ose k0 në njësi atomik. Forma e paketit valor që në
çastin t=0 përcaktohet nga A(k) me kalimin e kohës deformohet meqë ghendjet me energji më
të lartë në paket përhapen më shpejt se ato me energji më të ulët.
Programi për paketat valore të lira
Në program mund të llogariten dhe të shumohen lehtë amplitudat e ndryshme të përbërësve të
një paketi. Për të kufizuar kohën e ekzekutimit të programit dhe numrin e madh të
amplitudave që kanë spektër të vazhduar duhet bërë një përafrim i funksionit A(k). P.sh. duke
përdorur 101 vektorë valorë për paketin valor me formë Gausiane mërret një përafrim mjaft i
mirë i paketit.
Ndërtohet paketi valor i centruar në origjinë , në t=0 dhe llogaritet për çdo komponent
faktori exp(-iEt). Kjo pjesë e funksionit valor do të spostojë fazat relative të komponentëve të
ndryshëm të paketit valor (çdo komponent ka energjinë e vet E). Në një kohë më vonë
mblidhen komponentët me fazë të spostuar për të formuar përsëri paketin valor dhe paketi del
që është çvendosur në hapësirë por edhe është deformuar. Theksojmë se pjesa kohore e
funksioneve valorë nuk ndikon në amplitudat e gjendjeve sepse moduli i |exp(-iEt)| është =1.
Programi PACKET kryen këto llogaritje që thamë.
PROGRAMI PACKET.BAS
100 PRINT “ ENERGJIA QENDRORE, GJERESIA E PAKETIT”;
110 INPUT E0,X0
120 K0 = SQR( 2*E0) Vektori valor qendror
130 K9 =5 / (25*X0) Shtesa e vektorit valor
135 DIM K(101),A(101),E(101)
140 FOR I = 1 TO 101
150 K1 = ( I - 51 )*K9
160 K(I) = K0 + K1 Vektori valor i I-të
170 E(I) = K(I)*K(I) / 2 Energjia
180 A(I) = X0*1.25331*EXP( -K1*K1*X0*X0 / 8) Amplituda Gausiane
190 NEXT I
200 PRINT “MINIMUMI I K, MAXIMUMI I K = “,K(1),K(101)
243
210 PRINT “E(MIN K) , E(MAX K) = “ , E(1),E(101)
220 PRINT “KOHA”;
230 INPUT T Koha e përhapjes
240 IF T = 999 THEN 400
250 FOR J = 1 TO 25 Hapi sipas x
260 X = - 2 + (J - 1)*. 5
270 A1 = . 5*A(1)*COS(K(1)*X - E(1)*T) Reali i
280 A2 = . 5*A(1)*SIN(K(1)*X - E(1)*T) Imagjinari i
290 FOR I = 2 TO 100 Shumimi i amplitudave
300 A1 = A1 + A(I)*COS(K(I)* - E(i)*T)
310 A2 = A2 + A(I)*SIN(K(I)*X -E(I)*T)
320 NEXT I
330 A1 = A1 +. 5*A(101)*COS(K(101)*X - E(101)*T)
340 A2 = A2 + .5*A(101)*SIN(K(101)*X - E(101)*T)
350 A1 = A1*K9
360 A2 = A2*K9
370 PRINT X, A1*A1 + A2*A2 x , (x)2 380 NEXT J
390 GOTO 220 Rikthim për një kohë tjetër
400 END
PROGRAMI PACKET.FOR
DIMENSION AMPL(101),E(101)
REAL K1, K(101), K0
COMPLEX AMPLI
DATA E0, DELTX / 10 . , 1. /
K0 = SQRT(2 .*E0)
DELTK = 5 . / (25 .* DELTX)
DO 10 I = 1 , 101
K1 = FLOAT(I - 51)*DELTK
K(I) =K0 + K1
E(I) = K(I)*K(I) /2 .
10 AMPL(I) = DELTX*1 .25331*EXP( -K1*K1*DELTX*DELTX / 8 . )
12 READ(5 , 101 ) T
IF (T - 999 . ) 14 , 40 , 40
14 DO 30 J = 1 , 25
X = - 2 . + FLOAT ( J - 1 )* . 5
AMPLI = . 5*AMPL(1)*CEXP(CMPLX(0 . ,K(1)*X - E(1)*T))
DO 20 I = 2 , 100
20 AMPLI = AMPLI + AMPL(I)*CEXP (CMPLX(0 . , K (I)*X - E (I)*T))
AMPLI = AMPLI + . 5* AMPL (101)*CEXP( CMPLX(0 . , K(101)*X - E(101)*T))
AMPLI = AMPLI*DELTK
AMPL1 = REAL (AMPLI )
AMPL2 = AIMAG(AMPLI)
AMPL3 = AMPL1*AMPL1 + AMPL2*AMPL2
30 PRINT 101 , X , AMPL3
GOTO 12
244
40 STOP
100 FORMAT(1X , 2F12 . 5 )
101 FORMAT( F10 . 4)
END
Përhapja e paketit valor nëpër një gropë potenciale katrore
Një rast tjetër ku pjesa hapsinore e funksionit valor gjendet analitikisht është ai ku
potenciali ka formën e grope të fundme katrore. Zakonisht zgjidhja shkruhet në terma të
amplitudës komplekse për valët që ecin djthtas dhe majtas në tre zona : zona I në të majtë të
gropës potenciale , zona II brenda gropës potenciale, zona III në të djathtë të gropës
potenciale(shih tekste të Mekanikës kuantike).
Zona I Zona II Zona III
1 B1 C
B B2
Koeficientët gjenden duke barazuar funksionet valore (dhe derivatet e tyre ) në seicili paret të
gropës potenciale. Duke e ditur si llogaritet funksioni valor hapsinor (x) për çdo x e për çdo
energji E mund të ndiqet e njëjta strategji në formimin dhe përhapjen e paketit valor. Është më
lehtë që të formohet paketi valor në të majtë të gropës potenciale (ku zgjidhjet janë
sinusoidale ose kosinusoidale si ato që pamë më lart). Një program që realizon këtë strategji
është PACKSQ.
PROGRAMI PACKSQ.FOR
REAL K(51), KAP(51), K0
COMPLEX A(51), PSIX, PSIXT, C, B, B1, B2, DENOM, ARG
PI = 3.14159265
A0 =. 5
V0 = 50. thellësia e gropës potenciale
E0 = 50. energjia qendrore e paketit
K0 = SQRT(2.*E0) vektori valor qendror
X0 = - 5. pozicioni fillestar i paketit
X1 = 1 . 5 gjerësia e paketit
DELTK = 5. / (25.*X1) shtesa e vektorit valor
DO 10 I= 1, 51
K(I) = FLOAT( I - 26 )* DELTK + K0 vektori valor k
KAP(I) = SQRT(2.*(K(I)*K(I) / 2. + V0)) kapa
ARG = CMPLX(0. , -(K(I) - K0)*X0)
AK = K(I) - K0
10 A(I) = X1*1.25331*EXP( - AK*AK*X1*X1 / 8.)*CEXP(ARG) Gausiane e centruar
në x0
20 READ(5,100) T koha e përhapjes së paketit
IF (T - 999.) 15,50,15
15 DO 30 I = 1,25 hapi sipas x
X = FLOAT( I - 13)*. 5
PSIXT = CMPLX(0.,0.)
DO 40 J = 1, 51 shumimi sipas përbërësve të paketës
245
AK = - (K(J)/KAP(J) + KAP(J) / K(J))
DENOM = CMPLX(COS(2.* KAP(J)*A0),AK*SIN(2.*KAP(J)*A0)/2.)
ARG = CMPLX(0.,-2.*K(J)*A0)
C = CEXP(ARG)/ DENOM
IF (X + A0) 80, 80, 60
60 IF (X - A0) 70, 90, 90
70 ARG = CMPLX(0., (K(J) - KAP(J)*A0) Llogaritja e koeficientëve
B1 = (1. + K(J)/ KAP(J)*CEXP(ARG)*C/2. të komponenteve kur
ARG = CMPLX(0., K(J) + KAP(J)*A0) -A0 < x < +A0
B2 = (1. - K(J) / KAP(J)*CEXP(ARG)*C /2.
ARG = CMPLX(0.,KAP(J)*X)
PSIX = B1*CEXP(ARG)
ARG = - ARG
PSIX = PSIX + B2*CEXP(ARG)
GOTO 25
80 ARG = CMPLX(0.,-2.*K(J)*A0 + PI /2.)
B = . 5*CEXP(ARG)*(KAP(J) / K(J) - K(J) / KAP(J))*SIN(2.*KAP(J)*A0) /DENOM
ARG = CMPLX(0. , K(J)*X) Llogaritja e koeficientëve
PSIX = CEXP(ARG) të komponenteve kur
ARG = - ARG x -A0
PSIX = PSIX + B*CEXP(ARG)
GOTO 25
90 ARG = CMPLX(0. ,K(J)*X) Llogaritja e koeficientëve
PSIX = C*CEXP(ARG) të komponenteve kur x A0
25 E = K(J)*K(J) / 2. Energjia për çdo komponent
ARG = CMPLX(0. , - E*T)
40 PSIXT = PSIXT + A(J)*PSIX*CEXP(ARG)*DELTK Shuma për (x,t) të paketit
PSI1 = REAL(PSIXT)
PSI2 = AIMAG(PSIXT)
PSI3 = PSI1*PSI1 + PSI2*PSI2
30 PRINT 101, X, PSI3 x, (x,t)2 100 FORMAT (F10. 5)
101 FORMAT (1X, 2F8.3)
GOTO 20 Rikthim për një kohë tjetër përhapjeje
50 STOP
END
Ky program nuk është shkruar në gjuhën BASIC sepse kompilatori i gjuhës BASIC nuk lejon
numra kompleks.
Përhapja e paketit valor nëpër një gropë potenciale një-dimensionale çfardo
Funksionet valore hapsinore (x) për çdo energji E mund të llogariten siç thamë më lart.
Duke njohur këto funksione për çdo komponet të paketit valor mund të formohet dhe të
përhapet paketi valor për çdo potencial. Procesi është më i lehtë kur paketi fillestar është i
centruar rreth x=0 dhe qendra e gropës potenciale është në të djthatë të x=0. Ju mund të
inicializoni dy funksione valore cos dhe sin në origjinë . Formohet paketi në x=0 në të majtë
të gropës potenciale dhe niste paketi drejt gropës potenciale. Në fund , një pjesë e paketit do
kalojë gropën, një pjesë do të reflektohet. Sa më i lëmuar të jetë potenciali , aq më lehtë është
246
për paketin që ta kalojë atë. Parete të lëmuara të potencialit zvogëlojnë edhe oshilimet e
shpejta në këto parete.
Një program për përhapjen e paketave nëpër një gropë potenciale është programi VPAC, i
cili përdor metodën Runge -Kutta për integrimin për të gjetur funksionin valor hapsinor. Për të
mbledhur funksionet valorë që formojnë paketin duket jo vetëm amplituda e funksioneve
valore por edhe faza që duhet llogaritur me saktësi sa më të lartë.
Për arsye të kufizimit të kompjuterave , në program janë paraqitur vetëm 21 vektorë valorë të
ndryshëm por kjo mund të rritet. Sa më i madh të jetë ky numër aq më real do jetë pamja e
paketit valor .
Programi VPAC.BAS
100 DIM P(21, 26), Q( 21, 26), E(21), C(21),S(21)
110 DEF FNV(X) = - 100*EXP( -(X - 6)*(X - 6)) potenciali
120 PRINT “ ENERGJIA, GJYSEM-GJERESIA E PAKETIT?”
130 INPUT E8, X6
140 K8 = SQR(2*E8) vektori valor për energjinë qendrore
150 K9 = 3 / ( 10*X6) shtesa e vektorit valor
160 X1 = . 1 hapi x
170 FOR I = 1 TO 21 cikli i ruajtjes së nergjive dhe funksioneve valore të komponenteve
180 K0 = K8 + ( I - 11)* K9
190 E (I) = K0*K0 / 2 Energjia
200 K7 = KO - K8
210 A = . 399569*X6*EXP( - X6*X6*K7*K7 / 2)
220 Q( I, 1) = 0
230 Q0 = 0
240 P1 = 0
250 Q1 = K0*A
260 P(I , 1 ) = A
270 P0 = A
280 X0 = 0
290 X5 = 0
300 N = 1
310 K1 = P1 Parametrat e metodës Runge-Kutta
320 M1 = Q1
330 L0 = 2*(FNV(X0) - E(I))
340 L1 = L0*P0
350 N1 = L0*Q0
360 K2 = P1 + L1*X1 / 2
370 M2 = Q1 +N1*X1 / 2
380 L0 = 2*(FNV(X0 + X1 / 2) - E( I))
390 L0*(P0 + K1*X1 / 2)
400 N2 = L0*(Q0 + M1*X1/2)
410 K3 = P1 + L2*X1 / 2
420 M3 = Q1 + N2*X1 / 2
430 L3 =L0*(P0+K2*X1/2)
440 N3 =L0*(Q0+M2*X1/2)
450 K4 =P1+L3*X1
247
460 M4 =Q1+N3*X1
470 L0 =2*(FNV(X0+X1)-E(I) )
480 L4 =L0*(P0+K3*X1)
490 N4 =L0*(Q0+M3*X1)
500 P0 =P0+X1*(K1+2*K2+2*K3+K4)/6 Vlera e re e Re()
510 P1 =P1+X1*(L1+2*L2+2*L3+L4)/6 Vlera e re e Re(‘)
520 Q0 =Q0+X1*(M1+2*M2+2*M3+M4)/6 Vlera e re e Im()
530 Q1 =Q1+X1*(N1+2*N2+2*N3+N4)/6 Vlera e re e Im(‘)
540 X0 =X0+X1 pozicioni i ri
550 X5 =X5+X1
560 IF ABS(X5-.5)>X1/2 THEN 610 grupi i ruajtjes
570 X5 = 0
580 N = N + 1
590 Q(I, N) = Q0
600 P(I, N) = P0
610 IF X0 < 12.6 THEN 310
620 NEXT I
630 PRINT “KOHA E PERHAPJES SE PAKETIT?”
640 INPUT T0
650 FOR I = 1 TO 21 cikli i ruajtjes së vlerave të sinusit e kosinusit
660 C(I) = COS(E(I)*T0)
670 S(I) = SIN( - E(I)*T0)
680 NEXT I
690 FOR J = 1 TO 26 cikli sipas x
700 X0 = (J - 1)* . 5
710 P1 = 0
720 P2 = 0
730 FOR I = 1 TO 21 cikli i shumimit sipas komponenteve
740 P1 = P1 + K9*(P(I , J)*C(I) - Q(I , J)*S(I)) Re ( )
750 P2 = P2 + K9*(Q(I , J)*C(I) + P(I, J)*S(I)) Im ()
750 NEXT I
770 PRINT X0 , P1* P1 + P2*P2
780 NEXT J
790 PRINT
800 GOTO 630 Rikthim për një kohë tjetër përhapjeje
810 END
Programi VPAC.FOR
DIMENSION E (21)
COMPLEX C (21), P(21, 26), P0, P1,K1, K2, K3, K4, L1, L2, L3, L4
V(X) = - 100.*EXP(-(X - 6 . )*( X - 6 . ))
DATA EN, WID / 50 . ,1 . /
CENK = SQRT( 2.*EN)
DK = 3 . / ( 10 . *WID)
DX = . 1 Step size,x
DO 30 I = 1 , 21
248
AK = ( I - 11 )*DK
E( I) = ( AK + CENK)**2 /2.
A = . 399569*WID*EXP( - WID*WID*AK*AK /2 . )
P(I , 1 ) = CMPLX ( A, 0 .)
P0 = P (I , 1 )
P1 = CMPLX( 0 . , (AK + CENK)*A)
X0 = 0 .
PRNTX = 0 .
N = 1
5 K1 = P1
L1 = 2 . *(V(X0) - E (I)*P0
K2 = P1 + L1*DX / 2.
AL0 = 2 . *(V(X0 + DX / 2.) - E( I ))
L2 = AL0*(P0 + K1*DX / 2 . )
K3 = P1 + L2*DX / 2 .
L3 = AL0*(P0 + K2*DX / 2 . )
K4 = P1 + L3*DX
L4 = 2 . *( V ( X0 + DX ) - E( I ))*(P0 + K3*DX)
P0 = P0 + DX* ( K1 + 2 . *K2 + 2 . *K3 + K4 ) / 6.
P1 = P1 + DX* ( L1 + 2 . *L2 + 2 . *L3 + L4 ) / 6.
X0 = X0 + DX Neë x
PRNTX = PRNTX + DX
IF ( ABS ( PRNTX - . 5 ) - DX / 2 . )15 , 15 , 20
15 PRNTX = 0 .
N = N + 1
P ( I , N ) = P0
20 IF ( X0 - 12 . 6 ) 5 , 30 , 30
30 CONTINUE
40 READ ( 5 ,100 ) T0
IF ( T0 - 999 . ) 45 , 70 , 70
45 DO 50 I = 1 , 21
50 C(I) = CMPLX(COS(E(I)*T0) , SIN( - E(I)*T0))
DO 60 J = 1 , 26
X0 = ( J - 1 )* . 5
PSI = ( 0 . ,0 . )
DO 55 I = 1 , 21
55 PSI = PSI + DK*P ( I , J )* C ( I )
PSI2 = REAL ( PSI ) ** 2 + AIMAG ( PSI )** 2
60 PRINT 101 , X0 , PSI2
GOTO 40
70 STOP
100 FORMAT ( 1X , F8 . 3 , F10 . 5 )
END
Ushtrime
249
1. Gjeni gjendjet stacionare për potencilin në formë katrore V0=1000 dhe V0=10. Vlerësoni
sa gjendje janë të kufizuara për secilin rast. Krahasoni energjitë e gjendjeve të para të
secilit rast me atë të gropës potenciale të pafundme.
2. Gjeni gjendjet e qëndrueshme në potencialin V(x)=x4 , për të nuk ka zgjidhje analitike.
Gjeni energjitë dhe funksionet valore të tre gjendjeve të para. Krahasoni energjitë me ato
të oshilatorit harmonik. Shpjegoni fizikisht ndryshimet.
3. Gjeni dis gjendje stacionare për një propë potenciale me parete të rrumbullakosura:
V(x)=50x6 për |x|<1, V(x)=100- 50/x
6 për |x|>1. Vizatoni potencialin dhe gjeni gjendjen
bazë. Vlerësoni energjinë më të lartë për gjendjet e kufizuara.
250
KAPITULLI I VIII
ZBERTHIMI RADIOAKTIV
8.1 Hyrje
Në këtë kapitull do shikojmë përdorimin e kompjuterit në hyrjen e fizikës bërthamore:
zbërthimi radioaktiv. Do trajtohen si siteme me zbërthim të një-fishtë ashtu edhe zinxhir
zbërthimesh të shumëfishta. Zgjidhja analitike është e thjeshtë për sisteme me zbërthim të
njëfishtë por jo për siteme më të komplikuar. Zakonisht një zgjidhje analitike jepet për një
zinxhir zbërthimesh radioaktive vetëm kur periodat e gjysëm-zbërthimit të produkteve janë
shumë të ndryshme, në këtë rast secili nga pjestarët e produkteve e dominojnë krejt sistemin
në kohët që ndryshojnë shumë nga njëra tjetra. Ndërsa zgjidhja numerike bëhet lehtë për
çfardo periodash gjysëm-zbërthimi , madje edhe në rastin kur zbërthimet e shumëfishta të
produkteve kanë perioda gjysëm-zbërthimi shumë afër njera tjetrës.
Ekuacioni bazë i zbërthimit radioaktiv, për një zbërthim të njëfishtë , pra kur bërhamat bija
janë stabël (jo-radioaktive) është:
dN
dtCN1
1
ku N1 është numri i bërthamave në kohën t . Pra shpejtësia e zbërtmit radioaktiv (ndryshimi i
numrit të bërthamave në njësinë e kohës) është proporcional me numrin e bërthamave
ekzistuese. Koeficienti i proporcionalitetit C është negativ.
Një sistem tjetër më i komplikuar është kur bërthamat bija zbërthehen me një kohë
gjysëm-zbërthimi tjetër. Ekuacionet diferenciale të çiftuar në këtë rast janë:
dN
dtC N1
1 1
dN
dtC N C N2
2 2 3 1
ku C1 <0, C2 <0 dhe C3 =- C1 . Zgjidhja analitike e këtij problemi është shumë e ndërlikuar
ndërsa zgjidhja numerike është e lehtë edhe për rastin kur ka N lloje bërthamash që
zbërthehen në zinxhirin radioaktiv.
Një problem analog ndeshet në ekologjinë e një rajoni të izoluar. Në këtë rast kërkohet të
llogaritet numri Ni i specieve të rajonit gjatë riprodhimit dhe bashkëveprimit të tyre. Strategjia
e zgjidhjes numerike është shumë e ngjashme me atë të zinxhirit të zbërthimit radioaktiv.
Situata të ngjashme ndeshen edhe në fusha të tjera të shkencës.
8.2 Zgjidhjet e problemeve të zbërthimit bërthamor
Problemi më i thjeshtë është kur bërthamat bija janë stabël (nuk zbërthehen). Atëhere
ekuacioni dN/dt =C N mund të zgjidhet edhe analitikisht edhe numerikisht dhe kjo është një
test i metodës numerike të përdorur. Kjo zgjidhje tregohet në programin NUCDEC . Këtu
sistemi është në fillim një izotop i thoriumit ( 232
90Th) i cili zbërthehet duke emetuar grimca
(4
2 He) në një izotop radiumi (228
88Ra) . Mandej radiumi zbëthehet shumë shpejt sipas një
zinzhiri radioaktiv deri sa arrin në një izotop të qendrueshëm plumbi (208
82 Pb) . Këto
zbërthime sipas këtij zinxhiri janë kaq të shpejta në krahasim me zbërthimin Th në Ra (për të
cilin perioda e gjysëm-zbëthimit është 1.4 1010
vjet,ndërsa në program koha llogaritet në
njësi KYR=106 vjet) sa që sistemi sillet njëlloj sikur thoriumi të kalonte direkt tek plumbi.
251
Programi NUCDEC.BAS Zbërthimi i thjeshtë radioaktiv
100 N0 = 1E 22 numri fillestar i bërthamave
110 N = N0
120 C = -. 693/140 konstantja e zbërthimit
130 D = 1 hapi kohor t
140 T0 = 10 koha përfundimtare
150 PRINT “T(100 KYR)” , “ N(TH232) “ , “EXPONENTIAL “
160 N = N+C*(N+C*N*D/2)*D numri i ri i bërthamave
170 T= T+D koha e re
180 IF T< T0 THEN 210 grupi i printimit
190 PRINT T , N , N0*EXP(C*T)
200 T0 = T0 +10
210 IF T< = 200 THEN 160 rikthim për hapin tjetër kohor
220 END
Program NUCDEC.FOR
AN0 = 1 . E 22
AN = AN0
C = - . 693 / 140.
DELT = 1.
PRNTT = 10 .
5 AN = AN + C* ( AN* + C*AN*DELT / 2 . )*DELT
T = T + DELT
IF ( T - PRNTT ) 20 , 10 , 10
10 ANTHE = AN0*EXP(C*T)
PRINT 100 , AN , ANTHE
PRNTT = PRNTT + 10 .
20 IF ( T - 200 . ) 5 , 5 , 30
30 STOP
100 FORMAT ( 1X , 2E12 . 6 )
END
Në program supozohet se zbërthimi fillon në çastin t=0 me 1022
bërthama thoriumi (rreth
një gram thorium i pastër) . Metoda algoritmike më e thjeshtë (hap pas hapi kohor) për të
zgjidhur ekuacionin do ishte ajo kur përdoret vlera e vjetër të numrit N për të gjetur N=C
Nvjeter t në çdo kohë t (metoda e Ejlerit për ekuacionet diferenciale të rendit të parë). Duhet
zgjedhur një hap kohor t sa më i vogël për të nxjerrë një rezultat të mirë me këtë metodë. Një
metodë më e mirë përdor edhe vlerën e gjetur nga metoda e Ejlerit për vlerën e re N edhe
vlerën e vjetër N për të gjetur një vlerë mesatare të n në hapin e dhënë kohor. Vlera mesatare
përdoret për të gjetur vlerën përfundimtare të re të N. Kjo metodë është e lidhur me regullin
trapezoidal të integrimit. Në program mesatarja merret (Nvjeter + Nejler)/2 = N+C N t/2 dhe
përdoret kjo vlerë për të përmrësuar N. Programi printon diferencën e vlerave nga zgjidhja
analitike, e cila për një zbërthim të vetëm është :
N=N0 eC t
,
ku N0 është numri fillestar i bërthamave. Ekzekutimi i programit do tu tregojë që procedura
numerike është pothuaj e saktë (arrihet deri në saktësinë e 5 shifrave gjatë kohës sa disa
perioda gjysëm-zbërthimi).
252
Këto ide mund të shtrihen edhe në situatën kur bërthamat bija zbërthehen. Së pari, përdorni
metodën e Ejlerit për të marë një përafrim të parë të numrit të ri; pastaj përdorni numrat
mesatarë për të gjetur një përafrim të mirë për vlerën e re të N . Programi DAUGHT përdor
sekuencën e mëposhtëme të hapave. Me L janë shënuar përafrimet e Ejlerit:
L1 = N1 + C1 N1 D
L2 = N2 + C2 N2 D + C3 N1 D
N2 = N2 + C2 ((N2+L2)/2) D + C3 ((N1+L1)/2) D
N1 = N1 + C1 ((N1+L1)/2) D
T = T + D
ku D është hapi kohor t. Programi DAUGHT ilustron këtë metodë për zbërthimin radioaktiv
të izotopit 237
93 Np i cili kalon në 233
91 Pa , i cili zbërthehet në 229
90Th nëpërmjet 233
92U. Të
gjithë elementët e tjerë të zinxhirit (që përfundojnë me 209
83Bi i cili është stabël) zbërthen
shumë shpejt. perioda e gjysëm-zbërthimit të Np është 1.62 105 vjet. Programi supozon se
në fillim ka një kampion të pastër me 1022
bërthama.
Programi DAUGHT.BAS Zbërthimi i zinxhirit radioaktiv nënë-bijë
100 N1 = 1E22 numri fillestar i bërthamave
110 C1 = - . 693 / 2.2E3 konstantet e zbërthimit radioaktiv
120 C2 = - . 693 / 1.62E2
130 C3 = - C1
140 D = 1 hapi kohor
150 T0 = 10 koha e plotë
160 PRINT “T(KYR)” , “N(NP237)” , “N(U233)”
170 L1 = N1 + C1*N1*D vlerësimi i numrit të ri të bërthamave
180 L2 = N2 + C2*N2*D + C3*N1*D
190 N2 = N2 + C2*(N2 + L2 )*D / 2 + C3*(N1 + L1 )*D / 2
200 N1 = N1 + C1*(N1 + L1 )* D / 2
210 T = T + D koha e re
220 IF T < T0 THEN 250 grupi i printimit
230 PRINT T , N1 , N2
240 T0 = T0 + 10
250 IF T < 200 THEN 170 rikthim për hapin tjetër kohor
260 END
Program DAUGHT.FOR
AN1 = 1.E 22
AN2 = 0 .
C12 = - . 693 / 2.2E3
C23 = - . 693 / 1.62E2
C21 = - C12
DELT = 1.
PRNTT = 10 .
253
10 ANS1 = AN1 + C12*AN1*DELT
ANES2 = AN2 + C23*AN2*DELT + C21*AN1*DELT
AN2 = AN2 + C23*(AN2 + ANES2)*DELT / 2. + C21*(AN1 + ANS1)*DELT / 2.
AN1 = AN1 + C12*(AN1 + ANS1)*DELT / 2.
T = T + DELT Neë time
IF (T - PRNTT) 20 , 15 , 15
15 PRINT 100 , T , AN1 , AN2
PRNTT = PRNTT + 10 .
20 IF ( T - 100 . ) 10, 10, 25
25 STOP
100 FORMAT (1X , 3E10 . 3 )
END
Figura 8.1 tregon numrin e bërthamave të neptuniumit dhe uraniumit në funksion të
kohës. Me që të dy periodat e gjysëm-zbërthimit që dominojnë ndryshojnë me një faktor 10
herë, mund të nxirret edhe zgjidhja analitike. Numrat që dominojnë janë ato të elemetit me
peridë gjysëm-zbërthimi më të gjatë.
Figura 8.1 Një zinxhir i zbërthimit radioaktiv
me një hallkë. Zbërthimi i 237
Np nëpërmjet 233
U. Në fillim kemi vetëm 1022
bërtham Np.
Perioda e gjysëm-zbërthimit të Np është
2.2 106 vjet ndërsa e U është 1.62 10
5 vjet.
Bërthamat e ndërmjetme 233
Pa zbërthehen në 233
U me periodë 27.4 ditë. Kurba e U është
shumëzuar me 10.
Metoda numerike nuk është e kufizuar për dy raste . Programi U234 ilustron
zbërthimet (dominuese) që ndodhin në zinxhirin e uranium 234. Ky është (kryesisht) një
zinxhir me tre lloje bërthamash. Në program supozohet se procesi fillon me rreth një gram 234
U të pastër. Skema e zbërthimit është treguar në figurën 8.2. Përsëri është zbatuar përafrimi
i Ejlerit për numrat e rinj (dhe pastaj mesatarja) para se të llogariten vlerat ereja të N.
Figura 8.2 Skema e zbërthimit të 234
92U
Programi U234.BAS
1022
237Np
N
T (vjet) 5 x 106
0
233U
23492U
23090Th+
22688Ra+
22286Em+
20682Pb
2.5 105
vjet
8 104
1.62 103
shpejt
254
100 N1 = 1E22 Numri fillestar i bërthamave
110 C1 = - . 693 / 250 Konstantet e zbërtmimit
120 C2 = - . 693 / 80
130 B2 = - C1
140 C3 = - . 693 / 1 . 62
150 B3 = - C2
160 D = . 01 hapi kohor , t
170 T0 = 1 koha e printimit
180 PRINT “T ( KYR)” , “N(U234)” , “N(TH230)” , “N(RA226)”
190 L1= N1 + C1*N1*D numri i ri i bëthamave
200 L2 = N2 + C2*N2*D + B2*N1*D
210 L3 = N3 + C3*N3*D + B3*N2*D
220 N3 = N3 + C3*(L3 + N3)* D / 2 + B3*(L2 + N2)* D / 2
230 N2 = N2 + C2*(L2 + N2)* D / 2 + B2*( L1 + N1)* D / 2
240 N1 = N1 + C1*(L1 + N1)* D/ 2
250 T = T + D koha e re
260 IF T <T0 THEN 290 grupi i printimit
270 PRINT T , N1 , N2 , N3
280 T0 = T0 + 1
290 IF T < 20 THEN 190 rikthim për hapin tjetër kohor t
300 END
Programi U234.FOR
AN1 = 1 . E22
C1 = - . 693 / 250.
C2 = - . 693 / 80 .
B2 = - C1
C3 = - . 693 / 1 . 62
B3 = - C2
DELT = . 01
PRNTT = 1 .
10 AN1ES = AN1 + C1* AN1* DELT
AN2ES = AN2 + C2*AN2*DELT + B2* AN1*DELT
AN3ES = AN3 +C3* AN3*DELT + B3*AN2*DELT
AN3 = AN3 + C3*(AN3ES + AN3)*DELT / 2 . + B3*(AN2ES + AN2)*DELT / 2 .
AN2 = AN2 + C2*(AN2ES + AN2)*DELT / 2 . + B2*(AN1ES + AN1)* DELT / 2 .
AN1 = AN1+ C1*(AN1ES + AN1)*DELT / 2 .
T = T + DELT
IF ( T - PRNTT) 20, 15, 15
15 PRINT 100, T, AN1, AN2, AN3
PRNTT = PRNTT + 1 .
20 IF ( T - 20 . ) 10, 30, 30
30 STOP
100 FORMAT ( 3X, F5. 2 , 3 (2X, E10 . 4 ))
END
255
Figura 8.3 Një zinxhir zbërthimi me bija që
zbërthehen. Zbërthimi i 234
U nëpërmjet 230
Th
dhe 226
Ra. Periodat e gjysëm-zbërthimit janë: U
2.5 105 vjet , Tha 8 10
4 vjet , Ra 1.62 10
3
vjet. Kurba për Ra është shumëzuar me 100.
Figura 8.3 tregon numrin e bërthamave të U,
numrin e bërthamave të Th dhe 100 herë numrin e bërthamave të Ra në funksion të kohës.
Numri i bërthamave të Em , i cili është kryesisht numri i bërthamave të Pb, do ishte i
barabartë me numrin fillestar të bërthamave minus shumën e numrave të tre perbërësve që
zbërthehen ose 1022
: (N1 + N2 + N3 ). Në natyrë, 234
U prodhohet nga 238
U (urani në natyrë
është më shumë në këtë formë) nga një zbërthim me periodë gjysëm-zbarthimi (dominuese)
4.51 109 vjet ; kjo periodë është kaq e gjatë sa që zinzhiri i i bërthamave
234U mund të
konsiderohet veçmas duke supozuar që rruga e vetme e ndryshimit të numrit të bërthamave 234
U është nëpërmjet zbërthimit në Thorium.
Sistemi i ekuacioneve të zbërthimit për N lloje bërthamash që bashkëveprojnë në
zbërthim si një zinxhir radioaktiv mund të shkruhet si një ekuacion matricor. Zgjidhja
numerike mund të shkruhet në terma të matricave, siç bëhet në programin MATDEC . Numri i
llojeve të ndryshme të bërthamave është i kufizuhar vetëm nga mundësitë e ruajtjes në
kompjuter. Sistemi i marë në programin MADEC është zinxhiri i 234
U , prandaj rezultatet janë
si në programin e mëparshëm.; por programi mund të përdoret edhe për çfardo numri të
llojeve të bërthamave të zinxhirit.
Programi MATDEC.BAS
10 DIM N(3), C(3, 3), M(3), L(3)
20 FOR I = 1 TO 3
100 READ N(I)
105 NEXT I
106 FOR I = 1 TO 3
107 FOR J = 1 TO 3
108 READ C(I, J)
109 NEXT J
110 NEXT I
120 DATA 1E+22,0,0
130 DATA -.002772,0,0,.002772,-8.66E-3,0,0,8.66E-3,-.4278
140 D = .01
150 T0 = 1
155 FOR I = 1 TO 3
160 FOR J = 1 TO 3
170 C(I, J) = C(I, J) * D
171 NEXT J
172 NEXT I
173 FOR I = 1 TO 3
174 FOR J = 1 TO 3
175 M(I) = M(I) + C(I, J) * N(J)
106
T (vjet)00
N
1022
234U
222Ra
230Th
256
176 NEXT J
177 NEXT I
178 FOR I = 1 TO 3
180 M(I) = .5 * M(I)
190 M(I) = N(I) + M(I)
192 NEXT I
194 FOR I = 1 TO 3
195 FOR J = 1 TO 3
200 L(I) = L(I) + C(I, J) * M(J)
205 NEXT J
210 N(I) = N(I) + L(I)
215 NEXT I
220 T = T + D
230 IF T < T0 THEN 280
240 PRINT T;
245 FOR I = 1 TO 3
250 PRINT N(I)
260 NEXT I
270 T0 = T0 + 1
280 IF T <= 20 THEN 155
290 END
Përdorimi i këtyre programeve ka për qëllim të ilustrojë mënyrën e funksionimit të
zinxhirit bërthamor. Nëse zbërthimi në zinxhir ka gjysëm-perioda që ndryshojnë shumë nga
njera tjetra , atëhere zgjidhet koha për të cilën secili nga zbërthimet dominon . Pastaj gjendet
perioda e gjysëm-zbërthimit dhe zbritet numri i llogaritur i zbërthimeve nga numri fillestar
çdo herë. Pastaj kalohet në një interval tjetër kohor dhe gjendet një tjetër periodë gjysëm-
zbërthimi. Kjo metodë ecën mirë për perioda gjysëm-zbërthimi që janë larg njëra tjetrës. Kur
periodat nuk janë të ndara mirë përdoret një mënyrë “prove e gabimi” , ku merren me mënd
periodat dhe numrat fillestarë dhe gjendet se si llogaritjet përputhen me të dhënat , mandej
korrigjohen vlerat e zgjedhura dhe procesi përsëritet. Zakonisht për vlera të fillimit meren ato
të metodës së zakonëshme me një periodë që dominon. Procesi ndërpritet kur rezultatet e
llogaritjeve përputhen mirë me të dhënat.
8.3 Zbërthimi radioaktiv duke përdorur numrat e rastit
Simulimi ngjarjeve statistikore bëhet duke përdorur numrat erastit. Ngjarje të tilla janë edhe
zbërthimet radioaktive. Metoda më e përdorëshme është ajo që quhet Monte Carlo. Një
problem zbërthimi që përdor teknikën Monte Carlo është dhënë në programin NUMON.
Shkurt, kët konsiderohet një numër bërthamash N dhe shikohet çdo bërthamë pas një njësi
kohore. Duke krahasuar një numër të rastit me konstanten e zbërthimit, vendoset nëse çdo
bërthamë zbërthehet gjatë kësaj njësie kohore. Nëse numri i rastit është më i vogël se
konstantja e zbërthimit atëhere bërthama zbërthehet ; nëse numri i rastit (midis 0 dhe 1) është i
barabartë ose më i madh se konstantja e zbërthimit atëhere bërthama nuk zbërthehet në
program ; kalohet në hapin tjetër kohor etj. Numri i rastit simulon procesin statistikor pra vetë
procesin e zbërthimit radioaktiv.
Programi NUMON.BAS
257
100 DIM N(1000), L(3), M(3)
110 L(1) = .2 konstantet e zbërthimit
120 L(2) = .05
130 L(3) = 0
140 FOR N = 1 TO 1000 gjendjet fillestare të bërthamave
150 N(N) = 1
160 NEXT N
170 FOR T = 1 TO 20 cikli për hapet kohore
180 FOR N = 1 TO 1000 cikli për bërthamat
190 IF RND >= L(N(N)) THEN 210 krahason numrin e rastit me konstanten e zbërthimit
200 N(N) = N(N) + 1 bërthamat e zbërthyera
210 NEXT N
220 M(1) = 0 tre llojet e bërthamave të reja
230 M(2) = 0
240 M(3) = 0
250 FOR N = 1 TO 1000 cikli sipas bërthamave
260 M(N(N)) = M(N(N)) + 1 bërthamat e reja të secilit lloj
270 NEXT N
280 PRINT T, M(1), M(2), M(3)
290 NEXT T
300 END
Programi NUMON.FOR
DIMENSION NUC ( 1000 ), NUM ( 3 ), ALAM ( 3 )
ALAM ( 1 ) = . 2
ALAM ( 2 ) = . 05
ALAM ( 3 ) = 0 .
DO 20 I = 1 , 1000
20 NUC ( I ) = 1
DO 90 J = 1 , 20
DO 40 N = 1 , 1000
NN = NUC ( N )
IF ( RANF ( 0 ) - ALAM ( NN ) ) 30, 40 , 40
30 NUC ( N) = NUC ( N ) + 1
40 CONTINUE
NUM ( 1 ) = 0
NUM ( 2 ) = 0
NUM ( 3 ) = 0
DO 80 N = 1 , 1000
NN = NUC ( N )
80 NUM ( NN ) = NUM ( NN ) + 1
90 PRINT 101 , J , NUM ( 1 ) , NUM ( 2 ), NUM ( 3 )
STOP
101 FORMAT ( 1X , 417 )
END
258
Ushtrime
1. a. Shkruani zinxhirin e zbërthimit të 238
92U
b. Zgjidhni kohën më të gjatë të zbërthimit në këtë zinxhir dhe supozoni që të
gjitha zbërthimet e tjera bëhen në çast. Duke përdorur një program për zbërthimin
llogaritni numrin e produkteve të ndryshme si funksion i kohës derisa të kenë mbetur
vetëm një e dhjeta e 238
92U fillestar (të pastër).
c. Tani përfshini veç kohës më të gjatë të zbërthimit edhe atë që vjen pas saj në
zinxhirin e 238
92U dhe përsëritni pikën b.
2. a. Shkruani zinxhirin e zbërthimit të 235
92U.
b. . Zgjidhni kohën më të gjatë të zbërthimit në këtë zinxhir dhe supozoni që të
gjitha zbërthimet e tjera bëhen në çast. Duke përdorur një program për zbërthimin
llogaritni numrin e produkteve të ndryshme si funksion i kohës derisa të kenë mbetur
vetëm një e dhjeta e 235
92U fillestar (të pastër).
c. Tani përfshini veç kohës më të gjatë të zbërthimit edhe atë që vjen pas saj në
zinxhirin e 235
92U dhe përsëritni pikën b.
3. a. Shkruani zinxhirin e zbërthimit të 237
93Np.
b. . Zgjidhni kohën më të gjatë të zbërthimit në këtë zinxhir dhe supozoni që të
gjitha zbërthimet e tjera bëhen në çast. Duke përdorur një program për zbërthimin
llogaritni numrin e produkteve të ndryshme si funksion i kohës derisa të kenë mbetur
vetëm një e dhjeta e 237
93Np fillestar (të pastër).
c. Tani përfshini veç kohës më të gjatë të zbërthimit edhe atë që vjen pas saj në
zinxhirin e 237
93Np dhe përsëritni pikën b.
259
KAPITULLI I IX
FIZIKA E TRUPIT TE NGURTE
9.1 Hyrje
Nga hyrja në Fizikën e trupit të ngurtë ka shumë shëmbuj të përdorimit të kompjuterit. Në
këtë kapitull ne do shikojmë katër përdorime : një mënyrë e thjeshtë për ndërtimin e zonave të
Briluenit dhe sipërfaqeve Fermi të elektroneve të lirë; një mënyrë për llogaritjen e përhapjes së
pulseve fononike në një rjetë një-dimensionale ; një mënyrë për vizatimin e diagramave në
varësi të q (relacioni i dispersionit) dhe për llogaritjen e densiteteve të gjendjeve për rjeta dy-
(ose më shumë) dimensinale; dhe një mënyrë për llogaritjen e sipërfaqeve enegji-k për
elektronet thuajse të lirë në dy (ose më shumë) dimensione.
9.2 Rjeta e kundërt
Eshte e dobishme të vizatohet me dorë një ndërtim i zonës Briluen në rjetën e kundërt.
Zgjidhni p.sh. ndërtimin për rastin më të thjeshtë : një rjetë katrore dy-dimensionale. Pasi ta
keni parë se si bëhet ndërtimi, kompjuteri mund tju lehtësojë nga shumë llogaritje. Eshte e
dobishme të shikoni shumë shembuj disa nga të cilat janë treguar në figurat 9.1 deri në 9.4 .
Figura 9.1 Ndërtimi i zonave të Briluenit për një rjetë
dy - dimensionale katrore të centruar. Janë vizatuar aq
bisektrica sa të kompletojnë deri shtatë zona; zona e
dytë, e tretë, e katërt dhe pesta janë mbushur me viza,
me pika ose me të zezë.
260
Figura 9.2 Ndërtimi i zonave të Briluenit për një
rjetë dy- dimensionale fekzagonale. Janë vizatuar aq
bisetrica sa të konpletojnë pesë zona; zona e dytë, e
tretë, e katërt dhe e pestë janë mbushur me viza, me
pika ose me të zezë
Figura 9.3 Nërtimi i zonave të Briluenit për një rjetë
katërkëndëshe të centruar bashkë me rrathët e
Harrisonit për tre elektrone për qelizë. Sipërfaqja
Fermi ka një copëz brimore në zonën e dytë dhe
copëza të vogla elektrike në zonën e tretë.
Figura 9.4 Ndërtimi i zonave të Briluenit dhe
rrathëve të Harisonit për rjetën katërkëndëshe të
centruar me dy elektrone për qelizë. Sipërfaqja Fermi
ka një copëz të vogël brimore në zonën e parë dhe
copëza të vogla elektronike në zonën e dytë
261
Programi për llogaritjen e bisektricave pingule me vektorët e rjetës së kundërt është mjaft i
thjeshtë . Në rastin dy-dimensional jepen vektorët e bazës së rjetës së drejtë (primitiva) (x1 , y1
), llogariten vektorët e bazës së rjetës së kundërt (primitiva) (x2 , y2 ).
Pikat e rjetës së kundërt janë thjeshtë shumëfishe të plota të vektorëve të bazës (i.x2 , i.x2 ).
Nëse pjerësia e vijës që bashkon çdo pikë të rjetës së kundërt me origjinën është S , pjerësia e
bisektricës (në dy dimensione) është negative dhe invers: -1/S . Çdo dy pika mbi vijën që
kalon nëpër pikën (1/2 i.x2 , 1/2 i. y2 ) dhe që ka pjerësi -1/S përcakton një kufi të zonave të
Briluenit. Programi që i kryen këto llogaritje është titulluar HARR
Programi HARR.BAS
100 PRINT “ DY VECTORET E RJETES SE DREJTE (X1, Y1, X2, Y2 ). “
110 INPUT X2, Y2, X3, Y3
120 A = ABS(X2*Y3 - Y2*X3) Sipërfaqja e rjettës së drejtë
130 X0 = 2*3.14159*Y3 / A Vektorët e rjetës së kundërt
140 Y0 = 2*3.14159*( - X3) / A
150 X1 = 2*3.14159*(-Y2) / A
160 Y1 = 2*3.14159*X2 / A
170 B = 4*3. 14159*3.14159 / A Sipërfaqja e rjetës së kundërt
180 I0 = INT(ABS(5*3.14159 / (X0 - X1))) Numri i pikave të rëndësishme të rjetës
së kundërt
190 FOR I = - I0 TO I0 Cikli për kalimin nëpër pikat e rjetës së
200 FOR J = - I0 TO I0 kundërt
210 X5 = I* X0 + J*X1 Pika e mesit midis origjinës dhe pikës së
220 Y5 = I*Y0 + J*Y1 radhës në rjetën e kundërt
230 PRINT “ PIKA E RJETES SE KUNDERT:” , X5, Y5
240 PRINT “BISEKTRICA: “
250 IF Y5 < >0 THEN 280 Nëse bisektrica është vertikale ose jo
260 PRINT X5 , “ - 5” , X5 , “ + 5 “ Kur bisektrica është vertkale
270 GOTO 320
280 S = - X5 / Y5 Kur bisektrica nuk është pingule
290 Y8 = Y5 / 2 + S*( - 5 - X5 / 2 )
300 Y9 = Y5 / 2 + S*( 5 - X5 / 2 )
310 PRINT “ - 5” , Y8, “ + 5 “ , Y9
320 NEXT J
330 NEXT I
340 PRINT “NUMRI I ELECTRONEVE / NJE CELULE ( OSE 0 TO STOP ) “ ;
350 INPUT N0
360 IF N0 = 0 THEN 410
370 N0 = N0 / A Numri i electroneve per njësi të sipërfaqes
380 R = SQR (2*3. 14159*N0 ) Rezja e rrethit të Harrison-it
390 PRINT “ REZJA FERMI = “ ; R
400 GOTO 340
410 END
Program HARR.FOR
262
DATA X1D, Y1D, X2D, Y2D / 1. , 0. , 0. ,1 . / Vectors e rjetës së kundërt
A = ABS (X1D*Y2D - Y1D*X2D) Sipërfaqja e qelizës së rjetës së drejtë
X1R = 2. *3. 14159*Y2D / A Vektorët e rjetës së kundërt
Y1R = 2.*3. 14159*( - X2D) / A
X2R = 2. *3. 14159*( - Y1D) / A
Y2R = 2.*3. 14159*X1D / A
B = 4. *3. 14159*3.14159 / A Sipërfaqja e qelizës së rjetës së kundërt
I0 = 2*INT (ABS(5. *3.14159 / ( X1R - X2R))) - 1 Numri i pikave të
rëndësishme të rjetës së kundërt
DO 10 I = 1, I0
AI = I - I0
DO 10 J = 1, I0
AJ = J - I0
XRLP = AI*X1R +AJ*X2R Pika e mesit midis origjinës dhe
YRLP = AI*Y1R+AJ*Y2R pikës së radhës në rjetën e kundërt
PRINT 100, XRLP, YRLP
IF (YRLP) 20, 15, 20 Bisektricat vertikale
15 PRINT 104, XRLP, XRLP
GOTO 10
20 S = - XRLP / YRLP Pjerësia
YLFT = YRLP / 2 . +S*(-5. - XRLP/ 2. ) Bisektricat jo-verikale
YRT = YRLP / 2 . +S*(5. - XRLP / 2.)
PRINT 101, YLFT, YRT
10 CONTINUE
25 READ (5, 100) AN Numri i elektroneve për një qelizë
IF (AN) 40, 90, 40
40 AN = AN / A Numri i elektroneve për njësi sipërfaqeje
R = SQRT (2. *3.14159*AN) Rezja e rrethit të Harrisonit
PRINT 103, AN, R
GOTO 25
90 STOP
100 FORMAT (1X, 2F10.4)
101 FORMAT (1X, 4H - 5 , F10. 4, 7H +5 , F10 . 4)
102 FORMAT (F10 . 5)
103 FORMAT (1X, 2HN = , F8 . 2, 16H FERMI RADIUS = , F10 . 4)
104 FORMAT (1X, F10 . 4, 7H - 5 , F10 . 4, 7H + 5 )
END
9.3 Përhapja njëdimensionale e fononeve
Nganjëherë është e vështirë të kuptohen vetitë dispersive të një vargu (rjete) një
dimensional lineare , që është rasti më i thjeshtë i llogaritjeve të vibrimeve të rjetës. Si mundt
të kuptohet fakti që shpejtësia e grupit vS është zero në kufirin e zonës së Briluenit ndërsa
shpejtësia e fazes vp është e ndryshme nga zero. Duke përdorur kompjuterin mund të kuptohet
se cfarë ndodh me një puls (paketë) të valëve të rjetës gjatë përhapjes së tij.
Le ta zemë se në fillim kemi një puls në formën Gausiane (spektri Furie i tij ka formën e
shpërndarjes së Gausit) dhe fillon të përhapet . Secili komponent i pulsit zhvndoset gjatë
kohës t me vp t . nëse i mbledhim këto komponentë në kohën t merret pulsi pas kohës së
263
përhapjes t . Nëse të gjithë komponentët e pulsit kanë të njëjtën shpejtësi vp atëhere ato
zhvendosen njëlloj përgjatë rjetës dhe forma e pulsit nuk ndryshon. Kjo ndodh kur pulsi ka
komponente vetëm nga zona e vazhduar afër qendrës së zonës së Briluenit. Në qoftë se disa
komponentë të valëve të rjetës (ato afër skajeve të zonës) kanë shpejtësi fazore më të vogël,
atëhetë këto mode më të ngadalta to tentojnë të mbeten prapa. Kur komponentet mblidhen në
një çast më vonë , forma e pulsit do të jetë e pulsit do jetë deformuar dhe shpejtësia e grupit
(shpejtësia me të cilën zhvendoset qendra e pulsit) do jetë më e vogël. Nëse disa komponentë
kanë vektorë valorë përtej kufirit të zonës së Briluenit , ato kanë praktikisht shpejtësi në
drejtim të kundërt ( si rezultat i periodicitetit, shpejtësia e modës është ajo që i takon një
vektor i rjetës së kundërt më tej). Kur vektori valor qendror i pulsit është në skaj të zonës,
pulsi deformohet me kalimin e kohës, por pulsi tenton të qëndrojë , kështu që shpejtësia e
grupit vg bëhet zero.
Programi që kryen llogaritjen e përhapjes së fononeve është quajtur PHON.BAS ose
PHON.FOR.
Program PHON.BAS
100 DIM F(97) , V(97)
110 PRINT “HAPI I RJETES (A) , VEKTORI VALOR QENDROR K , GJERESIA K”
120 INPUT A, K9, K8
130 P = 3 . 14159
140 I0 = 0
150 FOR K0 = K9 - 3*K8 TO K9 + 3*K8 STEP K8 / 16
160 I0 = I0 + 1
170 F ( I0 ) = EXP ( - ( K0 - K9)*( K0 - K9) / (K8*K8)) Pulsi Gausian
180 IF ABS(K0) > P / A THEN 230
190 IF K0 < > 0 THEN 210
200 K0 = 1E - 6
210 V(I0) = ABS(SIN(K0*A / 2 )) / K0 (k) në zonën e parë
220 GOTO 250
230 K = K0 - INT((K0 + P / A) / (2*P / A))*(2*P / A) v(k) e reduktuar për
240 V(I0) = ABS(SIN(K*A / 2)) / K zonën eparë
250 NEXT K0
260 PRINT “KOHA E PERHAPJES”;
270 INPUT T1
280 FOR X1 = - 10 TO 10 STEP 20 / 64 Hapi sipas x
290 I1 = 0
300 I2 = 0
310 I0 = 0
320 FOR K0 = K9 - 3*K8 TO K9 + 3*K8 STEP K8 / 16 Shumimi i komponenteve
330 I0 = I0 + 1
340 C0 = COS (K0*(X1 - V(I0)*T1))
350 I1 = I1 + C0*F(I0) Pjesa reale e pulsit
360 S0 = SIN(K0*(X1 - V(I0)*T1))
370 I2 = I2 - S0*F(I0) Pjesa imagjinae e pulsit
380 NEXT K0
390 I1 = I1 / 32
400 I2 = I2 / 32
405 PRINT X1, I1, I2 x, Re(pulse në x), Im( pulse në x)
264
410 NEXT X1
420 GOTO 260 Rikthim për një kohë tjetër përhapje
430 END
Program PHON.FOR
REAL K, K8, K9,I1, I2, K0
DIMENSION F(97), V(97)
DATA A, K9, K8 / 3. 14159, .5, 1 . /
PI = 3. 14159
DO 10 I0 = 1 , 97
K0 = K9 - 3 . *K8 +(I0 - 1)*K8 / 16.
F(I0) = EXP( - (K0 - K9)*(K0 - K9) / ( K8*K8))
IF (ABS(K0) - PI / A) 3, 3, 7
3 IF (K0) 5, 4 , 5
4 K0 = 1 . E - 6
5 V(I0) = ABS(SIN(K0*A / 2 . )) / K0
GOTO 10
7 K = K0 - INT((K0 + PI / A) / (2 . *PI / A))*(2 . *PI / A)
V(I0) = ABS(SIN(K*A /2 . )) / K
10 CONTINUE
20 READ (5 , 100)T1
IF (T1 - 999 . ) 25, 50, 50
25 DO 40 IX = 1, 11
X1 = - 10 . + (IX - 1)*2.
I1 = 0.
I2 = 0.
DO 30 I0 = 1 , 97
K0 = K9 - 3 . *K8 + (I0 - 1)*K8 / 16 .
C0 = COS(K0*(X1 - V(I0)*T1))
I1 = I1 + C0*F(I0)
S0 = SIN(K0*(X1 - V(I0)*T1))
30 I2 = I2 - S0*F(I0)
I1 = I1 / 32.
I2 = I2 / 32 .
40 PRINT 101, X1, I1, I2
GOTO 20
50 STOP
100 FOORMAT(F10.5)
101 FORMAT(1X, 3E12 .4)
END
9.4 Lëkundjet e rjetës dy-dimensionale
Një shembull tjetër i përdorimit të kompjuterit në hyrjen e Fizikës së Trupit të ngurtë është
llogaritja e valëve të rjetës në dy-dimesione, ky është një shembull edhe i ilustrimit të faktit se
265
se zgjidhjet analitike dhe llogaritjet me kompjuter ndihmojnë shumë së bashku. Kompjuteri
mund ti çfaqë me anë të vizualizimit zgjidhjet e nxjerra analitikisht.
Le të shqyrtojmë një rjetë katrore dy-dimensionale ku në nyje janë masa pikësore të njëjta ,
ku çdo masë është e lidhur me masat fqinje më të afërta me susta në drejtimet X,Y dhe XY (si
në figurën 9.5).
Figura 9.5 Gjeometria e vendosjes së masave fqinje dhe
forcat midis fqinjëve të afërt në rjetën katrore dy-
dimensionale.
Për thjeshtësi , sustat në drejtimet X dhe Y janë marë me të
njëjtën koeficient elasticiteti (k1 ), ndërsa susta në drejtimin XY (ajo që e lidh masën me
fqinjin mbas atij më të afërt) ka konstante elastike të ndryshme (k2 ). Ju mund ti shkruani vetë
ekuacionet e lëvizjes së çdo mase në drejtimin X dhe Y dhe të zgjidhni analitikisht sistemin e
ekuacioneve të lidhur. Rezultati për frekuencat e modeve si funksion i q=(qx ,qy ) ( kordinatat
koresponduese ne zonën e parë të Briluenit) është :
2
0
2 1
2
2
1
1
2
2 2
1
216
k
kP Q
k
kPS QR
k
kP Q
k
kPRQS[ ] ( ) ( )
ku:
Pq a
Qq a
R P S Qk k
m
x y
sin sin2 2
0
2 1 2
2 21 1
4 , , , dhe
Kompjuteri mund të përdoret për ta shfaqur këtë rezultat. Ju mund të kuptoni diçka nga
sjellja e zgjidhjes analitike ,por detajet e zgjidhjes kërkojnë llogaritje në kompjuter. Një
program që i kryen këto llogaritje është titulluar OMOFQ . Një mënyrë për ta çfaqur rezultatin
është duke përdorur një terminal (ose printer) ku karakteret e printuar në çdo pozicion
karakterizojnë vlerën e në çdo pozicion të dhënë nga (qx , qy ). Figura 9.6 tregon një plotim
të tillë.
266
Figura 9.6 Plotimi i në funksion të q për një rjetë dy-dimensionale ku për fqinjqt
më të afërt është marë konstantja elastike 1 dhe për fqinjët pas atij më
të afërt është marë konstantja elastike 0.5 . Eshtë treguar një e katërta
e zonës së parë të Briluenit me origjinë në (0,0). Karakteret (numra dhe
shkronja) paraqesin madhësinë e në çdo pikë (qx , qy). Janë vizatuar
edhe disa konture me të njëjtë.
Programi OMOFQ.BAS
100 DIM Ë(11,11), D(26)
110 PRINT “KONSTANTJA E RJETES, MASA, K PER XX DHE YY, K PER XY: “
120 INPUT A, M,K1,K2
130 Q0 = 3 . 14159/A Kufiri i zonës së Briluenit
140 Ë9 = 4*SQR(K1*K2) / M Konnstantet e ekuacionit për 2
150 R = SQR(K1 / K2)
160 I8 = 0
170 PRINT “QX”, “QY” , “ OMEGA”
267
180 FOR Q1 = 0 TO Q0 STEP Q0 / 10 Hapi sipas qx
190 I8 = I8 + 1
200 S = SIN(Q1*A / 2) Parametrat e ekuacionit për 2
210 P = S*S
220 R1 = 1 - P
230 Ë0 = 0
240 I9 = 0
250 FOR Q2 = 0 TO Q0 STEP Q0 / 10 Hapi sipas qy
260 I9 = I9 +1
270 S = SIN(Q2*A / 2)
280 Q =S*S
290 S1 = 1 - Q
300 S9 = R*R*(P - Q)*(P - Q) + ( 16 / (R*R))*P*R1*Q*S1
310 Ë2 = Ë9*(R*(P+Q) + (2 /R)*(P*S1 +Q*R1) - SQR(S9)) 2
320 Ë = SQR (Ë2)
330 Ë(I9 , I8 ) = Ë Ruhen vlerat e
340 PRINT Q1 , Q2, Ë
350 IF Ë < Ë0 THEN 370 Kërkohet maksimumi i
360 Ë0 = Ë
370 NEXT Q2
380 PRINT
390 NEXT Q1
400 D0 = 0
410 FOR I = 1 TO I9
420 FOR J = 1 TO I8
430 I0 = INT(25*Ë(I, J) / Ë0 + . 5) + 1
440 D(I0) = D(I0) +1 Densiteti i gjendjeve
450 NEXT J
460 NEXT I
470 PRINT “OMEGA” , “# @ OMEGA”
480 FOR I = 1 TO 26
490 Ë = (I - 1)*Ë0 / 25
500 PRINT Ë , D(I)
510 NEXT I
520 END
PROGRAMI OMOFQ.FOR
REAL M, KX, KY
DIMENSION OMEG (11, 11), DENS ( 26 )
DATA A , M, KX, KY / 3 . 14159, 1 . , 1 . , .1 /
Q0 = 3 . 14159 / A
OME = 4 . *SQRT(KX*KY) / M
R = SQRT( KX / KY )
DO 40 I = 1 , 11
QX = ( I - 1 )*Q0 / 10 .
S = SIN (QX*A / 2 . )
P = S*S
R1 = 1 . - P
OMMAX = 0 .
268
DO 40 J = 1 , 11
QY = (J - 1 )*Q0 / 10 .
S = SIN (QY*A / 2 . )
Q = S*S
S1 = 1 . -Q
S9 = R*R* (P - Q 0* ( P - Q ) + ( 16 . / ( R*R))*P*R1*Q*S1
OMEG2 = OME*(R*(P + Q ) + ( 2 . / R )* (P*S1 + Q*R1) - SQRT(S9)) 2
OMEGA = SQRT (OMEG2 )
OMEG ( I, J ) = OMEGA
PRINT 100, QX, QY, OMEGA
40 OMMAX = AMAX1 ( OMMAX, OMEGA )
D0 = 0
DO 45 I = 1, 11
DO 45 J = 1, 11
I0 = INT (25 . *OMEG (I, J ) / OMMAX + . 5 ) + 1
45 DENS (I0 ) = DENS ( I0 ) + 1 .
DO 50 I = 1, 26
OMEGA = ( I - 1 )*OMMAX / 25 .
50 PRINT 101, OMEGA, DENS ( I )
STOP
100 FORMAT ( 1X, 3F10 . 4 )
101 FORMAT ( 1X, 2F10 . 4 )
END
9.5 Elektronet thuajse të lirë në rastin dy-dimensional
Shembulli i fundit i këtij kapitulli ka të bëjë me elektronet thuajse të lirë në dy (ose më
shumë) dimensione. Në rastin një-dimensional, në tekstet klasike tregohen se si gjenden
energjite E si funksion i vektorit valor k . Duke lejuar që elektronet afër skajeve të zonës së
Briluenit të bashkëveprojnë (sipas reflektimit Bragg) me elektronet që janë një vektor më tej
në rjetën e kundërt dhe që janë në gjendje thujse të degjeneruar sipas energjisë, çfaqen të çara
në spektrin (varësinë) e E nga k . Për të gjetur enegjinë e saktë të një gjendjeje në funksion të
elementeve matricorë M të bashkëveprimit të rjetës së kundërt si dhe energjive të
paperturbuara E1 dhe E2 të dy gjendjeve që bashkëveprojnë, përdoret teoria e perturbimeve
për degjenerimet e rendit të dytë (degjenerimi i dyfishtë). Rezultati është :
E E E E E M 1
241 2 1 2
2 2[( ) ( ) ] , dhe del direkt nga diagonalizimi i matricës 2x2 të
perturbimit.
Para se të kalojmë në llogaritje të gjithë strukturës së bandës, është e dobishme të
shikojmë llogaritjet pqr elektronet thuajse të lirë në dy-dimensione. Në dy-dimesione kemi
çarje energjetike (energji të ndryshme në pikat ngjitur kur kalojmë kufirin e zonës së
Briluenit) dhe çarje të vektorit valor (një ndryshim i k nëpër kufirin e zonës duke ndjekur të
njëjtin kontur të energjisë). Këto efekte dy-dimensionale janë ilustrim më i mirë se rasti një-
dimesional për të kuptuar termat si brima,këputje magnetike, sipërfaqe Fermi shumë-pjesëshe
etj.
269
Rezultati një-dimensional është i mirë afër kufijve të zonës por jo aq i mirë larg kufijve të
zonës. E njëjta gjë është e vërtetë për përafrimin tonë të elektroneve thuajse të lirë në dy-
dimesione. në dy-dimesione afër qosheve të zonave të Briluenit, më shumë se dy gjendje të
ndara nga vektorët e rjetës së kundërt mund të kenë energji thuajse të degeneruar; në pika të
tilla është e përshtatëshme të diagonalizohet një matricë perturbimi më e gjerë (psh 3x3 ose
4x4, etj).
Kompjuteri përdoret në një mënyrë të drejtpërdrejtë. Kalohet me hap nëpër k hapësirën;
dhe për çdo k llogariten energjitë e gjithë gjendjeve të lidhura me k nëpërmjet vektorëve të
rjetës së kundërt, dhe zgjidhet gjendja më afër thuajse të degjeneruar. Pastaj diagonalizohet
matrica 2x2 për këto dy gjendje të lidhura me elementë përkatës të matricës M. Pasi llogaritet
energjia (që mund të printohet ose plotohet në terminal), lëvizet në një vlerë tjetër të k .
Rezultati jep energjitë e elektoneve thuajse të lirë të sistemit.
Një program që i bën këto llogaritje është NEARFR. Fogurat 9.7 (a) dhe b)) janë plotime
ku karakteret e printuara paraqesin energjinë në pikën (kx , ky ).
Në këtë kapitull u treguan vetëm 4 mënyra të përdorimit të kompjuterit për të kuptuar
feneomenet bazë të hyrjes në Fizikën e Trupit të Ngurtë . Por ka shumë aplikime të tjera si
llogaritja e nxehtësive specifike prej relacionit - q të matur në trupat e ngurtë; simulimi i
eksperimenteve me difraksion të rrexeve X, të neutroneve , dhe të elektroneve; llogaritje të
karakteristikave volt-amperike; llogaritje të strukturave të bandave për trupat e ngurtë amorfë;
etj.
Programi NEARFR.BAS
100 DIM D (26 )
110 PRINT “MAX . K” ;
120 INPUT K0
130 E0 = 2*K0*K0
140 FOR I = 1 TO 8
150 READ K ( I, 1 ), K ( I, 2 ), M ( I )
160 NEXT I
170 DATA 0, 2, . 2, 2, 0, . 2, 2, 2, . 2
180 DATA 0,4, .2, 2, 4, . 2, 4, 4, . 2, 4, 2, . 2, 4, 0, . 2
190 PRINT “KX” , “KY” , “ENERGY”
200 D0 = 0
210 FOR J = 0 TO 10
220 K2 = J*K0 / 10
230 FOR I = 0 TO 10
240 K1 = I*K0 / 10
250 E1 = K1*K1 + K2*K2
260 E8 = 9999
270 FOR I0 = 1 TO 8
280 E9 = (K1 - K ( I0,1 ))*(K1 - K( I0, 1)) + (K2 - K (I0, 2 ))*(K2 - K (I0, 2))
290 E7 = ABS (E1 - E9 )
300 IF E7 > E8 THEN 340
310 E2 = E9
320 E8 = E7
330 M = M ( I0 )
340 NEXT I0
350 IF E1 < > E2 THEN 370
270
360 E2 = E1 + . 00001
370 E = (E1 + E2 ) / 2 + SGN(E1 - E2 )*SQR((E1 - E2 )*(E1 - E2 ) / 4 + M*M)
380 PRINT K1, K2, E
390 I0 = INT (25*E / E0 + . 5 ) + 1
400 D ( I0 ) = D ( I0 ) + 1
410 NEXT I
420 NEXT J
430 PRINT “ENERGY” , “ # ËITH ENERGY “
440 FOR I = 1 TO 26
450 E = ( I - 1 )*E0 / 25
460 PRINT E, D ( I )
470 NEXT I
480 END
Programi NEARFR.FOR
DIMENSION DENS ( 26 )
REAL KMAX, KX, KY,, K ( 8, 2 ), MATEL ( 8 )
DATA K (1, 1 ), K (1, 2 ), MATEL (1 ) / 0 . , 2 . , . 2 /
DATA K ( 2, 1 ), K ( 2, 2 ),MATEL ( 2 ) / 2 . ,0 . , .2 /
DATA K ( 3, 1 ), K ( 3, 2 ),MATEL ( 3 ) / 2 . ,2 . , . 2 /
DATA K ( 4, 1 ), K ( 4, 2 ),MATEL ( 4 ) / O . ,4 . , . 2 /
DATA K ( 5 , 1 ),K ( 5, 2 ), MATEL ( 5) / 2 . , 4 . , . 2 /
DATA K ( 6 , 1 ),K ( 6, 2 ),MATEL ( 6 0 / 4 . , 4 . , . 2 /
DATA K ( 7, 1 ),K ( 7, 2 ), MATEL ( 7 ) / 4 . , 2 . , . 2 /
DATA K ( 8, 1 ),K ( 8, 2 ), MATEL ( 8 ) / 4 . , 0 . , . 2 /
KMAX = 1 .
E0 = 2 . *KMAX*KMAX
D0 = 0 .
DO 50 J = 1 , 11
KY = ( J - 1 )*KMAX / 10 .
DO 50 I = 1 , 11
KX = ( I - 1 )*KMAX / 10 .
E1 = KX*KX + KY*KY
E8 = 9999 .
DO 40 I0 = 1 , 8
ERLP = ( KX - K ( I0 , 1 )**2 + ( KY - K ( I0, 2 ))**2
DELE = ABS (E1 - ERLP )
IF (DELE - E8 ) 35, 35, 40
35 E2 = ERLP
E8 = DELE
AM = MATEL (I0 )
40 CONTINUE
IF (E1 - E2 ) 47, 45, 47
45 E2 = E1 + . 00001
47 E = ( E1 + E2 ) / 2 . + SIGN(E1 - E2 )*SQRT((E1 - E2 )**2 / 4 . + AM**2)
PRINT 100, KX, KY, E
I0 = INT ( 25 . *E / E0 + . 5 ) + 1
50 DENS ( I0 ) = DENS (I0 )+ 1 .
271
DO 60 I = 1, 26
E = ( I - 1 )*E0 / 25 .
60 PRINT 101, E, DENS (I )
STOP
100 FORMAT ( 1X, 3E12 . 4 )
101 FORMAT ( 1X, 2E12 . 4 )
END
a. f(8.4) , f(8) = 16.63553, f(8.1) = 17.61549, f(8.3) =17.56492, f(8.6) = 18.50515,
f(8.7) = 18.82091
b. f(-1/3), f(-1) = 0.10000000, f(-0.75) = -0.07181250, f(-0.5) = -0.02475000,
f(-0.25) = 0.33493750, f(0) = 1.10100000.
c. f(0.25), f(0) = -1, f(0.1) = -0.62049958, f(0.2) = -0.28398668, f(0.3) = 0.00660095,
f(0.4) = 0.24842440.
d. f(0.9) , f(0.5) = -0.34409873, f(0.6) = -0.17684460, f(0.7) = 0.01375227,
f(0.8) = 0.223563362 , f(1.0) = 0.65809197.
e. f( ) , f(2.9) = -4.827866, f(3.0) = -4.240058, f(3.1) = -3.496909, f(3.2) = -2.596792,
f(3.4) = -0.3330587
f. f( /2) , f(1.1) = 1.964760 , f(1.2) = 2.572152, f(1.3) = 3.602102, f(1.4) = 5.797884,
f(1.5) = 14.10142.
g. f(1.15 , f(1) = 1.684370, f(1.1) = 1.949477 , f(1.2) = 2.199796, f(1.3) = 2.439189,
f(1.4) = 2.670324.
h. f(4.1) , f(3.6) = 1.15164956, f(3.8) = 0.80201036 , f(4.0) = 0.30663842, ,
f(4.2) = -0.35916618, f(4.4) = -1.23926000.
1. a.
1.h.
1.b.
3. 3 P4 (1/2) = 1.7083
1.c.
5.a
1.d
n x0 , x1 , .... , xn Pn (8.4)
1 8.3, 8.6 17.87833
2 8.3, 8.6, 8.7 17.87716
3 8.3, 8.6, 8.7, 8.1 17.81000
4 8.3, 8.6, 8.7, 8.1, 8.0 17.60859
n x0 , x1 , .... , xn Pn (4.1)
1 4.0, 4.2 -0.0262639
2 4.0, 4.2, 4.4 0.0005223
3 4.0, 4.2, 4.4, 3.8 -0.0022188
4 4.0, 4.2, 4.4, 3.8, 3.6 -0.0024334
n x0 , x1 , .... , xn Pn (-1/3 )
1 -0.5, -0.25 0.21504167
2 -0.5, -0.25, 0.0 0.16988889
3 -0.5, -0.25, 0.0, -0.75 0.17451652
4 -0.5, -0.25, 0.0, -0.75, -1.0 0.17451852
n x0 , x1 , .... , xn Pn (0.25)
1 0.2, 0.3 -0.13869287
2 0.2, 0.3, 0.4 -0.13259734
3 0.2, 0.3, 0.4, 0.1 -0.13277477
4 0.2, 0.3, 0.4, 0.1, 0.0 -0.13277246
n Gabimi Kufiri i gabimit
1 0.00118 0.00120
2 1.367 10-4
1.452 10-5
3 3.830 10-6
2.823 10-7
4 3.470 10-6
8.789 10-9
5.b
1.e
5.c
1.f
5.d
1.g
7. f(1.09) 0.2826
n x0 , x1 , .... , xn Pn (0.25)
1 0.8, 1.0 0.44086280
2 0.8, 1.0, 0.7 0.43841352
3 0.8, 1.0, 0.7, 0.6 0.44198500
4 0.8,1.0, 0.7, 0.6, 0.5 0.44325624
n Gabimi Kufiri i gabimit
1 4.0523 10-2
4.5153 10-2
2 4.6296 10-3
4.6296 10-3
3 0 0
4 0 0
n x0 , x1 , .... , xn Pn (0.25)
1 3.1, 3.2 -3.12252
2 3.1, 3.2,3.0 -3.141593
3 3.1, 3.2,3.0,2.9 -3.141686
4 3.1, 3.2,3.0,2.9,3.4 -3.141590
n Gabimi Kufiri i gabimit
1 5.9210 10-3
6.0971 10-5
2 1.7455 10-4
1.8128 104
3 2.8798 10-6
4.5143 10-6
4 5.6320 107 5.8594 10
-7
n x0 , x1 , .... , xn Pn (0.25)
1 1.5,1.4 19.98002
2 1.5,1.4,1.3 23.67269
3 1.5,1.4,1.3,1.2 26.36966
4 1.5,1.4,1.3,1.2,1.1 28.49372
n Gabimi Kufiri i gabimit
1 2.7296 10-5
1.4080 10-9
2 5.1789 10-3
9.2215 10-3
n x0 , x1 , .... , xn Pn (0.25)
1 1.1,1.2 2.074637
2 1.1,1.2,1.0 2.076485
3 1.1,1.2,1.0,1.3 2.076244
4 1.1,1.2,1.0,1.3,1.4 2.076216