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

eigenwerte und vektoren der größe nach ordnen

 

String
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 28.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2013, 14:16     Titel: eigenwerte und vektoren der größe nach ordnen
  Antworten mit Zitat      
Hallo liebes Forum!

Ich bin ein ziemlicher MatLab-Neuling, schreibe gerade mein erstes, dafür relativ umfangreicheres Programm zwecks Betrachtung physikalischer Phänomene und bin auf einige Probleme gestoßen. Da ich mir alles über Skripte im Internet etc. beigebracht habe, sind allgemeine Hinweise, Empfehlungen und Anmerkungen zu meinem Code sehr wünschenswert! Weil es soo viele Probleme sind, werde ich erstmal nur ein paar ansprechen.

1. Matrix erstellen

Ich habe eine symmetrische n x n-Matrx mit reellen Einträgen (4x4 - 256x256), deren Einträge Funktionen sind, die von einer Variable (dem Druck P) abhängen. Das möchte ich gerne in MatLab übersetzen.

P muss diskretisiert werden. Ich erstelle also einen Vektor

Code:

m = 1;

for l= 1:1000
    P(m)=l*0.01;
    m = m+1;
end
 


und jetzt die Matrix:

Code:

for i = 1:n
   for j = 1:n
       for q=1:1000
           
A(i,j,q)=(L/P(q))*exp(-beta*P(q)*sigma(i,j));

       end
   end
end
 

A(i,j,q) soll die Matrix zum Druck P(q) sein.

So erhalte ich 1000 Matrizen, nämlich A(i,j,1:1000), wobei es ja "in Wahrheit" genau eine Matrix wäre, deren Einträge Funktionen in Abhängigkeit von P sind.
Nun will ich die Eigenwerte und -vektoren dieser Matrix A_ij(P) bestimmen - und dann der Größe nach ordnen, wobei diese Eigenwerte und -vektoren selbst natürlich auch von P abhängen!
Für die 4x4 Matrix (n=4) gelingt das mit
Code:

h=1;
for i=1:1000
[V(:,:,h),D(:,:,h)] = eigs(A(:,:,i), n);
h=h+1;
end
 

Der größte Eigenwert findet sich hier bei D(1,1,1:1000), richtig?
Schien mir auf jeden Fall so.
Wenn ich jedoch n>4 wähle, kriege ich folgende Fehlermeldung:
Warning: For real symmetric problems, must have number of eigenvalues k < n.
Using eig(full(A)) instead.

Wodurch mir das wieder ungeordnet vorkommt. Ich muss nämlich mit den geordneten Eigenwerten und den zugehörigen Eigenvektoren weitere Größen berechnen. Das gibt allerdings unphysikalische Ergebnisse, wenn diese Ordnung nicht besteht. Die anderen Fragen später!

Schonmal vielen Dank und liebe Grüße Smile
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.