Probleme mit einer Doppelsumme
22.03.2016 11:09:33
Franzi
ich möchte die folgende Funktion in vba-Code umsetzten:
P = 1/(R∙NTU )∙∑_(m=0)^∞
{[1-e^(-NTU)∙∑_(j=0)^m (1/j!∙(NTU^j)]∙
[1-e^(- (R∙NTU))∙∑_(j=0)^m (1/j!∙(R∙NTU)^j )]}
∑_(m=0)^∞ soll bedeuten: Summe von m=0 bis unendlich
∑_(j=0)^m soll bedeuten: Summe von j=0 bis m
Ich habe deswegen den folgenden Code geschrieben:
Public Function Fakultaet(Zahl As Long) As Double
'Funktion zur Berechnung einer Fakultät
Dim Fakultaet As Double
Dim i As Long
Fakultaet = 1
For i = 1 To Zahl
Fakultaet = i * Fakultaet
Next i
End Function
Public Function Probe()
'Variablen für die P-Berechnung:
Dim i As Long 'Zählvariablen
Dim m As Long 'Zählvariablen
Dim Fak As Long 'Variable in der die Fakultätsberechnung gespeichert wird
Dim T1, T2, U3, S1, S2 As Double 'interne Term-Variablen
Dim P1 As Single 'P1 aus Nusselt-Berechnung
Dim NTU1 As Single 'dimensionslose Übertragungsfähigkeit, auch Stanton-Zahl genannt
Dim R1 As Single 'Verhältnis der Wärmekapazitätsströme
'Wertedefinition für NTU und R
NTU1 = 0.2
R1 = 1.2
' Definition der Startwerte für die P-Berechnung
S1 = 0 ' Stratwert für die erste Summe(S1)
S2 = 0 ' Startwert für die zweite Summe(S2)
U3 = 0 ' Startwert für das Gesamtprodukt
'Schleife zur Berechnung der äußeren Summe
For m = 0 To 2
' Schleife zur Berechnung der inneren Summen
For i = 0 To m
Fak = Fakultaet(i)
S1 = S1 + ((1 / Fak) * (NTU1 ^ i)) 'Summe innerhalb des 1.Faktors
S2 = S2 + ((1 / Fak) * ((R1 * NTU1) ^ i)) 'Summe innerhalb des 2.Faktors
Next i
'Berechnung der Faktoren
T1 = 1 - (S1 / (Exp(NTU1))) ' 1.Faktor der Formel
T2 = 1 - (Exp(-R1 * NTU1) * S2) ' 2.Faktor der Formel
U3 = U3 + (T1 * T2) ' Summand aus der m-Summe
Next m
P1 = U3 / (R1 * NTU1)
Debug.Print P1
End Function
Die Funktion funktioniert soweit, aber das Ergebnis ist falsch. Laut Definition darf P maximal 1 werden.
Bei mir nimmt aber P, sobald mein m > 1 wird, Zahlenwerte größer 1 an. Deswegen denke ich, dass man die Funktion nicht so umsetzten kann, wie ich es getan habe. Leider komme ich nicht auf eine andere Lösung.
Ich würde mich freuen, wenn mir jemand weiter helfen kann oder eine andere Idee zur Umsetzung der Doppelsumme hat.
Danke Franzi