Quantcast
Channel: Mein MATLAB Forum - goMatlab.de
Viewing all articles
Browse latest Browse all 28441

Problem beim Plotten der Poisson-Verteilung

$
0
0
Hallo Fragensteller, Ein paar Kommentare zum Code: function [Anzahl] = Poisson( K,n ) Anzahl = 0; % W=zeros(n); % Das erzeugt eine [n x n] Matrix. Vermutlich meinst Du: W = zeros(1, n); % A=1:n; % Wozu A vorbelegen, wenn es überschrieben wird? Besser: A = zeros(1, n); for i = 2:n A(i) = (exp(-K))*(K.^i)/faculty(i); A(i-1) = (exp(-K))*(K.^(i-1))/faculty(i-1); W(i) = (exp(-K))*(K.^i)/faculty(i); % Das ist merkwürdig. Wieso wird im i-ten Schritt immer die (i-1).te % nochmal ausgerechnet? Das entspricht doch genau dem Wert aus der % vorherigen Iteration. % Und wieso sind A(i) und W(i) identisch? % Weshalb is 0.002 hier symbolisch?! if A(i-1) >= sym(0.002) || A(i-1) <= A(i) %Abbruchbedingung Anzahl = Anzahl + 1; else break end axis([0 n 0 0.25]); plot(W) end Eine aufgeräumt Version, die aber das gleiche Ergebnis liefern sollte: function Anzahl = Poisson(K, n) A = zeros(1, n); A(1) = exp(-K) * K; fac = 1: for ii = 2:n fac = fac * ii; % Schneller als FACULTY, das in meinem Matlab unbekannt ist A(ii) = exp(-K) * (K .^ ii) / fac; % Weshalb is 0.002 hier symbolisch?! if A(i) < 0.002 && A(i) < A(i - 1) %Abbruchbedingung Anzahl = ii; break; end end plot(A(1:Anzahl)); Hilft das bereits die Ursache von unerwarteten Werten zu finden? Gruß, Jan

Viewing all articles
Browse latest Browse all 28441

Latest Images

Trending Articles