Listy i macierze

Clear[x,y,z,A,G]

Lista

Lista to zbior dowolnych elementów oddzielonych przecinkami ujęta w nawias klamrowy. Wiele operacji na listach w Mathematice ma podobny skutek do procedur iteracyjnch w Fortranie czy w C.

Lista

Przyklad listy

{a,b,5,Sin[a],λ};

Lista może być warością zmiennej np.

Z={a,b,5,Sin[a],λ};

Z

Element listy (Part)

Kolejne elementy listy odzyskujemy poleceniem Part

Part[Z, 3];
Z[[3]]

Z[[4]]

Przy pomocy polecenia Part można skonstruować nową listę:

zz=Z[[{3,2,2,4,1,4}]]

Lista wewnątrz [[..]] jest określa kolekne pozycje elementów w liscie z , z których budowana jest nowa lista zz

Mogę zastąpić wybrany element listy

ReplacePart[Range[10],3->AW]

Przykłady iteracji

Part w zastosowaniu do iteracji:

X=Range[20]

Table[X[[i]]+X[[i+1]], {i, 1, 19}]

Sum[X[[i]]+X[[i+1]], {i, 1, 19}]

Do[Print[Z[[i]]],{i,4}]

Rekurencje (RecurrenceTable)

Elementy listy mogą być zadane w sposób jawny

Table[(k^2),{k,1,10}]

lub rekurencyjny

RecurrenceTable[{a[k+1]==2a[k],a[1]==1},a,{k,1,10}]

Range

Lista kolejnych liczb naturalnych

Range[21]

Lista kolejnych liczb naturalnych od-do

Range[5,12]

Lista liczb naturalnych od-do, co trzy

Range[5,21,3]

Lista lolejnych znaków

CharacterRange["a","z"]

CharacterRange["α","ω"]

Długość listy

Length[%]

Algebraiczne operacje na listach

Przykładowe listy

x={a,b,5}
y={b,5,a}
z={a,b,c,d}

Dodawanie

x+y

Mnożenie

x y

Iloczyn skalarny wektorów (niezupełnie poprawnie!)

x.y

Potęgowanie

(2^x)

(x^2)

z
(Sqrt[z])

Działania innych funkcji na listy

Funkcje elementarne i niektóre funkcje specjalne działając na listy są "mapowane" do wewnatrz.

Sin[z]

Log[z]

W ogólności funkcje mogą tego nie robić

Clear[f]
f[z]

Jeżeli chcemy wymusić aby funkcja została "mapowana" używamy polecenia Map, /@

f/@ z
Sin /@ z

Operacje porządkujące (*)

Porządkowanie

Sort[Z]

Sort[{3,5,2,6,1}]

Sort[{3,5,2,6,1},Greater]

Permutacje

Permutations[Z]

Permutacje cykliczne:

Z2=RotateLeft[Z]

Z2=RotateLeft[z,2]

Wskazanie pozycji elementu o zadanej wartości (Position)

L1=RandomInteger[20,200]

Position[L1,10]

Selekcja (*)

Pod-listy (Take)

Polecenie

Take[Z,3]

wybiera z listy z podlistę złożoną z pierwszych trzech elementów. Analogicznie

Take[Z,-3]

bierze ostatnie trzy. Możemy wybrać wszystkie elementy od 2 do 4

Take[Z,{2,4}]

Możemy wybrać co drugi element pomiedzy 1 i 4

Take[Z,{1,4,2}]

Suma, przecięcie, różnica (Union, Intersection, Complement)

a1=Range[7]
b1=Range[4,12]

Union[a1, b1];

a1⋃b1

Intersection[a1, b1];

a1⋂b1

Complement[a1,b1]

Complement[b1,a1]

Duplikaty

Tally[{A,A,B,F,F,B,A}]

DeleteDuplicates[{A,A,B,F,F,B,A}]

Usuwanie (Drop, Delete)

suma=a1⋃b1
iloraz=a1⋂b1

Drop[suma,{3,7}]

Drop[Reverse[suma],{3,7}]

Delete[iloraz,4]

Wybieranie (Select, Cases, DeleteCases)

Polecenie Select wybiera elementy spełniające określony warunek

Select[Z,NumericQ]

Tylko 5 jest liczbą. Z listy pierszych 10 liczb wybieram liczby mniejsze od 5

Select[Range[10],#<5&]

Z listy pierszych 20 liczb wybieram elementy niepodzielne przez 3. (p. Kuba Rak -Forum)

Select[Range[20], Divisible[#,3]==False& ]

Select[iloraz,#=!=5&]

Cases[iloraz,Except[5]]

DeleteCases[iloraz,5]

DeleteCases[iloraz,_Integer]

Struktura wewnętrzna list

Tworzenie i usuwanie struktury wewnętrznej list (Flatten, Split, Partition)

Elementami list mogą być listy

{Range[3],Range[5],Range[8]}

Listę list można "spłaszczyć" do listy

Flatten[%]

Można tworzyć wewnętrzna strukturę list

Split[%]

Split[{1,1,2,2,3,4,4,4,7,8}]

Podział na podlisty o zadanej długości

Partition[{a,b,c,d,e,f,g,h,i},2]

%//MatrixForm

Partition[{a,b,c,d,e,f,g,h,i},3]

%//MatrixForm

Tworzenie macierzy - formy ogólne (Array)

Clear[f]

M=Array[f,{3,2}];
M//MatrixForm

Array[f,3,0]

Array[f,3,0,Plus]

Tworzenie macierzy o zadanych wartościach (Array, Table)

A[i_,j_]:=i+j;

Array[A,{3,3}]//MatrixForm

Table[A[i,j],{i,3},{j,3}]//Simplify//MatrixForm

G[i_,j_]:=((Sin[(Subscript[𝓍, i])])^2)+((Cos[(Subscript[𝓍, j])])^2)

Array[G,{3,3}]//Simplify//MatrixForm

Table[G[i,j],{i,3},{j,3}]//Simplify//MatrixForm

Macierz jednostkowa i diagonalna (DiagonalMatrix, IdentityMatrix)

DiagonalMatrix[{1,2,3}]

DiagonalMatrix[{1,2,3}]//MatrixForm

IdentityMatrix[3]//MatrixForm

Insert: Table, Matrix, Palette

∖[Placeholder]

(({{\[Placeholder], \[Placeholder], \[Placeholder]}, {\[Placeholder], \[Placeholder], \[Placeholder]}, {\[Placeholder], \[Placeholder], \[Placeholder]}}))