WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

gleichverteilte Zufallszahlen, deren Summe=1

 

Friese
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 27.06.12
Wohnort: Stuttgart
Version: R2011b
     Beitrag Verfasst am: 27.06.2012, 14:10     Titel: gleichverteilte Zufallszahlen, deren Summe=1
  Antworten mit Zitat      
Hallo zusammen,
ich bin neu hier, habe hier aber schon viel gelesen und auch recht viel mit Matlab gemacht. Mein heutiges Problem konnte ich bisher nicht vernünftig lösen:
Ich möchte Zufallszahlensätze generieren deren Summe 1 ist.
Die Sätze können unterschiedlich groß sein (n_par).
Es sollen viele Sätze erzeugt werden (n_punkte).
Jetzt sollen die ganzen Punkte möglichst gleichmäßig verteilt sein bei n_par=4 entspricht das einem Tetraeder mit gleichmäßig verteilten Punkten.

Mein erster Gedanke war "teilen durch die Summe":
Code:

n_par=4;
n_punkte=1000;

for i=1:n_punkte      
  X(i,:)=rand(1,n_par);
  X(i,:)=X(i,:)/sum(X(i,:));
end
 

Da ist zwar die Summe=1 aber die Punkte tummeln sich in der Mitte des Raumes.

Zweiter Gedanke war:
1.) "Zufallszahl zwischen 0 und 1"
2.-vorletzte) "Zufallszahl zwischen 0 und (was von 1 übrig bleibt)"
letzte.) 1-"summe der bisher erzeugten zufallszahlen"

Code:

   for i=1:n_punkte
        reihenfolge=randperm(n_par);
        for i_par=1:n_par
            if i_par<n_par;
                X(i,reihenfolge(i_par))=(1-sum(X(i,:)))*rand(1);
            else
                X(i,reihenfolge(i_par))=1-sum(X(i,:));
            end
        end
    end
 


Da hier die Reihenfolge einen sehr großen Einfluss hat, habe ich sie zusätzlich dem Zufall unterworfen.
Problem bei Methode 2: Die erzeugten Punkte tummeln sich an den Ecken und Kanten des Raumes. Bei 4 Parametern fällt das noch nicht so auf, aber bei 10 wirds echt unschön.

Ich hoffe, ich habe euch jetzt nicht völlig verwirrt und hoffe auf ein paar frische Gedanken zum Thema!
Vielen Dank!
Gruß Mathias
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.