szó jelentését keresi. A DICTIOUS-ban nem csak a
szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a
szót egyes és többes számban mondani. Minden, amit a
szóról tudni kell, itt található. A
szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. A
és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.
Kiejtés
Főnév
Neville-algoritmus
- (matematika)
Neville-algoritmus
A **Neville-algoritmus** egy numerikus interpolációs módszer, amely segítségével adott adatpontok alapján egy közelítő polinomot határozunk meg. A módszer rekurzívan számítja ki az interpoláló polinomot, amely áthalad az adatpontokon, és hatékony megoldást nyújt interpolációs problémákra.
Probléma
Adottak az \( n+1 \) pontok:
ahol . A cél egy interpoláló polinom meghatározása, amelyre:
Neville-algoritmus alapja
Az interpoláló polinomot rekurzívan számítjuk:
- Indulás: Az egyes adatpontokra a polinom:
- Rekurzió: Ha az pontokon áthaladó polinom, akkor:
Ahol és kisebb fokszámú interpoláló polinomok.
- Végső polinom: Az interpolált érték a polinom -re való értéke lesz.
Pszeudokód
NEVILLE(x, xi, yi):
Input:
x - az interpolálandó érték,
xi - az \( x_i \) adatpontok listája,
yi - az \( y_i \) adatpontok listája.
Output:
y - az interpolált érték.
n = hossz(xi)
P = n x n-es mátrix, kezdetben üres
for i = 0 to n-1:
P = yi # Diagonális inicializálás
for j = 1 to n-1:
for i = 0 to n-j-1:
P = ((x - xi) * P - (x - xi) * P) / (xi - xi)
return P
Neville-algoritmus működése
1. Adatpontok inicializálása
Minden adatpontot egy-egy egyszerű polinom reprezentál:
2. Rekurzív számítás
Fokozatosan építjük fel a polinomokat, amelyek egyre több adatpontra illeszkednek. Az -edik elem az pontokon áthaladó polinom értéke.
3. Végső érték
A mátrix eleme lesz a keresett polinom értéke.
Python implementáció
def neville(x, xi, yi):
"""
Neville-algoritmus az interpolációhoz.
:param x: Az interpoláció helye.
:param xi: Az adatpontok x koordinátái.
:param yi: Az adatpontok y koordinátái.
:return: Az interpolált érték.
"""
n = len(xi)
P = * n for _ in range(n)]
# Inicializálás
for i in range(n):
P = yi
# Rekurzív számítás
for j in range(1, n):
for i in range(n - j):
P = ((x - xi) * P - (x - xi) * P) / (xi - xi)
return P
# Példa használat
xi =
yi = # y = x^2
x = 1.5
result = neville(x, xi, yi)
print(f"Interpolált érték a {x} helyen: {result}")
Példa
Bemenet
Adott adatpontok:
Interpolálandó hely:
Kimenet
A Neville-algoritmus a polinom értékét -nél:
Előnyök
- **Pontosság**: Garantáltan áthalad az összes adatponton.
- **Rugalmas**: Könnyen alkalmazható egyenlőtlenül elosztott adatpontokra.
- **Numerikus stabilitás**: Az interpoláló polinom fokozatos építése csökkenti a numerikus hibák valószínűségét.
Hátrányok
- **Időigény**: Az algoritmus bonyolultságú, ami nagy adatpontok esetén lassabb.
- **Nem adaptív**: Ha új adatpontokat adunk hozzá, az algoritmust újra kell futtatni.
- **Rossz extrapoláció**: Csak interpolációra alkalmas, extrapoláció esetén pontatlanság léphet fel.
Alkalmazások
- **Numerikus analízis**: Függvények értékeinek közelítése ismert adatpontok alapján.
- **Fizikai szimulációk**: Ismeretlen függvények numerikus megközelítése.
- **Adatmodellezés**: Kísérleti adatokhoz illeszkedő polinom meghatározása.
A **Neville-algoritmus** hatékony interpolációs módszer, amelyet akkor érdemes használni, ha az adatpontok száma kicsi és pontos interpolációra van szükség.
Fordítások