2013-10-30 8 views
8

Ist es möglich, eine Summenserie in Octave zu machen?Summierungsserie mit Oktav

In matlab gibt es symsum Funktion für sie, aber ich habe nichts ähnliches für Oktave gefunden.

Zum Beispiel möchte ich die folgende Summe finden

Summation


Nachtrag:

Ob es möglich ist, so etwas wie diese

f = @(x) nchoosek(5,x)*0.1.^x*0.9.^(5-x) 

sum(f([0:5])) 

mit Fehler konnte nicht fassen

error: called from: 
error: /usr/share/octave/3.6.4/m/help/print_usage.m at line 87, column 5 
error: /usr/share/octave/3.6.4/m/specfun/nchoosek.m at line 95, column 5 
error: at line -1, column -1 
error: evaluating argument list element number 1 
+0

Möchten Sie analytische Lösung für symbolische Serie Summierung oder Sie brauchen nur eine numerische? "symsum" bietet eine analytische Lösung und wird für die Summensummenbildung verwendet. –

+0

@LeonidBeschastny, ich brauche nur die numerische – com

+1

Dann wird 'sum' wahrscheinlich tun. Geben Sie ein Beispiel für Ihr Problem und ich gebe Ihnen eine Lösung. –

Antwort

23

Wenn Sie keine analytische Lösung benötigen, brauchen Sie nicht symsum. Zum Beispiel, wenn Sie

\sum_{k=1}^{5} k

die Sie einfach sum

sum([1:5]) 

Hier können berechnen ist ein weiteres Beispiel:

\sum_{k=1}^{5} \exp(-k)

f = @(x) exp(-x) 
sum(f([1:5])) 

Und ein anderer mit factorial function:

\sum_{n=0}^{5} \frac{1}{n!} \approx e

g = @(n) 1 ./ factorial(n) 
sum(g([0:5])) 

die gleiche, aber ohne anonyme Funktion:

sum(1 ./ factorial([0:5])) 

aktualisieren

Was Ihr letztes Beispiel nchoosek erlaubt nur skalare Argumente. So benötigen Sie zusätzliche arrayfun Aufruf:

f = @(x) nchoosek(5,x)*0.1.^x*0.9.^(5-x) 
sum(arrayfun(f,[0:5])) 
+0

Vielen Dank für Ihre Antwort. Bitte sehen Sie sich den Nachtrag an. Ich versuche, bisher ohne Erfolg zu berechnen. – com

+0

@tam sehe mein Update. –