Függvények, listák, rövidítések

g @ x

x  //  g

Sqrt[3]  //  N

{1, 2, 3}~Union~{3, 4, 5}

Map[g, Range[10]]

g  /@  Range[10]

Map[g , x^2 + 2  x]

MapAll[g, {1, 2, {3, 4}}]

Apply[g, Range[10]]

g  @@  Range[10]

Apply[Times, Range[20]]

f[n_] := Apply[Times, Range[n]]

Opciók

l = Range[10]^2

ListPlot[l]

ListPlot[l, PlotJoined -> True]

Options[ListPlot]

ListPlot[l, PlotStyle -> Hue[ .4], PlotJoined -> True, 
      FrameLabel -> {bla, bla}, Frame -> True, 
      Axes -> False]

l1 = Table[{i^2, i^3}, {i, 1, 20}]

ListPlot[l1, PlotJoined -> True]

Függvényábrázolás

Plot[Sin[x], {x, 0, 2 π}];

Options[Plot]

Plot[{Sin[x], -Sin[x], Cos[x], -Cos[x]}, {x, 0, 
          2 π}];

Plot[x^Range[5], {x, 0, 2}]

Plot[Evaluate[x^Range[5]], {x, 0, 2}]

Plot[Sin[x], {x, 0, 2 π}, AspectRatio -> 1, 
        Frame -> True, 
        PlotLabel -> "Ez a szinusz-görbe"];

Plot[Sin[x], {x, 0, 2 π}, 
        AspectRatio -> Automatic, 
Background -> 
          GrayLevel[0.8], GridLines -> Automatic];

\(\(Plot[Sin[x], {x, 0, 2\ π}, 
        AxesOrigin -> {1, 
            0.5}, 
AxesLabel -> {"x-tengely", "y-tengely"}, AxesStyle -> Thickness[0.01]];\)\)

Plot[Sin[x], {x, 0, 6 π}, PlotPoints -> 7, 
        PlotDivision -> 1, 
MaxBend -> 45, 
        PlotRange -> {0, 1}];

\(\(Plot[Sin[x], {x, 0, 2\ π}, 
        Ticks -> {{{0, "0"}, {3.14\/2, "Pi/2"}, {3.14, "Pi"}, {\(3\ 3.14\)\/2, "3 Pi/2"}, {2\ 3.14, "2 Pi"}}, 
            Automatic}, 
        PlotLabel -> 
          FontForm["A better sin curve", {"Palatino-Bold", 
              12}]];\)\)

p1 = Plot[Sin[x], {x, 0, 3}];  
    p2 = ListPlot[Table[{x, Sin[x]}, {x, 0, 3,  .6}], 
        PlotJoined -> True];

Show[p1, p2]

ParametricPlot[{Sin[2 t], Sin[3 t]}, {t, 0, 2 π}]

ParametricPlot[{{Sin[2 t], Sin[3 t]}, {Sin[t], Sin[4 t]}}, {t, 0, 
          2 π}, 
        PlotStyle -> {{Dashing[{0.05, 0.03}], 
              RGBColor[1, 0, 0]}, {Thickness[0.01], 
              RGBColor[0, 1, 0]}}];

Egzakt és közelítő megoldások

Grafikus megoldás

Oldjuk meg a sin(x)+2=x egyenletet grafikusan!

Plot[{Sin[x] + 2, x}, {x, -3, 3}]

Plot[Sin[x] + 2 - x, {x, 2.5, 3}]

Plot[Sin[x] + 2 - x, {x, 2.5, 2.6}]

Plot[Sin[x] + 2 - x, {x, 2.5432, 2.5433}]

A gyök kb 2.5426.

Egzakt megoldások

Solve[a x^2 + b x + c == 0, x]

Solve[Tan[x] == a, x]

Solve[{4 x^2 - 3 y^2 == 1, 3  x + 5 == y}, {y, 
        x}]

Simplify[4 x^2 - 3 y^2 //.  %]

Solve[x^6 + 2 x + 1 == 0, x]

NSolve[x^6 + 2 x + 1 == 0, x]

Reduce[a x^2 + b x + c == 0, x]

Közelítő megoldások

NSolve[x^5 + x + 1 == 0, x]

NSolve[{x^3 + y^2 == 1, x y == 3}, {x, y}]

NSolve[Tan[x] == x, x]

FindRoot[Tan[x] == x - 1, {x, 1}]

Plot[{Tan[x], x - 1}, {x, -1.5, 1.5}]

Plot[{Tan[x], x - 1}, {x, 2, 5}]

FindRoot[Tan[x] == x - 1, {x, 4}]

FindRoot[Sin[(x^2)] == π, {x, 1}]

FindRoot[Sin[(x^2)] == π, {x, 1 +  I}]

Sin[x^2]  //.  %

FindRoot[(E^Abs)[x] == 2, {x, 1}]

FindRoot[(E^Abs)[x] == 2, {x, {0, 1}}]

n = 0; FindRoot[n++; (E^Abs)[x] == 2, {x, {0, 1}}]; 
    n

n = 0; FindRoot[n++; Sin[(x^2)] == π, {x, 1 +  I}]; 
    n

FindRoot[(x^4) == 0,  {x,  1}]

Logikai műveletek

p = (2 < 3)

q = (10 ≠ 10)

{p  ||  q, Or[p, q]}

{Not[q], ! q}

{p  &&  q, And[p, q, True]}

{p  ||  q, Or[p, q]}

{Implies[True, False], Xor[True, False, True], 
      Nand[True, False, False]}

LogicalExpand[Implies[a, b]]

LogicalExpand[
      Xor[a, b] ||  Nand[a, b]  ||  Implies[b, a]]

Map[NumberQ, {12, 3.5, Pi, N[Pi], a, p, {1}}]

Map[IntegerQ, {12, 3.5, Pi, N[Pi], a, p, {1}}]

Map[ListQ, {12, 3.5, Pi, N[Pi], a, p, {1}}]

Positive[{12, 3.5, Pi, N[Pi], a, p, {1}}]

EvenQ[Range[6]]

Procedurális programozás eszközei

Elágazás

\(f[x_, y_] := 
      If[x < y, "kisebb", "nagyobb vagy egyenlő", "nem tudom"]\)

{f[3, e], f[3, 1], f[3, 5]}

Plot[
        Which[x < 0, x, x ≥ 0, Sin[x]], {x, -2 π, 
          2  π}];

Ciklusok

Clear[i]

Do[Print["Ez a(z) ", i, ". prím: ", Prime[i]], {i, 1, 
        10}]

i

For[i = 1; s = 1, s < 100, i++, s = s + i]; {s, i}

v = 30; While[v ≠ 0, v = Floor[v/2]; Print[v]]

Lokális válozók használata

s = 13

f[n_] := 
      Module[{s = 0, i = 1}, For[i = 1; s = 1, s < n, i++, s = s + i]; 
        i]

f[20]

s

Házi feladatok

Írjunk magyarázatot is a megoldás mellé! (Legalább pár szót...)

Hétfő

1. A Help segítségével nézzük meg, hogyan lehet a Random[] függvény segítségével 1 és 5 közötti véletlen egész számot generálni! Készítsünk 4 db ilyen véletlen számot, legyenek ezek a,b,c és d. Határozzuk meg az a (e^x)+b sin(x)+c tan(x)+d (x^3)-(a + b + c + d) függvény gyökeit (gyökét) 3 tizedesjegyig grafikusan a [0,1] intervallumban!

2. Állapítsuk meg, hogy a {(Sqrt[2])}, {2 (Sqrt[ 2])},  ... , {100 (Sqrt[ 2])} számok között mekkora a két egymáshoz legközelebbi elem távolsága! ({x} az x szám törtrészét jelzi.)

3. Állítsuk elő a következő kifejezés azon általánosítását, amiben 25 db 1-es szerepel:  {1, {1, {1, {1, {1}}}}}.

Szerda

1. A Help segítségével nézzük meg, hogyan lehet a Random[] függvény segítségével 1 és 5 közötti véletlen egész számot generálni! Készítsünk 4 db ilyen véletlen számot, legyenek ezek a,b,c és d. Határozzuk meg az a (e^x)+b sin(x)+c tan(x)+d (x^3)-(a + b + c + d) függvény gyökeit (gyökét) 3 tizedesjegyig grafikusan a [0,1] intervallumban!

2. Készítsünk függvényt, ami egy beadott listára kiszámolja az elemeinek négyzetösszegét!

3. Állítsuk elő a következő kifejezés azon általánosítását, amiben 20 db szám szerepel:  {1, {2, {3, {4, {5}}}}}.