Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
184to188
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
184to188
184to188
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Polynom 2.Grades aus drei Wertepaaren als Tab.fkt?

Polynom 2.Grades aus drei Wertepaaren als Tab.fkt?
27.11.2002 15:58:07
Benjamin
Hi Forum,
ich benötige eine Tabellenfunktion mit der ich ohne den Umweg Diagramm-Trendlinie die Regressionsformel (Polynom 2.Grades) aus drei Wertepaaren ermitteln lassen kann. Es würde auch reichen wenn ich die Formel selbst gar nicht ausgegeben bekäme, sondern nur eine quadratische Interpolation für einen gegebenen x-Wert vorgenommen würde. Da diese Excel Auswertung für die ich diese Funktion benötige auf zu vielen Rechnern mit Excel Versionen 8.0 bzw. 10.0 lauffähig sein muß, hilft mir leider ein Tool wie Trend2k nicht wirklich weiter.
Vielleicht hat jemand ne Idee, wie man es mit den serienmäßig vorhandenen Funktionen hinbekommen könnte. Ich kann zwar das Polynom für drei Punkte problemlos von Hand über ein Gleichungssystem errechnen, habe aber keine vernünftige Idee, wie ich sowas in Excel implementieren könnte. Gibt es eigentlich eine Funktion zur Lösung von Gleichungssystemen?

Danke im Voraus und Gruß,
Benjamin

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Polynom und lineares Gleichungssystem
27.11.2002 16:09:24
WF
Hi Ben,

siehe Formeln Nr. 266 und 156 in der Rubrik mathematische Funktionen (8) auf meiner homepage
http://www.excelformeln.de/
die ultimative Formelseite

ARRAY-Formel {=geschweifte Klammern} nicht eingeben;
Abschluß der Formel mit gleichzeitig Strg / Shift / Enter; - das erzeugt sie.

trapp, trapp, trapp, trapp, trapp, brrrrr
WF

Re: Polynom 2.Grades aus drei Wertepaaren als Tab.fkt?
27.11.2002 16:45:33
Thomas Risi
Hallo Benjamin

Wenn 'Trend2k' für Deine Zwecke nicht funzt, dann schau mal auf meiner Webseite unter 'C++ AddIns'. Dort gibt es ein xll mit den Trend-Funktionen, das unter allen xl-Versionen laufen sollte (ist auch noch um ein Vielfaches schneller).

Sonst versuch's mal damit ...


Option Explicit

Public Function qPolynom(xData As Range, yData As Range, xValue As DoubleAs Double
    
    Dim a(4) As Double
    Dim c(1 To 4) As Double
    Dim d(1 To 3) As Double
    Dim Teiler#
    Dim i&, n&
    
    n = xData.Count
    
    For i = 1 To 4
        c(i) = 0
    Next i
    For i = 1 To n
        c(1) = yData(i) + c(1)
    Next i
    For i = 1 To n
        c(2) = yData(i) * xData(i) + c(2)
    Next i
    For i = 1 To n
        c(3) = yData(i) * xData(i) ^ 2 + c(3)
    Next i
    
    For i = 0 To 4
        a(i) = 0
    Next i
    For i = 1 To n
        a(3) = xData(i) + a(3)
    Next i
    For i = 1 To n
        a(2) = xData(i) ^ 2 + a(2)
    Next i
    For i = 1 To n
        a(1) = xData(i) ^ 3 + a(1)
    Next i
    For i = 1 To n
        a(0) = xData(i) ^ 4 + a(0)
    Next i
    a(4) = n
    
    Teiler = a(0) * a(4) * a(2) - a(0) * a(3) ^ 2 - a(2) ^ 3 - a(1) ^ 2 * a(4) + 2 * a(1) * a(3) * a(2)
    d(1) = (c(3) * a(4) * a(2) - c(3) * a(3) ^ 2 - a(2) ^ 2 * c(1) - a(1) * a(4) * c(2) + a(1) * a(3) * c(1) + a(3) * a(2) * c(2)) / Teiler
    d(2) = (-1) * (a(4) * a(1) * c(3) - a(4) * c(2) * a(0) + c(2) * a(2) ^ 2 - a(2) * a(1) * c(1) - a(2) * a(3) * c(3) + a(3) * c(1) * a(0)) / Teiler
    d(3) = (a(3) * a(1) * c(3) - a(3) * c(2) * a(0) - a(2) ^ 2 * c(3) + a(2) * a(1) * c(2) + c(1) * a(0) * a(2) - c(1) * a(1) ^ 2) / Teiler
    
    qPolynom = d(1) * xValue ^ 2 + d(2) * xValue + d(3)
    
End Function
 

     Code eingefügt mit Syntaxhighlighter 1.15

Gruß

Thomas

Risi Thomas Softwareentwicklung


Anzeige
Re: Polynom 2.Grades aus drei Wertepaaren als Tab.fkt?
27.11.2002 17:10:49
Thomas Risi

... etwas kürzer ;))


Public Function qPolynom(xData As Range, yData As Range, xValue As DoubleAs Double
    
    Dim a(4) As Double
    Dim c(1 To 4) As Double
    Dim d(1 To 3) As Double
    Dim Teiler#
    Dim i&
    
    For i = 1 To 3
        
        a(0) = xData(i) ^ 4 + a(0)
        a(1) = xData(i) ^ 3 + a(1)
        a(2) = xData(i) ^ 2 + a(2)
        a(3) = xData(i) + a(3)
        
        c(1) = yData(i) + c(1)
        c(2) = yData(i) * xData(i) + c(2)
        c(3) = yData(i) * xData(i) ^ 2 + c(3)
        
    Next i
    
    a(4) = 3
    
    Teiler = a(0) * a(4) * a(2) - a(0) * a(3) ^ 2 - a(2) ^ 3 - a(1) ^ 2 * a(4) + 2 * a(1) * a(3) * a(2)
    d(1) = (c(3) * a(4) * a(2) - c(3) * a(3) ^ 2 - a(2) ^ 2 * c(1) - a(1) * a(4) * c(2) + a(1) * a(3) * c(1) + a(3) * a(2) * c(2)) / Teiler
    d(2) = (-1) * (a(4) * a(1) * c(3) - a(4) * c(2) * a(0) + c(2) * a(2) ^ 2 - a(2) * a(1) * c(1) - a(2) * a(3) * c(3) + a(3) * c(1) * a(0)) / Teiler
    d(3) = (a(3) * a(1) * c(3) - a(3) * c(2) * a(0) - a(2) ^ 2 * c(3) + a(2) * a(1) * c(2) + c(1) * a(0) * a(2) - c(1) * a(1) ^ 2) / Teiler
    
    qPolynom = d(1) * xValue ^ 2 + d(2) * xValue + d(3)
    
End Function
 
     Code eingefügt mit Syntaxhighlighter 1.15

Gruß

Thomas

Risi Thomas Softwareentwicklung


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige