Verfasst am: 18.02.2012, 09:31
Titel: Zufällige Werte in einem Intervall für Berechnung
Hallo,
ich habe wieder ein Problem und weiß nicht wie ich es in Matlab realisiere. Bis jetzt bin ich in dem Programm immer noch ein Newbie.
Zur Frage:
Ich habe eine Gleichung, die zur Berechnung eines Systems dient. In dieser Gleichung sind 6 verschiedene Parameter, für die ich jeweils einen Zufallswert im Intervall von [0.95 0.99] haben möchte. Nun möchte ich dies durch eine for-schleife mit 100 Durchgängen laufen lassen und am Ende einen arithmetischen MW erhalten.
Nun weiß ich jedoch nicht wie ich in jedem Durchgang dem einzelnen Parameter wieder eine Zufallszahl aus dem oben genannten Intervall gebe. Mit rand habe ich es bisher nie auf die Reihe bekommen.
x = 0.95 + 0.04*rand(100,6);
y = ((x(:,1)+x(:,2)-x(:,1).*x(:,2)).*x(:,4)+...
x(:,3)-(x(:,1)+x(:,2)-x(:,1).*x(:,2)).*x(:,4).*x(:,3)).*x(:,5).*x(:,6);
mean(y)
Vielen Dank, dass war genau das was ich gesucht habe. Gibt es auch die Möglichkeit ein Ergebnis zu speichern? Weiterhin wollte ich fragen, wie ich jetzt zum Beispiel die Durchgänge verändern kann?
EDIT: Wenn ich 1000 Durchgänge mache, dann pendelt es sich bei einem Wert ein. Von daher ist die Frage hinfällig.
Zuletzt bearbeitet von ponjio am 18.02.2012, 10:42, insgesamt einmal bearbeitet
Mir fällt doch noch eine Frage ein. Im Moment erzeugt er ja die Zufallszahlen gleichverteilt. Wenn man ein bisschen math. Ahnung hat, weiß man, dass das Ergebnis im Intervall von [0.95 0.99] beim arithmetischen MW genau in der Mitte zwischen dem Minimal- und dem Maximalwert liegt.
Nun habe ich bei der Produkt-Hilfe die random-Funktion mit verschiedenen 'strings' gefunden. Ich würde gerne die Zufallszahlen einmal m.H. einer Weibull-Verteilung (wbl), einer Exponentialverteilung (exp), einer Chi-Quadrat-Verteilung (chi2) und einer Pareto-Verteilung (gp) berechnen lassen. Wie implementiert man diese Funktionen?
die Dokumentation mitsamt Beispielen sollte das an sich erklären.
Was genau verstehst du nicht?
Grüße,
Harald
Ja sie hat sich fast selbst erklärt. Ich weiß nur im Moment nicht, wie ich meine Intervallgrenzen eingebe? Die Werte für lambda und k schreibe ich dann in eckige Klammern? Iwie muss ich ja die Verteilung beeinflussen?
Die Formel lautet:
Code:
x=random('wbl',0.95,0.99,1000,6);
y = ((x(:,1)+x(:,2)-x(:,1).*x(:,2)).*x(:,4)+...
x(:,3)-(x(:,1)+x(:,2)-x(:,1).*x(:,2)).*x(:,4).*x(:,3)).*x(:,5).*x(:,6);
mean(y)
die meisten Verteilungen haben keine "harten" Grenzen, d.h. du steuerst die Verteilung nicht über das Intervall, sondern andere Parameter. Stell dir z.B. die Normalverteilung vor - da gibts ja auch keine harten Grenzen; die Werte werden nur umso unwahrscheinlicher, je weiter sie vom Mittelwert weg sind.
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
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.