Informatika1-2012/Eloadas1
1. sor: | 1. sor: | ||
− | + | <h1>Tematika</h1> | |
− | + | <table> | |
− | + | <tr><td class="fragment"><ul><li>Sage (és Python)</li></ul></td><td class="fragment"> - 7 előadás</td></tr> | |
− | + | <tr><td class="fragment"><ul><li>XHTML, CSS</li></ul></td><td class="fragment"> - 2 előadás</td></tr> | |
− | + | <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> | |
− | + | <!-- <tr><td class="fragment"><ul><li>Táblázatkezelés (Excel)</li></ul></td><td class="fragment"> - 1 előadás</td></tr> --> | |
+ | </table> | ||
− | + | <h1>Sage bevezető</h1> | |
− | + | <p> | |
− | + | Miért kellenek segédprogramok a matematikához? | |
− | + | </p> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | <ul><ul> | |
− | + | <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> | |
− | + | <li>nyílt forráskódú</li> | |
− | + | <li>ingyenes</li> | |
− | + | <li>könnyen kiterjeszthető, programozható (Python-ra épül)</li> | |
+ | </ul></ul> | ||
− | + | <h1>Sage - mint számológép</h1> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | <pre>sage: 1 + 2 + 3 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
6</pre> | 6</pre> | ||
− | + | <pre>sage: 3 - 12 | |
-9</pre> | -9</pre> | ||
− | + | <pre>sage: 21 * 3 | |
63</pre> | 63</pre> | ||
− | + | <pre class="fragment">sage: 12 / 4 | |
3</pre> | 3</pre> | ||
− | + | <pre>sage: 12 / 5 | |
12/5</pre> | 12/5</pre> | ||
− | + | <pre class="fragment">sage: 5 ** 4 | |
625</pre> | 625</pre> | ||
− | + | <pre class="fragment">sage: 4 ^ 5 | |
1024</pre> | 1024</pre> | ||
− | + | <pre>sage: 53 // 4 | |
13</pre> | 13</pre> | ||
− | + | <pre class="fragment">sage: 35 % 8 | |
3</pre> | 3</pre> | ||
− | + | <pre class="fragment">sage: 35.0 / 8 | |
4.37500000000000</pre> | 4.37500000000000</pre> | ||
− | + | <h2>Sage - mint okos számológép</h2> | |
− | + | <p> | |
− | + | Változókat definiálhatunk és műveleteket hajthatunk végre velük: | |
− | + | </p> | |
− | + | <pre>sage: a = 5 / 3 | |
sage: b = 4 / 3 | sage: b = 4 / 3 | ||
sage: a + b | sage: a + b | ||
3 | 3 | ||
</pre> | </pre> | ||
− | + | <p> | |
− | + | Változó értékének törlése: | |
− | + | </p> | |
− | + | <pre>sage: del a</pre> | |
− | + | <p>vagy:</p> | |
− | + | <pre>sage: reset('a')</pre> | |
− | + | <p> | |
− | + | Beépített változókat is használhatunk: | |
− | + | </p> | |
− | + | <pre>sage: e + pi | |
pi + e</pre> | pi + e</pre> | ||
− | + | <h2>Sage - mint szimbolikus számológép</h2> | |
− | + | <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: | |
− | + | </p> | |
− | + | <pre>sage: a,b=var('a,b') | |
</pre> | </pre> | ||
− | + | <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: | |
− | + | </p> | |
− | + | <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> | |
− | + | Egyenleteket, egyenletrendszereket is képes megoldani a Sage: | |
− | + | </p> | |
− | + | <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') | |
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> | |
− | + | Előfordul, hogy a <code>solve()</code> nem találja meg a keresett megoldást: | |
− | + | </p> | |
− | + | <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 < π/2):</p> | |
− | + | <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> | ||
− | + | <h1>Sage funkciók</h1> | |
− | + | <h2>Sage - relációk</h2> | |
+ | <pre>sage: 3 < 5 | ||
True | True | ||
</pre> | </pre> | ||
− | + | <pre>sage: 4 == 4 | |
True</pre> | True</pre> | ||
− | + | <pre>sage: 3 + 4 <= 6 | |
False</pre> | False</pre> | ||
− | + | <pre>sage: a > b | |
a > b</pre> | a > b</pre> | ||
− | + | <pre>sage: a = 5; b = 7 | |
sage: a > b | sage: a > b | ||
False | False | ||
149. sor: | 131. sor: | ||
True</pre> | True</pre> | ||
− | + | <h2>Sage - Boole algebra</h2> | |
− | + | <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 | |
sage: (a and not b) or b | sage: (a and not b) or b | ||
True | True | ||
</pre> | </pre> | ||
− | + | <h2>Sage - függvények</h2> | |
− | + | <p>Gyakran használt matematikai függvények:</p> | |
− | + | <pre>sqrt(), sin(), cos(), tan(), cot() | |
</pre> | </pre> | ||
− | + | <pre>is_prime(), factor(), expand(), solve(), simplify() | |
</pre> | </pre> | ||
− | + | <pre>plot(), parametric_plot() | |
</pre> | </pre> | ||
− | + | <p>stb.</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): | |
....: return x%2 == 0 | ....: return x%2 == 0 | ||
....: | ....: | ||
186. sor: | 168. sor: | ||
True | True | ||
</pre> | </pre> | ||
− | + | <pre>sage: a = True; b = False | |
sage: (a and not b) or b | sage: (a and not b) or b | ||
True | True | ||
</pre> | </pre> | ||
− | + | <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 | |
− | + | (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> | </pre> | ||
− | + | <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 | |
− | + | egy-egy valtozóba, majd a <code>show()</code> metódust használjuk:</p> | |
− | + | <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> | ||
− | + | <h1>Python - Sage különbségek</h1> | |
− | + | <p> | |
− | + | Hatványozás műveleti jele Python-ban **, a ^ mást jelent (XOR)! | |
− | + | </p> | |
− | + | <pre>>>> 3^3 | |
0 | 0 | ||
>>> 1^3 | >>> 1^3 |
A lap 2012. szeptember 19., 11:03-kori változata
Tartalomjegyzék |
Tematika
| - 7 előadás |
| - 2 előadás |
| - 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 funkciók
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