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

Windzeitreihen über Persistenz

 

lepmal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2012, 19:14     Titel: Windzeitreihen über Persistenz
  Antworten mit Zitat      
Hallo Freunde,
bin Matlab-Neuling und versuche eine Matrix mit Windgeschwindigkeiten nach dem Persistenzmodell zu generieren, d.h. nimm die Windgeschwindigkeit aus der Periode davor (Viertelstundenperioden deswegen m=1:96) und bau noch eine gewisse Unsicherheit durch "normrnd (0,1)" ein.

Ich weiß, dass es nicht sehr elegant programmiert ist und bin über Tips zur Vereinfachung sehr froh.

Was mich allerdings mehr stört, ist das sich der Wert nicht irgendwo einpendelt. Eigentlich müssten sich doch die Unsicherheiten bei einer Standardnormalverteilung gegenseitig auf lange Sicht ausgleichen.

Wo liegt mein Problem? Hab ich einen Denkfehler oder liegt es an einer fehlerhaften Programmierung?

Bin für jede Hilfe dankbar.

Gruß,
lepmal



Code:
%Windzeitreihen erzeugen

O = [];
for n=1:1000
    for m=1:96
        if n==1
            if m==1
            O(m,n) = 4 + normrnd(0,1) ;
            else
            O(m,n) = O(m-1,n) + normrnd(0,1) ;
            end
        else
            if m==1
              O(m,n) = O(96,n-1) + normrnd(0,1) ;  
            else
              O(m,n) = O(m-1,n) + normrnd(0,1) ;
            end
        end
    end
end
 


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.09.2012, 21:04     Titel: Re: Windzeitreihen über Persistenz
  Antworten mit Zitat      
Hallo lepmal,

Eine große Zahl normalverteilte Zahlen habe im Allgemeinen nicht die Summe 0. Dann wären sie ja nicht mehr zufällig, was ja die Unabhängigkeit einschließt. Versuche mal dies:
Code:
sum(rand(10000, 1) - 0.5)
sum(rand(100000, 1) - 0.5)
sum(rand(1000000, 1) - 0.5)

Je mehr Zufallszahlen man addiert, desto größer ist im Durchschnitt der Absolutewert des Ergebnisses. Andernfalls würde die Brown'sche Molekularbewegung die Teilchen auf Dauer alle am gleichen Ort belassen und eine Diffusion fände nicht statt.

Mit CUMSUM lassen sich die Schleifen vermeiden:
Code:
Dev = normrnd(0, 1, 1, 96 * 1000);
Dev(1) = Dev(1) + 4;
O = cumsum(Dev);
O = reshape(O, 96, 1000);

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
lepmal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.10.2012, 14:16     Titel:
  Antworten mit Zitat      
Vielen Dank für die Hilfe, Jan

Würde bei kommenden Problemen, die sich maßgeblich im selben Themenbereich abspielen gerne diesen Thread weiterbenutzen.

Gruß, Andreas
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.10.2012, 16:40     Titel:
  Antworten mit Zitat      
Hallo lepmal,

Neue Frage, neuer Thread. Andernfalls ist der "beantwortet"-Status sinnfrei.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
lepmal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.10.2012, 19:03     Titel: Windzeitreihen
  Antworten mit Zitat      
Hallo Freunde,

folgende Problemstellung:
Ich hab ne Referenzreihe an WIndgeschwindigkeiten über einen Tag alle Viertelstunde also 96 Werte.
Nun will ich das ganze in die Zukunft prognostizieren:
- Einmal will ich ein Teil der Periode davor (i-1)
- Dann ein Teil aus der gleichen Periode vom Vortag (i-96)
- und dann hätt ich gerne die korrespondierende Periode der Referenzreihe X

Meine Frage ist, kann ich in die for-Schleife eine zweite Variable einbauen, die immer von 1:96 mitläuft und bei i=97 und i=193 usw. immer wieder bei 1 anfängt.
Wenn das geht? Wie?

Bin über jeden Rat dankbar. Der Thread sollt auch noch passen.
Thx

Code:
FT_TG_W_ar = [3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.6 3.65 3.7 3.75 3.8 3.85 3.9 4.0 4.1 4.15 4.2 4.25 4.3 4.325 4.35 4.35 4.35 4.35 4.35 4.35 4.325 4.3 4.275 4.25 4.225 4.2 4.175 4.15 4.05 3.9 3.8 3.775 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.7 3.7 3.7 3.7 3.675 3.675 3.675 3.675 3.65 3.65 3.625 3.625 3.6 3.6];

Dev = normrnd(0.4, 0.2, 1, 96 * 5000);

%AR(1;96)
for i=97:480000
    FT_TG_W_ar(i) = X + (0.2 * FT_TG_W_ar (i-96)) + (0.2 * FT_TG_W_ar (i-96)) + Dev(i);
end
 
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.