Eine Summe innerhalb einer Formel bilden
-
Hallo,
das ist mein erster Beitrag hier, falls es also etwas holprig wirkt, bitte ich das zu entschuldigen.
Ich möchte folgende Formel in C berechnen (tut mir leid, aber irgendwie geht der LaTeX-Code nicht, deshalb muss ich es leider so schreiben):
C_{N,z} = C_{0,z-1} * ((V_v)/(V_v+V_z)) * ∑_{i=1}N[((V_{z-1})/(V_{z-1}+V_v))i * ((V_z)/(V_v+V_z))^{N-i}]+C_{0,z} * ((V_z)/(V_z+V_v))^N
Ich hoffe, man kann trotzdem erkennen um was es hier geht.
Ich weiß, dass ich die Summe über eine FOR-schleife berechnen lassen kann. Leider bin ich mir total unschlüssig wie das zu tun ist. Ich muss dazusagen, ich habe heute erst meine nicht sehr zahlreichen und verstaubten C-Kenntnisse wieder ausgegraben.Hab auch schon über Google versucht zu suchen, aber das war nicht wirklich aufschlussreich, oder ich benutze die falschen Suchbegriffe...
Danke schonmal!
-
Saiph schrieb:
Ich weiß, dass ich die Summe über eine FOR-schleife berechnen lassen kann. Leider bin ich mir total unschlüssig wie das zu tun ist.
so ungefähr geht das:
int i; summe = 0; for (i = anfang; i <= ende; i++) { summe = summe + irgendeine_berechnung_die_i_als_index_nimmt; } ... // hier ist die summe fertig berechnet
^^'anfang' ist dann das was unterm summenzeichen steht (i=anfang) und 'ende' ist die einzelne zahl überm summenzeichen.
-
Saiph schrieb:
C_{N,z} = C_{0,z-1} * ((V_v)/(V_v+V_z)) * ∑_{i=1}N[((V_{z-1})/(V_{z-1}+V_v))i * ((V_z)/(V_v+V_z))^{N-i}]+C_{0,z} * ((V_z)/(V_z+V_v))^N
machma ruhig nocma mit latex, das kann man sich online auch woanders angucken, z.b. hier:
http://www.codecogs.com/components/equationeditor/equationeditor.phpdas gewusel kann doch keine sau entziffern.
gruß,
l.n.
-
Noch ein Tip für Speed: Ist deine Rechung lang so "unroll" die for Schleife. Damit bezeichnet man, daß man innerhalb der Forschleife mehr als nur ein For-Index abarbeitet. im Optimalfall 8/16 Indexe in einem Rutsch. Z.B.:
for(i = 0; i < durchgänge; i += 8) { a[i] = ... a[i+1] = ... a[i+2] = ... a[i+3] = ... a[i+4] = ... a[i+5] = ... a[i+6] = ... a[i+7] = ... }
Damit gewinnt man im Schnitt ein Performance-Gewinn von 40 Prozentpunkten. Noch Besser ginge es wenn man alterniert zwischen zwei Arrays (wegen Speicherzugriffen) und diese am Ende wieder zusammenrechnet.
-
Ok, erstmal danke für alle Beitäge!
@~fricky: Ich hab das Prinzip der Summenbildung mittels einer for-Schelife glaub ich verstanden, nun muss ich noch wuseln, dass ich das ganz auf mein Problem anweden kann, danke.
@NDEBUG : Das überfordert mich ehrlich gesagt:)
So long, Saiph