Kiszámítása a polinom több változó
A legáltalánosabb formája az elektromos polinom több változó felírható az alábbi képlet
Azaz, a polinom magában foglalja az összes egytagú, amelyben az összeg fok változók nem haladja meg a polinomfok. Tekintsük a számítás polinom algoritmusok és szerezzen egy sor kiválasztott értékek egytagú belépő polinom.
Számolja minden egytagú egyenként - nem egy jó ötlet. Ha úgy gondolja, a híres könyv Numerikus receptek. amikor a gépek átveszik a világ, az emberek, akik vétkesek ilyen megcsúfolása a számítógép azonnal végrehajtható.
Valójában minden egytagú rend k lehet kiszámítani egyike szerinti egytagú érdekében K -1 használatával csak egy szorzás. Például az első sorrendű egytagú szorzatából nulladrendű egytagú (egység) az egyik változók. Megszorozzuk ismét mindegyik egytagú az egyik változó, megkapjuk az összes lehetséges egytagú másodrendű stb Egytagú k-1 -edik érdekében
szorozva az egyik változó és szerezzen k egytagú sorrendben.
Mivel azonban a másodrendű probléma van: az egytagú kétszer megkapja. Valójában, sok variánsai permutációk a tényezők a (2) képlet, annyiszor, és fogadja az egyes egytagú. Gyártja ezeket az ismétlődő számítások egyetértenek, összes sorozat számítási egytagú (2) válassza ki, amelyben az indexek változók növekvő sorrendben. Ahhoz, hogy ezt elérjük, szaporodnak az egytagú csak azokat, amelyek nem tartalmaznak változók száma nagyobb, mint i. Ezután meg kell szorozni, hogy csak azok, amelyek hatáskörrel - csak tartalmú és stb
Ebben a megközelítésben minden egytagú ismeretében kiszámítható sokan mások. Képzés szorozva az összes F változók. Egytagú, és tartalmaz minden változót kezdve. Stb A számítási eljárás is képviselteti magát egy fa ilyen esetben:
Ábra. 1. A folyamat számítási egytagú többváltozós polinom képviselt, mint egy fa. Minden egyes csomópont felel meg az egytagú, és minden éle - szorzás változók közül az egyik.
A számítási eljárás képviselt, mint a fa legtermészetesebben megvalósítható egy rekurzív algoritmust. A legegyszerűbb mód egy rekurzív eljárás kiszámítja egytagú okoz magának számítani minden gyermek egytagú. Egy ilyen eljárás a következő:
Összesen egytagú a polinom n-edrendű F változók lehet képlettel számítjuk ki:
Számítási tömb egytagú keresztül a fenti eljárás a következő:
Ha a számítás szükséges, hogy kiad egy csomó időt a különböző értékek x. hogy gyorsítsa fel a munkát, hogy megszabaduljon a rekurziót. Egy egyszerű módja ennek az, hogy a rekurzív fa egyszer és ugyanabban az időben minden egytagú egytagú emlékszem a szám a szülő és változó számú, amelyhez meg kell szorozni. Akkor ezt az információt ki lehet számítani az egytagú nélkül rekurziót.
A megfelelő kód így néz ki:
Calling ezt az eljárást az alábbiak szerint végezzük:
A kiszámítása az egytagú tömb minden egyes értéke x az alábbiak szerint:
A gyakorlat azt mutatja, hogy az ilyen nem-rekurzív számítási sokkal gyorsabb, mint a rekurzív.
Most viszont, hogy a számítás polinom is. Ez a számítás fog derülni bejárása facsomópontok azok egytagú szorozva a megfelelő együtthatók és összegzés. Ez elvezet minket a következő képlet szerint:
Itt az indexek - fa ága szám, amellyel eljutunk a megfelelő egytagú.
Ez a képlet általánosítása többdimenziós eset jól ismert Horner rendszer kiszámításához egydimenziós polinom:
Funkció generáló számítási képlet szerinti (4) az alábbiakban mutatjuk be:
Hogy elrejtse a segédprogramot az általános paraméterek a MN, mélység, i_depth kell ezt a funkciót a másik után: