12.07.2015 Aufrufe

Ausgleichs- und Interpolationsrechnung

Ausgleichs- und Interpolationsrechnung

Ausgleichs- und Interpolationsrechnung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-1<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3 <strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Die Aufgabe der <strong>Ausgleichs</strong>rechnung ist mit Hilfe einer stetigen Funktion f(x)eine bestimmte Mengevon gegebenen Datenpunkten mit einem möglichst kleinen Fehler zu beschreiben.Diese <strong>Ausgleichs</strong>funktion ist im einfachsten Fall eine lineare Funktion. Wir sprechen dann von einerlinearen Regression. Die Praxis erfordert aber oftmals nichtlineare Regressionsfunktionen, da diese dieDatenpunkte in der Regel besser ausgleichen.Die Interpolationsfunktion beschreibt mit einer stetigen Funktion eine Menge von Datenpunktenexakt. Der klassische Einsatzzweck ist das Gewinnen von Zwischenwerten zwischen den einzelnenDatenpunkten.Wir zeigen nachfolgend die Herleitung <strong>und</strong> Anwendung gebräuchlichen Regressions- <strong>und</strong>Interpolationsfunktionen. Praktische Beispiele werden mit der Tabellenkalkulation EXCELdurchgerechnet. Ebenso werden programmierte Lösungen der Verfahren in der Sprache C <strong>und</strong>fallweise als EXCEL-Funktion (Visual-Basic) entwickelt.3.1 Unterschiede <strong>Ausgleichs</strong>rechnung ´ <strong>Interpolationsrechnung</strong>Beide Begriffe werden (fälschlicherweise) oft synonym verwendet. Wir präzisieren deshalb beideBegriffe:YInterpolationsfunktion<strong>Ausgleichs</strong>funktionen:nichtlinearlinearX<strong>Ausgleichs</strong>rechnung:<strong>Interpolationsrechnung</strong>:Bestimmen einer stetigen <strong>Ausgleichs</strong>funktion f(x), die eine gegebeneMenge von n Datenpunkten (x k,y k), für k=1..n optimal annähert (Summekleinster Fehlerquadrate), in der Regel aber die Funktionswerte nichtexakt darstellen kann.Aus einer Klasse von Funktionen soll eine 'möglichst einfache'Interpolationsfunktion f(x k)=y k, k=1..n, bestimmt werden, die exaktdurch eine gegebene Menge von n Datenpunkten verläuft.Die <strong>Ausgleichs</strong>rechnung wird vorwiegend zur näherungsweisen Darstellung von Daten verwendet(Glättung). So können grosse Datenmengen mit einer einfachen stetigen Funktion beschriebenwerden, wenn auch mit einem gewissen Fehler.Mit der <strong>Interpolationsrechnung</strong> oft die Gewinnung von Zwischenwerten einer (tabellierten) Funktionf(x) bezweckt. Ferner wird die <strong>Interpolationsrechnung</strong> zur Herleitung von numerischen Verfahren (z.Bsp. numerischen Integrationsformeln) benutzt.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-2<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.2 Prinzip der <strong>Ausgleichs</strong>rechnungDie <strong>Ausgleichs</strong>rechnung bestimmt die Parameter einer Funktion, die eine Menge von gegebenenDatenpunkten optimal annähert.Prinzipiell kann die ausgleichende Funktion eine beliebige stetige Funktion sein. In der Regelbeschränkt man sich aber auf lineare Funktionen oder Polynomfunktionen niederen Grades, da diesemit wenig Aufwand zu entwickeln sind. Weniger häufig werden trigonometrische oderExponentialfunktionen verwendet. Auch Kombinationen sind möglich.Gr<strong>und</strong>sätzlich wird bei der <strong>Ausgleichs</strong>rechnung mit einer einfachen Funktion eine grössere Menge anDatenpunkten näherungsweise beschrieben. Deshalb sind im Regelfall mit <strong>Ausgleichs</strong>funktionen keineexakte Darstellung möglich.Die Güte der Näherung wird Korrelation genannt <strong>und</strong> besagt wie gut die <strong>Ausgleichs</strong>funktion dieDatenwerte approximiert. Ein Mass für die Güte der Anpassung wird durch die Summe der2 2 2Fehlerquadrate d 1 + d2+ + d n definiert. Ist sie klein ist die Anpassung gut, ist sie gross, ist dieAnpassung schlecht.Für einen linearen Ausgleich wird die Güte in der Regel mit dem Korrelationskoeffizient r xybeschrieben.Gr<strong>und</strong>sätzlich wird aber bei allen <strong>Ausgleichs</strong>verfahren die beste Näherung als diejenige bestimmt, diedie kleinste Fehlerquadratsumme q liefert:Y<strong>Ausgleichs</strong>funktion f(x)(x 3 ,y 3 )(x 5 ,y 5 )(x 6 ,y 6 )(x 7 ,y 7 )(x 1 ,y 1 )f(x 2 )(x 2 ,y 2 )(x 4 ,y 4 )nq= Â f( xi)- yii=1b g 2yi: Gegebene Datenwertef( x ): Näherungswerte der <strong>Ausgleichs</strong>funktioniBemerkung: Für Sonderanwendungen sind auch andere Kriterien möglich. Vgl. hierzu KapitelAusgleich mit relativer minimaler Fehlerquadratsumme.Präzise kann also eine <strong>Ausgleichs</strong>aufgabe so formuliert werden:.Zu einer gegebenen Menge von n Datenpunkten (x i, y i) ist aus einer vorgegebenen Klasse vonFunktionen, diejenige zu bestimmen, deren Fehlerquadratsumme minimal ist. Funktionen , welchediese Bedingung erfüllen, heissen Regressionsfunktionen.Für eine lineare <strong>Ausgleichs</strong>funktion wird daher die folgende Fehlerquadratsumme minimiert:XFehlerquadratsumme(3.1)q= q a b = ax + b-ynÂ( , ) b g 2i=1ii(3.2)Die Fehlerquadratsumme q ist hierbei von den beiden Parametern a, <strong>und</strong> b abhängig. Ziel der<strong>Ausgleichs</strong>rechnung ist das Bestimmen der Parameter a <strong>und</strong> b so, dass die Fehlerquadratsummeminimal wird.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-3<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.2.1 FunktionsklassenGr<strong>und</strong>sätzlich strebt danach, die Datenpunkte mit möglichst einfachen Funktionen zu beschreiben.Deshalb haben sich folgende Gr<strong>und</strong>funktionen (Funktionsklassen) bewährt:f ( x; ab , )= ax+ bLineare Funktionenf( x; a, b)= Exponentialfunktionenae bxf( x; a, b)= ax bPotenzfunktionen(3.3)(3.4)(3.5)Die Parameter a, b dieser drei Gr<strong>und</strong>funktionen können entweder direkt oder über eine geeigneteSubstitution mit den Formeln für die lineare <strong>Ausgleichs</strong>funktion bestimmt werden.Natürlich können <strong>Ausgleichs</strong>funktionen auch mehr als zwei Parameter besitzen. Wichtige Vertretersind :f( x; ai)= Â aixr0ira0f( x; a , b ) = a cos( ix) + b sin( ix)Âi i i ii=1Polynome vom Grad r2b g trigonometrische Polynome(3.6)(3.7)3.2.2 Lineare <strong>Ausgleichs</strong>rechnungDie lineare <strong>Ausgleichs</strong>rechnung (lineare Regression) beschreibt mit einer linearen Funktiony = ax + b ( i = 1,..., n)iieine Menge von n Datenpunkten optimal im Sinne der kleinsten Summe derFehlerquadrate:yLineare (3.8)<strong>Ausgleichs</strong>funktion(x 1 , y 1 ) d 2d n(x 2,(x n , y n )d 3(x 3 , y 3 )xDie Fehlerquadrate werden in den vorgegebenen Datenpunkten (x i, y i) als quadrierte Differenzbestimmt:b g b g2 2i i i i id = f( x )- y = ax + b- y ( i = 1,..., n)Die Fehlerquadratsumme wird dann:n nn2Â i Âb i ig Âcb i gi= 1 i= 1i=1d = f( x )- y = ax + b - yih2(3.9)(3.10)Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-5<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>ÂÂn XY - X Y 4a == ◊ 18 - 12 ◊ 5= 03 .22 2nÂX -cÂXh4◊46-122cÂYhdÂX i-cÂXhcÂXYh546b == ◊ - 1218 ◊ = 035 .22 2n X - X4◊46-12Âc hc hfi yx ( ) = 03 . x+035 .cÂÂhBemerkung:Die lineare <strong>Ausgleichs</strong>funktion kann auch über die Standardabweichung s x<strong>und</strong> Kovarianz c xybestimmtwerden. Diese Methode wird im Kapitel Statistik kurz vorgestellt.Wir kennen nun die lineare <strong>Ausgleichs</strong>funktion für die gegebenen Datenpunkte. Jedoch können wirkeine Aussage machen wie ‘gut’ die Gerade ausgleicht, d.h. die Gerade die Datenpunkte beschreibt.3.2.2.1 KorrelationskoeffizientDer (lineare) Korrelationskoeffizient r xydient zur Beurteilung des linearen Zusammenhanges von nPaaren (x i, y i). Der Korrelationskoeffizient liegt immer in [-1,1] <strong>und</strong> ist wie folgt zu interpretieren:Ist r xy=0 so sind die Werte unkorreliert, d.h. zwischen x i<strong>und</strong> y ibesteht keine lineare Beziehung. Isthingegen r xynahe bei 1 so sprechen wir von starker Korrelation. Bei r xy= 1 liegen alle Punkte auf derRegressionsgeraden.Wir definieren den Korrelationskoeffizienten:ÂcÂhcÂhn XY X Yrxy = -F 22Hn X - X IKF 2Â Â HnÂY - ÂY2c h c hIKEine Herleitung für r xywird im Kapitel Statistik ausführlich gezeigt.Korrelationskoeffizient(3.14)Beispiel:Bestimmung des linearen Korrelationskoeffizienten r xyfür die vorherige lineare Regressionsaufgabef ( x) = 03 . x + 035: .x 2 4 5 1y 2 1 2 0ÂrxyY=2= 4+ 1+ 4+ 0=9FHÂcÂhcÂhIFn XY - X Y2 2 2c h c h d4◊46-12id4◊9-5i222nÂX - ÂX KHnÂY - ÂY4 18 12 5IK = ◊ - ◊= 0. 57207...Wir interpretieren diese Zahl als mässige bis schlechte Korrelation. Gute Korrelationskoeffizientenliegen bei nahe bei 1 .Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-6<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.2.2.2 Grafische InterpretationNachfolgend einige typische Punktediagramme mit ihren zugehörigen Korrelationskoeffizienten fürverschieden verteilte Merkmalswerte X <strong>und</strong> Y:s x> s ys x= s ys x< s yYYYr=1XXXYYYr ≈ 1XXXYYY0 < r < 1XXXYYYr = 0XXXYYY-1 < r < 0XXXr ≈ -1YYYTypische Punktediagramme mit ihrenzugehörigen Korrelationskoeffizienten fürverschieden verteilte Merkmalswerte X <strong>und</strong> YXXX3.2.2.3 Algorithmus für lineare RegressionWir machen einen Entwurf für ein einfaches Programm zur linearen Regression in C. Ausgehend voneiner fiktiven Aufgabenstellung, welche eine bestimmte Menge Datenpunkte (x i, y i) liefert <strong>und</strong>beschreiben zuerst auf einer höheren Ebene die auszuführenden Tätigkeiten:Eingaben: Eingabe der Anzahl Datenpunkte n.Sukzessive Eingabe von n Wertepaaren (x i, y i).Berechnungen:Ausgaben:Für die Koeffizientenformeln müssen bestimmt werden:X , 2X , XY , Y , 2YÂ Â Â Â ÂNach dem Bestimmen dieser Summen werden a, b <strong>und</strong> r xyberechnet.Koeffizienten a, b <strong>und</strong> r xyausgeben <strong>und</strong> Programm beenden.Eine mögliche Implementierung wäre:Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-7<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>/* Lineare Regression: File: LINREG.CBestimmen der linearen Regressionsfunktion yi=axi + b <strong>und</strong> des Korellationskoeffizienten.*/Autor: Gerhard KruckerDatum: 14.8.1995Sprache: MS Visual-C V1.5 (QuickWin Application)#include #include /* Fuer sqrt() */main(){ int n; /* Aktuelle Anzahl Datenpunkte */double x, y; /* Werte des aktuellen Datenpunktes */double sx, sxx, sxy, sy, syy; /* Summenwerte */double a, b , rxy; /* Regressionskoeffizienten <strong>und</strong> Korellationskoeffizient */int i;}printf("Bestimmen der linearen Regressionsfunktion aus n Datenwertepaaren:\n""Anzahl Datenwerte (n): ");scanf("%d",&n);sx= sxx = sxy = sy = syy = 0.0; /* Summen alle Nullsetzen */for (i=1; i


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-8<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>werden kann <strong>und</strong> wie wir ohne grossen Mehraufwand die Koeffizienten über die Formeln (3.12, 3.13)bestimmen:Die Ausgangsdaten werden tabellarisch in B3:E4 aufgeführt. Sie dienen als Gr<strong>und</strong>lage für alleBerechnungen.Die Bestimmung der linearen Regressionsfunktion f(x)=ax + b erfolgt in EXCEL über separateFunktionen zur Bestimmung von Achsenabschnitt b <strong>und</strong> Steigung a. Damit werden die Zellinhalte fürdie Resultate:B7: =STEIGUNG(B4:E4;B3:E3)B8: =ACHSENABSCHNITT(B4:E4;B3:E3)B9: =KORREL(B3:E3;B4:E4)Die Berechnung ohne Standardfunktionen erfolgt analog der Berechnung im C-Programm. Wirbestimmen zuerst die Summen ÂX, ÂX 2 , ÂY, ÂY 2 , ÂXY<strong>und</strong> wenden nachher die Formeln (3.12,3.13) an. Die hierzu notwendigen Formeln zur Berechnung der Formeln:B20: =ANZAHL(B14:E14)B22: =(B20 * F18 - F14 * F16) / (B20 * F15 - F14 * F14)B23: =(F16 * F15 - F14 * F18) / (B20 * F15 - F14 * F14)B24: =(B20 * F18 - F14 * F16) / WURZEL((B20 * F15 - F14 * F14)*(B20 * F17 - F16 * F16))Beide Verfahren liefern natürlich dasselbe Resultat. Ein Blick in die Hilfestellung dieser zeigt, dass siedieselben Formeln verwenden. Trotzdem ist die Verwendung der Standardfunktion bequemer, dawesentlich weniger Rechenaufwand anfällt <strong>und</strong> dadurch auch Fehlerquellen ausgeschaltet werden.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-9<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.2.3 Exponentieller AusgleichErreichen wir mit einem linearen <strong>Ausgleichs</strong>verfahren nur einen schlechten Korrelationskoeffizientenr xy, so heisst dies nicht, dass die Datenwerte mit einer nichtlinearen <strong>Ausgleichs</strong>funktion gut korrelieren.Wenn schon zum vornherein ein nichtlinearer funktioneller Zusammenhang feststeht, ist eine lineareRegression unzweckmässig. Ein Beispiel dafür wäre die Messung von 10 Stromwerten im Bereich[0,0.8]V durch eine Diode in Vorwärtsrichtung.Der wichtigste Vertreter der nichtlinearen <strong>Ausgleichs</strong>funktion ist die exponentielle <strong>Ausgleichs</strong>funktiony=be axExponentielle<strong>Ausgleichs</strong>funktionDie Bestimmung der Parameter a <strong>und</strong> b erfolgt durch einelogarithmische Transformation. Unter der Voraussetzung, dass alle y i> 0 gilt:(3.15)axY = ln y= lnbe = a◊ x+ lnb= A◊ X + BB= lnb Æ b=eA=aX = xB(3.16)womit wir die Aufgabe in eine lineare <strong>Ausgleichs</strong>rechnung übergeführt haben: Die exponentielle<strong>Ausgleichs</strong>kurve im (x,y)-System wurde in eine lineare <strong>Ausgleichs</strong>kurve im (x, ln y)-Systemtransformiert.Nach der Transformation der y-Werte können wir das lineare System mit den bekannten Formeln(3.12, 3.13) problemlos lösen. Die erhaltenen Koeffizienten werden nachher zurück transformiert <strong>und</strong>wir erhalten die gesuchte exponentielle <strong>Ausgleichs</strong>funktion.Beispiel:Die nachfolgenden 4 Datenpunkte (x i,y i) sind durch eine exponentielle <strong>Ausgleichs</strong>kurveaxy = be ioptimal anzunähern:ix 0 2 3 4y 1 4 27 50Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-10<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.2.4 Ausgleich mit PotenzfunktionenEine weitere wichtige Klasse von nichtlinearen <strong>Ausgleichs</strong>funktionen wird durch die Potenzfunktionendargestellt:y= b◊x aUnter der Voraussetzung x i, y i> 0 können wir auch hier eine logarithmische Transformationdurchführen <strong>und</strong> wir erhalten wiederum eine lineare <strong>Ausgleichs</strong>aufgabe:(3.17)Y = ln y= alnx+ lnb= A◊ X + BB= lnb Æ b=eA=aX = lnxBPotenzartige<strong>Ausgleichs</strong>funktion(3.18)Die durch die Potenzfunktion beschriebenen Punkte im (x i, y i)-System werden durch dieTransformation über eine lineare <strong>Ausgleichs</strong>funktion im (ln x i, ln y i)-System beschrieben.Beispiel:Die nachfolgenden 4 Datenpunkte (x i,y i) sind durch eine potenzartige <strong>Ausgleichs</strong>kurveay = bx optimal anzunähern:iix 1 2 3 4y 1 4 10 153.2.5 Ausgleich mit PolynomfunktionenPrinzipiell können ausser der linearen <strong>Ausgleichs</strong>funktion auch Polynomfunktionen höheren Gradesverwendet werden. In der Regel erlauben Polynomfunktionen höheren Grades eine bessere Näherungals lineare Funktionen, jedoch wird die Berechnung der <strong>Ausgleichs</strong>funktion entsprechend aufwendiger.Das Haupteinsatzgebiet von polynomialen <strong>Ausgleichs</strong>funktionen ist die Glättung von Messwerten.Prinzipiell lässt sich durch Steigerung des Polynomgrades eine beliebig genaue <strong>Ausgleichs</strong>funktionbestimmen, bis für n Datenpunkte ein Polynom vom Grad n-1 die Funktion exakt approximiert.Zu beachten ist, dass Polynomfunktionen höheren Grades (>4) unüblich sind. Insbesondere neigensolche <strong>Ausgleichs</strong>rechnungen zu instabilen Verhalten: Die Funktion ist 'nervös', zeigt Überschwinger<strong>und</strong> ist ungeeignet für Zwischenwerte zu bestimmen (vgl. auch Kapitel "Interpolationsfunktionen").Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-11<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Gr<strong>und</strong>sätzlich ist polynomiale <strong>Ausgleichs</strong>funktion als normale Polynomfunktion vom Grad n definiert:nÂy( x)= a x = a + a x+ a x + ⋯ + a xi=0ii0 1 22nn(3.19)Diese Definition beinhaltet auch die lineare Regressionsfunktion wenn n=1 gesetzt wird.Die Bestimmung der Koeffizienten a 0,...,a nerfolgt in bekannter Weise durch Minimieren der Fehlerquadratsumme.Für eine Polynomfunktion vom Grad n lautet die Fehlerquadratsumme:m nin   i kk=1 i=0qa ( , a, …, a)= ax - y0 1FHGkIKJ2m:Anzahl Datenpunkten:Grad des <strong>Ausgleichs</strong>polynomsDie Koeffizienten a ifür eine minimale Fehlerquadratsumme werden über Nullsetzen der partiellenAbleitungen ∂ q∂a ifür i=0,..,n bestimmt.∂q∂aimÂikn= 2 x a x - y 0k=1FHGÂi=0iikkI=KJ(3.20)(3.21)Wir erhalten dann durch Auflösen der i-Summen die Normalgleichungen:ii 1i ji ni k 0  + k 1 Â+ k j Â+k n  k k0kkkkkxa + x a + + x a + + x a = xy i: ,..., n(3.22)Dies ist ein lineares Gleichungssystem mit n+1 Bestimmungsgleichungen <strong>und</strong> n+1 Unbekannten. DieUnbekannten stellen hier die Koeffizienten a 0,...,a ndar.i+jDie Koeffizientenmatrix G hat die Elemente: gij=  xki, j: 0,...,nDie Elemente des Konstantenvektor c (rechte Seite des Systems): c =  x y i: 0,...,nSomit lautet das zu lösende Gleichungssystem:G◊ a=cikkik k(3.23)(3.24)(3.25)Dieses System wird mit den bekannten Verfahren gelöst <strong>und</strong> wir erhalten als Resultat die gesuchtenPolynomkoeffizienten.Auf den Entwurf einer programmierten Lösung wird hier verzichtet. Die Implementierung ist aber an sichproblemlos. Nach dem Aufbauen der Koeffizientenmatrix wird das System mit einem geeigneten Verfahren(z.B. Gauss-Jordan) gelöst.Stattdessen wollen wir ein Beispiel mit EXCEL durchrechnen. Sicherlich ist die Tabellenkalkulation füreine direkte Rechnung nicht die erste Wahl. Sie erlaubt aber alle berechneten Werte sauber darzustellen<strong>und</strong> die Werte grafisch zu präsentieren.Im Rahmen einer Übung zeigen wir, wie man eine allgemeine EXCEL-Funktion für polynomialenAusgleich in Visual BASIC definieren kann. Diese Lösung wird aus einer Lösung in der Sprache Cabgeleitet.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-12<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Beispiel:Die nachfolgenden 5 Datenpunkte (x i,y i) sind durch ein quadratisches <strong>Ausgleichs</strong>polynomyi = a0 + a1x+a2x2 optimal anzunähern:x -2 -1 0 1 2y 0 1 3 1 1Lösen wir nun dieselbe Aufgabe mit <strong>Ausgleichs</strong>polynomen unterschiedlichen Grades, so erhalten wirfolgende Werte:deg p a 0a 1a 2a 3a 4q1 1.2 0.2 - - - 4.402 2.057 0.2 -0.429 - - 1.833 2.057 -0.083 -0.428 -0.083 - 1.734 3 -0.083 -2.458 -0.083 -0.458 0Das letzte Polynom hat exakt so viele Koeffizienten wie Datenpunkte. Dadurch kann das Polynom alleDatenpunkte (x i, y i) exakt darstellen (Fehlerquadratsumme q= 0) <strong>und</strong> ist somit ein Interpolationspolynom.Wie bereits erwähnt, spielen in der Praxis <strong>Ausgleichs</strong>polynome mit Grad > 4 kaum eine Rolle.Einerseits ist die Rechnung aufwendig, andererseits neigen Polynomfunktionen höheren Grades zumÜberschwingen. Die Überschwinger bewirken, dass die Funktion nicht mehr geeignet ist zurGewinnung von Zwischenwerten.Sollen Funktionen dennoch mit Polynomfunktionen niedrigen Grades gut ausgeglichen werden, sokann dies durch stückweise Entwicklung stetiger Polynomfunktionen geschehen (Bsp.: Spline-Funktionen, Bezier-Kurven).Hier wird das Intervall für die Berechnung aufgeteilt, so die Näherung mit mehreren Polynom-Teilfunktionen erfolgt. Jede dieser Teilfunktionen nähert eine kleine Menge von Datenpunkten ineinem Teilintervall. Über geeignete Methoden sorgt man dafür, dass die Stossstellen derTeilfunktionen glatt verlaufen.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-13<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.2.5.1 Rechenbeispiel zu polynomialer AusgleichungBestimmen Sie die <strong>Ausgleichs</strong>polynome vom Grad 2 <strong>und</strong> 3, skizzieren Sie die Interpolationspolynomeauf dem Intervall [-2,3] <strong>und</strong> bestimmen Sie die jeweiligen Fehlerquadratsummen.x -2 -1 0 1 3y 0 0.5 1.5 0.4 0Vorgehen:Wir berechnen zuerst das <strong>Ausgleichs</strong>polynom 3. Grades. Hierbei fallen auch alle notwendigen Wertezur Bestimmung des Polynoms 2. Grades an.Dabei werden die Koeffizientenmatrix erzeugt, indem die Summen gemäss (3.23) <strong>und</strong> (3.24) gebildetwerden.Anschliessend wird (mit dem Taschenrechner) die Koeffizientenmatrix invertiert <strong>und</strong> dieKoeffizienten a 0,...a 3bestimmt. Durch Einsetzen der Werte in (3.20) wird die Fehlerquadratsummebestimmt.Dasselbe wird für das Polynom 2. Grades wiederholt, wobei die bereits berechneten Grössen benutztwerden.Wir erstellen das Arbeitsblatt mit EXCEL indem wir zuerst die Vorgabedaten eintragen <strong>und</strong> nachherschrittweise die Grössen für G, c <strong>und</strong> a bestimmen:3.2.5.2 Berechnung mit benutzerdefinierten EXCEL-FunktionenWir haben gesehen, dass die Berechnung der Polynomkoeffizienten auch für ein einfaches Beispielrecht umfangreich wird.EXCEL bietet neben den eigentlichen Kalkulationsfähigkeit auch die Möglichkeit benutzerdefinierteFunktionen in Visual BASIC for Applications (VBA) zu implementieren. Diese Funktionen könnennachher wie normale EXCEL Funktionen benutzt werden.Ohne näher auf die Sprache VBA einzugehen (das folgende Beispiel sollte in grossen Teilen intuitivverständlich sein), wollen wir zeigen, wie eine Funktion zur Bestimmung der Koeffizienten für denpolynomialen Ausgleich entwickelt wird, sowie eine Funktion zur Auswertung von Polynomen nachdem Horner-Schema:Gr<strong>und</strong>lage: Formale Zusammenhänge (3.23) ,(3.24) <strong>und</strong> (3.25).Anforderungsprofil: Benutzerdefinierte Funktion in VBA mit dem Namen PolynomReg, die alsArgumente zwei Listen mit den auszugleichenden x- <strong>und</strong> y-Werte erhält, sowie denGrad des zu bestimmenden <strong>Ausgleichs</strong>polynoms. Das Resultat soll als Array mitdoppelt genauen Gleitkommazahlen retourniert werden (sog. Array-Funktion).Datentypen:Benutzerdefinierte Funktion mit dem Namen PolynomEval, die als Argumente eineListe (Array) mit den Koeffizienten a 0,..,a nerhält, sowie die auszuwertende Stelle x.Alle Daten sind doppelt genaue Gleitkommazahlen. Das Resultat wird alsFunktionswert in einer doppelt genauen Gleitkommazahl retourniert.Polynomgrad: GanzzahlDatenpunktelisten x, y: Eindimensionales Array mit doppelt genauenGleitkommazahlenAuszuwertende Stelle x: Doppelt genaue GleitkommazahlAusgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-14<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Ablaufdiagramme:PolynomReg(x;y;Polynomgrad)PolynomEval(a; x Als Doppelt)falschParameter überprüfengutPolynomgrad bestimmenKoeffizientenmatrix G aufbauenHorner-Schema durchführenKonstantenvektor c aufbauenFunktionswert retournierenMatrix G invertierena = G -1 * cRückgabe aDer Code lautet in Visual Basic for Applications:'Berechnen der Polynomkoeffizienten a0,..,an für eine polynomiale <strong>Ausgleichs</strong>funktion' n-ten Grades für m Datenpunkte.' Parameter: x = Array mit x-Werten (Anzahl: m, beliebig)'y = Array mit y-Werten (Anzahl: m, beliebig)'n = Grad des zu erzeugenden <strong>Ausgleichs</strong>polynoms'' Das Resultat wird als Funktionswert (Arrayfunktion) retourniert' Autor: Gerhard Krucker' Datum: 17.8.1995, 22. 9. 1996' Sprache: VBA for EXCEL7'Function PolynomReg(x, y, Polynomgrad)Dim AnzX, AnzY ' Anzahl x- <strong>und</strong> y-WerteDim m' Anzahl auszugleichender Datenpunkte'Dim Sxk()' Dynamisches Array fuer die Summe der Potenzen von xk 'Dim Sxkyk() ' Dynamisches Array fuer die Summe der Potenzen von xk * yk 'Dim G(), g1 ' Dynamisches Array fuer die Koeffizientenmatrix G'Dim c()' Dynamisches Array fuer den Konstantenvektor c'Dim a()' Dynamisches Array fuer die Polynomkoeffizienten a0,..,an'Dim i, j, k'File: AUSGL32.XLA'' Parameterkontrollen'If (Polynomgrad < 1) And Polynomgrad "Integer" ThenPolynomReg = CVErr(xlErrValue)Exit FunctionEnd IfAnzX = x.Count ' Anzahl Datenpunkte in den Arrays bestimmen 'AnzY = y.CountIf (AnzX AnzY) ThenPolynomReg = CVErr(xlErrValue)Exit FunctionEnd IfIf AnzX


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-15<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>' Gleichungssystem G * a = c loesen mit Matrixinversion'g1 = Application.MInverse(G)'Koeffizientenmatrix G invertieren'For i = 1 To Polynomgrad + 1'Matrixmultiplikation a = G1 * c'a(i - 1) = 0For j = 1 To Polynomgrad + 1a(i - 1) = a(i - 1) + g1(i, j) * c(j)Next jNext iPolynomReg = a'Koeffizientenvektor a0,..,an retournieren'End Function' Auswerten einer Polynomfunktion n-ten Grades an der Stelle x' Die Polynomfunktion wird mit Koeffizentenarray a0,..,an definiert <strong>und</strong> an der Stelle' x ausgewertet <strong>und</strong> als Funktionswert retourniert.' Die Berechnung erfolgt mit dem Horner-Schema.'' Autor: Gerhard Krucker' Datum: 19.8.1995, 22. 9. 1996' Sprache: VBA for EXCEL7'Function PolynomEval(a, x As Double) As DoubleDim px' Polynomfunktionswert 'Dim Polynomgrad As Integer ' Grad des Polynomes, das die Koeffizienten in a darstellen 'Dim iPolynomgrad = a.Count - 1 ' Grad des Polynoms bestimmen = Anzahl Koeffizienten-1 'px = a(Polynomgrad + 1)For i = Polynomgrad To 1 Step -1px = px * x + a(i)Next iPolynomEval = px' Funktionswert retournieren 'End FunctionDamit haben wir jetzt zwei leistungsfähige Funktionen zur Verfügung, um die Aufgabe einfach zulösen.Wir fügen die Visual Basic Funktionen in unsere Arbeitsmappe ein <strong>und</strong> können nun unter"Einfügen/Funktion /Benutzerdefiniert" auf die Funktionen über den Funktionsassistenten zugreifen.Da die Funktion PolynomReg eine sog. Arrayfunktion ist, geht die Berechnung etwas andersvonstatten als bei 'normalen' EXCEL-Funktionen:In die Zelle B9 wird direkt oder mit Hilfe des Funktionsassistenten geschrieben:B9: =PolynomReg($B$4:$F$4;$B$5:$F$5;2)Die Eingabe wird normal abgeschlossen <strong>und</strong> wir erhalten in der Zelle B9 den Koeffizienten a 0. Nunwird das Feld für die Koeffizienten a 0,..,a ndurch Selektieren der Zellen B9: D9 aufgezogen. Dann wirddie Eingabezeile mit der Formel oberhalb des Arbeitsblattes angeklickt <strong>und</strong> die Zeile mit abgeschlossen. Die restlichen Koeffizienten werden jetzt in die markiertenFelder übertragen.Für das Polynom 3. Grades ist das Vorgehen analog.Die Berechnung des Graphen kann jetzt ausserordentlich einfach mit der Funktion PolynomEvalausgeführt werden.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-16<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Besonders bequem wird die Arbeit, wenn die Funktionen als sog. XLA-Modul (EXCEL-Add-IN)erstellt werden. Dazu ist das Basic-Modul zu kompilieren (Add-In erstellen) <strong>und</strong> nachher mit demAdd-In Manager einzubinden. Dabei ist zu beachten, dass die Dateiinformation der Arbeitsmappeausgefüllt wird, da diese die Namen enthält, die nachher im Add-In-Manager erscheinen.3.2.6 Lösung überbestimmter GleichungssystemeHaben wir ein System mit mehr Gleichungen als Unbekannten, so sprechen wir von einemüberbestimmten Gleichungssystem.Für solche Systeme gibt es in der Regel keine Lösung im herkömmlichen Sinne. Vor allem dann, wennder Rang der Koeffizientenmatrix maximal ist, d.h. die Gleichungen widersprüchlich sind <strong>und</strong> dasSystem nicht reduziert werden kann. Hier wird ebenfalls eine Lösung nach der Methode der kleinstenFehlerquadratsumme bestimmt.Die erhaltene Lösung lässt sich umgangssprachlich interpretieren: 'Die Lösung passt etwa überallgleich schlecht...'3.2.6.1 Anwendung auf ein allgemeines lineares GleichungssystemDie Lösung eines überbestimmten linearen Gleichungssystems soll nach der Methode der kleinstenFehlerquadrate bestimmt werden. Wir setzen voraus, dass der Rang der Koeffizientenmatrix maximalist, d.h. keine Zeile kann durch Linearkombination von anderen Zeilen dargestellt werden. Dies istdann der Fall, wenn die Zeilen widersprüchlich sind. Wir betrachten stellvertretend für die Methodeein Beispiel.Beispiel: Man bestimme x, y als Lösung des überbestimmten linearen Gleichungssystems2x+ 3y= 1x- 4y= -92x- y= -1Die Lösung gestaltet sich in diesem Fall relativ einfach: Man bestimmt zuerst die Gr<strong>und</strong>funktionf(x,y)=z, die jeder einzelnen Zeile zugr<strong>und</strong>e liegt:f ( x, y) = z= ( ax+by)(3.26)Von dieser Funktion wird nun das Gleichungssystem für die Parameter a <strong>und</strong> b durch Nullsetzen derpartiellen Ableitungen der Fehlerquadratsumme q(a,b) bestimmt:∑( )qxy (, ) = ax+ by−z∂∂ x∂∂ y∑2∑( ax + by − z) = 2a∑( ax + by −z)2∑( ax + by − z) = 2b∑( ax + by −z)∑⎛ ⎞ ⎛ ⎞2a ab ⎛x⎞ az2 =⎜ ab b ⎟ ⎜ ⎟ y ⎜ bz⎟⎝∑∑ ⎠ ⎝ ⎠ ⎝ ∑ ⎠2∑(3.27)(3.28)Das Gleichungssystem für a, b stellt ein 'normales' lineares Gleichungssystem mit zwei Unbekanntendar, welches mit den bekannten Methoden gelöst werden kann. Wir bestimmen zuerst die Summen,Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-17<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>dann lösen wir nach a, b auf mit Hilfe einer Matrixinversion <strong>und</strong> erhalten die Resultate:Somit sind x=-1 <strong>und</strong> y=1.53846 die Lösungen des Gleichungssystems.Auf eine programmierte Lösung des Verfahrens wird hier verzichtet. Das Vorgehen ist prinzipiellgleich wie bei den anderen gezeigten Methoden. Interessant <strong>und</strong> relativ einfach wird die Lösung, wennder Algorithmus von Householder zur Lösung überbestimmter Gleichungssysteme eingesetzt wird (vgl.[3, S.101 <strong>und</strong> S.234]).3.2.6.2 Anwendung auf eine Linearkombination beliebiger reeller Funktionen.Für die <strong>Ausgleichs</strong>funktion in Form einer Linearkombination reeller FunktionennÂf( x) = bg ( x)i=1ii(3.29)wird bei einer echten <strong>Ausgleichs</strong>aufgabe m > n (mehr Punkte als Parameter) die <strong>Ausgleichs</strong>kurve nichtexakt durch die Punkte (x i,y i) verlaufen <strong>und</strong> i.a. nicht einmal einen Punkt genau treffen.Die optimale <strong>Ausgleichs</strong>funktion soll jedoch mit einem möglichst kleinen Fehler alle Punkte (x i, y i)beschreiben. Diese Forderung wird erfüllt, wenn die Summe der Fehlerquadrate minimal ist:n22b 0 ng Âb k kg  i i k kkk i=1q b ,..., b = f( x )- y = bg ( x )-yLNMOQP ÆDie Parameter b iwerden durch Nullsetzen der partiellen Ableitungen ∂ qbestimmt:∂b jAllgemein: ∂ nq L O= gj x bg i i xk ykj n∂b2  ( )  ( )-j k i QP = 0 0££= 1NMmin(3.30)(3.31)Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-18<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Dieses System kann nun in ein allgemeines lineares Gleichungssystem umgeschrieben werden. Diesesstellt die Normalgleichungen dar, das mit den bekannten Verfahren aufgelöst werden kann. Für dieNormalgleichung j wird dies:LNMOQP =n mm i  j k i k  k j ki= 0 k=1k=1b g ( x ) g ( x ) y g ( x )Beispiel:Für die <strong>Ausgleichs</strong>funktion:y= b lnx+ b cosx+b e x1 2 3erhalten wir die Fehlerquadratsumme:dx 1 k 2 k 3kkq= b lnx + b cos x + b e - yWir setzen die partiellen Ableitungen ∂ q∂bdrei Normalgleichungen:ki2m:Anzahl Datenpunkten: Anzahl Gleichungenj: 0..n∂q∂q= 0, = 0, = 0 <strong>und</strong> erhalten nach dem Umstellen die∂b∂b1 2 32x1 b kg 2 b kg k 3 b kgkkk2x1 b kg k 2 b kg 3 b kgkkkxxx21 b kg 2 b kg 3 d ikkk   Âk   Âkb lnx + b lnx cos x + b lnx e = y lnxkb lnx cos x + b cosx + b cosx e = y cosx   Âb lnx e + b cos x e + b e = y ek k k kAuch hier erhalten wir immer eine symmetrische Koeffizientenmatrix.Für die Datenpunktex 0.24 0.65 0.95 1.24 1.73 2.01 2.23 2.52 2.77 2.99y 0.23 -0.26 -1.10 -0.45 0.27 0.10 -0.29 0.24 0.56 1.00erhalten wir die Rechnung:kkkkkxkk(3.32)Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-19<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>die gesuchte <strong>Ausgleichs</strong>funktion lautet also:yx ( ) = -1. 0276 lnx- 1. 2529 cos x+ 0.0300e x3.2.7 Beurteilung der Regressionsgüte bei nichtlinearen RegressionenBei nichtlinearen Regressionen wird die Güte anhand der Fehlerquadratsumme beurteilt, weil keinKorrelationskoeffizient wie bei der linearen Regression definiert ist. Werden mehrere verschiedeneRegressionsfunktionen miteinander verglichen, so ist diejenige Funktion die beste Regressionsfunktionbezüglich der gegebenen Datenpunkte, welche die kleinste Fehlerquadratsumme hat.Beispiel:Welche Regressionsfunktionen f 1(x), f 2(x) gleicht die folgenden Datenpunkte (x i, y i) besser aus?f ( x) = 1. 901ln x + 1. 928sinx1f ( x) = 025 . x - 125 . x+225 .22x i1 3 4 6y i1 2 0 4Wir bestimmen die Fehlerquadratsumme jeder Funktion bezüglich der Datenpunkte:Die Funktion f 1(x) gleicht die Datenpunkte besser aus, weil sie die kleinere Fehlerquadratsumme hat.3.2.8 Nichtlineare Regression mit SubstitutionsverfahrenAusgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-20<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Ein ganze Reihe nichtlinearer Regressionsaufgaben kann durch geeignete Transformationen der Wertein eine äquivalente lineare Regressionsaufgabe übergeführt werden, welche dann mit denStandardformeln (3-12, 3-13) einfach zu lösen sind.Wir betrachten nachfolgend Verfahren für zwei <strong>und</strong> drei Regressionskoeffizienten.3.2.8.1 Regressionen mit zwei RegressionskoeffizientenViele nichtlineare Regressionsfunktionen können durch geeignete Transformationen in eineäquivalente lineare Regressionsaufgabe umgeformt werden ("linearisiert"). Diese ist dann sehr einfachzu lösen.Bsp: Gesucht ist eine <strong>Ausgleichs</strong>funktion der Art:yx ( )=be axDiese Exponentialfunktion kann durch Logarithmieren linearisiert werden:axln( yx ( )) = ln( be ) = ln( b) + ln( e ) = ln( b)+ ax=B+AXDieses Prinzip kann genauso für weitere Funktionen angewandt werden:Typ Funktion SubstitutionenBedingungenY= X= B= A=1 yx ( )= b+ ax k y x k b a k ≠ 02yx k ≠ 0b ax kx k b a y > 0y3 y( x)= b+ aln( x) y ln(x) b a x > 0ax41 1yx ( ) =b + aln( x)yln(x) b ax > 0y > 05 ayx ( )= bx + k ln(y-k) ln(x) ln(b) a y-k > 0x > 06 yx ( )= ba kx ln(y) k x ln(b) ln(a) k ≠ 0y > 07yx ( )= be axk ln(y) x k ln(b) a k ≠ 0y > 0Der Begriff 'Typ' bezieht sich auf den Menüpunkt im Programm NLREGWIN.EXE. Es ist auf der zumSkript gehörenden Beispieldiskette verfügbar.3.2.8.2 Regressionen mit drei RegressionskoeffizientenAnalog können hier auch über geeignete Substitutionen gewisse nichtlineare Regressionsfunktionenvereinfacht bestimmt werden, indem sie auf eine quadratische Regressionsaufgabe zurückgeführtwerden.2yx ( )= A0 + Ax 1 + Ax 2Die Bestimmung der Polynomkoeffizienten geschieht über den Ansatz der Minimierung der Summeder Fehlerquadrate, analog Kap. 3. 2.5. Wir erhalten ein Gleichungssystem mit drei Unbekannten fürdie Regressionskoeffizienten A 0..A 2:Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte MathematikFHGÂ ÂÂ Â ÂÂ Â Ân X XX X XX X X22 32 3 4IFKJHGAAA012I FKJ = HGÂÂÂYXY2XYIKJ3-21<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Die Regressionsfunktionen, welche sich über eine quadratische Substitution lösen lassen sindnachfolgend tabelliert:Typ Funktion SubstitutionenY= X= A 0= A 1= A 2=8 yx a ax k k( )= + + ax0 1 22 y x k a 0a 1a 2k ≥ 1Bedingungen91yx ( )=a + a x k + a x0 1 22k1yx k a 0a 1a 2y ≠ 0k ≥ 1k 210 x xyx ( )= a 0 a 1 a 211yx ae a x -( )=a0k21 2ln(y) x k ln(a 0) ln(a 1) ln(a 2) y > 0k ≥ 1a2+ a a -2a 1a 2a 1y > 0b g ln(y) x ln( )0 1 2Ebenso lassen sich Substitutionen für vier Regressionskoeffizienten bestimmen, die dann in eineallgemeine Form mit vier Parameter gebracht wird.3.2.8.3 Beispiele für Regressionen mit zwei RegressionskoeffizientenFür folgende Messreihe soll eine <strong>Ausgleichs</strong>funktion nach allen Verfahren aus Tabelle 1 bestimmtwerden. k ist dem Wert 1.5 zu wählen:Wir verwenden dazu das Programm NichtlineareRegression.EXE. Es bestimmt in der Konsolenversiondie Regressionskoeffizienten für Regressionen mit zwei Regressionskoeffizienten. Mit der Win32-können auch Regressionen mit drei Regressionskoeffizienten durchgeführt werden. Aus Platzgründenwerden hier die Listings nicht aufgeführt.x 1 2 4 8 12 14 18 22y 1.7 1.8 1.9 2.5 3.1 3.5 4.4 5.2Resultate:15 .1: 1. 678027 + 0. 034666x+ x r = 0.9992:115 .0. 539379 - 0.003952xrxy=-0.9543: 1. 065247 + 1. 020555◊ ln( x) rxy= 0.8794: 1rxy=-0.9650.642606 - 0.133833◊ln(x)5:0.9691690. 153601x+ 1. 5 r = 0.98215 . x6: 1. 594536 ◊ 1. 03776 r = 0.9980.011224 15 .x7: 1. 807221er = 0.986Achtung:r xymacht keine Aussage zur Korrelation der nichtlinearen Regressionsfunktion!Besser ist hier die Aussage bezüglich der Fehlerquadratsumme.xyxyxyxyGrafische Darstellung der einzelnenRegressionsfunktionen765432135 10 15 20261754Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-22<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.2.9 Bestimmung von Kurvenfunktionen in logarith. Massstab mit RegressionDie nachfolgenden Ausführungen beantworten einige Fragen, die sich beim Entwickeln einerRegressionsfunktion stellen können, wenn die Kurve in einem logarithmischen Bereich "gleichmässiggut passen" sollte. Das Prinzip das hier verfolgt wird ist, dass die Funktion nicht mehr bezüglich derkleinsten Fehlerquadrate optimiert wird, sondern dass eine relative Fehlerquadratsumme minimiertwird.Wir betrachten dazu ein Fallbeispiel, wo für eine gegeben grafische Darstellung in logarithmischenMassstab ein gut passende analytische Funktion bestimmt werden soll. Dabei stellt sich die Frage:Regressionsfunktionen bewerten nach der Methode der minimalen Fehlerquadratsumme. D.h. einegrosse Abweichung erzeugt demnach einen grossen Fehlerwert, der entsprechend berücksichtigt wird.Dementsprechend stellen sich einige Fragen:Wie sieht es aber aus, wenn die Regressionsfunktion sowohl kleine Werte, wie auch grosse möglichstgut abdecken muss? ("Kurve passt in einer logarithmischen Darstellung gut").Erzeugt eine Abweichung der Kurve um z.B. 1mm beim Wert bei 10mA nicht einen wesentlichgrösseren (quadratischen) Fehler als eine Abweichung um 1mm bei 100uA? Wäre es also nicht ev.besser mit einem relativen Fehler eine Regressionsfunktion zu bestimmen?Beispiel:Regression der h-Parameterumrechnung mittels Transformation <strong>und</strong> einer Regressionsfunktion vomTyp y( x)= b+ ax k . (Bild mit fre<strong>und</strong>licher Genehmigung der Firma Siemens AG.)Mit Hilfe einer Transformation gemäss Kap. 3. 2. 8. 1 finden wirdie <strong>Ausgleichs</strong>funktion bezüglich der 5 gewählten Referenzpunkte..f( x) = 0. 31966 + 0. 29408x 12 ( x:Strom in mA [0.1,10])Der Exponent k=1.2 wird durch "Probieren" ermittelt. DieReferenzpunkte <strong>und</strong> Abweichungen mit der obigen<strong>Ausgleichs</strong>funktion werden:I [mA] H22 ε ∗10−3 δ [%]0.1 0.33 8.21 2.490.5 0.48 -32.34 -6.742 1 -4.73 -0.475 2.3 48.39 2.110 5 -19.52 -0.39Diese Funktion wird im Regelfall bereits eine genügende <strong>Ausgleichs</strong>genauigkeit aufweisen. Trotzdemstellt sich die Frage, ob nicht gerade bei den kleinen Funktionswerten ein besserer Ausgleich erreichtwerden kann.3.2.9.1 Prinzip der minimalen relativen FehlerquadratsummeWir definieren für den Ansatz eine relative quadratische Fehlersumme <strong>und</strong> bestimmen dasGleichungssystem für die Parameter a, b:Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-23<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>D( ab , ) =axi+ b-yiy2∂D( ab , ) xi axi + b-yiX X X= 2 = 2 a + b -Âai yiY Y YKJ == 022 2∂∂D( ab , ) axi+ b - yiX 1 1= 2 = 2 a + b -2 2 2 Â∂byY Y YaaXYXY2ÂiFHGi+ bX X=Y Y+ b1 1=Y Y 2  2  2  2 ÂbbiiIKJ2ggFIHGFIHG K J ==0(3.33)(3.34)(3.35)Die Lösung für a, b werden unter Verwendung der Cramerschen Regel:a =b =X 1 1 X-2Y Y Y YX F 22X-Y Y H G 21 I2  2  2Y K J   ÂÂXYXY1-Y1YXYXÂY 2  2ÂÂ22Â- F H G I K J2 2 2XY2(3.36)(3.37)Dieser Ansatz wird nun mit der normalen linearen Regression nach der Methode der kleinstenFehlerquadrate verglichen. Wir entwickeln die Lösungen mit EXCEL. Dies hat insofern den Vorteil,dass mit Hilfe des Solvers der optimale Exponent k bestimmt werden kann.Wir erhalten die Lösungen:1.2474f1( x) = 0. 35033 + 026305x( kleinste Fehlerquadratsumme)1.2092f ( x) = 0. 32578 + 0. 28873x( kleinste relative Fehlerquadratsumme)2Ein grafischer Vergleich zeigt, dass die nach der relativen Methode entwickelte Kurve besser bei denkleinen x-Werten annähert. Bezüglich absolutem Fehler ist sie aber etwas schlechter.Regressionsfunktion nach der Methode der kleinstenrelativen Fehlerquadratsumme f 2(x), verglichen mit derMethode der kleinsten absoluten Fehlerquadratsumme f 1(x).Wir erkennen bei logarithmischen Darstellung eine bessereNäherung bezüglich der relativen Fehler in jedem Punkt.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-24<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.3 InterpolationBereits im vorgehenden Kapitel wurde der Begriff Interpolation erklärt <strong>und</strong> mit der <strong>Ausgleichs</strong>aufgabeverglichen:Eine Interpolationsfunktion f(x) ist eine Funktion, die exakt durch jeden der m Datenpunkte verläuft,wobei wir voraussetzen, dass alle Datenpunkte verschieden sind.Die Interpolation kann also als Spezialfall der <strong>Ausgleichs</strong>rechnung betrachtet werden. Jedoch wird unterdem Bestimmen einer Interpolationsfunktion häufig das Bestimmen einer Polynomfunktion mit speziellenVerfahren verstanden. Diese Verfahren sind weniger rechenintensiv für eine grössere Menge vonDatenpunkten als der Ansatz über die normale <strong>Ausgleichs</strong>rechnung.Die meist verwendeten Methoden sind:- Newton-Interpolation- Lagrange-Interpolation- Spline-InterpolationIn der <strong>Interpolationsrechnung</strong> werden die Begriffe unterschieden:- Stützpunkte: (x i, y i)- Stützstellen: x i- Stützwerte: y i3.3.1 Lagrange-InterpolationDas Interpolationsverfahren wurde nach dem französischen Mathematiker Joseph Louis Lagrange (1736-1813) benannt. Mit dieser Methode lassen sich mit wesentlich weniger RechenaufwandInterpolationspolynome <strong>und</strong> Interpolationswerte berechnen als mit den vorher gezeigten Verfahren.Gr<strong>und</strong>elemente der Methode sind die sog. Lagrange-Polynome:x - xjLi( x): = ’( i = 0.,..., n)x - xj=0jπiij(3.38)Sie sind als Hilfsfunktionen zur Bestimmung des Interpolationspolynomes zu verstehen. Sie haben eineReihe spezieller Eigenschaften, die nachfolgend betrachtet werden. Mit diesen speziellenPolynomfunktionen lässt sich das Interpolationspolynom wie folgt berechnen:nÂp ( x) = yL( x)n i ii=0Wir betrachten nachfolgend die Eigenschaften der Lagrange-Polynome anhand des Beispiels:i 0 1 2x 1 3 0y 1 2 2LagrangeInterpolation(3.39)Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-25<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Gemäss Definition werden die zugehörigen Lagrange-Polynome:( x -x1)( x -x2)( 3 - x)xL0( x)==( x0 -x1)( x0 -x2)2( x-x0)( x-x2)( x-1)xL1( x)==( x1 -x0)( x1 -x2)62( x-x0)( x-x1)x - 4x+3L2( x)==( x -x )( x -x) 32 0 2 1Die nebenstehende grafische Darstellung zeigt diespeziellen Eigenschaften der Lagrange-Polynome:Es gilt gr<strong>und</strong>sätzlich: L( x )=ijRST 1 0i = ji π j(3.40)Also läuft L 0bei der Stelle x 0durch den Punkt (x 0,1) <strong>und</strong> bei den restlichen Stellen x 1, x 2durch Null. Dieanderen verlaufen gemäss Definition analog.Damit L i(x) nun durch den Punkt (x i, y i) läuft (Interpolationsbedingung!) muss L i(x) mit y imultipliziertwerden. Anschliessend werden alle L i(x) addiert.Die L i(x) beeinflussen sich gegenseitig nicht, da sie in allen anderen Punkten L i(x ≠i ) = 0 sind <strong>und</strong> somitdie Interpolationsbedingung erhalten bleibt.Zusammenfassend:Sind n verschiedene Datenpunkte gegeben, so existiert immer ein Lagrange-Interpolationspolynom vomGrad n-1. Dieses Interpolationspolynom ist eindeutig, d.h. es gibt kein anderes Polynom diesen Grades,das dieselben Eigenschaften aufweist.Das Interpolationspolynom wird nun durch Einsetzen der Lagrange-Polynome L i(x) bestimmt:( x x x x x x2p2 x y0L0 x y1L1 x y2L2x 1 3 - ) ( - 1) ( -1)( -3)1 3( ) = ( ) + ( ) + ( ) = + 2 + 2= x - x+22 63 2 2Die numerische Auswertung des Polynoms <strong>und</strong> die grafische Darstellung zeigen, dass dieInterpolationsvorgaben für alle Stützpunkte (x i, y i) erfüllt werden:Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-26<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.3.2 Implementierung der Lagrange-InterpolationFür die Handrechnung einzelner Funktionswerte (wozu die <strong>Interpolationsrechnung</strong> eigentlich gedachtist) ist die Gr<strong>und</strong>form der Lagrange-Formel kaum geeignet. Eine programmierte Lösung gestaltet sichaber einfach:/* Lagrange Interpolation File: LAGRANG1.CBestimmen von Interpolationswerten mit Lagrange-Interpolation.Die Koeffizienten des Interpolationspolynomes werden jedoch nicht explizit berechnet.Gr<strong>und</strong>formel:p(xk) = y0 L0(xk) + y1 L1(xk) + ... + yn Ln(xk)Autor: Gerhard KruckerDatum: 21.8.1995Sprache: MS Visual-C V1.52 (QuickWin App.)*/#include #define MAX 10 /* Maximale Anzahl Datenpunkte (kann angepasst werden) */main(){ double x[MAX]; /* Vektor mit x-Werten der Datenpunkte */double y[MAX]; /* Vektor mit y-Werten der Datenpunkte */double Li;double xk; /* Aktueller x-Wert */double px; /* Interpolationswert */int n; /* Anzahl Datenpunkte */int i,k;printf("Berechnen von Interpolationswerten mit Lagrange-Interpolation:\n");printf("Anzahl der Datenpunkte? "); scanf("%d",&n);/* Einlesen der Datenpunkte */for (k=0; k < n; k++){ printf("Punkt %d: x = ",k+1); scanf("%lg",&x[k]);printf("y= "); scanf("%lg",&y[k]);putchar('\n');}printf("Berechnen der Interpolationswerte (Beenden mit C)\n" );while (1){ px = 0.0;printf("x = "); scanf("%lg",&xk);for (i = 0; i < n; i++){ Li = 1.0;for (k = 0; k < n; k++)if (k != i) Li *= (xk - x[k])/(x[i] - x[k]);px += y[i] * Li;}printf("px(%g) = %g\n",xk,px);}return 0;}1 2 3Für das obige Interpolationspolynom p2( x)= x - x+ 2 erhalten wir die interpolierten Werte im2 2Intervall [0,1]:x Interpolationswert0.0 2 (Vorgabe)0.2 1.720.4 1.480.6 1.280.8 1.121.0 1 (Vorgabe)Die Polynomkoeffizienten von L i(x) werden üblicherweise über die Stützkoeffizienten λ i<strong>und</strong> einProdukt von Linearfaktoren bestimmt.Die λ iverkörpern eine Hilfsgrösse, die nur von den x iabhängig ist. Sie entsteht durch Extrahieren desNennerterms aus dem Lagrange-Polynom L i:nl i =j=0 xi - xjjπi’ 1(3.41)Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-27<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Die Lagrange-Interpolationsformel mit den Stützkoeffizienten lautet dann:nÂp ( x) = y l ( x-x)n i i ji=0 j=0n’(3.42)Soll nun eine programmierte Lösung entwickelt werden, so werden zweckmässigerweise die Grössen λ i<strong>und</strong> ’( x-x j ) in separaten Funktionen bestimmt <strong>und</strong> nachher in einer Hauptfunktion verrechnet.jDazu für EXCEL eine Lösung in Visual-Basic for Application:Option Explicit'Variablendefinitionen explizit erzwingen'' Berechnen des Lagrange-Stuetzkoeffizienten bezueglich i.' Parameter: x Array mit den x-Werten'i Index, fuer den der Stuetzkoeffizient bestimmt werden soll.'Mathematisch ist der erste Index 0. Dieser entspricht dem'Arrayindex 1 in Visual Basic.' Resultat: lambda_i Stuetzkoeffizient'' Autor: Gerhard Krucker' Datum: 21.8.1995, 22.9.1996' Sprache: MS Visual BASIC for Applications EXCEL 7.0'Function Lambda(x, ByVal i As Integer) As VariantDim j As IntegerDim Anz As Integer' Anzahl Datenwerte im Array x 'Dim lambda_i As Double ' Lagrange Stuetzkoeffizient bezueglich i 'Anz = x.CountIf (i >= Anz) Or (i < 0) Then' Fehler: Index > Anzahl Datenpunkte! 'Lambda = CVErr(xlErrValue)Elselambda_i = 1i = i + 1' EXCEL Visual Basic Index beginnt bei 1 'For j = 1 To AnzIf i j Thenlambda_i = lambda_i * 1 / (x(i) - x(j))End IfNext jLambda = lambda_i ' Funktionswert retournieren 'End IfEnd Function'' Bestimmen der Lagrange Produktes als Polynom a0 + a1 * x + a2 x^2 + .. + an * x^n bezueglich i '' als Arrayfunktion.' Diese Funktion wird nur von der Funktion LagrangeInterPol aufgerufen <strong>und</strong> steht nicht der Allgemeinheit' zur Verfuegung.' Formal:' p = (x-x0)(x-x1)...(x-xj)...(x-xn) fuer j i <strong>und</strong> j=0...n'' Referenz: Skript Numerik I, H.P. Blau Uni Bern' Parameter: x : Liste mit den xj'i : Stelle i, fuer die das Produkt entwickelt werden soll' Resultat: Array mit den Polynomkoeffizienten a0,...,an als Funktionswert retourniert.'' Datum: 21.8.1995, 22.9.1996' Sprache: MS Visual BASIC for Applications EXCEL 7.0'Function LagrangeProdukt(x, ByVal i As Integer) As VariantDim Anz As Integer ' Anzahl xj's in der Liste 'Dim j As Integer, k As IntegerDim a' Dynamisches Array fuer die Polynomkoeffizienten a0,..,an 'Dim startIndex ' Index wo der 2. Term der Multiplikation ist (Beginn der Kettenmultplikation)'Dim Agrad' Aktueller Grad des erzeugten Polynoms im Durchlauf '' Parameterkontrolle 'Anz = x.Count ' Anzahl xj's in der Liste bestimmen 'If i > Anz - 1 Then ' Index i ungueltig? (Index groesser als Anzahl x-Werte) 'LagrangeProdukt = CVErr(xlErrValue)Exit FunctionEnd IfIf Anz < 2 Then ' weniger als 2 Datenpunkte (Keine multiplikation moeglich) 'LagrangeProdukt = CVErr(xlErrValue)Exit FunctionEnd IfReDim a(0 To Anz - 1)'Array fuer die benoetigte Anzahl Polynomkoeffizieten dimensionieren 'Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-28<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>If i 0 Thena(0) = -x(1)a(1) = 1startIndex = 2Elsea(0) = -x(2)a(1) = 1startIndex = 3End IfAgrad = 1' Ersten Linearfaktor uebertragen '' i ist != 0, dann ist erster Faktor (x-x0)[EXCEL beginnt standardmaessig Indizierung bei 1!]'' i war == 0, dann ist erster Faktor (x-x1) 'k = startIndexWhile k


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-29<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Die interpolierende Kurve zeigt bei x-Werten um -1 <strong>und</strong> -7.5 recht grosse Schwinger. Hier kann nichtmehr von 'Interpolation' im Sinne des Bestimmens von Zwischenwerten gesprochen werden. Dies istder Gr<strong>und</strong>, warum in der Regel keine Interpolationspolynome vom Grad > 4 verwendet werden.3.3.3 Newton-InterpolationDie Newton-Interpolation ist eine weitere Polynominterpolation mit den folgenden Eigenschaften:1. Das Interpolationspolynom p n(x) wird als Summe von Linearfaktoren dargestellt.2. Die Koeffizienten von p n(x) werden durch schrittweise Erhöhung der Anzahl Stützpunkterekursiv bestimmt.3. Die Berechnung von p n(x) erfolgt rekursiv.Die Newton-Interpolation liefert dieselben Ergebnisse wie die Lagrange-Interpolation, ist abereffizienter in der Durchführung.Das Newton-Interpolationspolynom ist folgendermassen definiert:nÂk-1’p ( x) = c ( x-x)n k ik=0 i=0= c + c ( x- x ) + c ( x-x )( x- x ) + ⋯+ c ( x-x )( x-x ) ⋯( x-x)0 1 0 2 0 1 n 0 1 n-1(3.43)Die Koeffizienten c ikönnen der Reihe nach durch Einsetzen der x k<strong>und</strong> den Interpolationsbedingungenp(x k) = y kbestimmt werden:Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-30<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>y = p( x ) = c Æ c = y0 0 0 0 0y1 - c0y1 = p( x1) = c0 + c1( x1 -x0)Æ c1=( x - x )y2 -c0 -c1( x2 -x0)y2 = p( x2) = c0 + c1( x2 - x0) + c2( x2 -x0)( x2 -x1)Æ c2=( x -x )( x -x)etc.(Rekursionsanfang)1 02 0 2 1(3.44)Es wird sofort klar, dass bei dieser Methode beliebig neue Punkte (x i, y i) zugefügt werden können,ohne dass sich an den bereits berechneten Koeffizienten c ietwas ändert. Dieser Umstand ist der grosseVorteil des Newton-Interpolationsverfahren.Das Interpolationspolynom liegt nicht als Polynomfunktion Form p ( x)=a x vor, sondern alsProdukt von Linearfaktoren. Dies ist allerdings für die Berechnung von Interpolationswerten nicht vonBedeutung.Bei Bedarf kann durch sukzessive Multiplikation das Produkt von Linearfaktoren in einStandardpolynom umgerechnet werden, analog der Funktion 'LagrangeProdukt' auf Seite 3-27.nnÂi=0ii3.3.4 Implementierung der Newton-InterpolationKernstück des Verfahrens ist die rekursive Berechnung der Koeffizienten c i. Die Rekursionsformellautetc0 = y0yi - c0 + c1( xi - x0) + ⋯+ ci-1( xi -x0)( xi -x1) ⋯( xi -xi-1)ci=( x -x )( x -x ) ⋯( x -x)i 0 i 1 i i-1(3.45)In Visual-Basic wird die Interpolation zweckmässigerweise mit zwei Funktionen implementiert:NewtonInterpolWert(x;y;xi):NewtonC(x;y):Bestimmen des Interpolationswertes an der Stelle x ifür dieDatenpunkte in der Liste x <strong>und</strong> y mit Hilfe der Newton-Interpolation.Bestimmen der Newton-Polynomkoeffizienten c iwobei die erste Funktion intern auf die zweite Funktion zurückgreift. Die Aufteilung in zweiFunktionen bringt den Vorteil, dass die Funktion zur Bestimmung der Polynomkoeffizienten c iauchunter EXCEL direkt verfügbar ist.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-31<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Option Explizit'' Berechnen des Newton-Interpolationswertes fuer die in x, y uebergebenen Datenpunkte' an der Stelle xi' Die Interpolation erfolgt durch das Bestimmen der Newton-Koeffizienten ci <strong>und</strong>' anschliessendes Ausmultiplizieren des Polynoms'' Datum: 21.8.1995, 22.9.1996' Sprache: MS Visual BASIC for Applications EXCEL 7.0'Function NewtonInterpolWert(x, y, xi) As VariantDim AnzX' Anzahl Stuetzstellen in x 'Dim AnzY' Anzahl Stuetzwerte in y 'Dim c' Dynamisches Array für die Koeffizienten ci 'Dim pn' Nennerprodukt (xi-x0)(xi-x1)..(xi-xi-1) 'Dim pz' Zaehlerterm 'Dim Polynomgrad ' Grad des Newton-Interpolationspolynomes 'Dim k' Parameter pruefen 'AnzX = x.CountAnzY = y.CountIf AnzX AnzY Then ' Anzahl x-Wert Anzahl y-Werte: -> Fehler 'NewtonInterpolWert = CVErr(xlErrValue)Exit FunctionEnd IfIf AnzX < 2 Then ' Fuer eine Interpolation braucht es mindestens 2 Datenpunkte sonst: Fehler 'NewtonInterpolWert = CVErr(xlErrValue)Exit FunctionEnd IfPolynomgrad = AnzX - 1' Interpolation durchfueren 'ReDim c(0 To AnzX) ' 0 .. AnzX Polynomkoeffizienten 'c = NewtonC(x, y)' ci's bestimmen 'pz = c(0): pn = 1' Initialisierung 'For k = 1 To Polynomgradpn = pn * (xi - x(k)) ' pn = pn(xi -x[k1]) (EXCEL beginnt mit ersten Element bei 1) 'pz = pz + c(k) * pnNext kNewtonInterpolWert = pzEnd Function'' Bestimmen der Newton-Koeffizienten ci fuer das NewtonInterpolationspolynom' Das Resultat wir als Array mit allen Koeffizeinen c0,..,cn retounrniert.' (EXCEL Array-Funktion)'' Referenz: Haemmerlin, Numerische Mathematik, Seite 111, Verlag Teubner' Datum: 21.8.1995, 22.9.1996' Sprache: MS Visual BASIC for Applications EXCEL 7.0'Function NewtonC(x, y) As VariantDim AnzX' Anzahl Stuetzsellen in x 'Dim AnzY' Anzahl Stuetzwerte in y 'Dim c' Dynamisches Array für die Koeffizienten ci 'Dim pn' Nennerprodukt (xi-x0)(xi-x1)..(xi-xi-1) 'Dim pz' Zaehlerterm 'Dim k, i' Parameter pruefen 'AnzX = x.CountAnzY = y.CountIf AnzX AnzY Then ' Anzahl x-Wert Anzahl y-Werte: -> Fehler 'NewtonC = CVErr(xlErrValue)Exit FunctionEnd IfIf AnzX < 2 Then ' Fuer ein Interpolation braucht es mindestens 2 Datenpunkte sonst: Fehler 'NewtonC = CVErr(xlErrValue)Exit FunctionEnd If' Koeffizienten bestimmen 'ReDim c(0 To AnzX) ' 0 .. AnzX Polynomkoeffizienten 'c(0) = y(1)' c0 = y0 (in EXCEL ist y0 als y(1) indiziert 'For k = 1 To AnzX - 1pn = 1: pz = c(0) ' Initialisierung'For i = 1 To k - 1 ' Sukzessiv ck's aufbauen 'pn = pn * (x(k + 1) - x(i - 1 + 1))pz = pz + c(i) * pnNext ipn = pn * (x(k + 1) - x(k - 1 + 1))c(k) = (y(k + 1) - pz) / pnNext kNewtonC = cEnd FunctionAusgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-32<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Ein Test für die Datenpunkteliefert die Werte:x 0 1 2 3y -1 0 1 03.3.5 Spline-InterpolationWährend die bisher gezeigten Interpolationsverfahren darauf beruhen, die Datenpunkte mit einereinzigen stetigen Funktion zu beschreiben, geht die Spline-Interpolation einen anderen Weg: DieInterpolationsfunktion wird stückweise aus Polynomfunktionen niedrigen Grades zusammengesetzt.Diese Teilfunktionen beschreiben jeweils für ein Teilintervall die Interpolationsfunktion.Dadurch kann das Überschwingen, wie bei Polynomen höheren Grades, weitgehend vermiedenwerden.Je nachdem welchen Grades die verwendeten Polynomfunktionen sind, spricht man von linearen , ,quadratischen, kubischen oder Splines 4. Grades. In der Praxis haben kubische Splines die grössteVerbreitung. Sie bieten ein gutes Interpolationsverhalten mit wenig Überschwingen.Der Begriff Splines ist eigentlich eine Zusammenfassung von verschiedenen Spline-Typen. Je nachdemmit welchem Ansatz gearbeitet wird unterscheidet man:- natürliche Splines- B-Splines- NURBS (Non Uniform Rational B-Splines), u.a.Sie unterscheiden sich zum Teil stark im Rechenaufwand, Überschwingverhalten <strong>und</strong> anderenVorgaben.Wir beschränken uns nachfolgend auf lineare, quadratische <strong>und</strong> natürliche kubische Splines. AndereTypen werden analog entwickelt <strong>und</strong> können in [5] referenziert werden.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-33<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.3.5.1 Lineare SplinesDie zu interpolierende Menge von (n+1) Datenpunkten wird mit n einzelnen linearen Funktioneninterpoliert. Ausgehend vom Startpunkt (x 0,y 0) wird für ein Intervall zwischen zwei Stützstellen dieInterpolation mit einem Polynom 1. Grades vorgenommen. Daher ist keine knickfreie Beschreibungmöglich.S 0S 1S 2S 3S n-1Interpolation mit Splines ersten Grades.Die Interpolation ist stetig, aber nicht knickfrei.x 0x 1x 2x 3x 4x n-1 x nKonventionsgemäss werden die inneren Datenpunkte zwischen x 0<strong>und</strong> x nKnoten genannt.Die Punktemenge wird stückweise mit Funktionen ersten Grades beschrieben:Sx ( ) =RS||TS ( x)x £ x£x0 0 1S ( x)x £ x£x1 1 2S ( x)x £ x£x2 2 3| Sn - 1( x)xn - 1 £ x£xn(3.46)Daher sind die Eigenschaften der linearen Spline-Interpolation:1. Der Gültigkeitsbereich für S(x) ist [x 0,x n].2. S(x) ist stetig in [x 0,x n]3. [x 0,x n] ist in Teilintervalle zerlegt der Art x 0< x 1< x 2


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-34<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.3.5.1.1 Konstruktion linearer SplinesAusgangslage bildet eine Tabelle mit den zu interpolierenden Datenpunkten:x ix 0x 1x 2x 3… x ny iy 0y 1y 2y 3… y ni 0 1 2 3 … nAus der Funktionenlehre folgt für jede einzelne Teilfunktion der linearen Spline-Interpolation:S ( x) = y + m ( x -x ) x Œ[ x , x ]i i i i i i+1m y i+1 - y ii =x - xi+1i(3.47)(3.48)S i(x) beschreibt dabei die einzelne lineare Funktion für das Intervall [x i,x i+1] <strong>und</strong> m idie zugehörigeSteigung.3.3.5.2 Quadratische SplinesDie zu interpolierende Menge von (n+1) Datenpunkten wird mit n einzelnen quadratischenPolynomfunktionen interpoliert. Die Interpolationsfunktion ist knickfrei, jedoch nicht biegungsfrei.Ausgehend vom Startpunkt (x 0,y 0) wird für ein Intervall zwischen zwei Stützstellen die Interpolationmit einem Polynom 2. Grades vorgenommen.Q 0Q 1Q 2Q 3 Q n-1x 0x 1x 2x 3x 4x n-1 x nInterpolation mit quadratischen Splines.Die Interpolation ist stetig, <strong>und</strong> knickfrei , jedochnicht biegungsfrei, dh. die Krümmung in deninneren Knoten ist ungleich.Die Punktemenge wird stückweise mit quadratischen Funktionen beschrieben:Qx ( ) =RS||TQ ( x)x £ x£x0 0 1Q ( x)x £ x£x1 1 2Q ( x)x £ x£x2 2 3| Qn-1( x)xn-1£ x£xn(3.49)Daher sind die Eigenschaften der quadratischen Spline-Interpolation:1. Der Gültigkeitsbereich für Q(x) ist [x 0,x n].2. Q(x) ist stetig in [x 0,x n], d.h. Qi( xi) = Qi+1( xi) i: 1..n-13. Q(x) ist knickfrei in [x 0,x n], d.h. Q'( i xi) = Q' i+1 ( xi) i:..1 n-14. [x 0,x n] ist in Teilintervalle zerlegt der Art x 0< x 1< x 2


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-35<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.3.5.2.1 Konstruktion quadratischer SplinesEs existieren zahlreiche Verfahren zur Berechnung von quadratischen Spline-Funktionen.Eine einfache Methode zur Berechnung der einzelnen quadratischen Teilfunktionen ist wie folgt:zi+1 - ziQi( x)=2 xi+1 - xiz = frei wählbarz0i+1=- z + 2ib g b g b gFHGyix+ 1i+1--x- x + z x- x + yyixiIKJ2i i i i(3.50)(3.51)Die z iverkörpern hierbei die Steigungen in den einzelnen Knoten. Die Anfangssteigung ist freiwählbar. Daher ist die Darstellung dieser quadratischen Spline-Interpolation nicht eindeutig. Jenachdem was für eine Anfangssteigung gewählt wurde erhält man einen anderen Satz anTeilfunktionen.Beispiel:Folgende Datenpunkte sollen mit einer quadratischen Spline-Interpolation beschrieben werden:x i0 2 3 4y i1 4 5 5i 0 1 2 3Lösung: z 0wird frei gewählt mit dem Wert z 0=0. Damit werden die einzelnen Steigungen:⎛ y − y ⎞ ⎛ 4−1⎞z1 =− z0+ ⎜ ⎟=− + ⎜ ⎟=⎝ x1 −x0⎠ ⎝2−0⎠1 02 0 2 3⎛ y −y⎞ ⎛5−4⎞z2 =− z1+ ⎜ ⎟=− + ⎜ ⎟=−⎝ x2 −x1⎠ ⎝3−2⎠2 12 3 2 1⎛ y − y ⎞ ⎛5−5⎞z3 =− z2+ ⎜ ⎟= + ⎜ ⎟=⎝ x3 −x2⎠ ⎝4−3⎠3 22 1 2 1Die Teilpolynome werden demnach:z1 - z023-02 3 2Q0( x) = x- x0+ z0 x- x0 + y0= ( x- 0)+ 0 x- 0 + 1= x + 12 x - x22-04b 1 0g g b g b g b gb 2 1g g b g b g b gz2 - z121 32 2Q1( x) = x- x1+ z1 x- x1 + y1= - - ( x- 2)+ 3 x- 2 + 4= - 2x + 11x-102 x - x23-2z3 - z22Q2( x)= x- x2+ z2 x- x2+ y2bx3 - x2g b g b g 5 12 22 = - - ( - ) ( x- 3 ) +-1 x- 3 + 5= x - 7x+1724-3b g b gDie graphische Darstellung der drei Polynomfunktionen zeigt, wie sich die Einzelfunktionen in denKnoten knickfrei anschmiegen:Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-36<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>Q 2(x)Q 0(x)Q 1(x)Plot der Einzelfunktionen gemäss Beispielzur Interpolation mit quadratischenSplines.3.3.5.3 Kubische SplinesDie Interpolationsfunktion wird hierbei stückweise aus Polynomfunktionen 3. Grades zusammengesetzt.Ausgehend vom Startpunkt (x 0,y 0) wird für ein Intervall zwischen zwei Stützstellen dieInterpolation mit einem Polynom 3. Grades vorgenommen. Somit werden (n+1) Datenpunkte durch nkubische Spline-Funktionen interpoliert.Diese Form der Spline-Interpolation ist vom Ansatz her aufwendiger als eine Polynominterpolationnach Newton oder Lagrange. Wir erhalten aber im Gegenzug wesentlich bessere Interpolationsresultate.Wir betrachten das anhand des Beispiels der Interpolation von 7 Datenpunkten:x 1 2 3 4 5 6 7y 0 1 0 1 0 1 0Das Lagrange-Interpolationspolynom lautet:p ( x) = - 63 + 142. 933x- 118. 84x + 48x - 10. 111x + 1. 067x -0.044x62 3 4 5 6Die entsprechenden kubischen Splines beschreiben dieInterpolation jeweils für ein Teilintervall:f0( x) = 1. 731( x-1) -0. 731( x-1) xŒ[ 1, 2)2 3f1( x) = 1 -0. 462( x-2) -2. 192( x- 2) + 1. 654( x-2) xŒ[ 2, 3)2 3f2( x) = 0. 115( x- 3) + 2. 769( x-3) -1. 885( x-3) xŒ[ 3, 4)2 2f3( x) = 1 -2. 885( x- 4) + 1. 885( x-4) xŒ[ 4, 5)23f4( x) =-0. 115( x- 5) + 2. 769( x-5) -1. 654(x-5) xŒ[ 56 , )2 3f ( x) = 1 + 0. 462( x-6) -2. 192( x- 6) + 0. 731( x-6) xŒ[ 6, 7]53Aus der Grafik ersieht man, dass die Spline-Interpolation wesentlich bessere Zwischenwerte liefert alsdie Lagrange-Interpolation.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-37<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.3.5.4 Natürliche kubische SplinesWir gehen von einer Menge (n+1) verschiedener Datenpunkten (x k, y k), k=0..n aus <strong>und</strong> verlangen, dassdiese Punkte nach aufsteigenden x-Werten sortiert sind:x 0< x 1< x 2< ... < x nAuf jedem Teilintervall [x k,x k+1] für k=0,..,n-1 definieren wir ein Polynom 3. Grades durch2 3k k k k k k k kp ( x): = d + c ( x- x ) + b ( x- x ) + a ( x-x)(3.52)Die Interpolation im gesamten Bereich wird dann durch n Spline-Polynome beschrieben:Für jeden inneren Punkt x k, k=1,..,n-1 verlangen wir, dass die Anschlussbedingung für dienachfolgende Kurve erfüllt ist, d.h. die nachfolgende Polynomfunktion muss 'glatt' auf dieVorgängerfunktion folgen.Wir haben einen glatten Übergang, wenn folgende Bedingungen in den inneren Punkten erfüllt sind:Funktionswerte stimmen überein: pk( xk) = pk+1 ( xk)(Stetigkeit)Tangentensteigungen stimmen überein:''pk( xk) = pk+1 ( xk)(Knickfrei)Krümmungen stimmen überein:''''p ( x ) = p +1 ( x ) (Biegungsfrei)k k k kAusserdem sollen die Interpolationsbedingungen erfüllt sein:yk = pk( xk)(3.53)(3.54)(3.55)(3.56)Für die sog. natürliche Spline-Interpolation wird festgelegt, dass die Krümmung in den Anfangs- <strong>und</strong>Endpunkten 0 betragen soll:''''0 0 n-1 n 0p ( x ) = p ( x ) =(3.57)Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-38<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>BeispielDie Funktion S(x) soll die Punkte als natürliche kubische Spline-Interpolation interpolieren:x -1 0 1S(x) 1 2 -1Damit die folgende Funktion S(x) eine kubische Spline-Interpolation darstellt, müssen die Parametera,b,c,d,e,f,g,h so beschaffen sein, dass die Bedingungen (3.53) bis (3.55) erfüllt sind.Aus der Interpolationsbedingung (3.54) folgt:d = h=2- a+ b- c= -1e+ f + g= -3Sx ( )=RST3 2ax + bx + cx + d - 1£ x £ 03 2ex + fx + gx + h 0 £ x £ 1Weil im Anschlusspunkt x 1=0 die Tangentensteigungen übereinstimmen müssen, gilt ferner:2⎧ 3 + 2 +ax bx cS'( x)= ⎨ 2⎩ 3ex + 2fx + g⇒ c=gEbenso müssen im Anschlusspunkt die Krümmungen übereinstimmen. Die Auswertung bei x 1=0 liefertdie Werte der Parameter b <strong>und</strong> f:S''( x) =fi b=fRST6ax+ 2b6ex+ 2fAus der Bedingung (3.57) für die natürliche kubische Spline-Interpolation, folgt eine Anfangs- <strong>und</strong>Endkrümmung von Null. Wir erhalten daraus zwei zusätzliche Gleichungen:3a=b3e=-fNach Auflösen aller Gleichungen erhalten wir das Resultat a=-1, b=-3, c=-1, d=2, e=1, f=-3 <strong>und</strong> h=2.3.3.5.5 Systematische Konstruktion der Spline-PolynomeGr<strong>und</strong>lage für die Berechnung der Spline-Polynomkoeffizienten bilden generell die Krümmungen. Wirdefinieren die Krümmung z iim Punkt i:z = S''( x ) ( 0 £ i£ n, n: Anzahl Datenpunkte -1)ii(3.58)Für eine natürliche kubische Spline-Interpolation sind einzig die Werte z 0=z n=0 definiert. DieKrümmungen z 1,..,z n-1müssen berechnet werden.Würden wir alle Krümmungen kennen, könnten die Spline-Polynome konstruiert werden. Wir habenim Beispiel gesehen, dass das kubische Polynom in der zweiten Ableitung ein lineares Polynomdarstellt. Es nimmt an den Endpunkten eines Intervalls [x i,x i+1] die Krümmungswerte z i, resp. z i+1an.Somit gilt für die Krümmung im Intervall [x i,x i+1] :Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-39<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>S'' zi+ 1 zii ( x) = ( x- yi) + (h h y i+ 1 - x ) h i = x i+1 - x i ( 0£ i £ n -1)ii(3.59)Wir integrieren S'' i ( x ) zweimal <strong>und</strong> erhalten so die Gleichung für das natürliche kubische Spline-Polynom S i(x) bei gegebenen Krümmungen an den Anfangs- <strong>und</strong> Endpunkten:i+1S xzh x y 3 ziiih y x 3( ) = ( - ) + ( i+1 - ) + cx + d ( 0£ i £ n -1)6 6iiDie Grössen c <strong>und</strong> d sind Integrationskonstanten. Ihre Werte können unter Zuhilfenahme derInterpolationsbedingung Si( xi)= yi<strong>und</strong> Si( xi+ 1)= yi+1bestimmt werden <strong>und</strong> wir erhalten:FHGIb g F IHG b gi+1S xzh x y 3 i zh y x 3 yi+ 1 hiy hiiz x yi i( ) = ( - ) + ( i+1 - ) + - i+1 - i + - z i y i - x ( 0£ i £ n -1)6 i 6 ihi6 KJhi6 KJ(3.60)(3.61)Sind die Krümmungen z 0,..z nbekannt, können mit dieser Gleichung die kubischen SplinesS0( x),.., Sn- 1( x)bestimmt werden.Die Krümmungen werden auch dadurch bestimmt, dass die Tangentensteigung im Anschlusspunkt''übereinstimmen muss, d.h. Si( xi) = Si -1 ( xi)für 1 ≤ i ≤ n-1, also für alle inneren Knoten der Spline-Interpolation (Knickfreiheit im Übergang).Wir leiten (3.61) ab <strong>und</strong> erhalten:S ' i+1xzh x y 2 i zh y x 2 yi+ 1 hiy hiiizi i( ) = ( - ) + ( + 1 - ) + - i+1 - + z i2 2 h 6 h 6iiii(3.62)Die Auswertung der Steigung bei x iergibt:S ' i+1xzh x y 2 i zh y x 2 yi+ 1 hiy hi ii ii izi i( ) = ( - ) + ( + 1 - ) + - i+1 - + z i2 2 h 6 h 6Ebenso wird SSihih zi=- i+ 1 - z i +h y i+1 - y i6 3'i-1( x ):iii1b ghihx zi 1( i) =- i - z i + byi-yi-1g6 6 h'i-1 -1i-1Wir setzen beide Steigungen gleich <strong>und</strong> erhalten das Gleichungssystem für die Krümmungen:ii6h z h h z hzh y y 6h y y 1£ i£ n-1i-1 i-1 + 2b i- 1 - ig i + i i+ 1 = b i+ 1 - ig- b i - i-1g n:Anzahl Datenpunkte - 1iiFHGIKJ(3.63)(3.64)(3.65)Dieses tridiagonale Gleichungssystem ist immer <strong>und</strong> leicht lösbar. Zusammengefasst lassen sich diegesuchten Teilfunktionen für die natürliche kubische Spline-Interpolation bestimmen, wobei wir dieKrümmungen aus dem vorherigen Ansatz nun mit y 0'',..,y n'' beschreiben:1. Vorgaben für Anfangskrümmung: y0 : = 0, yn: = 0 n:Anzahl Datenpunkte - 1''''Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-40<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>2. Schrittweite zwischen den Datenpunkten: hi: = xi+1 -xii: 0,...,n-13. Berechnung der y'' iaus dem tridiagonalen LGS:'' '' '' 6h y h h y h yh y y 6i-1 i-1 + 2( i- 1 + i) i + i i+ 1 = ( i+1 - i) - ( yi- yi-1) i: 1,..,n-1ihi-14. Polynomkoeffizienten für den Spline i:1ah y ''ii y ''= ( + 1 - i) i : 0,...,n -16yibi=21ch y y hii i i y''= + - - i++ y''( 1 ) ( 1 2 i)6dii''= yii(3.66)(3.67)(3.68)Beispiel:Bestimmen des ersten kubischen Spline-Polynoms p 0(x) für die Datenpunkte:i 0 1 2 3 4x -2 -1 0 1 2y 1 -2 0 -2 5• Bestimmen der Schrittweiten h i<strong>und</strong> setzen der Anfangskrümmungen:hi = xi+1- xi( 0£ i £ 3)'' ''y = y = 00 4i 0 1 2 3h i1 1 1 1• Lineares Gleichungssystem für die Krümmungen y'' i:'' ''1 2'' '' ''1 2 3''''y2 34y+ y = 30y + 4y + y = -244y= 54Æ''1''2''3yyy= 150 14=-180 14= 234 14• Bestimmen der Polynomkoeffizienten für p 0(x):i = 025a = b = c = - 670 , 0 0, 0 , d0= 1141425 3p x = x+ - - 670( ) ( 2) ( x+ 2)+ 114 141 3 2= d25x + 150x + 233x+ 80ixŒ[ -2,-1]14Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-41<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>3.3.5.6 Implementierung als EXCEL-FunktionEine Lösung in Visual-Basic für EXCEL, die als EXCEL-Array-Funktion die kubischen Splines für nDatenpunkte bestimmt.Beim Entwurf wurde Wert darauf gelegt, dass die Berechnung genau nach den vorgestellten Formelnerfolgt, obwohl fallweise gewisse Vereinfachungen hätten vorgenommen werden können.'' Natuerliche Spline Interpolation2' Bestimmen der natuerlichen Spline-Interpolation fuer eine beliebige Anzahl n (>2)' Datenpunkte. Die Datenpunkte muessen bezueglich x-Werte in aufsteigender Reihenfolge' sortiert sein.' Das Resulat wird als 2dimensionales Array retourniert (EXCEL Array - Funktion)' Die Eintraege jeder Zeile enthalten eine Spline-Funktion in der Notation:' a0 + a1 x + a2 x^2 + a3 x^3' Es werden n-1 Spline-Funktionen berechnet, wobei jeweils eine Polynomfunktion zwischen zwei' Datenpunkten gilt.'' Parameter: x: Liste mit den Stuetzstellen'y: Liste mit den Stuetzwerten' Referenz: H.P. Blau, Skript Vorlesung Numerik I, Uni Bern' Datum: 21.8.1995, 22.9.1996, 15.9.1997' Sprache: MS VBA EXCEL97'Function KSpline2(x, y)Dim h' Dynamisches Array fuer Schrittweite 'Dim SplinePolyDim AnzXDim AnzYDim GDim y2iDim Y2Dim BDim NDim i, jDim xi' Dynamisches Array mit Koeffizienten fuer Spline-Polynome '' Anzahl Stuetzstellen in der Liste '' Anzahl Stuetzwerte in der Liste '' Koeffizientenmatrix fuer lin. Gleichungssystem '' Kruemmungen an den inneren Datenpunkten '' Kruemmungen an den Datenpunkten (+ aeussere Datenpunkte) '' Konstantenvektor (rechte Seite des LGS) '' Anzahl benoetigte Splines fuer Interpolation (Anzahl Datenpunkte -1) '' Parameter kontrollieren 'AnzX = x.CountAnzY = y.CountIf AnzX AnzY Then ' Keine Interpolation wenn Anzahl x-Werte Anzahl y-Werte! )KSpline2 = CVErr(xlErrValue)Exit FunctionEnd IfIf AnzX < 2 Then' Mindestens 2 Datenpunkte fuer Interpolation benötigt 'KSpline2 = CVErr(xlErrValue)Exit FunctionEnd If' Spline Berechnung Vorbereitung 'N = AnzX - 1ReDim h(0 To N - 1)ReDim SplinePoly(0 To N - 1, 0 To 3)For i = 0 To N - 1h(i) = x(i + 2) - x(i + 1)Next i' hoechster Index (mathematisch) '' Array fuer die Schrittweiten '' Schrittweiten bestimmen, a(i) setzen '' h0 = x(2)-x(1), h1=x(3)-x(2),... '' Lin. Gleichungssystem für die Kruemmungen aufbauen. Es ensteht ein tridiagoinales Gleichungssystem fuer' die inneren Kruemmungen. Der Einfachheit halber mit einer Matrixinversion geloest. 'ReDim G(1 To N - 1, 1 To N - 1)' Koeffizientenmatrix fuer benoetigte Azahl dimensionieren 'ReDim c(1 To N - 1)' Konstantenvektor fuer das Gleichungssystem (rechte Seite) 'ReDim y2i(1 To N - 1)' Kruemmungen an den inneren Punkten 'ReDim Y2(0 To N)' Alle Kruemmungen 'For i = 1 To N - 1 ' Matrix mit 0 initialisieren 'For j = 1 To N - 1G(i, j) = 0Next jNext iFor i = 1 To N - 1 ' Koeffizienten bestimmen <strong>und</strong> einschreiben 'If i > 1 Then G(i, i - 1) = h(i - 1)G(i, i) = 2 * (h(i - 1) + h(i))If i < N - 1 Then G(i, i + 1) = h(i)c(i) = 6 / h(i) * (y(i + 2) - y(i + 1)) - 6 / h(i - 1) * (y(i + 1) - y(i))Next iG = Application.MInverse(G)y2i = Application.MMult(c, G)' Kruemmungsvektor aufbauen: Innere Kruemmungen + Kruemmung an den aeusseren Punkten 'Y2(0) = 0: Y2(N) = 0 ' Kruemmung am Anfang <strong>und</strong> Ende = 0 (Def. natuerlicher Spline) 'For i = 1 To N - 1Y2(i) = y2i(i)Next i' Polynomkoeffizienten ak,..,dk fuer jeden Spline aufbauen <strong>und</strong> einschreiben 'For i = 0 To N - 1SplinePoly(i, 0) = y(i + 1) 'ak 'SplinePoly(i, 1) = 1 / h(i) * (y(i + 2) - y(i + 1)) - h(i) / 6 * (Y2(i + 1) + 2 * Y2(i)) 'bk'SplinePoly(i, 2) = Y2(i) / 2 'ck'SplinePoly(i, 3) = 1 / (6 * h(i)) * (Y2(i + 1) - Y2(i)) 'dk'Next iAusgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-42<strong>Ausgleichs</strong>- <strong>und</strong> <strong>Interpolationsrechnung</strong>'Polynomnotation a0 + a1 (x-xi) + a2 (x-xi)^2 + a3 (x-xi)^3 in a0' + a1' x + a2' x^2 + a3' x^3 ueberfuehrenFor i = 0 To N - 1xi = x(i + 1) 'Startwert des Definitionintervalles fuer pi(x)SplinePoly(i, 0) = SplinePoly(i, 0) + (((-SplinePoly(i, 3) * xi + SplinePoly(i, 2)) * xi) - SplinePoly(i, 1)) * xiSplinePoly(i, 1) = SplinePoly(i, 1) - 2 * xi * SplinePoly(i, 2) + 3 * xi * xi * SplinePoly(i, 3)SplinePoly(i, 2) = SplinePoly(i, 2) - 3 * xi * SplinePoly(i, 3)Next iKSpline2 = SplinePolyEnd FunctionEin Test für vorheriges Beispielx -2 -1 0 1 2y 1 -2 0 -2 5liefert die Polynomkoeffizienten:Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-43Aufgaben3.4 Aufgaben<strong>Ausgleichs</strong>rechnung:1. Wie wird bei einer gegebenen <strong>Ausgleichs</strong>funktion <strong>und</strong> den Datenpunkten die Fehlerquadratsummebestimmt? Zeigen Sie das Vorgehen konkret am Beispiel:2. Hat eine polynomiale <strong>Ausgleichs</strong>funktion höheren Grades immer eine kleinere oder gleicheFehlerquadratsumme als eine <strong>Ausgleichs</strong>funktion niedrigeren Grades?3. Weshalb werden polynomiale <strong>Ausgleichs</strong>funktionen selten höher als bis zum 4. Grad entwickelt?Wann werden polynomiale <strong>Ausgleichs</strong>funktionen besonders kritisch?4. Welche <strong>Ausgleichs</strong>funktion ist zu bevorzugen?f ( x) = 18 . ◊17.1f ( x) = 068 . x + 069 . x+136 .22xx -1 0 2 4y 1 2 5 155. An einer Diode werden die Ströme <strong>und</strong> Spannungen gemessen:U D0.4 0.5 0.6 0.65 0.7 0.75 0.8 0.85I D4.3E-7 6.2E-6 8.8E-5 3.3E-4 1.2E-3 4.5E-3 1.5E-2 4.9E-2Zu Bestimmen ist die exponentielle <strong>Ausgleichs</strong>funktion für die obigen Datenwerte bezüglich I D.6. Bestimmen Sie die Parameter b 1,b 2<strong>und</strong> b 3für die <strong>Ausgleichs</strong>funktion vom Typ y= b + b x+b e xdie Datenwerte:x 0 1 2 3y 0 1 3 41 2 3 für7. Gegeben sind die Datenpunkte:x 1 2 3 4y 2 1 0.9 0.5Durch diese Punkte lege man die <strong>Ausgleichs</strong>funktionen vom Typa.) y= a+ bx+ce x2b.) y= a+ bx+cxcc.) y= a+ bx+xMan ermittle nachher welche der drei Funktionen die Vorgabewerte am besten annähert.Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-44AufgabenPolynom-Interpolation:8. Mit Hilfe der Lagrange’schen Interpolationsformel ist ein Interpolationspolynom zu bestimmen,dass die Werte interpoliert:x 0 1 4 6y 1 -1 1 -19. Zeigen Sie, dass die beiden Polynomeb g b gb gpx ( ) = 3+ 2 x- 1 + 4 x- 1 x+ 2 qx ( ) = 4x + 6x-7die Punktex 1 -2 0y 3 -3 -7interpolieren <strong>und</strong> nicht im Widerspruch zum Eindeutigkeitssatz stehen.210. Zeigen Sie, dass die beiden Polynomepx ( ) = 5x - 27x + 45x- 21 qx ( ) = x - 5x + 8x - 5x+3die Punkte3 2 4 3 2x 1 2 3 4y 2 1 6 47interpolieren <strong>und</strong> nicht im Widerspruch zum Eindeutigkeitssatz stehen.11. Bestimmen Sie das Interpolationspolynom, welches die Funktionsdaten liefert:x 1.0 2.0 2.5 3.0 4.0f(x) -1.5 -0.5 0.0 0.5 1.512. Man nimmt an, dass die nachfolgende Tabelle von einem kubischen Polynom stammt. Wie kanndies geprüft werden? Erklären Sie das Vorgehen!x -2 -1 0 1 2 3y 1 4 11 16 13 -413. Sie haben als Ausgangslage folgenden Datensatz:x 1 2 3 4y 2 2 4 5Prüfen Sie, ob nachfolgende Funktionen Interpolations- oder <strong>Ausgleichs</strong>funktionen bezüglich xsind:Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-45Aufgaben<strong>Ausgleichs</strong>-funktionInterpol.-FunktionWeder Interpol.- nochAusgl.-FunktionFunktion f ( x) = 05 . x + 10 . 2f( x) = 025 . x - 015 . x+175 . 2f( x) = 0. 125x + 0. 525x+1.125 3 2f( x) =- 05 . x + 4x - 85 . x+7 3 2f( x) =- 075 . x + 575 . x - 12x+9Splines:14. Bestimmen Sie die natürliche Spline Interpolationsfunktion, die f( x)= x6 im Intervall [0,2] mit denKnoten bei 0,1,2.Anmerkung: Knoten sind die x-Werte der Punkte in der Interpolationsfunktion, wo ein Wechsel zuder nächsten Polynomfunktion erfolgt, also das nächste Teilintervall interpoliert wird.15. Zeigen Sie, dassf( x)=RS|T|2 328 + 25x+ 9x + x - 3 £ x-12 326 + 19x+ 3x -x - 1 £ x£02 326 + 19x+ 3x - 2x 0 £ x£32 3- 163 + 208x- 60x + 5x 3 £ x£4eine natürliche kubische Spline-Interpolation darstellt.16. Bestimmen Sie a,b <strong>und</strong> c so, dass S(x) eine kubische Spline-Interpolation darstellt:Sx ( )=RS|T|3x0£ x£11 3 2bx- 1g + abx- 1g + bbx- 1g+ c 1£ x£3217. Bestimmen Sie eine natürliche kubische Spline-Interpolation, welche die nachfolgenden beidenPunkte interpoliert:x x 0x 1y y 0y 118. Sie kennen die Vorgaben f(0)=0, f(1)=1.1752, f’(0)=1 <strong>und</strong> f’(1)=1.5431. Bestimmen Sie ein kubischesInterpolationspolynom p 3(x) für diese Punkte! Ist es auch ein natürliches Spline-Interpolationspolynom?19. Bestimmen Sie mit einer Handrechnung die natürliche kubische Spline-Interpolation für dieDatenpunkte:x 1 2 3 4 5y 0 1 0 1 0Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-46AufgabenKorrelation20. Die Preisentwicklung eines Artikels wird mit Hilfe einer Stichprobe untersucht. Man hat zehnLieferanten zufällig ausgewählt <strong>und</strong> den Preis dieses Artikels in der Mitte <strong>und</strong> am Ende des Jahresfestgestellt. Man bestimme r xy.Preis ende Juni 1.86 1.57 2.41 2.26 2.31 1.77 2.49 1.54 1.66Preis ende Dezember 1.93 1.61 2.48 2.34 2.32 1.85 2.55 1.58 1.6921. Man bestimme den linearen Korrelationskoeffizienten für die Mathematik- <strong>und</strong> Physiknoten ausder Tabelle:PhysiknotenMathematiknoten40-49 50-59 60-69 70-79 80-89 90-9990-99 2 4 480-89 1 4 6 570-79 5 10 8 160-69 1 4 9 5 250-59 3 6 6 240-49 3 5 4Ausgabe: 1996/98, G. Krucker


Hochschule für Technik <strong>und</strong> Architektur BernInformatik <strong>und</strong> angewandte Mathematik3-47AufgabenAusgabe: 1996/98, G. Krucker

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!