Numerikus módszerek Python nyelven érthetően

Ez a könyv azoknak szól, akik numerikus matematikai feladataik megoldására keresnek konkrét, azonnal alkalmazható, további neten történő keresgélést, utánajárást nem igénylő megoldásokat.  A könyv, amelyet az olvasó kezében tart, nem Python és nem numerikus matematikai tankönyv, hanem numerikus matematikai eljárásokat tartalmazó kézikönyv.

Reméljük, hogy haszonnal forgatják mindazok, akik a Python nyelvi környezetben szeretnék a legkülönfélébb numerikus matematikai, mérési-adatfeldolgozási feladataikat megoldani, a lineáris egyenletrendszerektől, a mérési adatok kiértékelésén keresztül, a differenciálegyenletek megoldásáig, akár mindennemű Python nyelvi, programozási ismeret nélkül, egyszerűen.

Photo by Cliff Roles

Tekler Vilmos
a könyv írója

Programtervező matematikus, számos kutatási projekten dolgozott, majd „pályaelhagyóként” a kétszintű bankrendszer létrehozását követően az Állami Fejlesztési Intézet vezérigazgató helyetteseként vett részt a Magyar Államkincstár létrehozásában és annak informatikai igazgatójaként tevékenykedett.

Számos területen vezetett informatikai projekteket, 2010-ben közigazgatási informatikáért felelős helyettes államtitkár, de fenti munkája közben is mindig igyekezett időt szakítva kedvenc témakörében – a gáz-folyadék kromatográfiában – egy- egy kutatásban részt vállalni.

1996-óta a Szervezési és Vezetési Tudományos Társaság elnökségének tagja, jelenleg a szervezet elnöke.

Szerzőről

Photo by Cliff Roles

Kinek szól a könyv?

  • akik munkájuk, tanulmányaik során a lehető legegyszerűbben ( például „parancs” módban), csak használni szeretnének különböző – akár mérési adat feldolgozási - numerikus módszereket
  • akik tanulják a numerikus matematika módszereit és – saját programok készítése nélkül - a gyakorlatban is szeretnék látni, kipróbálni az algoritmusok működését, azok számára minden egyes közölt eljárás teljes kódja megtalálható a könyvben, és le is tölthető
  • akik saját maguk szeretnének numerikus megoldásokat igénylő programokat írni és szükségük van kész, beépíthető megoldásokra, amely során támaszkodhatnak a közölt kódokra
  • akik ismerkednek – vagy használják is - a Python nyelvet, és ezen a nyelven keresztül szeretnének bepillantást nyerni a numerikus matematikai eljárásokba

Miért Python:

  • mert mindenki számára egyszerűen és ingyenesen elérhető (www.python.org)
  • mert szinte minden operációs rendszeren – régebbi verziókon is - futtatható
  • mert könnyen tanulható és egyszerűen használható
  • mert script nyelvként nincs szükség fordításra, ezáltal nagyon gyors algoritmusfejlesztést tesz lehetővé.

Kedvcsináló

Előszó

Ha a programozási nyelveknek lenne „slágerlistájuk”, akkor az elmúlt évek listavezetője minden bizonnyal a Python lenne. Guido van Rossum 1991 februárjában tette közzé a Python első változatát (0.9.0 verzió), amely az eltelt 28 évben töretlen és egyre nagyobb népszerűségnek örvend, amelyet elsősorban nagyon magas szintje, könnyű tanulhatósága és hallatlan eleganciájának köszönhet. Szinte minden operációs rendszer „alapból” tartalmazza a Python valamelyik verzióját és szinte bármilyen (régi) gépre található olyan változat, amely futtatható rajta. Numerikus matematikai megoldásokra ma is mint sok, sok évszázada rengeteg területen van szükség. Mi sem természetesebb tehát mint numerikus matematikai algoritmusokat Python környezetben megvalósítani. A Pyton tanulásához, alkalmazásához számtalan könyv, dokumentáció, függvénykönyvtár (modul) érhető el a neten. Mi szükség van akkor erre a „sokadik” könyvre, eljárásgyűjteményre?

Igen, igaz, hogy a neten hosszabb, rövidebb (inkább hosszabb) kutakodás után rengeteg könyv, leírás, modul (függvénykönyvtár, pl. a numpy) érhető el. De ez az információdömping már néha zavaró, főleg a kezdők számára. Néhány modul nem kompatibilis egymással, nem fut a rendelkezésre álló környezetben, vajon melyik leírásban, hozzászólásban kapom meg az aktuális kérdésemre a konkrét, azonnal használható – további kutakodást nem igénylő – választ? Mit tegyen egy Pythonban kezdő - egy hallgató, egy idősebb mérnök, közgazdász, egy amatőrcsillagász és sor folytatható -  aki segédtudományként tanulja, alkalmazza, alkalmazni szeretné a numerikus matematikát és nem célja professzionális Python scriptek készítése és nem akar órákat, napokat egy kérdés megválaszolása érdekében a neten szörfölni? Mit tegyen az, az érdeklődő, aki akár csak egy adott probléma numerikus megoldásához, egy algoritmus kipróbálásához, tanulmányozásához szintén nem akar órákat a neten tölteni azt vizsgálva, hogy a rendelkezésre álló Python környezetnek melyik függvénykönyvtár felel meg a legjobban, vagy adottságai függvényében mit, honnan, kell letöltenie, ha egyszerűen csak az éppen rendelkezésre álló környezetben használni szeretne egy algoritmus?

Ez a könyv azoknak szól, akik numerikus matematikai feladataik megoldására keresnek konkrét, azonnal alkalmazható, további neten történő keresgélést, utánajárást nem igénylő megoldásokat.  A könyv, amelyet az olvasó kezében tart, nem Python és nem numerikus matematikai tankönyv, hanem numerikus matematikai eljárásokat tartalmazó kézikönyv. Reméljük, hogy haszonnal forgatják mindazok, akik a Python nyelvi környezetben szeretnék a legkülönfélébb numerikus matematikai, mérési-adatfeldolgozási feladataikat megoldani, a lineáris egyenletrendszerektől, a mérési adatok kiértékelésén keresztül, a differenciálegyenletek megoldásáig, akár mindennemű Python nyelvi, programozási ismeret nélkül, egyszerűen.

Olvass bele

A könyvben található függvények jegyzéke

Olvass bele

BEVEZETÉS

Kiknek szól

Mindenkinek, aki valamilyen okból érdeklődik a numerikus matematikai eljárások iránt, tanulmányai, munkája során szüksége van numerikus matematikai megoldásokra. Ugyanakkor a könyv nem numerikus matematikai és nem Python tankönyv, hanem egy kézikönyv, amely a Python nyelv használatával mutatja be a numerikus matematika leggyakrabban használt algoritmusait, eljárásait. A könyv zárt egységet alkot abban az értelemben, hogy a legtöbb numerikus matematikai eszközöket igénylő, műszaki, közgazdasági probléma pusztán a könyvben található eljárások (függvények) segítségével megoldható, adott esetben mindennemű programozási ismeret nélkül is. Feltételezzük az alapvető numerikus matematikai ismereteket, de legalább az adott probléma megoldásához szükséges minimális háttér ismeretét, pl. annak felismerését, hogy milyen eszközökre (egy lineáris egyenletrendszer vagy egy nemlineáris egyenlet megoldására, stb.) van szükség. Ugyanakkor konkrét problémák (pl. egy lineáris egyenletrendszer) megoldása a matematikai háttér mélyebb ismerete nélkül, az eljárások értelemszerű használatával megoldhatók.

Miért a Python

A Python egy mindenki számára könnyen elérhető, manapság a legelterjedtebb script nyelv. Használata – legalábbis az alapokat tekintve – könnyen elsajátítható és script nyelvként lényegesen könnyebben alkalmazható, mint bármilyen ismert hagyományos fordításon alapuló programnyelvé, mint pl. a C, C++ vagy a Java, hogy a korábbi programnyelvekről mint a FORTRAN vagy az Algol ne is beszéljünk. Az egyszerű használhatóság okán kiválóan alkalmas arra, hogy használatával numerikus matematikai algoritmusokat igénylő feladatok egyszerűen megoldhatók legyenek. Annak érdekében, hogy a közölt eljárások, azok alapjait jelentő algoritmusok könnyen érthetők, az olvasó számára is – szükség esetén minimális Python ismeretekkel is – módosítható legyen csak a legegyszerűbb nyelvi elemek kerültek felhasználásra. Gyakorlottabb Python használók számára talán furcsa lehet, hogy számos nagyszerű nyelvi lehetőség – mint pl. az osztályok használata – egyáltalán nem, vagy csak nagyon kevéssé, óvatosan kerültek felhasználásra. Ennek oka is a lehető legszélesebb körű használhatóság, a lehető legkönnyebb megérthetőség, a lehető legrugalmasabb tovább fejleszthetőség, továbbá a mindennemű fejlesztőkörnyezettől való lehető legnagyobb függetlenség. Ez utóbbi által az eljárások nemcsak számítógépeken, hanem okostelefonokon és táblagépeken is használhatók.  A könyv minden eljárása az IDLE környezetben került kifejlesztésre, kipróbálásra. Az IDLE a   Python „hivatalos” fejlesztői környezete, amely egyszerűen letölthető a Python hivatalos honlapjáról (www.python.org). Ezen célok okán csak a minden Python környezetben megtalálható math és a legtöbb környezetben megtalálható Tkinter modul egyes elemei kerültek alkalmazásra. (A Tkinter modul csak a grafikus megjelenítés során került felhasználásra, így esetleges hiánya az egyes algoritmusok használhatóságát nem érinti.)

Mi található a könyvben

  1. Deklarációs függvények valós és komplex elemeket tartalmazó vektorok és mátrixok létrehozására
  2. Vektorok és mátrixok formázott oszlop, illetve táblázat formában történő megjelenítése
  3. Vektorok és mátrixok kezelését (másolását, feldarabolását és összefűzését) segítő függvények
  4. Adatok ki- és bevitelét (ideértve adatok billentyűzetről történő rögzítését is) végző függvények
  5. Adatok grafikus megjelenítése
  6. Alapvető vektor és mátrix műveletek (vektorok, mátrixok összeadása, szorzása stb.)
  7. Lineáris egyenletek megoldása és speciális mátrixműveletek (pl. mátrixok hatványozása)
  8. Mérési adatok feldolgozása (adatsorok simítása, legkisebb négyzetek módszerének alkalmazását lehetővé tevő regressziós modellek összeállítása)
  9. Interpoláció
  10. Numerikus deriválás és integrálás
  11. Polinom műveletek
  12. Egyváltozós valós, nemlineáris egyenletek megoldása
  13. Közönséges differenciálegyenletek és egyenletrendszerek megoldása és speciális függvények

Minden eljárás (Python függvény) hátterének, matematikai alapjának és használatának példákon keresztül történő bemutatása és minden egyes függvény, számos a megértést elősegítő megjegyzéssel ellátott, kódja.

Hogyan használjuk a könyvet

Amint már többször említettük a könyv egy kézikönyv, tehát nem kell az első betűtől az utolsóig elolvasni ahhoz, hogy egy – egy feladat megoldására megtaláljuk a megfelelő módszert. Komplex problémák numerikus problémák megoldása is elvégezhető mindennemű programozási ismeret nélkül is, egyszerűen csak a közölt függvényeknek – mint parancsoknak – a használatával. A konkrét numerikus matematikai algoritmusokat megvalósító Python függvényeken kívül számos olyan függvény is található, amelyek az algoritmusok használatához szükséges háttérfeladatokat (adatok ki- és bevitele, grafikus megjelenítés, mátrixok, vektorok darabolása és összefűzése) végzik. A függvények felsorolásánál ezek külön csoportba kerültek, de ugyanakkor tárgyalásuk nem egyszerre, hanem annak a fejezetnek a keretében történik, ahol először felhasználásra kerülnek, illetve ahol használatuk szükséges vagy ajánlott. Például az adatok beolvasását és az adatmodellek összeállítását végző függvényeket a Mérési adatok feldolgozásáról szóló fejezetben tárgyaljuk, de természetesen felhasználhatók mátrixok, lineáris egyenletrendszerek vagy a SIMPLEX módszer kényszerítő feltételeinek összeállításánál is. Minden fejezet egy, egy nagytémakört – és az előbbiek szerint a szükséges kisegítő függvényeket – foglal magában. Az egyes fejezetek bevezetőjében az adott fejezetben található eljárások matematikai hátterének ismertetése található. Amennyiben valaki csak egy probléma megoldását megvalósító eljárásra kíváncsi akkor az elméleti bevezető átugorható, az esetek többségében maguk az eljárások még közvetlenül alkalmazhatók. Például egy többváltozós lineáris egyenletrendszer gyakorlati megoldásának nem akadálya a megoldást szolgáltató Gauss-Jordan algoritmus ismeretének hiánya. Ugyanakkor fontosnak tartottuk a matematikai háttérnek legalább vázlatos ismertetését azon olvasók részére, akik érdeklődnek a matematikai háttér iránt. A matematikai háttér ismerete elsősorban akkor fontos, ha komplexebb feladat megoldásáról van szó vagy egy algoritmust az olvasó saját programjában szeretne felhasználni, illetve azt tovább fejleszteni vagy tanulmányaival, korábbi ismereteivel szeretné összekötni a közölt eljárásokat. Az egyes numerikus eljárások, algoritmusok sokféleképpen vezethetők be, ugyanannak az eljárásnak a bevezetése különböző szakirodalmakban különböző módokon történhet. Igyekeztünk mindenhol az adott helyzetben legkézenfekvőbb bevezetést követni, de ettől az Olvasó még más matematikai megközelítéssel is találkozhat. Számos szakirodalmat ajánlunk a matematikai hátteret behatóbban tanulmányozni kívánó olvasók részére. Az egyes fejezeteknél külön is felhívjuk a figyelmet a mélyebb matematikai ismereteket tartalmazó részek átugrásának lehetőségére, mert az eljárások akkor is használhatók, ha az olvasó nincs tisztában annak matematikai hátterével, illetve nem is akarja azt részleteiben megismerni csak használni, pl. egy lineáris egyenletrendszer megoldása akkor is megtehető, ha valaki nem ismeri vagy nem is akarja megismerni a Gauss féle kiküszöbölési algoritmust. A közölt eljárások kiválasztásának legfontosabb szempontja a lehető legszélesebb érdeklődési kör lefedése volt. Ezért szerepelnek olyan egyszerű függvények is, mint pl. két mátrix összeadása vagy szorzása, de kerültek be olyan eljárások, teljes programok, mint pl. a SIMPLEX módszer vagy egy széleskörben felhasználható egy- és többdimenziós, lineáris- és nem lineáris regresszió. A könyvben található eljárások önállóan pl. az IDLE használatán keresztülparancs módban vagy saját függvényekbe beépítve is használhatók. Mind a két módszerre mutatunk példát. A függvények többségét önálló – parancsmódban – példákon mutatjuk be, de összetetteb feladatok megoldására is közlünk tesztprogramokat.

A függvények és változók elnevezésében eltértünk a Python ma megszokott jelölésrendszerétől és egy, a numerikus eljárásoknál bevett módszert követtünk. A függvények neve mindig a függvény által érintett témakörre utal, amelyet kisbetűvel írtunk, ezt követi a függvény neve, amely nagybetűvel kezdődik. Pl. a mátrixok szorzására vonatkozó eljárás neve matrMult, utalva, hogy egy mátrix műveletről – matr – és a szorzásról – Mult - van szó. Minden esetben igyekeztünk olyan viszonylag rövid, könnyen megjegyezhető, de beszédes, informatív elnevezéseket használni, amely lehetőség szerint különböznek és így nem összekeverhetők más, az interneten hozzáférhető függvénykönyvtárakban (modulokban) található függvények elnevezésével. A függvények elnevezése általában angol nyelven történt és szándékunk szerint hasonlít az ilyen témával foglalkozó szakkönyvekben található megnevezésekhez. A numerikus matematikai megoldások, algoritmusok többsége nem mai eredetű, hiszen gyakorlati feladatok megoldására mindig is szükség volt. A matematika szinte mindennapi, gyakorlati alkalmazását az analízis – differenciál- és integrálszámítás – felfedezése, valamint a korszerű algebra (mátrixok, determinánsok, polinomok elméletének) kidolgozása tette lehetővé. A matematika gyakorlati alkalmazásával, konkrét feladatok numerikus megoldásával a legnagyobb matematikusok és fizikusok is foglalkoztak. Így a legismertebb, leggyakrabban alkalmazott algoritmusok között  Newton, Leibniz, Poisson, Fourier vagy éppen a matematika óriásaként emlegetett Gauss neve is gyakran előfordul.

Az eljárások, függvények alkalmazását bőséges példaanyagon keresztül mutatjuk be, amelyek egy része valós adatokon, valós problémák megoldását mutatja be. A könyvet megvásárlók számára lehetőség van a teljes függvénykönyvtár, a tesztállományok és tesztprogramok letöltésére is.

Az egyes algoritmusok ismertetése azonos szerkezetben történik az alábbiak szerint:

Függvény (eljárás) neve

Leírás: A függvény által végzett feladat, megvalósított algoritmus leírása, amelyre szükség szerint hivatkozik

Alkalmazás: A bemenő adatok és visszaadott értékek ismertetése.

Függőségek: Annak érdekében, hogy az egyes függvények használatát, más programokba történő beillesztését elősegítsük, megadjuk az adott eljárásban használt azon függvényeket, amelyek nem a Python nyelvi alapjaiban fordulnak elő.

Példák az alkalmazásra
Bőséges példaanyagot mutatunk az egyes eljárások használatára, amely alapján bárki képes akár bonyolult feladat megoldására is mindennemű Python nyelvi, programozási ismeret nélkül is.

Kód: Az adott eljárás teljes kódja. A kódokat igyekeztünk a működés megértését elősegítő bőséges megjegyzésekkel ellátni. Természetesen, ha valaki közvetlenül valamely fejlesztőrendszerbe közvetlen begépeléssel szeretné az eljárásokat használni, akkor a magyarázatokat elhagyhatja. A letölthető függvénykódok általában már kevesebb megjegyzést tartalmaznak.

Deklarációs függvények

vectNULLn elemű 0 értékű elemeket tartalmazó vektor létrehozása
matrNULLn sorból és m oszlopból álló 0 értékű elemeket tartalmazó mátrix létrehozása
DIMEgy- és kétdimenziós valós tömb (vektor vagy mátrix) létrehozása, adott értékű elemekkel történő feltöltése
COMPLEXEgy és kétdimenziós komplex tömb (vektor vagy mátrix) létrehozása, adott értékű elemekkel történő feltöltése

 

 

Tömbök (vektorok és mátrixok) kezelésével összefüggő függvények

vectPrintVektor elemeinek az „fstr” stringben megadott formátum szerinti nyomtatása
matrPrintAz F mátrix elemeinek az „fstr” stringben megadott formátumú nyomtatása
mPrintVektor vagy mátrix elemeinek, az „fstr” stringben megadott formátumú nyomtatása
vectCopyVektor másolása egy másik, új vektorba
matrCopyMátrix másolása egy másik, új mátrixba
mCopyMátrix vagy vektor másolása egy másik új vektorba vagy mátrixba
mdRowVektor (adatlista) egy tartományának kivágása
mdColEgy mátrixból adott indexű oszlopok leválogatása. Mérési adatok feldolgozásánál használt fontos függvény. Segítségével lehet egy adatmátrixból a függő- és függetlenváltozókat kiválasztani.
vectMoveVektornak egy mátrix sorába vagy oszlopába másolása
mConcatVektorok és/vagy mátrixok összefűzése
vectShiftVektor elemeinek n pozícióval történő jobbra vagy balra léptetése
sgnElőjelfüggvény

Alapvető adatkezelési függvények

mdInputMérési adatok beolvasása billentyűzetről
mdSaveMérési adatok mentése
mdLoadMérési adatok betöltése
mdReadCSVcsv file beolvasása

Rajzolási függvények

AxesRajzolási terület beállítása és tengelyek rajzolása
autoAxesRajzolási terület beállítása és a tengelyek automatikus felrajzolása

Az alábbi függvények az Axes -el lés autoAxes-el létrehozott objektum metódusaiként érhetők el​

dPlotAz x és y vektorokban adott függvényértékek kirajzolása
fPlotAz FNY függvény értékeinek adott függetlenváltozó értékeknél folyamatos vonallal történő felrajzolása
exportPlotRajz exportálása post script formátumban

Vektorokon és mátrixokon értelmezett műveletek

vectScalVektornak skalárral történő szorzása
matrScalMátrixnak skalárral történő szorzása
mScalEgy tömb (vektor vagy mátrix) minden elemének skalárral történő szorzása
vectAddVektorok összeadása
matrAddMátrixok összeadása
vectSubVektorok különbsége
matrSubMátrixok különbsége
mAddKét mátrix vagy vektor összege vagy különbsége. Egyesíti a vectAdd, matrAdd, vectSub, matrSub függvények által megvalósított műveleteket.
vectDotVektorok skaláris szorzata
matrMvectMátrixnak vektorral jobbról történő szorzása
matrMultMátrixok, vektorok szorzása. (vektor, vektor), (vektor, mátrix), (mátrix, mátrix) (szám, vektor) (szám, szám) szorzás
vectAbsVektor maximális abszolút értékű eleme
vectLenVektor hossza (abszolút értéke)
vectAnglKét vektor által bezárt szög
matrDiagn dimenziós diagonálmátrix létrehozása, az átlóban adott értékkel feltöltve

Speciális mátrixfüggvények

matrTransMátrix transzponálása
matrEuklMátrix abszolútértéke
matrInvMátrix inverzének meghatározása Gauss-Jordan módszerrel
matrGaussLineáris egyenletrendszer megoldása Gauss-Jordan módszerrel
matrEigenMátrix maximális sajátértékének és a hozzá tartozó sajátvektor meghatározása
matrExpMátrix hatványozása

Mérési adatok feldolgozását segítő függvények

setListEgy lista értékekkel történő feltöltése Min-től - Max-ig, Step lépésenként
evalFuncEgyváltozós függvény értékeinek kiszámítása adott független változó értékekre
evalPFuncEgyváltozós függvény értékeinek kiszámítása egy listában adott független változó értékekre
mdPolyvaln-ed fokú polinom értékének kiszámítása

Mérési adatok feldolgozása

mdBstatAlapvető statisztikai jellemzők meghatározása
mdLinfitLineáris és lineárisra visszavezethető regresszió
mdCorrcoefEgy két oszlopból álló mátrix két oszlopa közötti korrelációs együttható
mdCorrcoeffKét független listaként (vektorként) megadott változók közötti korrelációs együttható
mdPolyfitMérési adatok közelítése n-ed fokú polinommal, a legkisebb négyzetek módszerével
mdSmoothHeurisztikus simító eljárás
mdFocusMérési hibákkal terhelt pontsorozat simítása. Az mdSmooth függvénnyel használható!

Regressziós modell létrehozása, a regrModell osztály és metódusai

regrModell osztályMérési adatok közelítése linearizálható és parametrikus függvények segítségével, a legkisebb négyzetek módszerének felhasználásával

A modellben rendelkezésre álló linearizálható függvények:

 
  • polinom
  • exponenciális polinom
  • logaritmikus polinom
  • hatványfüggvény
  • racionális törtfüggvény
  • trigonometrikus polinom

A modellben rendelkezésre álló parametrikus függvények:

 
  • parametrikus polinom
  • parametrikus reciprokfüggvény
  • parametrikus trigonometrikus polinom

A modellben rendelkezésre álló többváltozós függvények:

 
  • többváltozós lineáris regresszió
  • többváltozós hatványfüggvény
  • kétváltozós polinom

Speciális függvény: Antoine függvény

A regressziós modell metódusai:

PrintEredmények nyomtatása
SaveEredmények mentése
PlotAz eredeti mérési pontok és a közelített értékek felrajzolása
findAlfaParametrikus függvények alfa paraméterének keresése
exportPlotRajz exportálása postscript formátumban

Interpoláció

interpolLagrangeLagrange interpoláció
interpolNewtonHarmadfokú Newton interpoláció
interpolAkimaAkima szemi-Spline interpoláció

Numerikus deriválás és integrálás

difFuncKifejezéssel adott függvény adott pontban vett differenciálhányadosának közelítése
difTablePontonként adott függvény adott pontban vett differenciálhányadosának közelítése
integrTrapHatározott integrál számítása trapéz módszerrel
integrSimpsHatározott integrál számítása Simpson módszerrel
integrTRPontsorozattal adott függvény integrálása trapéz módszerrel és lineáris interpolációval
integrTRLPontsorozattal adott függvény integrálása trapéz módszerrel és Lagrange interpolációval
integrTAKPontsorozattal adott függvény integrálása trapéz módszerrel és Akima interpolációval

Műveletek polinomokkal, egyváltozós, valós, nemlineáris egyenletek
numerikus megoldása

polyAddPolinomok összeadása vagy kivonása
polyMultPolinomok szorzása
polyDivPolinomok osztása
polyInfoInformáció polinom valós gyökeiről
rootBisectValós egyváltozós nemlineáris egyenlet gyökének közelítése intervallumfelezés módszerrel
rootSecantValós egyváltozós nemlineáris egyenlet gyökének közelítése érintő módszerrel
rootRegulaValós egyváltozós nemlineáris egyenlet gyökének közelítése 'regula falsi' módszerrel
rootNewtonValós egyváltozós nemlineáris egyenlet gyökének közelítése Newton módszerrel
rootAitkenValós, egyváltozós nemlineáris egyenlet gyökének közelítése Aitken iterációval

Közönséges differenciálegyenletek és egyenletrendszerek megoldása

diffEulerKözönséges differenciálegyenlet megoldása explicit Euler módszerrel
diffRungeKuttaKözönséges differenciálegyenletek megoldása Runge-Kutta módszerrel
diffABKözönséges differenciálegyenlet megoldása Adams-Bashforth prediktor-korrektor módszerrel
diffAdamsBashforthExplicit Adam-Bashforth módszer
diffMilneHammingMilne-Hamming prediktor-korrektor módszer
diffEMilneHammingDifferenciálegyenletrendszer megoldása Milne-Hamming prediktor-korrektor módszerrel

Gamma függvény és Bessel függvények

appGammaGamma függvény
approxGammaSegédfüggvény a Gamma függvény számításához
logGammalog(Gamma) függvény közelítése Lánczos módszerrel
LGammaSegédfüggvény a Gamma függvény Lánczos módszerrel történő közelítéséhez
besJElsőfajú Bessel függvények, a Gamma függvényen alapuló definíció alapján
BESJElsőfajú Bessel függvények H. Goldstein, R.M. Thaler módszerével
besYMásodfajú Bessel függvény
besYxGR4Segédfüggvény besY-hoz; x>4 eset

Vásárlás

Ez az oldal kizárólag a könyv, és a szerző bemutatására szolgál. A könyv hamarosan megvásárolható az alábbi helyeken:

  • Libri könyvesboltok
  • Líra könyvesboltok
  • Magyar Csillagászati Egyesület tagjai részére a Polaris csillagvizsgálóban

Az online rendelés az alábbi linken lehetséges:

www.katicakonyv.hu/numerikus-modszerek-python-nyelven

Mellékletek letöltése

A könyvhöz tartotó mellékletek letöltéséhez, olvassa be a könyvben szereplő, vagy az itt látható QR-kódot!

Letöltöm a mellékleteket!
qr-code