Informatika1-2012/Eloadas1

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „ <h1>Informatika 1.</h1> <p>(2012)<br> Első előadás<br> <small>Németh Tibor</small><br> <small><i>2012. szeptembe…”)
 
 
(egy szerkesztő 2 közbeeső változata nincs mutatva)
1. sor: 1. sor:
          <h1>Informatika 1.</h1>
+
<h1>Tematika</h1>
          <p>(2012)<br>
+
<table>
          Első előadás<br>
+
  <tr><td class="fragment"><ul><li>Sage (és Python)</li></ul></td><td class="fragment"> - 7 előadás</td></tr>
          <small>Németh Tibor</small><br>
+
  <tr><td class="fragment"><ul><li>XHTML, CSS</li></ul></td><td class="fragment"> - 2 előadás</td></tr>
            <small><i>2012. szeptember 5.</i></small>
+
  <tr><td class="fragment"><ul><li><b><span class="texhtml"><span style="font-family:cmr10, LMRoman10-Regular, Times, serif;">L<span style="text-transform: uppercase; font-size: 70%; margin-left: -0.36em; vertical-align: 0.3em; line-height: 0; margin-right: -0.15em;">a</span>T<span style="text-transform: uppercase; margin-left: -0.1667em; vertical-align: -0.5ex; line-height: 0; margin-right: -0.125em;">e</span>X</span></span></b></li></ul></td><td class="fragment"> - 3 előadás</td></tr>
          </p>
+
  <!-- <tr><td class="fragment"><ul><li>Táblázatkezelés (Excel)</li></ul></td><td class="fragment"> - 1 előadás</td></tr> -->
 +
</table>
  
          <h2>Tartalom</h2>
+
<h1>Sage bevezető</h1>
          <ul>
+
<p>
            <li class="fragment">A tárgyról</li>
+
  Miért kellenek segédprogramok a matematikához?
            <li class="fragment">Sage alapok</li>
+
</p>
            <ul>
+
              <li class="fragment">A Sage mint számológép</li>
+
              <li class="fragment">Függvények a Sage-ben</li>
+
              <li class="fragment">Függvényábrázolás, rajzolás</li>
+
            </ul>
+
            <li class="fragment">Python kitekintés</li>
+
          </ul>
+
  
          <h2>Tematika</h2>
+
<ul><ul>
          <table>
+
    <li>számolási hibák</li>
            <tr><td class="fragment"><ul><li>Sage (és Python)</li></ul></td><td class="fragment"> - 7 előadás</td></tr>
+
    <li>gyorsabb</li>
            <tr><td class="fragment"><ul><li>XHTML, CSS</li></ul></td><td class="fragment"> - 2 előadás</td></tr>
+
    <li>négyszín-tétel</li>
            <tr><td class="fragment"><ul><li><b><span class="texhtml"><span style="font-family:cmr10, LMRoman10-Regular, Times, serif;">L<span style="text-transform: uppercase; font-size: 70%; margin-left: -0.36em; vertical-align: 0.3em; line-height: 0; margin-right: -0.15em;">a</span>T<span style="text-transform: uppercase; margin-left: -0.1667em; vertical-align: -0.5ex; line-height: 0; margin-right: -0.125em;">e</span>X</span></span></b></li></ul></td><td class="fragment"> - 3 előadás</td></tr>
+
  </ul></ul>
            <!-- <tr><td class="fragment"><ul><li>Táblázatkezelés (Excel)</li></ul></td><td class="fragment"> - 1 előadás</td></tr> -->
+
<p>
          </table>
+
  Miért a Sage?
 +
</p>
  
          <h2>Sage bevezető</h2>
+
<ul><ul>
            <p>
+
    <li>nyílt forráskódú</li>
              Miért kellenek segédprogramok a matematikához?
+
    <li>ingyenes</li>
            </p>
+
    <li>könnyen kiterjeszthető, programozható (Python-ra épül)</li>
 +
  </ul></ul>
  
            <ul><ul>
+
<h1>Sage - mint számológép</h1>
                <li>számolási hibák</li>
+
                <li>gyorsabb</li>
+
                <li>négyszín-tétel</li>
+
              </ul></ul>
+
            <p>
+
              Miért a Sage?
+
            </p>
+
  
            <ul><ul>
+
<pre>sage: 1 + 2 + 3
                <li>nyílt forráskódú</li>
+
                <li>ingyenes</li>
+
                <li>könnyen kiterjeszthető, programozható (Python-ra épül)</li>
+
              </ul></ul>
+
 
+
          <h2>Sage - mint számológép</h2>
+
 
+
          <pre>sage: 1 + 2 + 3
+
 
6</pre>
 
6</pre>
            <pre>sage: 3 - 12
+
<pre>sage: 3 - 12
 
-9</pre>
 
-9</pre>
  
          <pre>sage: 21 * 3
+
<pre>sage: 21 * 3
 
63</pre>
 
63</pre>
            <pre class="fragment">sage: 12 / 4
+
<pre class="fragment">sage: 12 / 4
 
3</pre>
 
3</pre>
  
          <pre>sage: 12 / 5
+
<pre>sage: 12 / 5
 
12/5</pre>
 
12/5</pre>
            <pre class="fragment">sage: 5 ** 4
+
<pre class="fragment">sage: 5 ** 4
 
625</pre>
 
625</pre>
            <pre class="fragment">sage: 4 ^ 5
+
<pre class="fragment">sage: 4 ^ 5
 
1024</pre>
 
1024</pre>
  
          <pre>sage: 53 // 4
+
<pre>sage: 53 // 4
 
13</pre>
 
13</pre>
            <pre class="fragment">sage: 35 % 8
+
<pre class="fragment">sage: 35 % 8
 
3</pre>
 
3</pre>
            <pre class="fragment">sage: 35.0 / 8
+
<pre class="fragment">sage: 35.0 / 8
 
4.37500000000000</pre>
 
4.37500000000000</pre>
  
          <h3>Sage - mint okos számológép</h3>
+
<h2>Sage - mint okos számológép</h2>
            <p>
+
<p>
              Változókat definiálhatunk és műveleteket hajthatunk végre velük:
+
  Változókat definiálhatunk és műveleteket hajthatunk végre velük:
            </p>
+
</p>
            <pre>sage: a = 5 / 3
+
<pre>sage: a = 5 / 3
 
sage: b = 4 / 3
 
sage: b = 4 / 3
 
sage: a + b
 
sage: a + b
 
3
 
3
 
</pre>
 
</pre>
            <p>
+
<p>
              Változó értékének törlése:
+
  Változó értékének törlése:
            </p>
+
</p>
  
            <pre>sage: del a</pre>
+
<pre>sage: del a</pre>
              <p>vagy:</p>
+
<p>vagy:</p>
              <pre>sage: reset('a')</pre>
+
<pre>sage: reset('a')</pre>
  
            <p>
+
<p>
              Beépített változókat is használhatunk:
+
  Beépített változókat is használhatunk:
            </p>
+
</p>
            <pre>sage: e + pi
+
<pre>sage: e + pi
 
pi + e</pre>
 
pi + e</pre>
  
            <h3>Sage - mint szimbolikus számológép</h3>
+
<h2>Sage - mint szimbolikus számológép</h2>
  
            <p>
+
<p>
              Ha szimbólumként akarjuk használni valamelyik változót, akkor ezt a <code>var()</code> függvénnyel jelezhetjük a Sage programnak.<br>Egyszerre többet is definiálhatunk:
+
  Ha szimbólumként akarjuk használni valamelyik változót, akkor ezt a <code>var()</code> függvénnyel jelezhetjük a Sage programnak.<br>Egyszerre többet is definiálhatunk:
            </p>
+
</p>
            <pre>sage: a,b=var('a,b')
+
<pre>sage: a,b=var('a,b')
 
</pre>
 
</pre>
  
            <p>
+
<p>
              Az algebrai kifejezeséket összeggé alakíthatjuk az <code>expand()</code> függvénnyel vagy <code>.expand()</code> metódussal, ill. szorzattá a <code>factor()</code>-ral:
+
  Az algebrai kifejezeséket összeggé alakíthatjuk az <code>expand()</code> függvénnyel vagy <code>.expand()</code> metódussal, ill. szorzattá a <code>factor()</code>-ral:
            </p>
+
</p>
            <pre>sage: expand((a + b) ^2)
+
<pre>sage: expand((a + b) ^2)
 
a^2 + 2*a*b + b^2</pre>
 
a^2 + 2*a*b + b^2</pre>
 
<p>                  <code>NameError: name 'a' is not defined</code> hibát kapunk, ha előtte nem adtuk meg:<br><code>a,b=var('a,b')</code> !!!
 
<p>                  <code>NameError: name 'a' is not defined</code> hibát kapunk, ha előtte nem adtuk meg:<br><code>a,b=var('a,b')</code> !!!
112. sor: 93. sor:
 
3 * 7 * 11</pre>
 
3 * 7 * 11</pre>
  
            <p>
+
<p>
              Egyenleteket, egyenletrendszereket is képes megoldani a Sage:
+
  Egyenleteket, egyenletrendszereket is képes megoldani a Sage:
            </p>
+
</p>
            <pre>sage: x = var('x')
+
<pre>sage: x = var('x')
 
sage: solve(x^2 + 3*x +2, x)
 
sage: solve(x^2 + 3*x +2, x)
 
[x == -2, x == -1]</pre>
 
[x == -2, x == -1]</pre>
            <pre>sage: x,y = var('x,y')
+
<pre>sage: x,y = var('x,y')
 
sage: solve([x + y == 6, x - y == 4], x, y)
 
sage: solve([x + y == 6, x - y == 4], x, y)
 
[[x == 5, y == 1]]</pre>
 
[[x == 5, y == 1]]</pre>
  
            <p>
+
<p>
              Előfordul, hogy a <code>solve()</code> nem találja meg a keresett megoldást:
+
  Előfordul, hogy a <code>solve()</code> nem találja meg a keresett megoldást:
            </p>
+
</p>
            <pre>sage: x=var('x')
+
<pre>sage: x=var('x')
 
sage: solve(sin(x) == cos(), x)
 
sage: solve(sin(x) == cos(), x)
 
[sin(x) == cos(x)]</pre>
 
[sin(x) == cos(x)]</pre>
            <p>A <code>find_root()</code> numerikus megoldást keres adott intervallumon (legyen pl: 0 < y < &pi;/2):</p>
+
<p>A <code>find_root()</code> numerikus megoldást keres adott intervallumon (legyen pl: 0 < y < &pi;/2):</p>
              <pre>
+
<pre>
 
sage: find_root(sin(x) == cos(x), 0, pi/2)
 
sage: find_root(sin(x) == cos(x), 0, pi/2)
 
0.7853981633974484</pre>
 
0.7853981633974484</pre>
  
            <h3>Sage - relációk</h3>
+
<h1>Sage</h1>
            <pre>sage: 3 < 5
+
<h2>Sage - relációk</h2>
 +
<pre>sage: 3 < 5
 
True
 
True
 
</pre>
 
</pre>
            <pre>sage: 4 == 4
+
<pre>sage: 4 == 4
 
True</pre>
 
True</pre>
            <pre>sage: 3 + 4 <= 6
+
<pre>sage: 3 + 4 <= 6
 
False</pre>
 
False</pre>
            <pre>sage: a > b
+
<pre>sage: a > b
 
a > b</pre>
 
a > b</pre>
            <pre>sage: a = 5; b = 7
+
<pre>sage: a = 5; b = 7
 
sage: a > b
 
sage: a > b
 
False
 
False
149. sor: 131. sor:
 
True</pre>
 
True</pre>
  
            <h3>Sage - Boole algebra</h3>
+
<h2>Sage - Boole algebra</h2>
            <pre>sage: True and False
+
<pre>sage: True and False
 
False
 
False
 
sage: True and True
 
sage: True and True
161. sor: 143. sor:
 
True
 
True
 
</pre>
 
</pre>
            <pre>sage: a = True; b = False
+
<pre>sage: a = True; b = False
 
sage: (a and not b) or b
 
sage: (a and not b) or b
 
True
 
True
 
</pre>
 
</pre>
  
            <h3>Sage - függvények</h3>
+
<h2>Sage - függvények</h2>
  
            <p>Gyakran használt matematikai függvények:</p>
+
<p>Gyakran használt matematikai függvények:</p>
            <pre>sqrt(), sin(), cos(), tan(), cot()
+
<pre>sqrt(), sin(), cos(), tan(), cot()
 
</pre>
 
</pre>
            <pre>is_prime(), factor(), expand(), solve(), simplify()
+
<pre>is_prime(), factor(), expand(), solve(), simplify()
 
</pre>
 
</pre>
            <pre>plot(), parametric_plot()
+
<pre>plot(), parametric_plot()
 
</pre>
 
</pre>
            <p>stb.</p>
+
<p>stb.</p>
  
            <p>Saját függvény definiálása (a <code>def</code> kulcsszó a Python nyelv része):</p>
+
<p>Saját függvény definiálása (a <code>def</code> kulcsszó a Python nyelv része):</p>
            <pre>sage: def paros(x):
+
<pre>sage: def paros(x):
 
....:    return x%2 == 0
 
....:    return x%2 == 0
 
....:
 
....:
186. sor: 168. sor:
 
True
 
True
 
</pre>
 
</pre>
            <pre>sage: a = True; b = False
+
<pre>sage: a = True; b = False
 
sage: (a and not b) or b
 
sage: (a and not b) or b
 
True
 
True
 
</pre>
 
</pre>
  
            <h3>Sage - függvényábrázolás</h3>
+
<h2>Sage - függvényábrázolás</h2>
  
            <p>A <code>plot()</code> függvénnyel ábrákat készíthetünk.<br />Általában függvény ábrázolására használjuk, de egyebeket is rajzolhatunk
+
<p>A <code>plot()</code> függvénnyel ábrákat készíthetünk.<br />Általában függvény ábrázolására használjuk, de egyebeket is rajzolhatunk
              (pl. köröket, sokszögeket).<br />A plot első paramétere az ábrázolandó dolog, utána még sok paraméterrel módosíthatjuk a képet (intervallum, színek stb).</p>
+
  (pl. köröket, sokszögeket).<br />A plot első paramétere az ábrázolandó dolog, utána még sok paraméterrel módosíthatjuk a képet (intervallum, színek stb).</p>
              <pre>sage: plot(x^2, (-3,3), aspect_ratio=1)
+
<pre>sage: plot(x^2, (-3,3), aspect_ratio=1)
 
</pre>
 
</pre>
              <pre>sage: plot(sin(x), (-pi, 2*pi), rgbcolor='red')
+
<pre>sage: plot(sin(x), (-pi, 2*pi), rgbcolor='red')
 
</pre>
 
</pre>
  
            <p>Több függvényt is megjeleníthetünk közös koordinátarendszerben. Ehhez először elmentjük az egyes grafikus objektumokat
+
<p>Több függvényt is megjeleníthetünk közös koordinátarendszerben. Ehhez először elmentjük az egyes grafikus objektumokat
              egy-egy valtozóba, majd a <code>show()</code> metódust használjuk:</p>
+
  egy-egy valtozóba, majd a <code>show()</code> metódust használjuk:</p>
            <pre>sage: g1 = plot(sin, (-2*pi, 2*pi))
+
<pre>sage: g1 = plot(sin, (-2*pi, 2*pi))
 
sage: g2 = plot(cos, (-2*pi, 2*pi), rgbcolor='red')
 
sage: g2 = plot(cos, (-2*pi, 2*pi), rgbcolor='red')
 
sage: show(g1 + g2)</pre>
 
sage: show(g1 + g2)</pre>
  
            <h3>Python - Sage különbségek</h3>
+
<h1>Python - Sage különbségek</h1>
          <p>
+
<p>
            Hatványozás műveleti jele Python-ban **, a ^ mást jelent (XOR)!
+
  Hatványozás műveleti jele Python-ban **, a ^ mást jelent (XOR)!
          </p>
+
</p>
          <pre>>>> 3^3
+
<pre>>>> 3^3
 
0
 
0
 
>>> 1^3
 
>>> 1^3

A lap jelenlegi, 2012. szeptember 19., 11:06-kori változata

Tartalomjegyzék

Tematika

  • Sage (és Python)
- 7 előadás
  • XHTML, CSS
- 2 előadás
  • LaTeX
- 3 előadás

Sage bevezető

Miért kellenek segédprogramok a matematikához?

    • számolási hibák
    • gyorsabb
    • négyszín-tétel

Miért a Sage?

    • nyílt forráskódú
    • ingyenes
    • könnyen kiterjeszthető, programozható (Python-ra épül)

Sage - mint számológép

sage: 1 + 2 + 3
6
sage: 3 - 12
-9
sage: 21 * 3
63
sage: 12 / 4
3
sage: 12 / 5
12/5
sage: 5 ** 4
625
sage: 4 ^ 5
1024
sage: 53 // 4
13
sage: 35 % 8
3
sage: 35.0 / 8
4.37500000000000

Sage - mint okos számológép

Változókat definiálhatunk és műveleteket hajthatunk végre velük:

sage: a = 5 / 3
sage: b = 4 / 3
sage: a + b
3

Változó értékének törlése:

sage: del a

vagy:

sage: reset('a')

Beépített változókat is használhatunk:

sage: e + pi
pi + e

Sage - mint szimbolikus számológép

Ha szimbólumként akarjuk használni valamelyik változót, akkor ezt a var() függvénnyel jelezhetjük a Sage programnak.
Egyszerre többet is definiálhatunk:

sage: a,b=var('a,b')

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

sage: expand((a + b) ^2)
a^2 + 2*a*b + b^2

NameError: name 'a' is not defined hibát kapunk, ha előtte nem adtuk meg:
a,b=var('a,b') !!!

sage: 231.factor()
3 * 7 * 11

Egyenleteket, egyenletrendszereket is képes megoldani a Sage:

sage: x = var('x')
sage: solve(x^2 + 3*x +2, x)
[x == -2, x == -1]
sage: x,y = var('x,y')
sage: solve([x + y == 6, x - y == 4], x, y)
[[x == 5, y == 1]]

Előfordul, hogy a solve() nem találja meg a keresett megoldást:

sage: x=var('x')
sage: solve(sin(x) == cos(), x)
[sin(x) == cos(x)]

A find_root() numerikus megoldást keres adott intervallumon (legyen pl: 0 < y < π/2):

sage: find_root(sin(x) == cos(x), 0, pi/2)
0.7853981633974484

Sage

Sage - relációk

sage: 3 < 5
True
sage: 4 == 4
True
sage: 3 + 4 <= 6
False
sage: a > b
a > b
sage: a = 5; b = 7
sage: a > b
False
sage: a != b
True

Sage - Boole algebra

sage: True and False
False
sage: True and True
True
sage: True or False
True
sage: not False
True
sage: True and not False
True
sage: a = True; b = False
sage: (a and not b) or b
True

Sage - függvények

Gyakran használt matematikai függvények:

sqrt(), sin(), cos(), tan(), cot()
is_prime(), factor(), expand(), solve(), simplify()
plot(), parametric_plot()

stb.

Saját függvény definiálása (a def kulcsszó a Python nyelv része):

sage: def paros(x):
....:     return x%2 == 0
....:
sage: paros(9)
False
sage: paros(16)
True
sage: a = True; b = False
sage: (a and not b) or b
True

Sage - függvényábrázolás

A plot() függvénnyel ábrákat készíthetünk.
Általában függvény ábrázolására használjuk, de egyebeket is rajzolhatunk (pl. köröket, sokszögeket).
A plot első paramétere az ábrázolandó dolog, utána még sok paraméterrel módosíthatjuk a képet (intervallum, színek stb).

sage: plot(x^2, (-3,3), aspect_ratio=1)
sage: plot(sin(x), (-pi, 2*pi), rgbcolor='red')

Több függvényt is megjeleníthetünk közös koordinátarendszerben. Ehhez először elmentjük az egyes grafikus objektumokat egy-egy valtozóba, majd a show() metódust használjuk:

sage: g1 = plot(sin, (-2*pi, 2*pi))
sage: g2 = plot(cos, (-2*pi, 2*pi), rgbcolor='red')
sage: show(g1 + g2)

Python - Sage különbségek

Hatványozás műveleti jele Python-ban **, a ^ mást jelent (XOR)!

>>> 3^3
0
>>> 1^3
2

Osztás (/) operátor Pythonban egész-osztást végez.

>>> 3/5
0
Személyes eszközök