/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 0.8.6 ] */ /* [wxMaxima: title start ] Datové typy [wxMaxima: title end ] */ /* [wxMaxima: section start ] Seznam (list) [wxMaxima: section end ] */ /* [wxMaxima: input start ] */ s:[1,4,25,9,16,25]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Stejné objekty se mohou vyskytovat více než jednou, zachovává se zadané uspořádání. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Ověření, že s je datového typu seznam: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ listp(s); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Vytváření seznamu [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ makelist(i^2,i,1,5); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] makelist (expr, i, i_0, i_1) vytváří seznam, kde j-tý element je roven ev (expr, i=j) pro j od i_0 do i_1. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ makelist(x=y,y,[a,b,c]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] makelist (expr, x, list) vytváří seznam, kde j-tý element je roven ev (expr, x=list[j]) pro j od 1 do počtu prvků seznamu. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ create_list(x^i,i,[1,3,7]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Počet prvků seznamu (délka seznamu): [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ length(s); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Test, zda daný element patří do seznamu: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ member(2,s); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ member(4,s); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Výběr jednotlivých prvků seznamu: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ s[1]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Nahrazení prvku seznamu jiným: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ s[1]:a; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ s; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ first(s);second(s);third(s);fourth(s);fifth(s); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ last(s); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Odstranění elementu ze seznamu: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ delete (y, [w, x, y, z, z, y, x, w]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Odstranění duplicit [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ seznam:[x, x, x*y, x*(x-1)]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ unique(seznam); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ cl : [black, red, green, yellow, blue, white, pink]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ rest(cl,2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Odstraní první dva prvky seznamu. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ rest(cl,-2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Odstraní poslední dva prvky seznamu. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ rest(cl); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Odstraní první prvek seznamu. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ reverse(cl); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Obrátí pořadí prvků seznamu. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ cons(orange,cl); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Vytvoří nový seznam se zadaným prvkem na prvním místě. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ endcons(orange,cl); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Vytvoří nový seznam se zadaným prvkem na posledním místě. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ append(cl,[orange,brown]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] append(list_1,...,list_n) vytváří jeden seznam, skládající se postupně z prvků seznamu list_1,list_2,...,list_n. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ L1:[1,2,3,4,5]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ L2:[a,b,c,d,e]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ join(L1,L2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] join(l,m) vytváří seznam spojením seznamů l a m, přičemž prvky obou seznamů se pravidelně střídají. Tj. výsledný seznam vypadá takto: [l[1], m[1], l[2], m[2],...]. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Pokud mají oba seznamy různou délku, join ignoruje prvky delšího seznamu. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x):=x^2; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ map(f,L1); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] map(f, list) aplikuje funkční předpis na všechny prvky seznamu. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Sečtení prvků seznamu [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ apply("+",L1); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ random(11); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] random(x) vrací náhodně zvolené celé číslo od 0 do x-1. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 3<5, pred; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ L : makelist(random(11),i,1,10); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sublist(L, lambda([x], is(x<5))); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ f(x) := is(x<5)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ f(4); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sublist(L,f); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sublist(L, evenp); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Množina (set) [wxMaxima: section end ] */ /* [wxMaxima: input start ] */ M1:set(b,a,c); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ M1:{c,b,a}; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Pokud množina obsahuje stejné prvky, jsou automaticky odstraněny. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Datový typ množina používá vnitřní systém uspořádání. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ setp(M1); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Prázdná množina: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ set(); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ subst(c=a, M1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ M2:set(1,2,3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ M3:[1,1,2,2,3,3]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Vytvoření množiny ze seznamu: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ M4:setify(M3); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] A zpětné vytvoření seznamu z množiny: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ listify(M4); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ full_listify ({a, b, {c, {d, e, f}, g}}); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ listify ({a, b, {c, {d, e, f}, g}}); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fullsetify ([a, [a]]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Základní množinové operace [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Sjednocení: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ union(M1,M2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Průnik: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ intersect(M1,M2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Rozdíl: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ setdifference({0,1,2,3},{0,2,4,6}); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Počet prvků konečné množiny: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ cardinality(M1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ s:{1,2,five,3,4}; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Přidání prvku: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ adjoin(x, s); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ union(s,{x}); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Odstranění prvku z množiny: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ disjoin(x,%); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ disjointp ({a, b, c}, {1, 2, 3}); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] disjoint vrací true, pokud jsou zadané množiny disjunktní. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ disjointp ({a, b, 3}, {1, 2, 3}); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Určuje, zda daný prvek patří do množiny: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ elementp(1,s); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ elementp(6,s); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Určuje, zad jsou zadané množiny totožné: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ setequalp ({1, 2, 3}, {1, 2, 3}); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ setequalp ({a, b, c}, {1, 2, 3}); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ subset ({1, 2, 7, 8, 9, 14}, evenp); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Vytvoří podmnožinu dané množiny na základě zadaného kritéria. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ evenp(1);evenp(1/2);evenp(2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ oddp(1);oddp(1/2);oddp(2); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Určuje, zda je první zadaná množina podmnožinou druhé. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ subsetp ({1, 2, 3}, {a, 1, b, 2, c, 3}); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ subsetp ({a, 1, b, 2, c, 3}, {1, 2, 3}); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Vrací množinu všech podmnožin zadané množiny: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ collection:powerset({1,2,3}); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ cardinality(collection); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fourth(collection); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ numbers:{0,%pi,%pi/3,%pi/2}; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ map(g,numbers); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ map(sin, numbers); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Pole (array) [wxMaxima: section end ] */ /* [wxMaxima: comment start ] array (name, dim_1, ..., dim_n) vytváří obecné pole. n musí být menší nebo rovné pěti. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ array(A,2,3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ A[1,1]:1;A[1,2]:4;A[1,3]:9; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ A[2,1]:1;A[2,2]:8;A[2,3]:27; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ arrayinfo(A); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ listarray (A); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ translate:[["jedna", 1], ["dve", 2], ["tri",3]]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ assoc("jedna", translate); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ cons(["ctyri",4], translate); /* [wxMaxima: input end ] */ /* [wxMaxima: section start ] Matice [wxMaxima: section end ] */ /* [wxMaxima: comment start ] K vytvoření matice použijeme příkaz matrix([],[],...), přičemž v hranatých závorkách vypisujeme jednotlivé řádky matice. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ D:matrix([1,2,3],[1,4,9],[1,8,27]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ D[1,1]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Definování indexační funkce [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ h[i,j]:=1/(i+j-x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ hilbert4 : genmatrix(h,4,4); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ident(3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ diagmatrix(3,0); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ zeromatrix(3,3); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Operace s maticemi [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A: matrix([2,a], [-1,-2*b]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ B : matrix([3*a,2], [1-b,1]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Sečítání a odečítání matic [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A+B; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ A-B; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ C:transpose(D); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Násobení matic [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ D.C; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ expand(A.B); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ A*B; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Při použití * se pouze vynásobí prvky na odpovídajících pozicích. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A/B; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Dělí prvky na odpovídajících pozicích. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Mocniny [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ B^^3; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ B^3; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Operátor "^" umocní jen prvky na odpovídajícíh pozicích. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Počet řádků [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ length(D); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Počet sloupců [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ length(transpose(D)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Hodnost matice [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ rank(D); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Výpočet determinaru čtvercové matice: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ determinant(D); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ invert(D); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ D.%; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ kill(all); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Gaussova eliminace [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A:matrix([1,1,3,-3],[5,5,13,-17],[3,1,7,-11]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ triangularize(A); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ echelon(A); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ load("/home_zam/plch/vyuka/maxima/rref.mac"); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ rref(A); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Balíček linearalgebra [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(linearalgebra); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ toeplitz([1,2,3]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ toeplitz([alpha, beta]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Pro práci s vektory slouží balíček vect [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(vect); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ v1 : [1,0,1]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ length(v1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ v2 : [0,1,1]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ v1-v2; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Skalární součin [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ v1 . v2; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Vektorový součin [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ v1 ~ v2; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] zde nedochází automaticky k vyhodnocení, to provedeme až pomocí [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ express(%); /* [wxMaxima: input end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$