Informatika1-2012/Eloadas3

A MathWikiből
A lap korábbi változatát látod, amilyen Tnemeth (vitalap | szerkesztései) 2012. szeptember 20., 11:27-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Tartalomjegyzék

Beépített függvények

Összetett adattípusokon általánosan értelmezett függvények

tuplesetlistdict
új elem-addinsert,
append
(update)
elem törlése-removeremove(pop)
törlés mind-clear-clear
elem kivétele-poppoppop
elem indexeindex-index-
hányszor szerepelcount-count-
másolás-copy-copy

Reference

  • add(<item>)
– új elem hozzáadása
  • insert(<index>,<item>)
– új elem beillesztése
  • append(<item>)
– új elem hozzáfűzése
  • remove(<item>)
– elem törlése
  • clear()
– gyűjtemény kiürítése
  • S: pop()
    L: pop([<index>])
    D: pop(<key>[, dv])
– egy elem visszaadása és törlése a gyüjteményből
  • index(<item>[, start [, stop]])
– elem indexe, ha tartalmazza
  • count(<item>)
– megszámolja és visszatér, hogy hányszor tartalmazza a gyűjtemény az adott elemet
  • copy()
– gyűjtemény lemásolása
  • len(<coll>)
– gyűjtemény hossza

Halmazok függvényei

set = set([pi, 'abc', 35, pi])

  • union(<coll>[, <coll>]*)
    • – egyesíti a halmazokat, az eredménnyel visszatér
  • update(<coll>[, <coll>]*)
    • – union - az eredmény bekerül az "első" halmazba (|=)
  • intersection(<coll>[, <coll>]*),
    intersection_update(<coll>[, <coll>]*)
    • – visszaadja a közös részt ill. halmaz felülírása az eredménnyel (&, &=)
  • difference(<coll>[, <coll>]*),
    difference_update<coll>[, <coll>]*)
    • – különbség visszaadása ill. halmaz felülírása az eredménnyel (-, -=)
  • discard(<item>), remove(<item>)
    • – elem törlése a halmazból, remove esetén hiba, ha nem létezik
  • isdisjoint(coll)
    • – igaz, ha nincs közös elemük
  • issubset(<coll>)
    • – részhalmaza-e a paraméter (<, <=)
  • issuperset(<coll>)
    • – a halmaz részhalmaza-e a paraméternek (>, >=)

Lista függvényei

list = ['a', 'orange', 1, 1.56]

  • sort([cmp=None,] [key=None,] [reverse=False])
    • – rendezi a lista elemeit
  • extend(<coll>)
    • – hozzáadja a paraméterként átadott gyűjtemény elemeit a listához (+)
  • reverse()
    • – megfordítja a lista elemeinek sorrendjét
  • * operator
    • – lemásolja és összefűzi újra a lista elemeit

    Szótár függvényei

     D = {'a':4, 'orange':5, 1:5, 1.56:5.67}
    
    • get(<key>[, <dv>])
      • – a kulcshoz tartozó értékkel tér vissza, ha létezik;
        egyébként None ill. dv, ha megadtuk
    • has_key(<key>)
      • – igaz, ha a szótár eleme a kulcs
    • items()
      • – a szótár elemeit adja vissza egy listában (kulcs, érték) tuple formajában
    • keys()
      • – a kulcsokat adja vissza egy listában
    • iterkeys()
      • – szótár kulcsain lépkedő iterátorral tér vissza
    • iteritems()
      • – szótár értékein lépkedő iterátorral tér vissza
    • popitem()
      • – szótár egy elemét eltávolítja és visszaadja (kulcs, érték) tuple formájában
    • update(<coll>)
      • – dict vagy tuple lista elemeit illeszti be a szótárba
    • setdefault(<key>[, value])
      • – beilleszti az elemet és visszatér az értékkel
    • values()
      • – visszatér az értékekből képzett listával

    Függvények számításokhoz

    • var(<string>)
      • – szimbolikus számításokhoz hozhatunk létre változókat
    • subs(<args>)
      • – kifejezés függvénye, amivel behelyettesíthetjük a változókat a paraméterben felsorolt értékekkel és visszakapjuk a kifejezés numerikus eredményét
    • float(<kif|num|string>)
      • – lebegőpontos számmá próbálja alakítani a megadott paramétert (lsd. RR, RDF)
    • n()
      • – kifejezések függvénye, a kiértékelt kifejezést adja vissza
    • exp(3)
      • e3
    • pow(x,z)
      • xz
    • log(exp(3)) – természetes alapú log
      • 3
    • sqrt(16) – négyzetgyök
      • 4
    • sin(pi), cos(pi), tan(pi) – szögfüggvények
      • arcsin(), ... – inverzeik
    • floor(4.5) – alsó egészrész
      • 4
    • ceil(4.6) – felső egészrész
      • 5

    Egyenlőség vizsgálata lebegőpontos számok esetén

    Fontos megjegyezni, hogy a lebegőpontos számok mindig közelítő értékek, így két lebegőpontos szám, ami pl. számítás eredménye, valószínűleg nem egyezik meg egymással!

    <code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> sqrt(4.0)^2 == 4.0
    True</code>
     DE
    
    <code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> sqrt(5.0)^2 == 5.0
    False</code>

    Megoldás:

    <code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> abs(sqrt(5.0)^2 == 5.0) < 10<span style=" font-size:70%; vertical-align: 0.4em;">10</span>
    True</code>

    Kifejezeséken használt függvények

    Az algebrai kifejezeséket összeggé alakíthatjuk az expand() függvénnyel vagy .expand() metódussal, ill. szorzattá a .factor()-ral:

    <code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> a,b = var('a','b')
    <span style="color: #ff4040;">sage:</span> expand((a+b)^2)
    a^2+2*a*b+b^2</code>
    <code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> x = var('x')
    <span style="color: #ff4040;">sage:</span> (x^2-1).factor()
    (x-1)*(x+1)</code>

    A kifejezéseket a simplify() vagy a full_simplify() metódussal tudjuk egyszerűsíteni:

    <code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> p,x = var('p','x')
    <span style="color: #ff4040;">sage:</span> t = p/pow(p,x)
    <span style="color: #ff4040;">sage:</span> t.simplify()
    p^(-x + 1)</code>
    <code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> x = var('x')
    <span style="color: #ff4040;">sage:</span> t = (x + 1)**3-x**3-1
    <span style="color: #ff4040;">sage:</span> t.full_simplify()
    3*x^2 + 3*x</code>

    Egyenletek megoldása

    solve() – megpróbálja szimbolikus átalakításokkal meghatározni az egyenlet gyökét

    <code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> (x + 1/x == 4).solve(x)
    [x == -sqrt(3) + 2, x == sqrt(3) + 2]</code>
    <p><code>roots()</code> – mint a solve, csak az eredményt numerikusan és a gyök multiplicitását adja vissza</p>
        <pre><code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> (x**2 + 2*x + 1 == 0).roots(x)
    [(-1, 2)]</code></pre>
        <pre><code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> (x**3 - x**2 - x + 1 == 0).roots(x)
    [(-1, 1),(1, 2)]</code></pre>

    Az előző metódusok néha nem tudnak explicit alakban megoldani egy egyenletet, vagy nem ad meg minden gyököt, vagy hamis gyököket talál. Ekkor a find_root() segíthet egy numerikus megoldást találni a megadott intervallumon
    (legyen pl: 0 < y < π/2):

    <code contenteditable style="margin-top: 20px;"><span style="color: #ff4040;">sage:</span> y = var(’y’)
    <span style="color: #ff4040;">sage:</span> find_root(cos(y) == sin(y), 0, pi/2)
    0.78539816339744839</code>

    Az algoritmus mindig csak egy gyököt talál meg és az is egy közelítő érték.

Személyes eszközök