Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Програмски пакет МАТНЕМАТIСА

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Програмски пакет МАТНЕМАТIСА"— Μεταγράφημα παρουσίασης:

1 Програмски пакет МАТНЕМАТIСА
Ученик Марко Стевановић Ментор др Марко Петковић Програмски пакет МАТНЕМАТIСА И симулација кретања тела у гравитационом пољу Земље

2 1. Увод MATHEMATICA је програмски пакет за математичке и научне примене. Поред тога користи се у инжењерству, техничким наукама, економији и образовању. MATHEMATICA је посебно погодна за следеће намене: обрада нумеричких података, способност симболичког процесирања, систем за графичко приказивање података и функција. Историја овог програмског пакета почиње крајем 80-их година прошлог века, када је Стивен Волфрам (Stephen Wolfram) конструисао SMP (Simbolic Manipulation Program), први систем модерне компјутерске алгебре.

3 Од почетка 1980-их година па до данас MATHEMATICA је трпела знатне измене и побољшања, која се тичу лакшег и ефикаснијег рада са што већим бројем објеката који се јављају у природним и техничким наукама. Данас је актуелна седма верзија која поседује хиљаде уграђених функција које олакшавају рад при разним израчунавањима. Захваљујући изузетној практичности, корисници овог пакета се налазе на свим континентима, укључују сва годишта и обухватају најразличитије врсте занимања, попут уметника, композитора, лингвиста, адвоката, као и многе хобисте из свих сфера друштвеног живота.

4 2. Програмски пакет MATHEMATICA
Главни део софтвера MATHEMATICA је Kernel (језгро) које служи за обављање математичких операција и ради независно од рачунара на коме је инсталиран. Корисник поставља своје захтеве у радном простору (Notebook – свеска, белешка). Радни простор је структуирани интерактивни документ који се састоји од низа ћелија (Cells). Pад са MATHEMATICA-ом одвија се у оквиру дијалога. У линије са ознаком In[n] корисник укуцава свој текст, а језгро даје повратну информацију у линијама са ознаком Out[n].

5 Аритметичке операције
Пакет MATHEMATICA омогућава рад са рационалним, реалним и комплексним бројевима и поседује све тригонометријске, експоненцијалне, логаритамске и друге функције које се често користе у математици и осталим природним наукама. In[1] := (3 + 4)*9 - 12/3 Out[1] = 59 In[2] := 2^100 Out[2] = In[3] := N[Pi, 20] Out[3] = In[4] := Sum[x^2, {x, 1, 7}] Out[4] = 140

6 Манипулација алгебарским изразима
Једна од главних могућности MATHEMATICA-е је манипу- лација симболичких израза. In[5] := Izraz1 = (2y+4x^2)^2(x-y)^2 Out[5] = (x-y)2 (4x2 + 2y)2 In[6] := Expand[Izraz1] Out[6] = 16x6 + 16x4 y – 32x5 y + 4x2 y2 – 32x3 y2 + 16x4 y2 – 8x y3 + 16x2 y3 + 4y4 In[7] := Coefficient[Izraz1, x^2] Out[7] = 4y2 + 16y3 In[8] := Izraz1 /. {x → 4, y → 3} Out[8] = 4900

7 Диференцирање и интеграција
Симболичко диференцирање је једна од основних симболичких операција у MATHEMATICA-и. Израчунавање интерграла je супротан поступак од диференцирања и много је компли- кованије јер не постоје нека генерална правила. In[9] := D[Exp[x^2 Sin[x]], x] Out[9] = In[10] := D[Sqrt[x^2 - 3], {x, 3}] Out[10] =

8 In[11] := Integrate[Sin[2x], x] Out[11] = In[12] := Integrate[(3x^2+2x-3)/(x^4-1), x] Out[12] = In[13] := Integrate[Sin[x], {x, 0, Pi}] Out[13] = 2 In[14] := Integrate[x y/(1+x^2), {x, 1, 2}, {y, 0, 1}] Out[14] =

9 2D и 3D графика Као што је већ раније речено, један од најважнијих делова програмског пакета MATHEMATICA је систем за графичко приказивање података и функција. In[15] := Plot[x/(x^2-1), {x, -3, 3}] Out[15] =

10 In[16] := Plot3D[Sin[xy], {x, -1, 5}, {y, -1, 5}] Out[16] =

11 Решавање алгебарских једначина
Аналитичко решавање једначина степена не већег од четири: In[17] := Solve[x^3 + x^2 + 2x == 0, x] Out[17] = {{x → 0}, {x → }, {x → }} Нумеричко решавање једначина: In[18] := NSolve[x^5 + x^2 - 1 == 0, x] Out[18] = {{x → i}, {x → i}, {x → i}, {x → i}, {x → }} In[19] := FindRoot[x^5 + x^2 – 1 == 0, {x, 1}] Out[19] = {x → }

12 Решавање диференцијалних једначина
Диференцијална једначина је једначина која изражава везу између независне променљиве, непознате функције и њених извода: Многе диференцијалне једначине представљају математичке моделе разноврсних процеса у природи, друштву, друштвеним и техничким наукама, и као такве имају многобројне примене. MATHEMATICA омогућава решавање оваквих једначина на симболички и на нумерички начин.

13 Нумеричко решење исте диференцијалне једначине:
Аналитичко решeње диференцијалне једначине првог реда y’(x) = y(x)/5 + sin(x): In[20] := sol1 = DSolve[{y'[x] == y[x]/5 + Sin[x], y[0]==0}, y, x] Out[20] = {{y → Function[{x}, ]}} Нумеричко решење исте диференцијалне једначине: In[21] := sol2 = NDSolve[{y'[x] == y[x]/5 + Sin[x], y[0]==0}, y, {x, 0, 13}] Out[21] = {{y → InterpolatingFunction[{{0., 13.}}, <>]}} Када се добијена решења прикажу графички на први поглед се чини да између њих не постоје никакве разлике, међутим ако се на графику прикажу релативне грешке видеће се да ипак постоји разлика.

14 Аналитичко и нумеричко
решење Релативна грешка нумеричког решења у односу на аналитичко

15 3. Кретање тела у хомогеном гравитационом пољу Земље
Да би се моделирала нека физичка појава или процес потребно је, поред познавања основа програмирања и програмског језика, и одређено познавање теоријских појмова који су неопходни за решавање одговарајућег проблема. Гравитација - једна од четири основних сила у Универзуму, дугог је домета и делује привлачно између свака два тела која имају масу. Гравитационо поље - материјални посредник преко којег се преноси гравитационо деловање са једног на друго тело; то је векторска физичка величина и представља јачину грави- тационе силе која делује на тело јединичне масе које се налази у датој тачки гравитационог поља.

16 Свако масивно тело, укључујући и Земљу, окружено је вла- ститим гравитационим пољем које делује привлачно на сва тела које се у њему налазе. Јачина гравитационог поља је бројно једнака убрзању које оно саопштава свим телима под његовим утицајем. Узимајући вредности за масу земље M = 5,98 × 1024 kg и полупречник r=6371 km, добија се вредност којa се обележава са g и износи 9,81 m s-2. Све ово значи да сва тела близу Земљине површине, при паду, добијају убрзање једнако g, које је усмерено ка површини тј. средишту Земље.

17 Једначине кретања тела у хомогеном гравитационом пољу
На основу другог Њутновог закона и познавања облика силе отпора ваздуха, могуће је написати диференцијалну једначину кретања тела у једној димензији. Знак минус означава да је х оса оријентисана у супротном смеру у односу на смер деловања гравитационе силе, а b je линеарни коефицијент отпора средине (при брзинама мањим од 24 m/s). Дата диференцијална једначина лако се решава, а познавањем почетних услова добија се једначина кретања.

18 Кретање тела у две димензије може се лако проанализирати, ако се занемaри утицај отпора средине. Решавањем две дифе- ренцијалне једначине другог реда (посебно за x и посебно за y осу): Познавањем почетних услова, може се елиминисањем времена из једначина кретања по x и по y оси добити зависност y(x) која, заправо, представља путању по којој се тело креће. Ако је почетна брзина тела v0, a α угао између вектора почетне брзине и x осе, онда је путања тела дата изразом: vxo = v0 сos α, a vyo = v0 ѕin α (пројекције почетне брзине на x и на y осу).

19 Важне величине које карактеришу коси хитац су домет (xmax), максимална висина (ymax) и време лета (T). Међутим, реалистичан модел подразумева силу отпора средине тј. отпор ваздуха. Овај ефекат може се апроксимирати силом отпора која зависи од квадрата брзине: v је брзина као скаларна величина (интензитет), а v брзина као вектор. Коефицијент отпора средине је k и за ваздух износи 5,2×10-3 m-1. Сада у диференцијлане једначине кретања треба уврстити и силу отпора.

20 Дакле, диференцијалне једначине које описују коси хитац имају следећи облик:
Нажалост, ове једначине се не могу решити аналитички, тако да се морају упослити нумеричке методе. Решавање ових дифе- ренцијалних јeдначина, и уопште моделирање косог хица и других врста кретања у гравитационом пољу Земље обавиће се уз помоћ програмског пакета MATHEMATICA.

21 4. Симулација кретања тела у гравитационом пољу Земље
Слободан пад Мало тело, близу Земљине површине, пада са висине h са почетном брзином v0. Ако се х оса усмери навише дифе- ренцијалне једнaчине су: Дата једначина се решава при- меном функције DSolve.

22 Коначна брзина се добија из услова bt/m >> 1.
In[1] := sol = DSolve[{x'[t]== v[t], v'[t]== -g-(b/m)v[t], x[0]== h, v[0]== v0}, {x[t], y[t]}, t]//Expand Out[1] = {{x[t] → , v[t] → }} In[2] := sol[[1, 2]] /. bt/m → Infinity Out[2] = v[t] → Коначна брзина се добија из услова bt/m >> 1. Одавде се јасно види да свако тело има своју коначну брзину, која зависи од масе и његових димензија, што јасно показује фактор b.

23 Брзина као функција од времена може се одредити у систему где је јединица за време m/b, а јединица за брзину gm/b. In[3] := v[t_] = sol[[1, 2, 2]]//.{gm/b → 1, b/m → 1} Out[3] = In[4] := Plot[{Abs[v[t]]/.v0 → -3, Abs[v[t]]/.v0 → -0.6, Abs[v[t]]/.v0 → 0, 1}, {t, 0, 3.5}, PlotStyle → {{}, {}, {}, {Dashing[{0.02}]}}, PlotRange → All, Frame → True, FrameLabel → {"t (m/b)", "v (gm/b)"} LabelStyle → {FontSize → 14}] Сада се цртају графици v(t) за три карактеристичне вредности почетне брзине тела: v0=–3, v0=–0,6 и v0=0. Брзине су негативне због усмерености х осе.

24 Out[4] = Две доње криве показују да се брзина тела повећава, и да после извесног времена достиже максималну вре- дност. Горња крива показује да тело које пада, заправо успорава, јер је почетна брзина већа од коначне.

25 Коси хитац У тренутку t = 0 тело масе m, приближно сферног облика (лопта), налази се у координатном почетку. Вектор почетне брзине v0 заклапа са хоризонталом угао α. Најпре је потребно дефинисати почетне параметре и оне величине косог хица када је k = 0. In[5] := g=9.81; k=0.0052; v0=40; α=60; vx0=v0 Cos[Pi α/180]; vy0=v0 Sin[Pi α/180]; Xmax=2vx0 vy0/g; (* domet za k=0 *) Ymax=vy0^2/(2g); (* maksimalna visina za k=0 *) T=2vy0/g; (* vreme leta za k=0 *)

26 За решавање диференцијалних једначина које описују коси хитац (треће поглавље) биће употребљена функција NDSlove. In[6] := sol = NDSolve[{ x’’[t]== -k*Sqrt[x’[t]^2 + y’[t]^2] x’[t], y’’[t]== -g-k*Sqrt[x’[t]^2 + y’[t]^2] y’[t], x’[0]== vx0, x[0]== 0, y’[0]== vy0, y[0]== 0} ,{x, y}, {t, 0, T}]; solX = sol[[1, 1, 2]]; (* x(t) *) solY = sol[[1, 2, 2]]; (* y(t) *) Tk = FindRoot[solY[t]== 0, {t, T}][[1, 2]]; (* vreme leta za k ≠ 0 *) Како је позната путања косог хица без отпора средине, може се упоредити са реалистичном путањом, која је добијена нумеричким поступком. Ове две криве биће приказане на истом графику функцијом Show.

27 In[7] := Show[ Plot[vy0/vx0 x - 1/2 g/vx0^2 x^2, {x, 0, Xmax}, AxesLabel → {"x(m)", "y(m)"}], ParametricPlot[{solX[t], solY[t]}, {t, 0, Tk}, PlotStyle → Dashed, AxesLabel → {"x(m)", "y(m)"}]] Out[7] =

28 Јасно је да домет косог хица зависи од угла избацивања (α)
Јасно је да домет косог хица зависи од угла избацивања (α). Када је отпор ваздуха једнак нули угао при коме је домет максималан износи 45°, међутим у реалном случају је тај угао нешто мањи. Одређивање тог угла обавиће се, дефинисањем функције зависности домета од угла. Команда Module означава да се у функцији користе локалне променљиве, и то само онда када се позове дата функција. In[8] := Domet[α_, v0_] := Module[ {g=9.81, k=0.0052, vx0, vy0, T, sol, solX, solY, Tk}, (* lokalne promenljive *) vx0=v0 Cos[Pi α/180]; vy0=v0 Sin[Pi α/180]; T=2vy0/g;

29 sol = NDSolve[{ x’’[t]== -k
sol = NDSolve[{ x’’[t]== -k*Sqrt[x’[t]^2 + y’[t]^2] x’[t], y’’[t]== -g-k*Sqrt[x’[t]^2 + y’[t]^2] y’[t], x’[0]== vx0, x[0]== 0, y’[0]== vy0, y[0]== 0} ,{x, y}, {t, 0, T}]; solX = sol[[1, 1, 2]]; solY = sol[[1, 2, 2]]; Tk = FindRoot[solY[t]==0, {t, T}][[1, 2]]; Return[solX[Tk]] (* izlazna vrednost funkcije *) ] In[9] := Domet[50, 80] Out[9] = Овако дефинисана функција враћа вредност за различите параметре које корисник унесе као аргументе.

30 Као и свака друга функција, и ова се може представити графички
Као и свака друга функција, и ова се може представити графички. Биће приказана зависност домета од угла за v0 = 70 m/s. In[10] := Plot[Domet[α, 70], {α, 0, 90}, AxesLabel → {"α(°)", "Domet(m)"}, Ticks → {{0, 15, 30, 45, 60, 75, 90}}] Out[10] =

31 Налажење тачне вредности угла постиже се следећим алгоритмом:
Налажење тачне вредности угла постиже се следећим алгоритмом: In[11] := L = Table[{α, Domet[α, 70]}, {α, 30, 45, 0.01}]; Do[ If[ L[[i, 2]] == Max[L], imax=i] ,{i, Length[L]}] Print[L[[imax]]] Out[11] = {37.84, } Дакле, када је почетна брзина 70 m/s, највећи домет од 193,092 метара, остварује се при углу од 37,84°. Ако се исти поступак понови за друге вредности брзине, може се закључти да се при већим почетним брзинама оптимални угао смањује и све више удаљава од 45°.

32 Визуализација косог хица
За визуализацију косог хица потребна је функција Manipulate. То је функција за интерактивну визуализацију и најчешће има следећи облик: Manipulate[expr, {u, umin, umax}]. Њен рад се заснива на томе да генерише и приказује различите верзије објекта expr, мењањем параметра u. У случају косог хица, објекат који се мења је график путање и положај тачке која представља тело. За сваку појединачну вредност параметра t (време) генерише се нови график и нови положај тела. Све ово омогућава да се низ статичних слика претвори у анимацију која симулира кретање тела у гравитационом пољу.

33 Сада се дефинише функција Projektil[v0_, α_], која за различите вредности угла и почетне брзине даје интерактивну визуализацију косог хица. In[12] := Projektil[v0_, α_ ] := Module[ {g=9.81, k=0.0052, vx0, vy0, Xmax, Ymax, T, sol, solX, solY, Tk}, vx0=v0 Cos[Pi α/180]; vy0=v0 Sin[Pi α/180]; Xmax=2vx0 vy0/g; Ymax=vy0^2/(2g); T=2vy0/g; sol = NDSolve[{ x’’[t]== -k*Sqrt[x’[t]^2 + y’[t]^2] x’[t], y’’[t]== -g-k*Sqrt[x’[t]^2 + y’[t]^2] y’[t], x’[0]== vx0, x[0]== 0, y’[0]== vy0, y[0]== 0} ,{x, y}, {t, 0, T}]; solX = sol[[1, 1, 2]]; solY = sol[[1, 2, 2]]; Tk = FindRoot[solY[t]==0, {t, T}][[1, 2]]; Return[ Manipulate[ If[i==0, Plot[vy0/vx0 x - 1/2 g/vx0^2 x^2, {x,0,Xmax}, PlotRange → {{0, 1.03Xmax}, {0, 1.03Ymax}}, AspectRatio → Ymax/Xmax, AxesLabel→{"x(m)","y(m)"}, Prolog → {Blue, PointSize[0.02], Point[{0, 0}]}], Show[ {x, 0, Xmax}, PlotRange → {{0, 1.03Xmax},{0, 1.03Ymax}}, AxesLabel → {"x(m)", "y(m)"}], ParametricPlot[{solX[t], solY[t]}, {t, 0, i}, PlotStyle → Dashed, Graphics[{Blue, PointSize[0.02], Point[{solX[i], solY[i]}]}]] ] ,{{i, 0, "Vreme"}, 0, Tk}]

34 Сада се позивањем ове функције за вредности v0=40 m/s и α=60° добија тражена симулација.
In[13] := Projektil[40, 60] Out[13] =

35 5. Закључак У овом раду представљене су само неке од могућности про- грамског пакета MATHEMATICA и његова примена на решавање одређених проблема из физике. Све описане функције чине само један делић огромног, али компактног система свестране намене. Проблеми из механике (математичко и сферно клатно), електромагнетизма (електрично поље и линије сила), квантне физике (зрачење црног тела, таласне функције, потенцијалне јаме итд.) и још многи други обимнији и комплекснији проблеми релативно брзо се решавају применом овог софтвера. Дакле, програмски пакет MATHEMATICA је незаобилазан алат свих оних који се баве математиком, физиком и осталим природним и техничким наукама. Све у свему, MATHEMATICA умногоме олакшава рад у науци и чина га занимљивијим.

36 Хвала на пажњи !!!


Κατέβασμα ppt "Програмски пакет МАТНЕМАТIСА"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google