www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 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" - Partizipationsfakt.-Eigenvekt.
Partizipationsfakt.-Eigenvekt. < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Partizipationsfakt.-Eigenvekt.: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 18:19 Fr 26.09.2014
Autor: flor1an

Aufgabe
Bestimmung der Partizipationsfaktoren der Matrix A = [ 1+i , 2 ,5; i-3, i+2 , 7; 4, i+2 , 1]

Mein Ansatz lautet bei der Berechnung mit Matlab:

%right eigenvector R and canonical form of eigenvalue matrix D
[R,D]=eig(A);
test1= A*R-R*D; % Probe, Ergebnis nahe null (e-14)
[W,D]=eig(A.');
test2= W.'*A-D*W.';% Probe, Ergebnis nahe null (e-14)
L = W.';

%Normalisierung, Rechte Eigenvektoren sind automatisch genormt
u=0;
j=1;
while j<4,
   i=1;
   while i<4,
      [mm] u=u+L(i,j)^2; [/mm]
i=i+1;
   end
norm(j,1)=u ;  
u=0;  
j=j+1;
end

j=1;
while j<4,
   i=1;
   while i<4,
      left(i,j)=L(i,j)./norm(j,1);
i=i+1;
   end  
j=j+1;
end
j=1;

Nun sollte doch eigentlich gelten:
L(:,i)' * R(:,j)=δij
where δij is the Kronecker delta:
δij=1 for i=j,
     =0 else

Oder nicht? Tut es bei mir jedenfalls nicht.
Berechnung der Partizipationsfaktoren würde ich jedenfalls wie folgt machen:

j=1;
% j is index on columns (modes)
% i is index on rows (states)
while j<4,
   i=1;
   while i<4,
      pf(i,j)=L(i,j)*R(i,j);
i=i+1;
end
j=j+1;
end
pf


Ist das so richtig? Warum funktioniert die Normalisierung nicht?


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

Danke für die Hilfe

        
Bezug
Partizipationsfakt.-Eigenvekt.: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:50 Fr 26.09.2014
Autor: flor1an

zwischen den beiden schleifen fehlt natürlich noch:
norm=sqrt(norm);

Bezug
        
Bezug
Partizipationsfakt.-Eigenvekt.: Antwort
Status: (Antwort) fertig Status 
Datum: 13:01 Sa 27.09.2014
Autor: Marcel

Hallo,

> Bestimmung der Partizipationsfaktoren der Matrix A = [ 1+i
> , 2 ,5; i-3, i+2 , 7; 4, i+2 , 1]

Rückfrage: Was sind Partizipationsfaktoren einer Matrix?

Googel liefert mir keine vernünftige Definition, und den Begriff habe ich
(so) meines Wissens nach noch nie gehört.
Ich weiß nicht, ob andere den Begriff auch nicht kennen...

Edit: Passt das hier: []http://www.ibk.ethz.ch/emeritus/da/education/EB/Downloads/EBI_V05_Berechnungsverfahren_FS09_DS.pdf ?

Gruß,
  Marcel

Bezug
        
Bezug
Partizipationsfakt.-Eigenvekt.: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:11 Sa 27.09.2014
Autor: Marcel

Hallo nochmal,

generell gibt es in Matlab immer zwei Tücken, die man bei komplexen
Zahlen/Matrizen beachten sollte:

1.) Der Befehl

    A.'

liefert die Transponierte einer Matrix, der Befehl

    A'

die konjugiert Transponierte. Ich denke, dass Du darauf geachtet hast.

2.) Das Quadrat einer komplexen Zahl ist Vorzeichenbehaftet, wie Du
etwa an

    [mm] $i^2=-1$ [/mm]

sofort siehst. Es kann sein, dass Du irgendwo

    [mm] $z^2\,$ [/mm] für $z [mm] \in \IC$ [/mm]

geschrieben hast, aber

    [mm] $|z|^2$ [/mm]

schreiben wolltest (in Matlab kannst Du norm(z).^2 oder abs(z).^2 schreiben,
der Punkt vor dem ^-Zeichen kann hier auch weggelassen werden).

Das sind jetzt einfach nur mal Kontrolltipps für Deinen Code, evtl. hast
Du da ja doch alles so gemacht, wie Du es machen willst. Aber lieber
einmal zuviel kontrollieren als einmal zu wenig...

Gruß,
  Marcel

Bezug
                
Bezug
Partizipationsfakt.-Eigenvekt.: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 13:02 Fr 03.10.2014
Autor: flor1an

Hallo,
Danke für deine Antwort. Die habe ich leider jetzt erst gesehen, da ich irgendwie keine Mitteilung bekommen habe.
Mit Partizipationsfaktoren meinte ich das folgende:
http://home.eng.iastate.edu/~jdm/ee554/Participation_factors.pdf

Ich habe jetzt zwar die Matrix der participation factor M, allerdings soll die Summe jeder Spalte und jeder Zeile 1 sein. Gibt es eine Möglichkeit Zeile und Spalte eine Matrix gleichzeitig zu normieren? Also wenn ich zunächst  die Spalte mit ihrem Betrag normiere, führt das ja noch nicht zu einer Normierung der Zeile. Dessen Normierung würde, aber wieder die Normierung der Spalte untergraben oder nicht?

Mein Code bis hierhin:
[R,D] = eig(A);
L=inv(R);    
participation_factor = L.*R';

%% Normalizing coloumns
j=1;
while j<19, %limits depending on matrix size
   i=1;
   u=0;
   while i<19,
      u=u+abs(participation_factor(i,j));
    i=i+1;
   end
norm(j,3)=u ;  
u=0;  
j=j+1;
end
norm2=sqrt(norm);
%normalizing the vector
j=1;
while j<19,
   i=1;
   while i<19,
      participation_factor(i,j)=participation_factor(i,j)./norm(j,3);
    i=i+1;
   end  
j=j+1;
end


So habe ich aber halt nur die spalten normiert, wenn ich nun aber noch die Zeilen normiere, ändern sich die einzelnen Werte ja wieder...
Also gibt es eine Möglichkeit Zeilen und Spalten gleichweit zu normieren?

Bezug
                        
Bezug
Partizipationsfakt.-Eigenvekt.: zur Normierungsfrage
Status: (Antwort) fertig Status 
Datum: 15:11 Fr 03.10.2014
Autor: Marcel

Hallo,

> Hallo,
>  Danke für deine Antwort. Die habe ich leider jetzt erst
> gesehen, da ich irgendwie keine Mitteilung bekommen habe.
>  Mit Partizipationsfaktoren meinte ich das folgende:
>  
> http://home.eng.iastate.edu/~jdm/ee554/Participation_factors.pdf
>  
> Ich habe jetzt zwar die Matrix der participation factor M,
> allerdings soll die Summe jeder Spalte und jeder Zeile 1
> sein. Gibt es eine Möglichkeit Zeile und Spalte eine
> Matrix gleichzeitig zu normieren? Also wenn ich zunächst  
> die Spalte mit ihrem Betrag normiere, führt das ja noch
> nicht zu einer Normierung der Zeile. Dessen Normierung
> würde, aber wieder die Normierung der Spalte untergraben
> oder nicht?

das sehe ich genauso. Betrachten wir mal die nicht symmetrische Matrix

    [mm] $A=\pmat{3 & 4\\3 & 4}\,.$ [/mm]

Um die Zeilen zu normieren musst Du jede Zeile mit

    [mm] $\frac{1}{\sqrt{3^2+4^2}}=\frac{1}{5}$ [/mm]

multiplizieren.

Zur Normierung der Spalte aber die erste mit

    [mm] $\frac{1}{2*3}=\frac{1}{6}$ [/mm]

und die zweite mit

    [mm] $\frac{1}{2*4}=\frac{1}{8}\,.$ [/mm]

Das bedeutet ja, dass Du bei dem simultanen Vorgang

    den ersten Eintrag [mm] $a_{1,1}=3$ [/mm] mit [mm] $\frac{1}{5}*\frac{1}{6}$ [/mm]

multiplizieren wolltest - das kann nicht funktionieren.

P.S. Bei symmetrischen Matrizen haben wir natürlich erstmal das
gleiche Problem. Aber vielleicht will man da ja nur die Zeilen der Matrix normieren
und dann mit den normierten Zeilen eine neue symmetrische Matrix zusammenbauen.

P.P.S. Ich bin noch nicht dazu gekommen, in Deinen Link reinzuschauen und
weiß auch nicht, wann ich die Zeit dazu finde. Ich hoffe, dass vielleicht, wenn
der/die ein/e oder andere mehr Zeit hat, Dir da vielleicht auch helfen kann.

Gruß,
  Marcel

Bezug
                        
Bezug
Partizipationsfakt.-Eigenvekt.: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:20 So 05.10.2014
Autor: matux

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


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]