Informatika1-2019/Gyakorlat11

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „Előző gyakorlat - Fel - Következő gyakorlat == A program hasz…”)
 
a (Beépített Sage függvények, metódusok)
 
(egy szerkesztő 5 közbeeső változata nincs mutatva)
3. sor: 3. sor:
 
== A program használata ==
 
== A program használata ==
  
=== Az intézeti sage szerver ===
+
=== Az intézeti szerver ===
 
https://jupyter.math.bme.hu:8888/
 
https://jupyter.math.bme.hu:8888/
 
Itt '''New -> SageMath 8.9'''
 
  
 
=== Publikus ===
 
=== Publikus ===
25. sor: 23. sor:
 
=== Help ===
 
=== Help ===
 
online dokumentáció: https://doc.sagemath.org/html/en/reference/
 
online dokumentáció: https://doc.sagemath.org/html/en/reference/
 +
 +
=== Alternatíva ===
 +
A Sage maga a Mathematica program egy alternatívája.
 +
A [https://hu.wikipedia.org/wiki/Mathematica Mathematica] program [https://en.wikipedia.org/wiki/Stephen_Wolfram Stephen Wolfram] szüleménye, 1988-ből. Azóta is folyamatosan fejlesztik és fejlődik.
 +
Ez egy [https://hu.wikipedia.org/wiki/Z%C3%A1rt_forr%C3%A1sk%C3%B3d%C3%BA_szoftver fizetős program], de a matematikus hallgatók kaphatnak hozzáférést az intézet jóvoltából.
 +
 +
Telepíthetjük egy aktivációs kulccsal. Letöltés: http://math.bme.hu/mathematica
  
 
== Feladatok ==
 
== Feladatok ==
56. sor: 61. sor:
 
== Sage notebook ==
 
== Sage notebook ==
  
* Menjünk a sage notebook oldalára: [https://sage.math.bme.hu notebook]
+
* Menjünk a sage notebook oldalára: https://jupyter.math.bme.hu:8888/
* Itt lépjünk be a felhasználónevünkkel és a jelszóval amit egy cetlin megkaptatok.
+
* Itt lépjünk be a '''leibniz'''-es felhasználónevünkkel és a jelszóval
 
+
* '''New -> SageMath 8.9''' gombokkal lehet új sage notebook-ot létrehozni
* Jobb fent a '''Settings''' menüben változtassuk meg a jelszavunkat.
+
* A bal-fenti sarokban, a logó mellett lehet átnevezni a notebbok-ot (kezdetben ''Untitled'' lesz a neve)
 
+
* Ha újra bejelentkeztünk akkor bal fent a '''New Worksheet''' linkkel tudunk új munkamenetet indítani.
+
* Ezt el is kell neveznünk, legyen mondjuk '''Gyak10'''
+
  
 
=== Első próbálkozások ===
 
=== Első próbálkozások ===
110. sor: 112. sor:
 
## Használjuk a '''bool''' függvényt, ami az igazságértékét meghatározza egy kifejezésnek
 
## Használjuk a '''bool''' függvényt, ami az igazságértékét meghatározza egy kifejezésnek
 
## valós számokra igaz? Pozitív számokra? ('''assume''')
 
## valós számokra igaz? Pozitív számokra? ('''assume''')
# Lássuk be, hogy '''(x-y)(x+y) == x^2-y^2'''
+
# Lássuk be, hogy <math>(x-y)(x+y) = x^2-y^2</math>
# Lássuk be, hogy '''(-1)^(2n) == 1''', de persze csak ha '''n''' egész!
+
# Lássuk be, hogy <math>(-1)^{2n} = 1</math>, de persze csak ha '''n''' egész!
  
 
=== Beépített Sage függvények, metódusok ===
 
=== Beépített Sage függvények, metódusok ===
  
# Prímszám-e 2011? (használd az ''is_prime()'' függvényt)
+
# Prímszám-e 2019? (használd az ''is_prime()'' függvényt)
 +
#* Keressünk egy nagy prím számot próbálgatással
 
# Prímedik napján születtél-e a hónapnak? (használd a D változót!)
 
# Prímedik napján születtél-e a hónapnak? (használd a D változót!)
# Oldd meg a D*x^2 + M*x - b*r = 0 egyenletet a ''solve(fv, változó)'' függvény segítségével! (Ne felejtsd el bevezetni az x-et szimbolikus változóként!)
+
# Oldd meg a <math>Dx^2 + Mx - br = 0</math> egyenletet a ''solve(fv, változó)'' függvény segítségével!
 +
#* ''x'' szimbolikus változó kell legyen!
 +
#* ''fv'' lehet függvény, kifejezés vagy egyenlet
 
# Numerikusan is oldd meg az egyenletet! Használd a ''find_root(fv == 0, min, max)''  függvényt. Egy változós függvény egyetlen változójában keres megoldást.
 
# Numerikusan is oldd meg az egyenletet! Használd a ''find_root(fv == 0, min, max)''  függvényt. Egy változós függvény egyetlen változójában keres megoldást.
 
# Oldd meg a fenti egyenletet szimbolikusan is (fejezd ki x-et b, D, M és r-rel)!
 
# Oldd meg a fenti egyenletet szimbolikusan is (fejezd ki x-et b, D, M és r-rel)!
# Deriváld le az sin(x)cos(x)x^2 függvényt.
+
# Deriváld le az <math>\sin(x)\cdot\cos(x)\cdot x^2</math> függvényt.
 
# Integráld le az elõzõ függvényt.
 
# Integráld le az elõzõ függvényt.
# Számold ki a határértékét az (1 + 3/n)^4n függvénynek, ha n->oo (''limit'', de az ''n''-nek változónak kell lennie)
+
# Számold ki az alábbi határértéket: <math>\lim_{n\to\infty}\bigg(1 + \frac{3}{n}\bigg)^{4n}</math> (''limit'', de az ''n''-nek változónak kell lennie)
# Legyen f a következő függvény: f = (x+2*y)^3
+
# Legyen f a következő függvény: f(x,y) = (x+2*y)^3
 
# Helyettesíts be x helyére 3-at; utána x helyére 4-et és y helyére 2-t. Mennyi az eredmény? ( használd f-nek a ''subs()'' függvényét)
 
# Helyettesíts be x helyére 3-at; utána x helyére 4-et és y helyére 2-t. Mennyi az eredmény? ( használd f-nek a ''subs()'' függvényét)
 
# Bontsd összeggé f-et! (''expand()'')
 
# Bontsd összeggé f-et! (''expand()'')
# Az elõbb tanultakat használva, számold ki az 4. tagig a sin(x)cos(x)x^2 függvény [https://hu.wikipedia.org/wiki/Taylor-sor Taylor-sorát] (deriválni / integrálni, ha '''f''' egy függvény úgy is lehet, hogy '''f.diff(x)''')
+
# Az elõbb tanultakat használva, számold ki az 4. tagig a <math>\sin(x)\cdot\cos(x)\cdot x^2</math> függvény [https://hu.wikipedia.org/wiki/Taylor-sor Taylor-sorát] (deriválni / integrálni, ha '''f''' egy függvény úgy is lehet, hogy '''f.diff(x)''')
  
 
=== Rajzolás a Sage segítségével (plot) ===
 
=== Rajzolás a Sage segítségével (plot) ===
  
# Rajzolj egy cosinus-görbét 0-tól 4*pi -ig!  
+
# Rajzolj egy cosinus-görbét 0-tól <math>4\pi</math>-ig!  
# Rajzold ki az (x-2)^2 + 3 másodfokú polinomot -2-től 4-ig, zöld színnel!
+
# Rajzold ki az <math>(x-2)^2 + 3</math> másodfokú polinomot -2-től 4-ig, zöld színnel!
# Rajzold az előző mellé (a ''show'' függvénnyel) az x^3-3*x + 6 harmadfokú polinomot pirossal!
+
# Rajzold az előző mellé (a ''show'' függvénnyel) az <math>x^3-3*x + 6</math> harmadfokú polinomot pirossal!
 
# Rajzoljunk kört: ''circle((középpont koordinátái), sugár, egyebek)''. Az "egyebek" lehetnek: szín, ''aspect_ratio=True'' hogy az x és y tengelyek skálázása azonos legyen (különben ellipszist kaphatunk!).
 
# Rajzoljunk kört: ''circle((középpont koordinátái), sugár, egyebek)''. Az "egyebek" lehetnek: szín, ''aspect_ratio=True'' hogy az x és y tengelyek skálázása azonos legyen (különben ellipszist kaphatunk!).
  
 
[[Informatika1-2019/Gyakorlat10|Előző gyakorlat]] - [[Informatika1-2019#Gyakorlatok|Fel]] - [[Informatika1-2019/Gyakorlat12|Következő gyakorlat]]
 
[[Informatika1-2019/Gyakorlat10|Előző gyakorlat]] - [[Informatika1-2019#Gyakorlatok|Fel]] - [[Informatika1-2019/Gyakorlat12|Következő gyakorlat]]

A lap jelenlegi, 2019. december 2., 16:33-kori változata

Előző gyakorlat - Fel - Következő gyakorlat

Tartalomjegyzék

A program használata

Az intézeti szerver

https://jupyter.math.bme.hu:8888/

Publikus

CoCalc

Otthonról

Telepíthetjük a saját gépünkre: http://www.sagemath.org/download.html

parancssorból

A leibniz-en írjuk be parancssorba, hogy sage, ekkor megnyílik a sage interactive shell.

Ide már írhatunk be sage parancsokat, például:

23^19

Help

online dokumentáció: https://doc.sagemath.org/html/en/reference/

Alternatíva

A Sage maga a Mathematica program egy alternatívája. A Mathematica program Stephen Wolfram szüleménye, 1988-ből. Azóta is folyamatosan fejlesztik és fejlődik. Ez egy fizetős program, de a matematikus hallgatók kaphatnak hozzáférést az intézet jóvoltából.

Telepíthetjük egy aktivációs kulccsal. Letöltés: http://math.bme.hu/mathematica

Feladatok

  1. Számold ki 2018 négyzetgyökét!
  2. Számold ki 2018 negyedik gyökét!
  3. Számold ki 2018 hatodik hatványát!
  4. Mennyi 123*321-nek a 11-es maradéka?

Kiegészítés és help

A sage okosan ki tudja egészíteni a parancsainkat, próbáljuk meg a következőt:

V = Vec[nyomjunk TAB-ot]

Ekkor egyrészt kiegészíti Vector-ig, másrészt kiírja a lehetséges parancsokat. Egészítsük ki, hogy a következőt kapjuk:

V = VectorSpace(QQ,3)

Ezzel V-t a racionális test feletti 3 dimenziós vektortérnek definiáltuk.

Írjuk be most, hogy V. és nyomjunk TAB-ot. Felsorolja az összes lehetséges műveletet, amit V-n tudunk végezni. Ha a parancs végére egy kérdőjelet teszünk, akkor egy rövid leírást is ad róla, hogy mit csinál. Például:

V.basis?

Le is futtathatjuk a parancsot:

V.basis()

Sage notebook

  • Menjünk a sage notebook oldalára: https://jupyter.math.bme.hu:8888/
  • Itt lépjünk be a leibniz-es felhasználónevünkkel és a jelszóval
  • New -> SageMath 8.9 gombokkal lehet új sage notebook-ot létrehozni
  • A bal-fenti sarokban, a logó mellett lehet átnevezni a notebbok-ot (kezdetben Untitled lesz a neve)

Első próbálkozások

  • A cellákba írhatunk sage parancsokat, akár többet is. Próbáljuk is ki:
A = Matrix([[1, 1], [1, 0]])
B = Matrix([[-2, 0], [-1, 1]])
  • SHIFT + ENTER-el tudjuk lefuttatni a parancsokat. Ekkor sorban futnak le egymás után az egy cellában levő parancsok.
  • A cella legutolsó művelete íródik ki, ha nem csak a legutolsót akarjuk kiírni, akkor használjunk print-et.
  • Próbáljuk ki, hogy egy új cellába beírjuk, hogy A vagy B és lefuttatjuk. Majd próbáljuk ki az A*B-t.

Szimbolikus változók

x = var('x')
y = var('y')
x^2 + y^2

Egy változó lehet numerikus (konkrét érték) és szimbolikus is.

y = 2
x^2 + y^2

Függvények

Ha x egy változó, akkor egyszerűen

f(x) = x^2
print(f(3))
print(f(y))

Feladatok

Változók használata

  1. Legyen Y a születési éved, M a születési hónapod, és D a születésed napja, ezekhez vedd fel a három változót.
  2. Hányszor van meg D Y-ban? Legyen az érték a b változóhoz rendelve.
  3. Legyen r a születési évednek a hónappal vett maradéka.
  4. Mennyi most b és r különbsége?

Szimbolikus számítások

  1. Igaz-e, hogy egy szám négyzetének gyöke maga a szám?
    1. Használjuk a bool függvényt, ami az igazságértékét meghatározza egy kifejezésnek
    2. valós számokra igaz? Pozitív számokra? (assume)
  2. Lássuk be, hogy (xy)(x + y) = x2y2
  3. Lássuk be, hogy ( − 1)2n = 1, de persze csak ha n egész!

Beépített Sage függvények, metódusok

  1. Prímszám-e 2019? (használd az is_prime() függvényt)
    • Keressünk egy nagy prím számot próbálgatással
  2. Prímedik napján születtél-e a hónapnak? (használd a D változót!)
  3. Oldd meg a Dx2 + Mxbr = 0 egyenletet a solve(fv, változó) függvény segítségével!
    • x szimbolikus változó kell legyen!
    • fv lehet függvény, kifejezés vagy egyenlet
  4. Numerikusan is oldd meg az egyenletet! Használd a find_root(fv == 0, min, max) függvényt. Egy változós függvény egyetlen változójában keres megoldást.
  5. Oldd meg a fenti egyenletet szimbolikusan is (fejezd ki x-et b, D, M és r-rel)!
  6. Deriváld le az \sin(x)\cdot\cos(x)\cdot x^2 függvényt.
  7. Integráld le az elõzõ függvényt.
  8. Számold ki az alábbi határértéket: \lim_{n\to\infty}\bigg(1 + \frac{3}{n}\bigg)^{4n} (limit, de az n-nek változónak kell lennie)
  9. Legyen f a következő függvény: f(x,y) = (x+2*y)^3
  10. Helyettesíts be x helyére 3-at; utána x helyére 4-et és y helyére 2-t. Mennyi az eredmény? ( használd f-nek a subs() függvényét)
  11. Bontsd összeggé f-et! (expand())
  12. Az elõbb tanultakat használva, számold ki az 4. tagig a \sin(x)\cdot\cos(x)\cdot x^2 függvény Taylor-sorát (deriválni / integrálni, ha f egy függvény úgy is lehet, hogy f.diff(x))

Rajzolás a Sage segítségével (plot)

  1. Rajzolj egy cosinus-görbét 0-tól -ig!
  2. Rajzold ki az (x − 2)2 + 3 másodfokú polinomot -2-től 4-ig, zöld színnel!
  3. Rajzold az előző mellé (a show függvénnyel) az x3 − 3 * x + 6 harmadfokú polinomot pirossal!
  4. Rajzoljunk kört: circle((középpont koordinátái), sugár, egyebek). Az "egyebek" lehetnek: szín, aspect_ratio=True hogy az x és y tengelyek skálázása azonos legyen (különben ellipszist kaphatunk!).

Előző gyakorlat - Fel - Következő gyakorlat

Személyes eszközök