Polynom (9tes) ausmultiplizieren
10.06.2015 19:08:37
Carlo
Ich möchte ein Polynom 9ten Grades ausmultiplizieren. Die Koeffizienten sind in varGauss gespeichert ( Ich denke so: (f(x)=varGauss(0)*x^9+varGauss(1)*x^8...+varGauss(9)*x^0). Auserdem werden die verschiedenen X-Werte aus varX benötigt. Ziel ist ein Array mit f(varX)Werten.
Mein Versuch
Sub test()
Dim varGauss As Variant 'Array für Regressionskoeffezienten
Dim varHorn As Variant
Dim varX() As Variant, varY() As Variant 'Array für Peakwerte
Dim lngXY As Long, lngI As Long 'Variable
Dim lngLast, lngRow As Long 'Variablen
Dim objSh As Worksheet, objSrc As Worksheet 'Arbeitsblätter
Set objSrc = Sheets("Tabelle1") 'Tabbellenblatt anpassen
With objSrc 'Auswahl des Arbeitsblattes
lngLast = Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row)
For lngRow = 2 To lngLast 'Schleifenbegin
If .Cells(lngRow, 2) > 0.1 And (.Cells(lngRow + 1, 2) > 0.1 Or lngRow = lngLast) Then ' _
Peakbedingung
ReDim Preserve varX(lngXY) 'dynamisches Array definieren
ReDim Preserve varY(lngXY) 'dynamisches Array definieren
varX(lngXY) = .Cells(lngRow, 1) 'Peak - Arrray füllen
varY(lngXY) = .Cells(lngRow, 2) * 10 'Peak - Arrray füllen
lngXY = lngXY + 1
Else 'Was wenn kein Peak
If lngXY > 0 Then 'und schon ein Peak war
varGauss = GaussRegression(varX, varY, 9)
varHorn = Multi(varGauss, varX)
debug.print varHorn
End Sub
Function Multi(varGauss As Variant, varX As Variant)
Dim varMulti As Variant
Dim varI, varG As Long
For varI = 9 To 0
If UBound(varGauss) = 9 And varG = 0 Then
varMulti = varGauss(varG) * varX ^ varI
varI = varI - 1
varG = varG + 1
End If
Next
Multi = varMulti
End Function
Weit von einer Lösung entfernt?