LISTE

Vec smo naisli na liste nao na nacin grupisanja brojeva . U ovom dijelu cemo nauciti kako na razlicite nacine koristiti liste, koje su jedna od najfleksibilnijih struktura u Mathematici .

Evo jedne liste brojeva

l = {2, 3, 4}

{2, 3, 4}

Ovo daje listu simbolicnih izraza :

x^l - 1

{-1 + x^2, -1 + x^3, -1 + x^4}

Mozemo i diferencirati ove izraze :

D[%, x]

{2 x, 3 x^2, 4 x^3}

%/.x3

{6, 27, 108}

Matematicke funkcije koje su ugradjene u Matematicu su vecinom modificirane tako da budu " ... uticu odvojeno na svaki element liste . Ovo medjutim nije istina za svaku funkciju u Mathematici .

Kako praviti Tabele vrijednosti

Mozemo koristiti liste kao tabele vrijednosti . Mozemo kreirati tabele, na primjer, tako sto cemo evaluirati izraz za niz razlicitih vrijednosti parametara .

Ovo daje listu vrijednosti i^2, gdje i ide od 1 do 6

Table[i^2, {i, 6}]

{1, 4, 9, 16, 25, 36}

Slicno za trigonometrijske funkcije

Table[Sin[n/5], {n, 0, 4}]

{0, Sin[1/5], Sin[2/5], Sin[3/5], Sin[4/5]}

Ovo nam daje numericke vrijednosti

N[%]

RowBox[{{, RowBox[{0., ,, 0.198669, ,, 0.389418, ,, 0.564642, ,, 0.717356}], }}]

Takodjer mozemo napraviti listu formula

Table[x^i + 2i, {i, 5}]

{2 + x, 4 + x^2, 6 + x^3, 8 + x^4, 10 + x^5}

Koristimo istu sistem iteratora kao kod funkcija Product i Sum

Product[x^i + 2i, {i, 5}]

(2 + x) (4 + x^2) (6 + x^3) (8 + x^4) (10 + x^5)

RowBox[{Ovo,  , pravi,  , listu,  , korjena,  , od,  , 0,  , do,  , 1,  , sa,  , skokovima,  , od,  , 0.25}]

RowBox[{Table, [, RowBox[{Sqrt[x], ,, RowBox[{{, RowBox[{x, ,, 0, ,, 1, ,, 0.25}], }}]}], ]}]

RowBox[{{, RowBox[{0, ,, 0.5, ,, 0.707107, ,, 0.866025, ,, 1.}], }}]

Mozemo izvoditi razne operacije na listama koje smo dobili iz Table

%^2 + 3

RowBox[{{, RowBox[{3, ,, 3.25, ,, 3.5, ,, 3.75, ,, 4.}], }}]

Takodjer mozemo prikazati liste u tablularnoj formi

% // TableForm

3
3.25
3.5
3.75
4.

Takodjer mozemo praviti liste koje zavise od vise parametara

Table[x^i + y^j, {i, 4}, {j, 3}]

{{x + y, x + y^2, x + y^3}, {x^2 + y, x^2 + y^2, x^2 + y^3}, {x^3 + y, x^3 + y^2, x^3 + y^3}, {x^4 + y, x^4 + y^2, x^4 + y^3}}

%//TableForm

x + y x + y^2 x + y^3
x^2 + y x^2 + y^2 x^2 + y^3
x^3 + y x^3 + y^2 x^3 + y^3
x^4 + y x^4 + y^2 x^4 + y^3

%//MatrixForm

(                2         3  )           x + y     x + y     x + y            ...  y    x  + y    x  + y             4         4    2    4    3           x  + y    x  + y    x  + y

Ovo kreira listu koja sadrzi 4 kopije simbola x

Table[x, {4}]

{x, x, x, x}

Ovo daje listu cetiri pseudoproizvoljna broja (izmedju 0 i 1)

Table[Random[], {4}]

RowBox[{{, RowBox[{0.556687, ,, 0.266244, ,, 0.558934, ,, 0.701903}], }}]

Funkcije za generisanje listi

Table[f, {imax}] - daje listu imax broja vrijednosti od f

Table[f, {i, imax}] - daje listu vrijednosti f gdje i ide od 1 do imax

Table[f, {i, imin, imax}] - daje listu vrijednosti f gdje i ide od imin do imax

Table[f, {i, imin, imax, di}] - daje listu vrijednosti f gdje i ide od imin do imax sa skokovima di

Table [f, {i, imin, imax}, {j, jmin, jmax}, ...] - multidimenzionalna tabela

TableForm[list] - daje listu u tabelarnoj formi

Kako dobiti neki konkretni element liste ?

m = Table[i - j, {i, 2}, {j, 2}]

{{0, -1}, {1, 0}}

m[[1]]

{0, -1}

Kako je i rezultat ovoga lista, nadjimo drugi element :

%[[2]]

-1

Ovo sve mozemo postici i na kraci nacin :

m[[1, 2]]

-1

m[[1]][[2]]

-1

TableForm[m]

0 -1
1 0

Ekstrakcija elemenata iz listi

t[[i]]   ili  Part[t, i]    - i - ta podlista liste t

t[[{i1, i2, ... .}]]   ili    Part[t, {i1, i2, ...}] - daje listu  i1 - tih, i2 - tih, ... dijelova t

t[[i, j, ...]] ili Part[t, i, j, ... .] daje dio t koji odgovara t[[i]][[j]] ...

Vektori i matrice

Vektore u Mathematici predstavljaju liste, a matrice liste listi .

m = {{a, b}, {c, d}}

{{a, b}, {c, d}}

m[[1]]

{a, b}

m//MatrixForm

( a   b )            c   d

v = {x, y}

{x, y}

Ovo je vektor

p v + q

{q + p x, q + p y}

Elementi se dodaju pojedinacno

v + {xp, yp} + {xpp, ypp}

{x + xp + xpp, y + yp + ypp}

Ovo je skalarni proizvod

{x, y} . {xp, yp}

x xp + y yp

Proizvod matrice i vektora

m . v

{a x + b y, c x + d y}

Matrice i matrice

m . m

{{a^2 + b c, a b + b d}, {a c + c d, b c + d^2}}

v . m

{a x + c y, b x + d y}

v . m . v

x (a x + c y) + y (b x + d y)

Zbog nacina na koji Mathemaica radi sa vektorima, ne moramo razmisljati o vektorima po vrstama ili kolonama

Funkcije za vektore

Table[f, {i, n}]      -   napravi vektor duzine n tako sto izracunas vrijednost f za i = 1, 2, 3, ... ., n

Array[a, n]     - napravi vektor duzine n forme {a[1], a[2], ...}

Range[n]     - napravi listu {1, 2, 3, ... ., n}

Range[n1, n2]     - napravi listu {n1, n1 + 1, n1 + 2, ... ., n2 - 1, n2}

Range[n1, n2, dn] - napravi listu {n1, n1 + dn, n1 + 2dn, ... ., n2 - dn, n2}

list[[i]] ili Part[list, i]     - i - ti element vektora list

Length[list] - broj elemenata u listi

ColumnForm[list]     -   napravi kolonski vektor od liste

c v - mnozenje skalarom

a . b - skalarni produkt

Cross[a, b] - vektorski proizvod

Norm[v] - norma (intenzitet) vektora

Funkcije za matrice

s = Table[i + j, {i, 3}, {j, 3}]

{{2, 3, 4}, {3, 4, 5}, {4, 5, 6}}

MatrixForm[s]

( 2   3   4 )            3   4   5            4   5   6

Ovo je zgodno za dokazivanje tvrdnji gdje radimo s proizvoljnim vektorima

Array[a, 4]

{a[1], a[2], a[3], a[4]}

Array[p, {3, 2}]

{{p[1, 1], p[1, 2]}, {p[2, 1], p[2, 2]}, {p[3, 1], p[3, 2]}}

Dimensions[%]

{3, 2}

DiagonalMatrix[{a, b, c}]

{{a, 0, 0}, {0, b, 0}, {0, 0, c}}

8s

{{16, 24, 32}, {24, 32, 40}, {32, 40, 48}}

q = Table[i - j, {i, 3}, {j, 3}]

{{0, -1, -2}, {1, 0, -1}, {2, 1, 0}}

s . q//MatrixForm

( 11    2     -7  )            14    2     -10            17    2     -13

Inverse[q]

Inverse :: sing : Matrix  {{0, -1, -2}, {1, 0, -1}, {2, 1, 0}} is singular. More…

Inverse[{{0, -1, -2}, {1, 0, -1}, {2, 1, 0}}]

MatrixPower[q, 3]

{{0, 6, 12}, {-6, 0, 6}, {-12, -6, 0}}

q . q . q

{{0, 6, 12}, {-6, 0, 6}, {-12, -6, 0}}

p = (1    2    3 )       -1   3    2       7    8    9

{{1, 2, 3}, {-1, 3, 2}, {7, 8, 9}}

Det[p]

-30

Tr[q]

0

Transpose[p]//MatrixForm

( 1    -1   7  )            2    3    8            3    2    9

Eigenvalues[s]

{6 + 42^(1/2), 6 - 42^(1/2), 0}

Eigenvectors[s]

{{-17/13 + 2/13 (6 + 42^(1/2)), -2/13 + 1/13 (6 + 42^(1/2)), 1}, {-17/13 + 2/13 (6 - 42^(1/2)), -2/13 + 1/13 (6 - 42^(1/2)), 1}, {1, -2, 1}}


Created by Mathematica  (November 7, 2007)