Gauss-Newton-módszer
Kiejtés
- IPA: [ ˈɡɒuʃnɛftomːoːt͡sːɛr]
Főnév
Gauss-Newton-módszer (matematika, algoritmusok) A **Gauss-Newton-módszer** egy iteratív algoritmus, amelyet nemlineáris legkisebb négyzetek problémáinak megoldására használnak. A módszer a Newton-módszer egy leegyszerűsített változata, amely nemlineáris regresszió vagy más optimalizációs problémák során hasznos.
---
Matematikai alapok
Ha egy nemlineáris függvényt szeretnénk illeszteni az adatokhoz, az optimalizálandó célfüggvény a reziduális négyzetösszeg:
ahol a a reziduális függvény.
A Gauss-Newton-módszer iterációval közelíti meg a minimumot:
- Lineáris közelítést alkalmazunk környezetében.
- A Jacobian-mátrixot ( ) használjuk az irány meghatározásához.
- Az iterációs szabály a következő:
ahol: * a Jacobian-mátrix, amely tartalmazza az -beli parciális deriváltakat.
---
Python-implementáció
Az alábbi példában bemutatjuk, hogyan használható a Gauss-Newton-módszer nemlineáris illesztéshez.
Példa: Nemlineáris függvényillesztés
import numpy as np
def gauss_newton(f, jacobian, x0, y, max_iter=100, tol=1e-6):
"""
Gauss-Newton algoritmus a legkisebb négyzetes illesztéshez.
:param f: Nemlineáris függvény
:param jacobian: Jacobian-mátrix (parciális deriváltak)
:param x0: Kezdő paraméterek
:param y: Megfigyelt adatok
:param max_iter: Iterációk maximális száma
:param tol: Tolerancia a konvergenciához
:return: Optimalizált paraméterek
"""
x = x0
for i in range(max_iter):
# Reziduális számítás
r = y - f(x)
# Jacobian számítás
J = jacobian(x)
# Gauss-Newton lépés
delta = np.linalg.lstsq(J.T @ J, J.T @ r, rcond=None)[0]
x_new = x + delta
# Konvergencia ellenőrzése
if np.linalg.norm(delta) < tol:
break
x = x_new
return x
# Példa függvény és Jacobian
def f(x):
"""Nemlineáris modell: y = a * e^(b * t)"""
t = np.linspace(0, 10, len(y_data))
return x[0] * np.exp(x[1] * t)
def jacobian(x):
"""Jacobian mátrix számítása"""
t = np.linspace(0, 10, len(y_data))
J = np.zeros((len(t), len(x)))
J[:, 0] = np.exp(x[1] * t) # Parciális derivált x[0] szerint
J[:, 1] = x[0] * t * np.exp(x[1] * t) # Parciális derivált x[1] szerint
return J
# Példa adatok
t_data = np.linspace(0, 10, 15)
y_data = 3 * np.exp(0.5 * t_data) + np.random.normal(0, 0.5, len(t_data))
# Kezdeti becslések
x0 = np.array([1.0, 0.1])
# Optimalizáció
x_opt = gauss_newton(f, jacobian, x0, y_data)
print("Optimalizált paraméterek:", x_opt)
---
Kimenet
Az optimalizált paraméterek és lesznek, amelyek a legjobban illeszkednek az modellhez.
---
Fontos jellemzők
- Gyors konvergencia: A módszer gyorsan konvergál, ha az induló becslés közel van a valódi megoldáshoz.
- Limitáció: Nem garantált a globális minimum megtalálása, és a Jacobian-invertálás érzékeny lehet a rosszul kondicionált problémákra.
- Alkalmazási terület: Használják nemlineáris regresszióban, mérnöki problémákban és adatillesztési feladatokban.
Fordítások
Tartalom
- Gauss-Newton-módszer - Értelmező szótár (MEK)
- Gauss-Newton-módszer - Etimológiai szótár (UMIL)
- Gauss-Newton-módszer - Szótár.net (hu-hu)
- Gauss-Newton-módszer - DeepL (hu-de)
- Gauss-Newton-módszer - Яндекс (hu-ru)
- Gauss-Newton-módszer - Google (hu-en)
- Gauss-Newton-módszer - Helyesírási szótár (MTA)
- Gauss-Newton-módszer - Wikidata
- Gauss-Newton-módszer - Wikipédia (magyar)