10.3. Egyenes illesztése – nem lineáris kényszerfeltétel

Illesszünk ismét egyenest az előbbi 4 pontra. Ebben az esetben az egyenes egyenletét ne a megszokott

(10.33)

alakban adjuk meg, hanem használjuk fel a koordinátageometriából ismert

(10.34)

alakot. Ez utóbbi alakban, az egyenes implicit megadásában szereplő nx és ny mennyiségek az egyenes normálvektorának komponensei, a c konstans abszolút értéke pedig az egyenes és az origó távolságát adja meg. (A c együttható értéke negatív is lehet, ha a normálvektor abba a térfélbe mutat, amelyik nem tartalmazza az origót.) Az itt alkalmazott implicit megadás előnye az, hogy olyan esetben is tudunk egyenest illeszteni a pontokra, ha az illeszkedő egyenes az y-tengellyel (közel) párhuzamos.

Ebben az esetben a modell felírásánál nem tételezhetjük fel a modellparaméterek zéró értékét, mivel a normálvektor egységnyi hosszúságú. Ebben az esetben felveszünk a paramétereknek valamilyen kiinduló értéket. Válasszunk olyan kiinduló paramétereket, hogy azok egy az x tengelyre eső egyenest írjanak le: nx(0) = 0 és ny(0) = 1, valamint c(0)=0.

Ezeket a paramétereket visszahelyettesíthetjük a direkt feladat (10.34) egyenletébe. Az egyenletet a megadott x-y pontpárokra alkalmazva, kapjuk a javítási egyenleteket. Az egyenletek jobb oldalán azonban nem nulla érték szerepel, ezeket a mennyiségeket tekinthetjük a tisztatag vektor elemeinek. (Vegyük észre, hogy ezek az egyes pontoknak az egyenestől mért – előjeles – távolságai.)

(10.35)

Szükségünk van az alakmátrixra, vagyis az egyes feltételi egyenleteknek a paraméterek szerinti parciális deriváltjaira. Mivel az egyenletek a paraméterek lineáris függvényei, az alakmátrixot könnyen megkapjuk az alábbi formában:

(10.36)

A kényszerfeltételünk az, hogy a normálvektor hossza egységnyi:

(10.37)

Ennek az egyenletnek a paraméterek kiinduló értékeinél vett deriváltja alkotja a C mátrixot:

(10.38)

Látszik, hogy a mátrix harmadik eleme, vagyis a kényszerfeltételi egyenletnek a c paraméter szerinti deriváltja nulla, mivel a c paraméter nem szerepel a kényszerfeltételi egyenletben.

A – jelen esetben – egy elemű w vektor értéke a (10.15) egyenlet alapján:

 

(10.39)

Ezeket a mennyiségeket felhasználva az x vektor számításához (10.26 egyenlet) kapjuk, hogy:

 nx = -1,02; ny = -7,26·1018 ; c = -5 és a korreláta: k = -0,008.  

Ezeket az értékeket hozzáadva a paraméterek kiinduló értékeihez kapjuk:

nx(1) = -1.02; ny(1) = 1; c(1) = -5. A javított paraméterértékekből látszik, hogy a normálvektor iránya már közelítőleg jó (merőleges az y = x egyenesre) de a hossza nem egységnyi. A számítást megismételjük ezeket az értékeket felhasználva. Ekkor:

 nx= 0,305; ny = -0,300; c = 1,502 és a korreláta: k = -0,00391.

Ezekkel az értékekkel megjavítva a paramétervektort kapjuk:

nx(2) = -0,714; ny(2) = 0,699; c(2) = -3,497. Ezekkel az értékekkel számolva már az egyenes normálvektora csak a hetedik tizedesjegyben tér el egységtől. Az újabb iterációs lépések már nem javítják számottevően az eredményeket, az egyenes illeszkedése nem lesz jobb. 

A fenti példa jól szemlélteti, hogy nemlineáris kényszerfeltételi egyenleteknél több iterációban találjuk meg azt a megoldást, amelynek a pontossága már megfelelő. Az első iterációs lépés a normálvektor irányát korrigálta, a második iteráció pedig a hosszát. Természetesen, ha a kiindulásnál, már egy a pontokra jobban illeszkedő egyenest leíró (-0,7; 0,7; -3,5) paraméterkombinációból indultunk volna ki, akkor egy vagy két iterációs lépés után már nem javult volna számottevően az eredmény.