Finomít a spline a mathcadban

A MathCAD beágyazása

Ellentétben egy interpoláló spline-vel. áthaladó ismert pont i, fi> és már megvalósított MathCAD segítségével beépített funkciók és interpolált CSPLINE. A kiegyenlítő spline nem szükséges a méréseken átmenni. De ez sokkal rugalmasabb, és képes, ha konfigurálva, hogy kompenzálja a „rendellenes” dimenziók vagy egyszerűen „pótolni” az adatokat jobb, mint a OLS (vagy pontosabban, jobb - egy „kitörés” fi nem „pull” felfelé vagy lefelé az egész simító spline, ellentétben a polinom MLS teljesítmény alapú).

A probléma megfogalmazása a következő: tegyük fel, hogy az x1 rácson

ahol h = x-xi a legközelebbi rács csomóponttól való távolság, c3, i. c2, i. c1, i. i = 1, 2. N-1 a kiegyenlítő spline együtthatója az i-es intervallumon az x tengely mentén. és yi az xi rács csomópontokon számított kiegyenlítő spline értékei. i = 1, 2. N.

Az interpolációs spline-hez képest a simító spline-együtthatók kiszámításának problémája sokkal időigényesebb, és figyelembe veszi a simítás mértékét befolyásoló további paramétereket:
  • egy valós tömb df hosszúságú N. dfi> 0. a súlyokat az interpolációs csomópontokon állítja be, annál nagyobb a csomópont súlya, annál erősebb lesz a közelben lévő funkció. A visszaállított függőségre vonatkozó további a priori információk hiányában a dfi értékeit egyenlővé lehet tenni, például 1-es értékkel;
  • A "globális" simítási paraméter a sm valódi értéke (más néven α), sm> 0. meghatározza az adatok kiegyenlítésének általános mértékét - növekedésével nő.

Általánosságban elmondható, hogy ezeknek a paramétereknek a kiválasztása külön feladat.

A javasolt megoldásnál egy simítási spline kialakítása két funkcióval történik.

SmoothSpline funkció (x, f, DF, SM) visszaadja egy objektum, amely egy sor együtthatók c a simító spline dimenziója 3 * (N-1) és y vektor értékeit a simítási spline rácsponti (dimenzió N). A funkciókódot itt nem adják meg a bulkiness - egy és fél oldal. A csatolt fájl letöltésével láthatja, de a következő funkciót hívhatja:

Finomít a spline a mathcadban

hívja a SmoothSpline funkciót

Vegye figyelembe, hogy a harmadik dimenzió „rendkívül” és a többi értékek a F (xi) = xi 2. Ennek megfelelően a felfújt df3 súlya (a továbbiakban, az elemek a mátrixok és vektorok vannak számozva az egyik, így MathCAD fájl kezdődik meghatározásával egy olyan rendszer változó ORIGIN: = 1).

Az is látható, hogy jó (az N kis értékei esetén) a sm smootion paraméter értékének kiválasztása.

A függvény a forrásadatok hibáira reagál - ilyen például a kettőnél rövidebb rácscsomópontok száma és a szigorú rendelés hiánya a xi értékek növelésével.

A függvény továbbá csak a 7 * (N + 2) méretű szolgáltatás valós tömbjét használja. azaz eléggé gazdaságos a memóriából.

A tesztet és annak eredményét az MSU Research Computing Center anyagaival ellenőrizték, minden egybeesett :)

A második funkció - GetSmoothSpline (x, dx, y, c) részt vesz az építőiparban az ismert simító spline együttható mátrix és a C értékeket a spline yi xi rács csomópontok. x a függvényen belül változik X1 xlength (x) dx egy lépést. A függvény egy mátrix két oszlop vektorok - tartalmazza az első érték az érvelés a második - a számított értékek a spline. Használja a funkciót, majd grafikusan megjeleníti a simítás eredményeit, például:

Finomít a spline a mathcadban

hívja a GetSmoothSpline funkciót

A második példa mutatja, hogy a simító spline képes megbirkózni a „abnormális” mérések adódó tevékenysége a nép ellenségei az olyan hibák, és nem fér bele a „big picture”.

Az adatok ebben az időben programozottan fognak generálni, egyszerűen eltávolítva őket egy szinuszos részből, majd néhány dimenzió nagyon eltér a többiektől:

Finomít a spline a mathcadban

adatok "anomális" mérésekkel

Így sikerült a két homoszexuális "kibocsátás" simító spline:

Finomít a spline a mathcadban

adatfeldolgozás rendellenes mérésekkel, simító spline

Látható, hogy szinte észre sem vette az eltéréseket.

Nos, még jobbat akarsz - indokolni a csomópontok súlyát és a simító paramétert.

Természetesen a simítás spline nem mindenható - például, ha „peremelchit” rács és túlzásba a számát „anomáliák”, mehet a „házal”, akkor az ilyen adatokat feldolgozó kellene vonni a gép képes figyelembe venni a minőségi eleve korlátok ( „de ebben az intervallumban függvénynek növelnie kell! "). Ilyen eszköz ismert leíró görbék, de cikket róluk, nem írtam sokáig, talán soha :)