Informatika2-2017/HF7
(→mandelbrot (4p)) |
|||
27. sor: | 27. sor: | ||
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 '' | + | 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 | + | * 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 | + | * 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. |
A lap jelenlegi, 2017. május 13., 16:14-kori változata
Tartalomjegyzék |
7. házi
Í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)
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>