If you can't read please download the document
Upload
vankhanh
View
225
Download
6
Embed Size (px)
Citation preview
Praktikum iz Raunarskih Alata u Matematici
Tema 2.01.
Crtanje grafika funkcija jedne promenljive. Crtanje grafika implicitno zadatih funkcija jedne promenljive. Odreivanje graninih vrednosti. Profesor: Dr Branko MaleeviStudent: Emilija PetronijeviBroj indeksa: 73/09Odsek: Fizika elektronika
1. Uvod U ovim naim prvim susretima sa ozbiljnom naukom i prvim ozbiljnijim izraunavanjima i simulacijama jako je bitno da imamo predstavu kako neka funkcija izgleda u prostoru i da steknemo oseaj za njeno ponaanje zavisno od raznih parametara. MuPAD prua irok spektar opcija za vizuelizaciju matematikih funkcija preko biblioteke plot. Ova biblioteka se koristi za crtanje 2D i 3D grafika, sa animacijom ili bez, i sadri sve procedure za grafiku obradu:
info(plot)
Library 'plot': graphical primitives and functions for two- and three-dimension\
al plots
-- Interface:
plot::AmbientLight, plot::Arc2d, plot::Arrow2d,
plot::Arrow3d, plot::Bars2d, plot::Bars3d,
plot::Box, plot::Boxplot, plot::Camera,
plot::Canvas, plot::Circle2d, plot::Circle3d,
plot::ClippingBox, plot::Cone, plot::Conformal,
plot::CoordinateSystem2d, plot::CoordinateSystem3d, plot::Curve2d,
plot::Curve3d, plot::Cylinder, plot::Cylindrical,
plot::Density, plot::DistantLight, plot::Dodecahedron,
plot::Ellipse2d, plot::Ellipsoid, plot::Function2d,
plot::Function3d, plot::Group2d, plot::Group3d,
plot::HOrbital, plot::Hatch, plot::Hexahedron,
plot::Histogram2d, plot::Icosahedron, plot::Implicit2d,
plot::Implicit3d, plot::Inequality, plot::Integral,
plot::Iteration, plot::Line2d, plot::Line3d,
plot::Listplot, plot::Lsys, plot::Matrixplot,
plot::MuPADCube, plot::Octahedron, plot::Ode2d,
plot::Ode3d, plot::Parallelogram2d, plot::Parallelogram3d,
plot::Piechart2d, plot::Piechart3d, plot::Plane,
plot::Point2d, plot::Point3d, plot::PointLight,
plot::PointList2d, plot::PointList3d, plot::Polar,
plot::Polygon2d, plot::Polygon3d, plot::QQplot,
plot::Raster, plot::Rectangle, plot::Reflect2d,
plot::Reflect3d, plot::Rotate2d, plot::Rotate3d,
plot::Scale2d, plot::Scale3d, plot::Scatterplot,
plot::Scene2d, plot::Scene3d, plot::Sequence,
plot::SparseMatrixplot, plot::Sphere, plot::Spherical,
plot::SpotLight, plot::Streamlines2d, plot::Sum,
plot::Surface, plot::SurfaceSTL, plot::SurfaceSet,
plot::Sweep, plot::Tetrahedron, plot::Text2d,
plot::Text3d, plot::Transform2d, plot::Transform3d,
plot::Translate2d, plot::Translate3d, plot::Tube,
plot::Turtle, plot::VectorField2d, plot::VectorField3d,
plot::Waterman, plot::XRotate, plot::ZRotate,
plot::copy, plot::delaunay, plot::getDefault,
plot::hull, plot::modify, plot::setDefault
-- Exported:
plot, plotfunc2d, plotfunc3d
Ona sadri preko 100 tipova objekata i preko 400 izbora za njihov izgled pri crtanju, ali e nam uglavnom biti potreban mali deo njih. U opisu svake funkcije iz biblioteke su parametri koji su nam potrebni i lista podeavanja za njih.
2. Crtanje grafika funkcija jedne promenljive Opti oblik za crtanje grafika funkcije jedne promenljive jeste:
plotfunc2d(f1,f2,...fn,x=xmin..xmax,dodatne opcije);
gde su:
f1,f2,...fn - funkcije ije grafike elimo da nacrtamo;x=xmin..xmax - opseg x-ose, odnosno x-koordinata koja, ako ne zadamo opseg, ide od -5 do 5;dodatne opcije - sve dodatne opcije crtanja grafika.
plotfunc2d(x^4-x^3)
-5 -4 -3 -2 -1 0 1 2 3 4 5
100
200
300
400
500
600
700
x
y
plotfunc2d(x^4-x^3,x=-10..10)
-10 -8 -6 -4 -2 0 2 4 6 8 10
2000
4000
6000
8000
10000
x
y
Duina y-ose se automatski podeava, ali mi to moemo promeniti preko naredbe u opcijama YRange = y min ..y max iliViewingBoxYRange = y min ..y max .
plotfunc2d(x^4-x^3,x=-10..10,YRange=0..100000)
-10 -8 -6 -4 -2 0 2 4 6 8 10
10000
20000
30000
40000
50000
60000
70000
80000
90000
1e+5
x
y
plotfunc2d(3*sin(x)+5*cos(x),x=-20..20,YRange=-10..10)
-20 -15 -10 -5 5 10 15 20
-10
-8
-6
-4
-2
2
4
6
8
10
x
y
plotfunc2d(exp(-x)*sin(x))
-5 -4 -3 -2 -1 1 2 3 4 5
20
40
60
80
100
120
140
x
y
plotfunc2d((10*sin(10*x))/x+cos(10*x),x=0..5)
1 2 3 4 5
-20
0
20
40
60
80
100
x
y
plotfunc2d() je skraeno od plot(plot::Function2d()), gde nam je Function2d() grafik jedne promenljive sada deklarisan kao objekat koji iscrtavamo funkcijom plot(), a naredba plot:: dohvata proceduru iz biblioteke plot.
b:=plot::Function2d((sin(x)^2)*exp(-x)) //deklariemo grafiki objekat
plot::Function2d(sin(x)2 e x, x = 5..5
)
plot(b) //crtamo taj objekat, mogli smo i direktno
-5 -4 -3 -2 -1 0 1 2 3 4 5
20
40
60
80
100
120
x
y
U MuPAD-u je veliki izbor ureivanja grafika.
Moemo specificirati Title, Header, Footer, poziciju Title-a, nazive
koordinatnih osa i orijentaciju tih naziva...
Stringove kucamo izmedu duplih navodnika.
plotfunc2d(x^(ln(3*x)), Title=" Neka funkcija ", Header= " Vrhh", Footer= "Dole", TitlePosition=[3,30])
-5 -4 -3 -2 -1 0 1 2 3 4 5
20
40
60
80
x
y
Neka funkcija
Vrhh
Dole
Nazive koordinatnih osa kucamo u naredbi AxesTitles=[imex,imey],
a naziv y-ose rotiramo sa YAxisTitleOrientation.
plotfunc2d((10*sin(10*x))/x+cos(10*x),x=0..5, Title="LevaTrasOFE",TitleP
1 2 3 4 5
-20
0
20
40
60
80
100
KORENizENERGIJE
f(K
OR
EN
izE
NE
RG
IJE
*a)
LevaTrasOFE
Boju grafika menjamo opcijom Color koja stavlja istu boju svim graficima, odnosno Colors kad elimo vie grafika razliitih boja. Ako uzimamo ve postojeu boju, kaemo Color=RGB::BOJA A, a ako hoemo "sami" da pravimo boju, u MuPAD-u menjamo 4
parametra Color=[r,g,b,a], gde su r, g, b jaine crvene, zelene i crne boje respektivno i mogu biti od 0 do 1, a a je koeficijent prozirnosti i takoe moe biti od 0 do 1.
plotfunc2d(2*sin(5*x)/x+cos(5*x),cos(5*x),x=0..10, YRange=-15..15,Colors=[RGB::Green,[1,0,1,1]])
cos(5*x) + 2/x*sin(5*x)cos(5*x)
1 2 3 4 5 6 7 8 9 10
-15
-10
-5
0
5
10
15
x
y
emu boja kojima se iscrtavaju grafici sa LineColorType koji moe uzimati vrednosti
Dichromatic, Flat, Functional, Monochrome, Rainbow. Po default-u je flat.Debljinu linija menjamo sa LineWidth=d, gde je d realan broj.Za izgled samih linija imamo LineStyle stilove Dashed, Dotted ili Solid
a:=x^3; b:=x^4; c:=ln(x^2);
x3
x4
ln(x2)
plotfunc2d(a,b,c,x=0..10,YRange=0..100, LineColorType=Rainbow,LineWidth=2,LineStyle=Dashed)
x^3x^4ln(x^2)
0 1 2 3 4 5 6 7 8 9 100
20
40
60
80
100
x
y
Takoe moemo menjati izgled i podelu koordinatnih osa. Opcija Axes moe uzimati vrednosti None, Automatic, Boxed, Frame, Origin ili ih iskljuimo opcijom AxesVisible.
plotfunc2d(x*sin(x),Axes=Boxed)
-5 -4 -3 -2 -1 0 1 2 3 4 5
-4
-3
-2
-1
0
1
x
y
plotfunc2d(x*sin(x),Axes=Frame)
-5 -4 -3 -2 -1 0 1 2 3 4 5
-4
-3
-2
-1
0
1
x
y
plotfunc2d(x*sin(x),Axes=Origin)
-5 -4 -3 -2 -1 1 2 3 4 5
-4
-3
-2
-1
1
x
y
plotfunc2d(x*sin(x),AxesVisible)
-5 -4 -3 -2 -1 1 2 3 4 5
-4
-3
-2
-1
1
x
y
Podeoci se automatski odreuju podeavanjem duine koordinatnih osa, i to program glavne podeoke oznai brojevima, a one manje, izmeu, samo crticama. Mi to moemo menjati naredbama:XTicksNumber, YTicksNumber: moe biti None, Lower, Normal (po default-u) i High.XTicksBetween, YTicksBetween: moe biti pozitivan ceo broj.
plotfunc2d(x^(sin(x))-1)//by default
-5 -4 -3 -2 -1 1 2 3 4 5
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
x
y
plotfunc2d(x^(sin(x))-1, XTicksNumber=High, YTicksBetween=4)
-5.0 -4.5 -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
x
y
Ako elimo da izaberemo odakle nam kree obeleavanje podeljaka i na koliko se deava, koristimo komande (X,Y)TicksAnchor i (X,Y)TicksDistance.
plotfunc2d(sin(x)*cos(x)*exp(x),XTicksAnchor=0,YTicksAnchor=5,XTicksDistance=PI,YTicksDistance=5)
-3.1416 3.1416
-40
-35
-30
-25
-20
-15
-10
-5
5
10
15
20
25
x
y
Opcijom TicksLabelStyle menjamo rotaciju brojeva na podeocima, i ona moe uzimati vrednosti Horizontal, Vertical, Diagonal, Shifted.
plotfunc2d(sin(x)*cos(x),TicksLabelStyle=Vertical)
-5 -4 -3 -2 -1 0 1 2 3 4 5
-0.5
-0.4
-0.3
-0.2
-0.1
0.1
0.2
0.3
0.4
0.5
x
y
plotfunc2d(sin(x)*cos(x),TicksLabelStyle=Shifted)
-5-4
-3-2
-1 12
34
5
-0.5
-0.4
-0.3
-0.2
-0.1
0.1
0.2
0.3
0.4
0.5
x
y
plotfunc2d(sin(x)*cos(x),TicksLabelStyle=Diagonal)
-5 -4 -3 -2 -1 1 2 3 4 5
-0.5
-0.4
-0.3
-0.2
-0.1
0.0
0.1
0.2
0.3
0.4
0.5
x
y
Ako hoemo grafik da umreimo, dodaemo mreu po gravnim podeocima naredbom GridVisible=TRUE, a po meupodeocima SubgridVisible=TRUE.plotfunc2d(sin(x)*cos(x),GridVisible=TRUE,SubgridVisible=TRUE,YRange=-1..1)
-5 -4 -3 -2 -1 1 2 3 4 5
-1.0
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
1.0
x
y
Ako hoemo da nam veliine podeljaka na x-osi i y-osi budu jednake, odn. ose budu u razmeri, opcijom Scaling koja moe biti Constrained ili , po default-u, Unconstrained, kad MuPAD sam odreuje razmeru y-ose u odn.na rang vrednosti x-ose.plotfunc2d(exp(x)*cos(x))//Unconstrained
-5 -4 -3 -2 -1 1 2 3 4 5
-30
-20
-10
10
20
30
40
x
y
plotfunc2d(exp(x)*cos(x),Scaling=Constrained)
-5 5
-30
-20
-10
10
20
30
40
x
y
Ako imamo funkciju koja je iz nekoliko delova / prekidna, MuPAD ima naredbu piecewise([domen,f-ja],[domen,f-ja]) kojom moemo definisati takvu funkciju:y:=piecewise([x3,sin(x)])\{
x2 if x 1
sin(x) if 3 < x
plotfunc2d(y)
-5 -4 -3 -2 -1 1 2 3 4 5
5
10
15
20
25
x
y
y:=piecewise([x3,sin(x)]){x2 if x 6
sin(x) if 3 < x
Ako smo pogreno zadali funkciju tako da joj se preklapaju segmenti, MuPAD e prosto odsei segmente na kojima je duplo definisana, iscrtavi tu samo prvi deo funkcije.plotfunc2d(y,x=0..10, YRange=-10..10)
1 2 3 4 5 6 7 8 9 10
-10
-8
-6
-4
-2
0
2
4
6
8
10
x
y
Ako nam treba crtanje u drugim koordinatnim sistemima, opcijom CoordinateType menjamo skale x iy-ose u: LinLin, LogLin, LinLog, LogLog. plotfunc2d(exp(x))
-5 -4 -3 -2 -1 0 1 2 3 4 5
20
40
60
80
100
120
140
x
y
plotfunc2d(exp(x),CoordinateType=LogLin)
Error: expecting a positive X range for a logarithmic X axis. Got Xmin = -5.0 [plot::Function2d::MuPlotML]
MuPAD se buni ako mu, pri menjanju u drugi koordinatni sistem, funkcija nije dobro definisana, ovoga puta za x osu (ne moe log(negativan broj))plotfunc2d(exp(x),CoordinateType=LinLog)
-5 -4 -3 -2 -1 0 1 2 3 4 5
0.01
0.1
1
10
100
x
y
Ovo su bile neke od opcija iz funkcije plotfunc2d, ali mnogo vie opcija ima u samoj biblioteci plot.Ako hoemo da obojimo deo oblasti izmeu grafika i y-ose, tu je procedura Hatch.
plot::Hatch(funkcije, , [FillColor, FillPattern]) gde su:
funkcije - definisane fukncije; ako je jedna, popunjava se oblast
izmeu nje i x-ose, a ako je vie funkcija, popunjava se oblast izmeu njih - ako nije definisan, popunjava se sve, od minus beskonano do beskonano.FillColor - odreuje boju kojom se popunjavaFillPattern - odreuje nain popunjavanja: CrossedLines, DiagonalLines, FDiagonalLines, HorizontalLines, Solid, VerticalLinesf:=plot::Function2d(x*exp(x))
plot::Function2d(x ex, x = 5..5)
g:=plot::Function2d(sin(x))
plot::Function2d(sin(x), x = 5..5)
h:=plot::Hatch(f,-10..10,FillColor=RGB::Blue)
plot::Hatch("Function2d " (x*exp(x), x = -5..5, 0, 10..10)
plot(h)//Iscrtava samo rafirani grafik
-5 -4 -3 -2 -1 0 1 2 3 4 5
x
y
plot(f,h)
-5 -4 -3 -2 -1 0 1 2 3 4 5
x
y
h:=plot::Hatch(g,-10..10,FillColor=RGB::Blue)
plot::Hatch("Function2d " (sin(x), x = -5..5), 0, 10..10)
plot(h)
-5 5
-1.0
1.0
x
y
Prostor izmeu f i g popunili bismo ovako:a:=plot::Function2d(x*exp(x))
plot::Function2d(x ex, x = 5..5)
b:=plot::Function2d(exp(x)+exp(-x))
plot::Function2d(ex + e x, x = 5..5
)
c:=plot::Hatch(a,b,FillColor=RGB::Green,FillPattern=Solid);
plot::Hatch("Function2d " (x*exp(x), x = -5..5), "Function2d " (exp(x, ..)
plot(c)
-5 -4 -3 -2 -1 0 1 2 3 4 5
100
200
300
400
500
600
700
x
y
Ako elimo da crtamo u polarnim koordinatama, koristi se funkcija plot(plot::Polar([ r, ],u = umin .. umax, a=amin..amax, Opcije)) iz biblioteke plot, gde su u i a parametri ove krive.plot(plot::Polar([1,u],u=0..2*PI))
-1.0 -0.8 -0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 1.0
-1.0
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
1.0
x
y
plot(plot::Polar([u,1],u=0..2*PI))
0 1 2 30
1
2
3
4
5
x
y
plot(plot::Polar([r^2,r],r=0..3*PI/2))
-10 -8 -6 -4 -2
-22
-20
-18
-16
-14
-12
-10
-8
-6
-4
-2
02
4
x
y
Po default-u, krive se crtaju po ekvidistantnim takama koje sam program predlae. Zato ponekad, pri veim zakrivljenostima, on uzme nedovoljan broj taaka i izmeu njih crta prave linije: plot(plot::Polar([r, 4*r^2], r = 0..PI))
-3 -2 -1 1 2 3
-3
-2
-1
1
2
3
x
y
Ovo moemo promeniti opcijom Mesh koja e poveati broj taaka koje e funkcija povezivati.plot(plot::Polar([r, 4*r^2], r = 0..PI,Mesh=400))
-3 -2 -1 1 2 3
-3
-2
-1
1
2
3
x
y
Sada nam je funkcija dobra za mala rastojanja, ali na veim su i dalje prave linije. Da bismo poboljali izgled grafika za vea rastojanja, imamo opciju AdaptiveMesh=n, gde je n stepen broja 2 , pa e izmeu svake 2 take prvobitne mree MuPAD crtati 2n
taaka.plot(plot::Polar([r, 4*r^2], r = 0..PI,AdaptiveMesh=4))
-3 -2 -1 1 2 3
-3
-2
-1
1
2
3
x
y
MuPAD ima i neka ogranienja pri crtanju grafika. Recimo, ne moemo zadati beskonaan domen, jer MuPAD numeriki izraunava vrednosti funkcije.plot(x^2,x=-Infinity..Infinity)
Error: unexpected range argument: x = -Infinity..Infinity [plot::Canvas::new]
Iz prethodnog rada, videli smo da MuPAD ima problema kad zbog numerikog izraunavanja ne moe da nae nule neke naizgled jednostavne funkcije. Pokuajmo da naemo grafiki nule iste funkcije 10*x4+ln(2-x):plotfunc2d(10*x^4,-ln(2-x),Colors=[RGB::Green,RGB::Red])
10*x^4-ln(2 - x)
-5 -4 -3 -2 -1 0 1 2 3 4 5
1000
2000
3000
4000
5000
6000
x
y
Smanjimo duinu y-ose:plotfunc2d(10*x^4,-ln(2-x),Colors=[RGB::Green,RGB::Red],YRange=0..50,x=0..3)
10*x^4-ln(2 - x)
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.00
10
20
30
40
50
x
y
MuPAD ne iscrtava funkciju do beskonanosti, pa ne moemo videti presek. Poto MuPAD izraunava numeriki take grafika, onda postoji konano mnogo taaka u okolini take x=2, pa e funkcija biti ograniena. Poveanje DIGITS-a e dati precizniji grafik, ali to nam u ovom sluaju nee pomoi.
Za pamenje grafika se koristi opcija OutputFile="putdofajla\\imefajla.ekstenzija". Opcija OutputOptions daje dodatne mogunosti za obraivanje grafika prilikom eksportovanja.
plotfunc2d(10*sin(10*x)/x+cos(10*x), OutputFile="D:\\Slicica.jpeg")
3.Crtanje grafika implicitno zadanih funkcija jedne promenljive.
Ako nam je funkcija implicitno zadata, umesto plot::Function2d() koristi se plot::Implicit2d(f(x, y)) ,dok je su sve druge opcije iste.
Primeri:
plot(plot::Implicit2d(x^4+y^2-1, x = -1..1, y = -1..1));
-1.0 -0.8 -0.6 -0.4 -0.2 0.2 0.4 0.6 0.8 1.0
-1.0
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
1.0
x
y
plot(plot::Implicit2d(-5+x+y^2, x = -10..10, y = -10..10), LineWidth=1.43, Color=RGB::Green);
-10 -8 -6 -4 -2 2 4 6 8 10
-10
-8
-6
-4
-2
2
4
6
8
10
x
y
plot(plot::Implicit2d(x^2/6-y^2/4=1, x = -10..10, y = -10..10),LineColorType=Rainbow,LineWidth=3)
-10 -8 -6 -4 -2 2 4 6 8 10
-10
-8
-6
-4
-2
2
4
6
8
10
x
y
4.Odreivanje graninih vrednosti funkcija jedne promenljive
Za odreivanje graninih vrednosti koristi se opcija limit :
limit(f(x), x=a, smer prilaenja) gde je:
f(x) - funkcija po promenljivoj x iju graninu vrednost traimoa - taka u kojoj traimo graninu vrednostsmer prilaenja - sa koje strane prilazimo taki u kojoj traimo limes, tj. slui za nalaenje leve (
limit(ln(2-x),x=2,Left)
limit(sin(x)/x,x=0)
1
limit(actan(x),x=1)
actan(1)
f:=piecewise([x=2,sin(x)])
xex
if x < 2
sin(x) if 2 x
limit(f,x=2,Left)
2e2
limit(f,x=2,Right)
sin(2)
limit(abs(-x),x=0)
0
Po definiciji, moemo nai izvod preko granine vrednosti:f:=x->sin(x)*x
x sin(x) x
limit((f(x+h)-f(x))/h,h=0)
sin(x) + x cos(x)
f:=x->abs(x)
x x
limit((f(x+h)-f(x))/h,h=0)
undefined
Nalaenje granine vrednosti sa parametrima:
limit(arccos(x-p),x=3)2 arcsin(3 p)
limit(x^2/exp(x),x=infinity)
0
Primena Lopitalovog pravila:f:=x->exp(x)/x^3
x ex
x
diff(exp(x),x)/diff(x^3,x)
ex
3 x2
diff(exp(x),x)/diff(3*x^2,x)
ex
6 x
diff(exp(x),x)/diff(6*x,x)
ex
6
limit(exp(x)/6,x=infinity)
I bez Lopitalovog pravila:
limit(exp(x)/x^3,x=infinity)
limit(exp(x)/x^3,x=0)
undefined
5.Primeri sa predmeta Osnovi fizike elektronike Poluprovodnike srukture su osnova dananje elektronike, a primena kvantnih efekata je njena budunost.
U kvantnom svetu prestaju da vae klasini Njutnovi zakoni, a veina veliina vie ne moe imati kontinualne vrednosti,ve diskretne. estice se tu opisuju redingerovom jednainom, koja nema sama fiziki znaaj, ali kvadrat njene amplitude je srazmeran verovatnii da se estica nae na tom mestu u tom trenutku. Nas uvek interesuju mogue energije estica i verovatnoa da e ih estice imati, jer e makroskopske veliine kao to su koncentracija nosilaca, pa samim tim gustina struje, zavisiti od ovih energija.
Reavanjem redingerove jednaine za 1D Kronig-Penney model kristalne strukture poluprovodnika, dobija se disperziona relacija:
Energija koju traimo sadrana je u koeficijentu ``:
k je kvazi-talasni vektor i on moe imati proizvoljnu vrednost, ali e funkcija sa leve strane uvek biti izmeu -1 i 1.
Ostale konstante jesu:
a - periodinost potencijala koja je, zapravo, rastojanje izmeu atomaU,w - visina i irina potencijalne barijereh - Plankova konstantam - masa estice
Uvedimo koeficijent propustljivosti barijere:
P=m*w*U/h2
Dakle, disperziona relacija koja e dati dozvoljene energije je:
cos( a) + P sin( a)
= cos(a k)
Neka je perioda a=5*10-10m, a koeficijent propustljivosti P=0.2*1011
Konstante masa elektrona i h su poznate.Nacrtajmo levu stranu trascedentne jednaine:
a:=5*10^(-10);P:=0.2*10^11;hprec:=6.582*10^-16;m:=9.31*10^(-31);
12000000000
2.0 1010
6.582 10 16
9.31 10 31
Leva:=P*a*(sin(``*a)/(``*a))+cos(``*a)
cos
(
2000000000
)+
2.0 1010 sin(
2000000000
)
MuPAD prijavljuje greku kad pokuavam da iscrtam funkciju od ``*a, verovatno zato to je a konstanta.Stavimo da je A=``*a;
leva:=A->P*a*sin(A)/A+cos(A)
A P a sin(A)
A + cos(A)
plotfunc2d(leva,A=0..30)
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
-2
0
2
4
6
8
10
A
y
Poto je k proizvoljno, funkcija sa desne strane e uvek ii od -1 do 1. Dakle, disperziona relacija bie zadovoljena za svako A=``*a za koje je leva izmeu -1 i 1.
plotfunc2d(leva,1,-1,A=0..30)
A -> (P*a*sin(A))/A + cos(A)1-1
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
-2
0
2
4
6
8
10
A
y
Delovi funkcije leva koji su izmeu -1 i 1 pokazuju nam da u ovom modelu nemamo diskretne energije ve, usled proizvoljnosti talasnog vektora, dobijamo itave zone dozvoljenih energija. irine ovih zona moemo proitati sa grafika na sledei nain:
Za, recimo, 1. zonu namestimo kursor grafika na prvi presek funkcije leva i funkcije y=1 i oitamo A1=2.5491. Zaa drugi presek, sa funkcijom y=-1 oitamo A2=2,9357.A1 i A2 daju granice energija za prvu zonu:
A1:=2.5491;beta1:=A1/a;A2:=2.9357;beta2:=A2/a;
2.5491
5098200000.0
2.9357
5871400000.0
E1:=1.6*(10^(-19))*(beta1^2)*(hprec^2)/(2*m)
0.9675864974
E2:=1.6*(10^(-19))*(beta2^2)*(hprec^2)/(2*m)
1.283333109
Dakle, irina prve energetske zone je [eV]:
E1:=E2-E1
E1:=E2-E1
0.3157466117
Talasni vektor je mogue eksciplitno dobiti iz transcedentne relacije, polazei od energije:
k:=A->arccos(P*a*sin(A)/A+cos(A))/a
2000000000 arccos
(cos(A) + 10.0 sin(A)
A
)
plotfunc2d(k,A=0..20,Title="Talasni vektor od beta*a",TitlePosition=[10,5])
0 2 4 6 8 10 12 14 16 18 200
1e+9
2e+9
3e+9
4e+9
5e+9
6e+9
A
y
Talasni vektor od beta*a
Gustina dozvoljenih energetskih stanja definie se kao broj dozvoljenihjedinici zapremine. Za provodnu zonu:
ro:=E->(1/(2*PI*PI))*(2*m/(hprec)^2)*(E-Ec)^0.5
E 1
2 2 m
hprec2 (E Ec)0.5
Neka nam je provodna zona na E=0.25 ev. Iscrtajmo gustinu.
Ec:=0.25
0.25
plotfunc2d(ro,Title="Gustina dozvoljenih energetskih stanja",TitlePositi
Warning: 'FillColor' makes no sense in plot::Function2d, ignored [plotfunc2d]
Warning: 'FillPattern' makes no sense in plot::Function2d, ignored [plotfunc2d]
-5 -4 -3 -2 -1 0 1 2 3 4 5
0.1
0.2
0.3
0.4
Energija [eV]
gustina
Gustina dozvoljenih energetskih stanja
f:=plot::Function2d(ro)
plot::Function2d
(E 1
2 2 m
hprec2 (E Ec)0.5, x = 5..5
)
c:=plot::Hatch(f,FillColor=RGB::Green,FillPattern=Solid,Title="Balk",TitlePosition=[4,0.3]);
plot::Hatch("Function2d " (E -> (1, 0, ..)
plot(c)
-5 -4 -3 -2 -1 0 1 2 3 4 5
0.1
0.2
0.3
0.4
x
y
Balk
Ovo je bio primer 3D strukture, odnosno kako u balku izgleda funkcija gustine dozvoljenih energetskih stanja.Ali kada imamo, npr, kvantnu taku, postojanje nosilaca je konfinirano u sve 3 dimenzije, pa gustina stanja postaje diskretna:
plotfunc2d(1,2,3,4,AxesTitles=["Gustine","Na energijama"])
1234
-5 -4 -3 -2 -1 0 1 2 3 4 5
2
3
4
Gustine
Na energijama
U kvantnoj statistikoj fizici, verovatnoa nalaenja elektrona na nekom energetskom nivou data je Fermi-Dirakovom raspodelom:
fFD = 1 / (1+exp((E-EF )/kBT)),
gde je T- temperatura, kB - Bolcmanova konstanta, E energija estice, a EF energija Fermijevog nivoa, koji pravi granicu izmeu verovatnoe vee ili manje od 50 % da e neko energetsko stanje biti popunjeno.
f:=E->(1+exp((E-EF)/(k*T)))^(-1)
E 1
1 + e
E EF
k T
k:=8.617*10^-5
0.00008617
EF:=0.25
0.25
T:=0;
0
k*T
0
plotfunc2d(f,0.5,Scaling=Constrained)
E -> 1/(1 + exp((E - EF)/(k*T)))0.5
-5 -4 -3 -2 -1 1 2 3 4 5
1
x
y
Opet vidimo da MuPAD ne moe da crta funkciju kojoj ima deljenje nulom, pa je izostavio FD funkciju raspodelena temperaturi apsolutne nule. Da vidimo za malo veu od aps. nule:
T:=0.000001
0.000001
plotfunc2d(f,0.5,Title="Fermi-Dirac-ova raspodela",TitlePosition=[3,0.9],AxesTitles=["E","Probability"])
E -> 1/(1 + exp((E - EF)/(k*T)))0.5
-5 -4 -3 -2 -1 0 1 2 3 4 5
0.2
0.4
0.6
0.8
1.0
E
Probability
Fermi-Dirac-ova raspodelaFermi-Dirac-ova raspodela
Na sobnoj temperaturi (T=300K) f-ja izgleda ovako:
T:=300
300
plotfunc2d(f,0.5,TitlePosition=[3,0.9],AxesTitles=["E","Probability"])
E -> 1/(1 + exp((E - EF)/(k*T)))0.5
-5 -4 -3 -2 -1 0 1 2 3 4 5
0.2
0.4
0.6
0.8
1.0
E
Probability
T:=1000;
1000
plotfunc2d(f,0.5,TitlePosition=[3,0.9],AxesTitles=["E","Probability"])
E -> 1/(1 + exp((E - EF)/(k*T)))0.5
-5 -4 -3 -2 -1 0 1 2 3 4 5
0.2
0.4
0.6
0.8
1.0
E
Probability
Koncentracija nosilaca jednaka je broju nosilaca po zapremini, a to je srazmerno gustini odreenog energetskog stanja i verovatnoi da je ono popunjeno: n(E)=fFD * ro.ro:=E->(1/(2*PI*PI))*(2*m/(hprec)^2)*(E-Ec)^0.5
ro:=E->(1/(2*PI*PI))*(2*m/(hprec)^2)*(E-Ec)^0.5
E 1
2 2 m
hprec2 (E Ec)0.5
f:=E->(1+exp((E-EF)/(k*T)))^(-1)
E 1
1 + e
E EF
k T
n:=ro*f(E 1
2 2 m
hprec2 (E Ec)0.5
) E
1
1 + e
E EF
k T
plotfunc2d(n,AxesTitles=["Energija","Koncentracija"],YAxisTitleOrientation=Vertical)
-5 -4 -3 -2 -1 0 1 2 3 4 5
0.002
0.004
0.006
0.008
0.010
0.012
0.014
0.016
0.018
Energija
Koncentr
acija
g:=plot::Function2d(sin(x))
h:=plot::Hatch(f,-10..10,FillColor=RGB::Blue)
n:=plot::Function2d(ro*f)
plot::Function2d
(E 1
2 2 m
hprec2 (E Ec)0.5
) E
1
1 + e
E EF
k T
, x = 5..5
h:=plot::Hatch(n,FillColor=RGB::Green,FillPattern=Solid)
h:=plot::Hatch(n,FillColor=RGB::Green,FillPattern=Solid)
plot::Hatch(
"Function2d
0, ..)
plot(h)
-5 -4 -3 -2 -1 0 1 2 3 4 5
0.002
0.004
0.006
0.008
0.010
0.012
0.014
0.016
x
y
Literatura
-MuPAD Help-http://www.math.auckland.ac.nz/~taylor/coursematerial/mupad/guide/GuideDraft.html-MuPAD Books- :