Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Summenfunktion in Matlab

Summenfunktion in Matlab

Universität / Fachhochschule

Sonstiges

Tags: Matlab, Matlab-Programm, Summenberechnung, Summenformel, Summenzeichen

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
Breez3r

Breez3r aktiv_icon

14:33 Uhr, 25.04.2014

Antworten
Hallo,

ich versuche gerade eine Funktion in Matlab einzugeben. Da ich dort noch ein Anfänger bin stolpere ich noch über einige Sachen, in diesem Fall eine Summenfunktion.

Ich möchte folgende Funktion nachbauen: (siehe angehängtes Bild)

Dabei stolpere ich insbesondere über das j ungleich i.

Mein bisheriger Ansatz:


function LogLik = LL(a,b)

load('x.mat)
for ii=1:18
for jj=1:18
for jj~=ii
LogLik=sum(-a(ii)*b(jj)+x(ii,jj)*log(a(ii)*b(jj))-log(factorial(x(ii,jj)))
end
end
end
end


Leider funktioniert das nicht so wie ich mir vorgestellt habe, ich hoffe ihr könnt mir hier helfen.

MfG, Breez3r

loglikelihood

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen."
Online-Nachhilfe in Mathematik
Antwort
IchMagMatheNicht

IchMagMatheNicht aktiv_icon

12:24 Uhr, 26.04.2014

Antworten
Hallo,

ich würde es so versuchen:

function LogLik = LL(a,b)

load('x.mat)

LogLik = 0;

for ii=1:18
for jj=1:18
if (jj~=ii)

LogLik = LogLik - a(ii)*b(jj)+x(ii,jj)*log(a(ii)*b(jj))-log(factorial(x(ii,jj)));

end
end
end

Ich hab kein Matlab hier und kann es nicht ausprobieren, es sollte aber laufen. Dein Problem war die do-Schleife mit einer logischen Abfrage (jj~=ii), so kann das nicht funktionieren, eine if-Abfrage ist hier richtiger.
Der sum(a)-Befehl addiert alle Einträge von a; sum(a(ii)) ist dementsprechend einfach a(ii) und kann hier nicht sinnvoll innerhalb der Schleife verwendet werden.

Du kannst auch die ii=1:18 durch ii=1:numel(a) (jj analog) ersetzen, dann geht es für eine variable Anzahl an Einträgen.

Ich weiß nicht, ob man das gewiefter anstellen kann, ich programmier selten in Matlab.

Ich hoff ich konnte weiterhelfen, schönes WE noch!
Breez3r

Breez3r aktiv_icon

21:56 Uhr, 28.04.2014

Antworten
Vielen Dank für deine Antwort.
Ich weiß nicht ob ich da irgendwas falsch mache aber irgendwie funktioniert das bei mir nicht.

Gibt es eventuell eine andere Möglichkeit?
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.