Informatika2-2017/HF7

A MathWikiből
(Változatok közti eltérés)
(Mandelbrot (4p))
(mandelbrot (4p))
 
(egy szerkesztő 2 közbeeső változata nincs mutatva)
2. sor: 2. sor:
 
[https://docs.scipy.org/doc/numpy/reference/index.html numpy]
 
[https://docs.scipy.org/doc/numpy/reference/index.html numpy]
  
Írjuk meg az alábbi python függvényeket. <code>import numpy</code> kelleni fog! Otthon telepítsünk egy tetszőleges python-t és hozzá numpy-t, én az [https://www.continuum.io/downloads Anaconda]-t ajánlom, ahhoz alapból van numpy. Figyeljünk arra, hogy 2.7-es verziót használjunk! Vagy használhatjuk az intézeti python-t is.
+
Írjuk meg az alábbi python függvényeket. A feladat neve legyen a függvény neve. Az <code>import numpy</code> kelleni fog! Otthon telepítsünk egy tetszőleges python-t és hozzá numpy-t, én az [https://www.continuum.io/downloads Anaconda]-t ajánlom, ahhoz alapból van numpy. Figyeljünk arra, hogy 2.7-es verziót használjunk! Vagy használhatjuk az intézeti python-t is.
  
 
== integral (3p) ==
 
== integral (3p) ==
13. sor: 13. sor:
 
''a'' < ''b'' és ''n'' > 1.
 
''a'' < ''b'' és ''n'' > 1.
  
Kimenete pedig négy valós szám legyen, a ''sin(x)/x'' függvény numerikus integrálja négy módszerrel:
+
Kimenete pedig három valós szám legyen, a ''sin(x)/x'' függvény numerikus integrálja három módszerrel:
  
 
* téglalap szabállyal az intervallum elejét használva.
 
* téglalap szabállyal az intervallum elejét használva.
23. sor: 23. sor:
 
   numpy.random.rand
 
   numpy.random.rand
  
== Mandelbrot (4p) ==
+
== mandelbrot (4p) ==
 
[https://hu.wikipedia.org/wiki/Mandelbrot-halmaz Mandelbrot-halmaz]
 
[https://hu.wikipedia.org/wiki/Mandelbrot-halmaz Mandelbrot-halmaz]
  
 
A függvény bemenete legyen két egész szám (''n''>1 és ''k>0'').
 
A függvény bemenete legyen két egész szám (''n''>1 és ''k>0'').
Kimenete egy ''(n+1)×(n+1)''-es numpy tömb, igaz-hamis értékekkel feltöltve a következőképpen.
+
Kimenete egy ''n×n''-es numpy tömb, igaz-hamis értékekkel feltöltve a következőképpen.
  
 
* Készítsünk egy C tömböt, aminek
 
* Készítsünk egy C tömböt, aminek
 
** (0,0) indexű eleme a ''-2-i'' komplex szám
 
** (0,0) indexű eleme a ''-2-i'' komplex szám
** (0,n) indexű eleme a ''1-i'' komplex szám
+
** (0,n-1) indexű eleme a ''1-i'' komplex szám
** (n,0) indexű eleme a ''-2+i'' komplex szám
+
** (n-1,0) indexű eleme a ''-2+i'' komplex szám
** (n,n) indexű eleme a ''1+i'' komplex szám
+
** (n-1,n-1) indexű eleme a ''1+i'' komplex szám
 
** köztük lineárisan interpolálva<br>Vagyis egy rács, a ''-2-i'' és ''1+i'' pontok között.
 
** köztük lineárisan interpolálva<br>Vagyis egy rács, a ''-2-i'' és ''1+i'' pontok között.
* Ezután X legyen egy hasonló méretű nulla tömb.
+
* Ezután X legyen egy ugyanilyen méretű csupa nulla tömb.
 
* ''k''-szor végezzük el azt a műveletet, hogy ''X'' értékeit frissítsük ''X<sup>2</sup>+C'' értékeivel (elemenkénti négyzetre emelés és összeadás)
 
* ''k''-szor végezzük el azt a műveletet, hogy ''X'' értékeit frissítsük ''X<sup>2</sup>+C'' értékeivel (elemenkénti négyzetre emelés és összeadás)
* A visszatérési érték legyen az, hogy hol nem nagyobb a kapott szám abszolút értéke 2-nél (False, ha az adott elem nagyobb abszolút értékű, mint 2, True egyébként).
+
* A visszatérési érték legyen az, hogy hol nem nagyobb a kapott számok abszolút értéke 2-nél (False, ha az adott elem nagyobb abszolút értékű, mint 2, True egyébként).
  
A komplex egység <code>1j</code> a python-ban. Ha egy numpy tömböt ezzel megszorzunk, akkor komplex lesz.
+
A '''komplex egység <code>1j</code>''' a python-ban. Ha egy numpy tömböt ezzel megszorzunk, akkor komplex lesz.
  
 
Ha valaki meg akarja nézni, hogy hogyan néz ki az eredmény, akkor két féle képpen lehet:
 
Ha valaki meg akarja nézni, hogy hogyan néz ki az eredmény, akkor két féle képpen lehet:

A lap jelenlegi, 2017. május 13., 16:14-kori változata

Tartalomjegyzék

7. házi

numpy

Írjuk meg az alábbi python függvényeket. A feladat neve legyen a függvény neve. Az import numpy kelleni fog! Otthon telepítsünk egy tetszőleges python-t és hozzá numpy-t, én az Anaconda-t ajánlom, ahhoz alapból van numpy. Figyeljünk arra, hogy 2.7-es verziót használjunk! Vagy használhatjuk az intézeti python-t is.

integral (3p)

A függvény bemenete legyen két valós szám és egy egész szám:

  a: tartomány eleje
  b: tartomány vége
  n: hány osztópont legyen, beleértve a végpontokat

a < b és n > 1.

Kimenete pedig három valós szám legyen, a sin(x)/x függvény numerikus integrálja három módszerrel:

  • téglalap szabállyal az intervallum elejét használva.
  • trapéz szabállyal (húrtrapéz).
  • véletlenszerűen sorsolt felosztással, trapéz formulával. A tartományok vége mindenképp legyen az osztópontok között.
    • véletlen felosztást úgy készítsünk, hogy létrehozunk véletlen pontokat, majd sorba rendezzük azokat.
  numpy.sort
  numpy.random.rand

mandelbrot (4p)

Mandelbrot-halmaz

A függvény bemenete legyen két egész szám (n>1 és k>0). Kimenete egy n×n-es numpy tömb, igaz-hamis értékekkel feltöltve a következőképpen.

  • Készítsünk egy C tömböt, aminek
    • (0,0) indexű eleme a -2-i komplex szám
    • (0,n-1) indexű eleme a 1-i komplex szám
    • (n-1,0) indexű eleme a -2+i komplex szám
    • (n-1,n-1) indexű eleme a 1+i komplex szám
    • köztük lineárisan interpolálva
      Vagyis egy rács, a -2-i és 1+i pontok között.
  • Ezután X legyen egy ugyanilyen méretű csupa nulla tömb.
  • k-szor végezzük el azt a műveletet, hogy X értékeit frissítsük X2+C értékeivel (elemenkénti négyzetre emelés és összeadás)
  • A visszatérési érték legyen az, hogy hol nem nagyobb a kapott számok abszolút értéke 2-nél (False, ha az adott elem nagyobb abszolút értékű, mint 2, True egyébként).

A komplex egység 1j a python-ban. Ha egy numpy tömböt ezzel megszorzunk, akkor komplex lesz.

Ha valaki meg akarja nézni, hogy hogyan néz ki az eredmény, akkor két féle képpen lehet:

  • ki tudjuk rajzolni, ha van matplotlib package-ünk: matplotlib.pyplot.imshow
  • vagy kiírhatjuk egy fájlba: numpy.savetxt("mandelbrot.txt", ... , fmt="%d")

Beküldés

A feladatokat (a math-os címetekről) küldjétek el az info1hazi@gmail.com címre (tavalyi).

Egy python fájlt mellékeljetek, amiben a szükséges függvények definiálva vannak. A megadott függvényeken kívül tesztelő kódnak, print-nek vagy másnak nem kell benne lennie.

A fájl neve legyen

  info2_HF7_<felhasználói név>.py

A levél tárgya

  info2_HF7_<felhasználói név>
Személyes eszközök