www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Doppelsumme über Funktion
Doppelsumme über Funktion < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Doppelsumme über Funktion: Idee
Status: (Frage) beantwortet Status 
Datum: 14:57 So 24.07.2011
Autor: Anja_B

Aufgabe
Hallo zusammen,

ich brauche dringend Hilfe. Ich habe eine Funktion gegeben, die ich in Matlab berechnen lassen möchte, leider gelingt es mir aber nicht:

Die Formel lautet:
[mm] \summe_{i=1}^{infty}\summe_{j=0}^{i}(i-j)*\bruch{exp^-(M+N)M^iN^j}{i!j!} [/mm]

Die Gleichung ist gültig, falls i>j

die i und j sind dabei ganze Zahlen, bzw. poissonverteilte Zufallsvariablen.

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

Nun habe ich es so probiert:

function [U]=U(M,N)

U=0
ii=poissrnd(M,1,1000)
jj=poissrnd(N,1,1000)

if ii>jj
    for ii=1:lenght(ii)
        for jj=0:ii
         U= (ii-jj)*(exp(-(M+N))*M^ii*N^jj)/(factorial(ii)*factorial(jj)
        end
    end
end

allerdings sagt Matlab dann:

Index exceeds matrix dimensions.

Was mache ich bloß falsch?


Für Hilfe wäre ich sehr dankbar!



        
Bezug
Doppelsumme über Funktion: Antwort
Status: (Antwort) fertig Status 
Datum: 16:04 So 24.07.2011
Autor: leduart

Hallo
ohne zu viel matlab zu können, das if ii>jj  steht an der falschen Stelle, das ist doch das Abbruchkriterium für die j Schleife?
da wo es jetzt steht ist ii, jj nicht inititialisiert also wohl ii=jj=0 und dein if nie erfüllt.
also brauchst du es gar nicht, wenn die j Schleife bis ii-1 läuft
so hast du sie immer bis ii laufen. oder du machst while jj<ii ....
gruss leduart


Bezug
                
Bezug
Doppelsumme über Funktion: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:51 So 24.07.2011
Autor: Anja_B

Danke für die schnelle Antwort:)
Leider löst sich das Problem nicht, wenn ich das if erst vor die Gleichung von U schreibe.
Ich habe das if jetzt komplett rausgelöscht, da ich diese Bedingung ja auch vor dem Aufruf der Funktion einfügen könnte, das Problem bleibt aber das gleiche:
Index exceeds matrix dimensions.

Kann es sein, dass ich bestimmte Elemente transponieren muss, damit dort eine einzige Zahl rauskommt?



Bezug
                        
Bezug
Doppelsumme über Funktion: Antwort
Status: (Antwort) fertig Status 
Datum: 18:37 So 24.07.2011
Autor: wieschoo

Da geht es ja drunter und drüber!
1: M=2;
2: N=3;
3:
4: ende = 10;
5: summe=0;
6: for i=1:ende 
7:     for j=0:i
8:      summe= summe+(i-j)*(exp(-(M+N))*M^i*N^j)/(factorial(i)*factorial(j) );
9:     end 
10: end 
11: summe
12:
Erstens würde ich dir die Verwendung von Schleifen in Matlab abraten. Verschachte Schleifen? Noch schlechter!

2. Dieses factorial() jedes mal neu aufzurufen ist auch ne schlechte Idee! Das geht wesentlich effektiver.

3. [mm]P(X_1+X_2=n)&=\sum_{k=0}^n P(X_1=k) \, P(X_2=n-k)=\sum_{k=0}^n \frac{\lambda_1^k}{k!}\, \mathrm{e}^{-\lambda_1} \, \frac{\lambda_2^{n-k}}{(n-k)!} \,\mathrm{e}^{-\lambda_2}=\frac{1}{n!}\, \mathrm{e}^{-(\lambda_1+\lambda_2)} \, \sum_{k=0}^n \binom{n}{k} \lambda_1^k \, \lambda_2^{n-k}=\frac{(\lambda_1+\lambda_2)^n}{n!} \, \mathrm{e}^{-(\lambda_1+\lambda_2)} [/mm]
für stochast. unabh. pois-vert. Zufallsvariablen gilt also
[mm]X_1+\dotsb+X_n\sim\textrm{P}(\lambda_1+\dotsb+\lambda_n)\,[/mm]


Bezug
                                
Bezug
Doppelsumme über Funktion: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:59 So 24.07.2011
Autor: Anja_B

Danke für die Hilfe!

Leider ist in dem Code die Summe NaN. :( Schade, das liegt wahrscheinlich an der schlechten Programmierung mit den For-Schleifen. Ich weiß mir leider auch nicht anders zu helfen, als mit for-Schleifen:((

Um die dritte Beziehung weiß ich bereits, deswegen steht ja auch exp^-(M+N), allerdings hilft mir diese Beziehung nicht weiter, da ich ja noch die Differenz davorstehen habe..

Was die Formel ja eigentlich berechnet, ist eine Differenz zwischen zwei ganzen Zahlen gewichtet mit ihrer gemeinsamen Eintrittswahrscheinlichkeit und das dann über alle Werte aufsummiert.

Aber trotzdem danke, jetzt weiß ich wenigstens, dass ich grob die richtige Richtung einschlage auch wenn Matlab das anders sieht:)



Bezug
                                        
Bezug
Doppelsumme über Funktion: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:19 So 24.07.2011
Autor: wieschoo


> Danke für die Hilfe!
>  
> Leider ist in dem Code die Summe NaN. :( Schade, das liegt
> wahrscheinlich an der schlechten Programmierung mit den
> For-Schleifen. Ich weiß mir leider auch nicht anders zu
> helfen, als mit for-Schleifen:((

Ne das liegt an der Fakultät. Die Werte werden einfach zu groß!
1: M=2;
2: N=3;
3:
4: ende = 200;
5: summe=0;
6: fak1 = 1;
7: for i=1:ende 
8:     fak2=1;
9:     if i>0
10:        fak1=fak1*i;
11:     end
12:     for j=0:i
13:         if j>0
14:             fak2=fak2*j;
15:         end
16:      summe= summe+(i-j)*(exp(-(M+N))*M^i*N^j)/(fak1*fak2 );
17:     end 
18: end 
19: summe
20:
So kommt etwas brauchbares raus.

> Um die dritte Beziehung weiß ich bereits, deswegen steht
> ja auch exp^-(M+N), allerdings hilft mir diese Beziehung
> nicht weiter, da ich ja noch die Differenz davorstehen
> habe..
>  
> Was die Formel ja eigentlich berechnet, ist eine Differenz
> zwischen zwei ganzen Zahlen gewichtet mit ihrer gemeinsamen
> Eintrittswahrscheinlichkeit und das dann über alle Werte
> aufsummiert.

Falls du uns deine Aufgabenstellung verrätst, dann kann man auch nach einem anderen Weg suchen.

> Aber trotzdem danke, jetzt weiß ich wenigstens, dass ich
> grob die richtige Richtung einschlage auch wenn Matlab das
> anders sieht:)
>  
>  


Bezug
                                                
Bezug
Doppelsumme über Funktion: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 21:18 So 24.07.2011
Autor: Anja_B

Ok, die Geschichte lautet wie folgt:

Der Anteil der Arbeitsmärkte mit i Arbeitnehmern ist poissonverteilt mit M (=durchschnittliche Anzahl der Arbeitnehmer in einem Arbeitsmarkt)

Die Anteil der Arbeitsmärkte mit j Jobs ist auch poissonverteilt mit N (=durchschnittliche Anzahl der Jobs in einem Arbeitsmarkt)

Da diese beiden Anteile unabhängig sind, folgt eine bivariate Poissonverteilung mit :

[mm] \bruch{exp^-(M+N)*M^i*N^j}{i!j!} [/mm]

es gibt Märkte mit i>j, dort besteht Arbeitslosigkeit, und Märkte mit i<j, dort  gibt es offene Stellen.

Die Anzahl der arbeitslosen Personen ist die Summe zwischen der Anzahl der Arbeitnehmer i und der Jobs j in einem bestimmten Markt, aufsummiert über alle Arbeitsmärkte, mit i>j.  Und aus diesem Satz resultiert auch die obige Formel.  

Das gleiche für j<i und die Differenz i-j ist die Anzahl der offenen Stellen.

Dann weiß ich noch, dass u=U/M ist und u ist die Arbeitslosenquote, d.h. ca. 5,5% und v=V/N wobei v die Vakanzquote mit 2,3% ist.
M=244,2 und N={233:243}

Ich habe mir dazu eine Matrix gebastelt:

ii=0:100;
jj=0:100;

[mm] pi_i= [/mm] poisspdf(ii,M);
[mm] pi_j= [/mm] poisspdf(jj,N);

[mm] pi_ij=pi_i'*pi_j; [/mm]

Das würde mir die bivariate Wahrscheinlichkeitsverteilung geben.


Dann habe ich mir noch poissonverteilte Zufallsvariablen erzeugt, dann aus denen die Differenz gebildet. Die Differenzen, die positiv sind aufsummiert und die, die negativ sind auch



iii=poissrnd(M,1,100);
jjj=poissrnd(N,1,100);



diff=iii-jjj;


[mm] id_1=find(diff>0); [/mm]
[mm] id_2=find(diff<0); [/mm]
[mm] id_3=find(diff==0); [/mm]

[mm] X=sum(diff(id_1)) [/mm]
[mm] Y=abs(sum(diff(id_2))) [/mm]


X würde mir die absolute Anzahl an Arbeitslosen im Sample geben
Y die absolute Anzahl der offenen Stellen.

Das Problem ist nur, dass ich die Eintrittswahrscheinlichkeiten berücksichtigen muss, also d.h., dass da i=10 und j=5

---> (10-5)=Anzahl *Wahrscheinlichkeit Pr{ i=10 & i=5}


Im Moment bekomme ich bei der Funktion, die ich vorhin geschrieben habe,bereits verbessert mit deinen Anmerkungen,  eine Zahl raus, die ist soooooo klein, dass wenn ich sie noch durch M teile, ich nie auf 5,5% komme:)

Ich hoffe, das war verständlich...
Wenn nicht gerne nachfragen, denn ich bin so verzweifelt, ich brauche alle Hilfe, die ich bekommen kann!



Bezug
                                                        
Bezug
Doppelsumme über Funktion: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 07:22 Mi 27.07.2011
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]