Hallo ich möchte ein tool erstellen, mit dem ich polynome bis zum grad 10 numerisch integrieren kann. Allerdings stimmt da irgendwas nicht, da er mir bei kleinen schrittweiten viel zu große Werte ausspuckt: Hier mal der Quellcode
Public Sub Integrieren()
Dim Fktint() As Variant 'numerisch integrierte Funktion'
Dim i As Double
Dim i2 As Double
Dim i3 As Double
Dim Flaeche As Double
Call lesenp
Integfenster.Show
'MsgBox "der startwert lautet" & anf
n = (schl - anf) / h
ReDim Fktint(0 To n)
For i3 = 0 To n
For i2 = 0 To d
For i = anf To schl Step h
Fktint(i3) = Fktint(i3) + (Fktr(i2, 0) * i ^ (Fktr(i2, 1)))
Next i
Next i2
Next i3
Flaeche = 0
Flaeche = (1 / 2) * (Fktint(0) + Fktint(n))
For i = 2 To n - 1
Flaeche = Flaeche + (Fktint(i - 1) + Fktint(i))
Next i
Flaeche = Flaeche * h
MsgBox ("Die Fläche unterm graphen beträgt" & Flaeche)
End Sub
anf ist der startwert
schl der Endpunkt
h die Schrittweite
n ist die anzahl der schritte
in Fktr sind in der nullten zeile die vorfaktoren vom x und in der ersten zeile die dazugehörigen Potenzen hinterlegt
Ich möchte nur die trapezformel verwenden
Falls jemand den Fehler findet wäre ich demjenigen sehr verbunden, wenn er ihn mir mitteilt.
|