18
Praktikum iz Opće fizike 3 Korištenje programskog paketa Mathematica Petar Stipanović

Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Praktikum iz Opće fizike 3

Korištenje programskog paketa

Mathematica

Petar Stipanović

Page 2: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Uvod• numerički (2*2=4) i simbolički kalkulator (a*a=a2)

• razlikuje mala i velika slova

• rani list – bilježnica (notebook, *.nb) sastoji se od niza ćelija koje su

označene uglatim zagradama na desnoj strani bilježnice

• ćelija (cell)

tekstualna (komentari)

input ćelija (naredbe, počima sa In[n]:=, n je redni br. naredbe)

output (rezultat, počima sa Out[n]:=)

• osnovne matematičke konstante

(Pi) e(E) (Infinity) i(I) /180 (Degree)

• naredba neće ispisivati rezultat ako nakon unosa naredbe dodamo

znak ;

• upisana naredba izvršava se pritiskom tipki: Shift + Enter ili

numerički Enter

• Enter bez Shift označava samo prelazak u novi red ćelije

2

Page 3: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Vrijednosti• %n poziva rješenje naredbe u n. liniji

• Matematika uvijek ispisuje egzaktni numerički rezulat ako takav

postoji ( npr. 1/3+1/3 2/3 )

• N[izraz,n] vraća numeričku vrijednost izraza u zagradama

zaokruženu na n decimala

• ?izraz ispisuje informacije o upisanom izrazu

• Remove[var] briše iz memorije varijablu var

• Upotreba zagrada je strogo definirana:

() za grupiranje elemenata u algebarskim izrazima

( npr. 2+3*(x-a)/(x+a) )

[] za unos argumenata funkcije

( npr. Log[E] )

{} za definiranje listi

( npr. a={1, 2, 3, 4} )

[[]] za specificiranje elementa listi

( npr. a[[2]] )

(*komenatar*) 3

Page 4: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Operatori

• = operator pridruživanja

• izraz /. var -> vrijednost operator zamjene vraća izraz u kojem

je var zamijenjen sa vrijednost

Relacijski

< manje od

> veće od

<= jednako ili manje od

>= jednako ili veće od

== jednako

!= različito od

Aritmetički

+ zbrajanje

- oduzimanje

* množenje

/ dijeljenje

^ potenciranje

! faktorijel

Logički

&& i

|| ili

! ne

4

Page 5: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Definiranje liste• Nizovi brojeva

• Definiranje pomoću izraza i iteratora:

Table [ izraz, iterator ]

{i, N} i =1, 2, 3, ..., N

{i, min, max} i = min, min+1, ..., max-1, max

{i, min, max, korak} i= min, min+korak, ..., max

ako je u definiciji iteratora korištena varijabla i, izraz mora biti dan u

varijabli i

• Definiranje nabrajanjem elemenata liste:

ime_liste = { element1, element2, ..., elementN }

a = Table[1/i, {i,5}]

{1,1/2,1/3,1/4,1/5}

b = {5, 7, 8, 9}

{5, 7, 8, 9}5

Page 6: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Vektori

• Vektor definiramo listom V = { a, b, c}

• Operacije s vektorima:

V.W skalarni umnožak vektora V i W

V[[i]] vraća i-ti element vektora V

Norm[V] vraća duljinu vektora V

Normalize[V] vraća jedinični vektor u smjeru vektora V

CrossProduct[V,W] vraća vektorski umnožak vektora V i W

• Neke su funkcije definirane u paketima koji se ne učitavaju odmah

pri pokretanju Mathematice pa ih je potrebno učitati pozivanjem

Needs[“ime_paketa’”]. Kako bi koristili CrossProduct potrebno je

pozvati Needs["VectorAnalysis`"]

Normalize[V]

V = {1, 2, 3}

{1, 2, 3}

W = {1, 0, 5}

{1, 0, 5}

V.W

16

Needs["VectorAnalysis`"]

CrossProduct[V,W ]

{15,-6,-3}

6

Page 7: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Matrice

• Matricu definiramo listom M = { { a,b,c}, { d,e,f} }

čiji su elementi redci, odnosno liste koje sadrža elemente redaka

• Operacije s matricama:

A[[M]] vraća M. redak matrice A

A[[M,N]] vraća element u M. retku i N. stupcu matrice A

MatrixForm[A] ispisuje matricu A u matričnom obliku

Transpose[A] transponiran matricu A

Det[A] vraća determinantu matrice A

Inverse[A] vraća inverznu matricu matrice A

Eigensystem[A] vraća vlastite vrijednosti i vektore matrice A u

obliku liste { lista vlastitih vrijednosti, { liste vlastitih vektora} }

MatrixPower[A, n] vraća An

A.B vraća umnožak matrica A i B

7

Page 8: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Funkcije• Log[x] vraća prirodni logaritam broja x

• Log[b,x] vraća logaritam u bazi b za broj x

• Log10[x] vraća logaritam u bazi 10 za broj x

• Exp[x] vraća ex

• Sqrt[x] vraća drugi korijen broja x

• Sin[x] , Cos[x] , Tan[x] vraćaju vrijednosti

trigonometrijskih funkcija kuta x izraženog u radijanima

• ArcSin[x] , ArcCos[x] , ArcTan[x] vraćaju vrijednosti ciklometrijskih

funkcija za broj x

• Sinh[x] , Cosh[x] , Tanh[x] vraćaju vrijednosti hiperboličkih

funkcija za broj x

• ArcSinh[x] , ArcCosh[x] , ArcTanh[x] vraćaju vrijednosti inverznih

hiperboličkih funkcija za broj x

• StandardDeviation[lista] vraća standardnu devijaciju elemenata

• Mean[lista] vraća srednju vrijednost elemenata liste

• Definiranje funkcija f[x_]:= izraz u varijabli x

f[x_]:=2x^2+3x+58

Page 9: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Simboličko računanje• Expand[izraz] računa razvoj izraza

• Simplify[izraz] pojednostavljuje izraz

• D[izraz,x] derivira izraz po varijabli x

• f’[x] derivira funkciju f po varijabli x

• Expand[izraz] računa razvoj izraza

• Sum[red, {k,a,b} ] suma reda za k od a do b

• Series[izraz, {x,a,b} ] razvija u red po x u intervalu <a,b>

• Limit[f[x], x->broj] limes funkcije f(x) kada x teži prema broju

f[x_]:=(x+3)^3-2(x+3)^2D[f[x],x]-4 (3+x)+3 (3+x)2

f‘[x]-4 (3+x)+3 (3+x)2

Expand[f[x]]9+15 x+7 x2+x3

Simplify[f[x](1+x) (3+x)2

9

Page 10: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Jednadžbe

• Sustave polinomijalinih jednadžbi rješavamo pozivom funkcije

Solve[ {jednadžbe odvojene zarezom}, {nepoznanice} ]

ili ako želimo numeričke vrijednosti

NSolve[ {jednadžbe odvojene zarezom}, {nepoznanice} ]

• Za numeričko rješavanje jednadžbi koristimo funkciju:

FindRoot[ jednadžba, {varijabla, toča u čijoj okolini tražimo rj.} ]

Solve[ { 2*x+3*y==5, 3*x-2*y==2}, {x,y}]{ {x 16/13, y 11/13} } NSolve[ { 2*x+3*y==5, 3*x-2*y==2}, {x,y}]{ {x 1.23077, y 0.846154} }

FindRoot[2*ArcTan[x]==x^2,{x,0}] {x 0.}FindRoot[2*ArcTan[x]==x^2,{x,1}] {x 1.37177}

10

Page 11: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Integrali

• Integral simbolički računamo naredbom

Integrate [ f(x), x ]

• Integral računamo numerički naredbom

NIntegrate [ f(x), {x, a, b} ]

Integrate[Cos[0.5*x], x]2. Sin[0.5 x]Integrate[5/x, x]5 Log[x]

NIntegrate[5/x, {x,1,2}] 3.46574NIntegrate[x, {x,0,Sqrt[8]}] 4.

11

Page 12: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Diferencijalne jednadžbe

• Diferencijalne jednadžbe rješavamo simbolički naredbom

DSolve [ { diferencijalna jednadžba, rubni uvjet1, rubni uvjet2, ...},

funkcija, varijabla ]

Primjer rješavanja diferencijalne jednadžbe koja opisuje gibanje

tijela na opruzi ( y’’+y=0, y’’(0)=0, y(0)=5 )

• Numerički računamo rješenja diferencijanih jednadžbi naredbom

NDSolve [ { diferencijalna jednadžba, rubni uvjet1, rubni uvjet2, ...},

funkcija, { varijabla, min, max } ]

DSolve[ { y''[x]+y[x]==0, y'[0] ==0, y[0] ==5 }, y, x ]{{y Function[{x},5 Cos[x]]}}

NDSolve[{y''[x]+y[x]==0,y'[0]==0,y[0]==5},y,{x,0,2*Pi}]{{y InterpolatingFunction[{{0.,6.28319}},<>]}}y[Pi] /. %{-5.}Plot[ y[x] /. %, {x, 0, 2*Pi } ] 12

Page 13: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Crtanje funkcija

• Osnovna naredba za crtanje 2D grafova

Plot [ { lista funkcija }, { x, xmin, xmax }, opc1->{{za f1},{za f2}...},... ]

• Detaljan pregled opcija moguće je dobiti naredbom Options[Plot]

PlotStyle -> { lista opcija linije }

AbsoluteThickness[broj] postavlja debljinu linije

Hue[broj] broj između 0 i 1 određuje boju iz gradijenta

crvena, žuta, zelena, plava, ljubičasta

RGB[r,g,b] broj r,g,b između 0 i 1 određuje nijanse

redom crvene zelene i plave

Dashing[duljina crtice, razmaka] isprekidana linija

AxesLabel -> { “Oznaka_x_osi”, “Oznaka_y_osi” } imena osi

Plot[ {x^2, x^2-2}, {x, -2, 2}, PlotStyle-> { {AbsoluteThickness[2],Hue[.8],Dashing[{.02,.02}]},

{AbsoluteThickness[9],Hue[.5],Dashing[{.1,.05}]} },AxesLabel-> {"x/mm", "f(x)/N"} ]

13

Page 14: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Crtanje diskretnih točaka • Elemente liste podaci={{x1,y1},{x2,y2},{x3,y3},...} crtamo naredbom

ListPlot [podaci, opcije]

• Podatke pohranjene u tekstualnoj datoteci u stupcima možemo učitati u

listu naredbom

ReadList ["datoteka", tip podataka, opcije]

lokacija Number RecordLists->True pretvara redke

String iz datoteke u podliste

• Crtanje točaka iz datoteke C:\POF3\vj_0\Tab_1.txt

SetDirectory["C:\\POF3\vj_0"]

Remove[podaci]

podaci=ReadList[ "Tab_1.txt", Number, RecordLists->True ]

ListPlot[podaci,PlotStyle->{PointSize[0.02],Hue[0.7]}]

Podatke u

stupcima najbolje

je odvojiti znakom

Tab

14

Page 15: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Prilagodba funkcije podacima • Prilagodba na linearnu kombinaciju funkcija vrši se metodom najmanjih

kvadrata pozivom naredbe Fit [ podaci, {lista funkcija}, varijabla ]

Pr.1: Fit [podaci, {1,x}, x] za linearnu kombinaciju f [x_ ]=a*1+b*x

Pr.2: Fit [podaci, {x+2,x}, x] za linearnu kombinaciju f [x_ ]=a*(x+2)+b*x

• Prilagodba numeričkim podacima parametraski dane funkcije

FindFit [ podaci, funkcija, {lista parametara}, varijabla ]

Pr.3: Fit [podaci, a+b x, {a,b}, x] za linearnu funkciju f [x_ ]=a+b*x

• Prilagodbu funkcije podacima koji nisu linearni obavlja naredba

NonlinearFit [ podaci, funkcija, varijabla, {lista parametara} ]

Pr.4: NonlinearFit [podaci, a x^2+b x+c, x, {a,b,c} ] fit na funkciju f [x_ ]=ax2+bx+c

• Kako NonlinearFit nije dio paketa koji se učitava pri pokretanju

Mathematice potrebno je prije pozivanja učitati paket u kojem je

definirana, odnosno upisati naredbu <<Statistics `NonlinearFit`

• Obratite pozornost na oblik navodnika u gornjoj neredbi

(upisujemo ih sa Alt Gr + 7) 15

Page 16: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Prikaz različitih grafova• Za prikaz različitih grafova koristimo naredbu

Show [ naredbe za crtanje 1. tipa grafa, 2. tipa grafa, … ]

Pr.1: Fit [podaci, {1,x}, x] za linearnu kombinaciju f [x_ ]=a*1+b*x

Pr.2: Fit [podaci, {x+2,x}, x] za linearnu kombinaciju f [x_ ]=a*(x+2)+b*x

SetDirectory["C:\\POF3\vj_0"] C:\POF3\vj_0Remove[podaci] {-5.}podaci=ReadList["Tab_1.txt",Number,RecordLists->True] {{0.1,4.2},{0.2,5.9},{0.3,8.1},{0.4,9.9},{0.5,11.8},{0.6,14.3}}Fit[podaci,{1,x},x]2.03333 +20. xg[x_]:=20. x+2.03333;Show[ Plot[ g[x],

{x,0,0.8}, PlotStyle -> { AbsoluteThickness[2], Hue[0.1] } ,AxesLabel -> {"x_data/x_mj" , "y_data/y_mj" } ],

ListPlot[ podaci, PlotStyle->{ PointSize[.02], Hue[.7]} ] ]

16

Page 17: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Spremanje grafova• Prethodno upisana naredba iscrtava graf u bilježnici Mathematice

• Nacrtani graf možemo pohraniti u datoteku (bit će pohranjena u

prethodno pozvanom direktoriju) korištenje sljedeće naredbe

Export["ime.ekstenzija", izraz koji snimamo, "ekstenzija"]

• Spremljene grafove vrlo jednostavno umetnemo u MS word file

( Insert Picture Odaberemo pohranjeni graf )

Export["Graf_1.png", %24, "png"]Graf_1.png(*Pohranjuje rezultat naredbe u 24. ulaznoj ćeliji u datoteku Graf_1.png unutar prethodno pozvanog direktorija C:\\POF3\vj_0u png formatu*)

17

Page 18: Praktikum iz Opće fizike 3mapmf.pmfst.unist.hr/~pero/pof3/POF3 Mathematica.pdfHue[broj] broj između 0 i 1 određuje boju iz gradijenta crvena, žuta, zelena, plava, ljubičasta RGB[r,g,b]

Spremanje listi i naredbi• Upisane liste možemo pohraniti u datoteku (bit će pohranjena u

prethodno pozvanom direktoriju) korištenje sljedeće naredbe

Export["dokument", izraz, "ekstenzija" ]

• Kako bi lakše eksportira podatke u word file, liste možemo pohraniti u

excell datoteci korištenje sljedeće naredbe

Export[ "ime.xls", ime liste ili broj linije u kojoj se lista nalazi, " xls" ]

• Cijelu bilježnicu možemo sačuvati: (File Save As), a naredbe unutar

bilježnice možemo mijenjati i izvršiti promijenjene sa

• Naredbe upisane u Mathematici jednostavno je kopirati u word:

Lijevom tipkom miša klikamo po ćeliji sve dok se ne označi cijela naredba

Desnom tipkom miša kliknemo na označeni dio Copy

Desnom tipkom miša kliknemo unutar word datoteke Paste

Export["Lista_1.xls", %28, "xls"]Lista_1.xls(* Pohranjuje rezultat liste definirane u 28. ulaznoj ćeliji u datoteku Lista_1.xls unutar prethodno pozvanog direktorija C:\\POF3\vj_0\ u xls formatu *)

18