matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 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
StartseiteMatheForenMatlabEigenwerte mit Variablen
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Matlab" - Eigenwerte mit Variablen
Eigenwerte mit Variablen < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:14 Di 06.11.2007
Autor: heinz_13

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

Hallo...

Ich möchte die Eigenwerte einer Matrix berechnen lasssen. Die Elemente der Matrix hängen dabie von einer Variablen x ab. Diese liegt im Bereich von -0.1 bis 0.1. Also auf jeden Fall kleiner eins. Wenn ich eine For-Schleife nehme muss die Schrittweite aber mindestens 1 sein. Gibt es da andere Befehle, so dass ich die Eigenwerte in Abhängigkeit von x mir ausgeben lassen kann, und plotten.


Danke

        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 14:41 Di 06.11.2007
Autor: nschlange

Hi,

was willst Du plotten?

Etwa so:
1: clear all;
2: clf;
3: clc;
4:
5: hold on;
6:
7: Matrix=rand(3,3)
8: Bereich=linspace(-0.1,0.1,10);
9:
10: for zaehler=1:length(Bereich)
11:     Matrix(1,3)=Bereich(zaehler)
12:     Eigenwerte=eig(Matrix)
13:     if isreal(Eigenwerte)
14:         Eigenwerte=complex(Eigenwerte);
15:     end
16:     plot(Eigenwerte,'o');
17: end
?

mfg
nschlange

Bezug
                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:56 Di 06.11.2007
Autor: heinz_13

Also ich habe eine 3x3 Matrix. Die einzelnen Elemente hängen alle von zwei   Variablen (z.B.: x,y) ab. Nun möchte ich die Eigenwerte der Matrix in Abhängigkeit von diesen Variablen plotten. Also ein surf-PLot oder sowas. Das heißt es müssen für alle Wertepaare von x und y die Eigenwerte der MAtrix bestimmt werden. x und y liegen im Bereich von z.B.: -0.1 bis 0.1. Die Schrittweite dann bei 1/100 oder 1/1000.

Bin noch ziemlich neu mit dem Programm. Vielleicht ist es auch ganz einfach.

Danke schon mal.

Bezug
                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 15:09 Di 06.11.2007
Autor: nschlange

Ach so,

in welcher Weise hängen denn die Matrix-Elemente von x und y ab?
Gib doch mach ein konkretes Beispiel.

mfg
nschlange

Bezug
                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:16 Di 06.11.2007
Autor: heinz_13

Also...

die Matrix sieht so aus:

((A1+La+De-K)             A2                  A3    
        
         A2             (A1+La+De+K)         A3

         A3                        A3                  La)

so. Die A sind nur Konstanten. Für die anderen gilt:
      

        La=d1*z+d2*(x+y);

        De=d3*z+d4*(x+y);

        K=d5*(x-y);

        z=(-C13/C33)*(x+y);

die d sind wieder Konstanten. Ich will nun die Eigenwerte/Eigenvektoren in Abhängigkeit von x und y berechnen. Danach will ich sie als Plot darstellen.



Bezug
                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 15:54 Di 06.11.2007
Autor: Martin243

Hallo,

du kannst es doch wie von nschlange vorgeschlagen mit linspace machen, nur eben pro Dimension einmal.

Aber wer sagt denn, dass man ein for-Schleife nicht mit kleineren Schrittweiten durchlaufen kann? Du kennst wohl noch nicht:
for x=-0.1:1/100:0.1,
  for y=-0.1:1/100:0.1,
    Matrix, Eigenwert(e) berechnen, plotten
  end;
end;

So könnte man einen einfachen Plot gestalten.

Mit surf musst du zuerst die ganzen Daten berechnen und erst am Ende plotten. Dabei solltest du beachten, dass du dann aber nur je einen Eigenwert pro (x,y)-Paar ausgeben kannst. Das könnte problematisch werden, wenn die Anzahl auch von (x,y) abhängt.


Gruß
Martin

Bezug
        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 15:27 Di 06.11.2007
Autor: leduart

Hallo
x=xAnfang
for i=1 to n
x=x+Schrittweite
(oder x=xAnfang*i)
next i
Gruss leduart

Bezug
                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:47 Di 06.11.2007
Autor: heinz_13

Das geht so schon, aber wenn ich es darstelle dann macht er den plot in Abhängigkeit von i und nicht von x.

Bezug
                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 15:56 Di 06.11.2007
Autor: nschlange

Was macht er dann?
Hast Du schon ein Programm?
Es wäre nett, wenn Du das hier posten würdest, dann muss man nicht alles neu tippen.


Wenn ich das dann richtig verstanden habe würde ich Funktion matrix.m schreiben:

1:
2: function [ret] = matrix(x,y)
3: ret=zeros(3,3);
4: ret(1,1)=2*x.*y
5: ret(1,2)=A2;
6: u.s.w.
7: .
8: .
9: .
10: return;



Ein Aufruf von matrix(2,3) liefert Dir dann eine Matrix mit x=2 und y=3.
Davon kannst Du dann die Eigenwerte bestimmen.

Dann machst Du
1:
2: x=-0.1:0.001:0.1;
3: y=-0.1:0.001:0.1;
4: hold on;
5: for i=1:length(x)
6:   for j=1:length(y)
7:     M=matrix(x(i),y(j));
8:     ew=eig(M);
9:     if isreal(ew)
10:       ew=complex(ew);
11:     end;
12:     plot(ew,'o');
13:   end
14: end


Geht das evtl so?

Bezug
                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:47 Di 06.11.2007
Autor: heinz_13

So gehts nicht. Da kann man keinen 3D Plot machen. Nur wieder mit i und j an den Achsen. Das will ich aber nicht. Ich will es in Abhängigkeit von x und y.

Bezug
                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 17:18 Di 06.11.2007
Autor: nschlange

Was ist denn mit komplexen Eigenwerten?

Falls Deine Matrizen pos. def. sind könnte man in meinem Code cell-Arrays einführen.
1: clear all;
2: clc;
3: clf;
4: x=-0.1:0.02:0.1;
5: y=-0.1:0.02:0.1;
6: ew=cell(length(x),length(y));
7: hold on;
8: for i=1:length(x)
9:   for j=1:length(y)
10:     M=matrix(i,j);
11:     ew(i,j)={eig(M)};
12:     for k=1:3
13:       plot3(x(i),y(j),ew{i,j}(k),'o');
14:     end
15:   end
16: end


Geht bestimmt auch eleganter...

Bezug
                                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:28 Di 06.11.2007
Autor: heinz_13

Ja...so gehts..Nur kann ich keinen surf-Plot oder contour-Plot machen. Würd ich aber gern :-)...hast du da vielleicht auch noch ne idee...

erstmal danke

Bezug
                                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 18:02 Di 06.11.2007
Autor: nschlange

Natürlich hab ich eine Idee, das ist ja auch nicht so schwer.
Deshalb machst Du das vielleicht am besten mal selbst.
ew{i,k} enhält die drei Eigenwerte der aktuellen Matrix
Wie man auf die zugreift steht ja oben.
Für surf und co. musst Du jetzt nur eine Matrix z machen,
die die Dimension x * y hat und die Eigenwerte enhält.
Starte mal einen Versuch


Bezug
                                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 18:27 Di 06.11.2007
Autor: heinz_13

ich bekomms nicht hin...geht wieder nur das i und j an den achsen steht...und auch nur für mesh...für surf gehts nicht...die matrix hab ich aber mehr auch nicht...

Bezug
                                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 19:04 Di 06.11.2007
Autor: nschlange

Was soll das heissen?
'Für mesh gehts für surf nicht.'
Rück doch mal ein paar Zeilen Code raus...
Ich habs ohne mesh gemacht.
Du musst doch nur in der for-Schleife oben die einzelnen
Eigenwerte in Matrizen packen.

Bezug
                                                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:49 Di 06.11.2007
Autor: heinz_13

hab geschrieben

for i=1:length(x)
         for j=1:length(y)
              M=matirx(i,j)
              ew(i,j)={eig(M)}
              z(i,j)=ew{i,j}{1}
         end
end


Dann ließt er es ein aber nur für i und j und nicht für x und y.

Bezug
                                                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 21:05 Di 06.11.2007
Autor: nschlange

Da hab ich in dem Posting von 17:18 Uhr einen Fehler gemacht.
Da steht M=matrix(i,j).
i und j sind aber nur Laufvariablen, die von 1 an wachsen.
Weiter oben hab ich das aber richtig gemacht.
Man muss schreiben
M=matrix(x(i),y(j));
um die Funktion matrix mit den richtigen Werten aufzurufen.
x(i) ist das i-te Element von x.
Ansonsten sieht das doch gut aus.
surf(x,y,z) müsste dann gehen.

Bezug
                                                                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:37 Di 06.11.2007
Autor: heinz_13

Serh schön es funktioniert. Danke an dich. Da ich noch ein Anfänger mit dem Programm bin kannst du mir irgendwelche Bücher oder Internetseiten empfehlen wo MAtlap sehr gut erklärt ist. Oder wo hast du das alles gelernt?

Danke

Bezug
                                                                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 21:49 Di 06.11.2007
Autor: nschlange

Sehr schön!
Vielleicht kannst noch ein bisschen was zum Hintergrund erzählen?!
Wäre bestimmt interessant.

Zu Matlab:
Es gibt da natürlich viele Bücher, zum Einstieg braucht man die nicht.
Google mal nach "matlab einführung" oder "matlab grundlagen".
Da wird man viel finden.
Besonders empfehlen muss man die sehr gute Hilfe zu Matlab,
die auch online verfügbar ist
http://www.mathworks.com/access/helpdesk/help/helpdesk.html
und die Matlab Central
http://www.mathworks.com/matlabcentral/

Man kann auch viel Einführungsmaterial zu GNU Octave
benutzen, da die Programme sehr ähnlich sind.

Und wie bei jeder Programmiersprache möglichst viel
Code lesen.

Viele Grüße
nschlange

Bezug
                                                                                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:56 Di 06.11.2007
Autor: heinz_13

Ja zum Hintergrund:

Mann kann mit Hilfe dieser Matrizen Übergänge in Halbleitermaterialien berechnen. Die Eigenwerte der Matrizen sind die Übergangsenergien. Nun sind die Elemente in der Matrix von vielen Faktoren abhängig (z.B.:Verspannung im Material). Und diese Abhängikeiten sind sehr interessant. Also wie diese sich auf die Energien auswirken.

Hab das ganze auch schon mit Mathematica gerechnet da ist es wesentlich einfacher. Aber da geht halt nicht alles da es sehr analytisch ist.

Ich dank dir erstmal. Wenn ich nochmal Probleme hab dann post ich einfach hier.

mfg
Heinz_13

Bezug
                                                                                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 22:32 Di 06.11.2007
Autor: nschlange

Eine Sache kann ich doch noch empfehlen:

[]Matlab an der ETH


Bezug
                                                                                                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 10:20 Mi 07.11.2007
Autor: heinz_13

Hallo ich bins nochmal...

Wie sieht das jetzt aus wenn ich auch noch die einzelnen Elemente der Eigenvektoren plotten will. Das heißt ich will die einzelnen Elemente in eine Matrix einlesen und dann in Abbhängigkeit von x und y darstellen.

Hab geschrieben:

[ew(i,j),ev(i,j)]={eig(M)};

und oben wieder eine Cell für ev eingefügt. Dann sagt er immer das ich zu viele Ausgabe-Parameter habe.



Bezug
                                                                                                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 18:51 Mi 07.11.2007
Autor: nschlange

Ich kann es jetzt nicht ausprobieren, aber man könnte schreiben
1: [V,W]=eig(M);
2: ev(i,j)={V}
3: ew(i,j)={W(logical(eye(3)))}

Das logical gibt die Eigenwerte als einen 3x1 Vektor aus,
das ist eigentlich eine 3x3 Matrix, auf deren Diagonale die
Eigenwerte stehen.
Als Eigenvektoren bekommst Du ja je x,y Kombination
3 Vektoren mit 3 Elementen.
Wie willst Du die darstellen?


Bezug
                                                                                                                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:41 Mi 07.11.2007
Autor: heinz_13

Genauso wie die Eigenwerte. In Abhängigkeit vopn x und y. Also ein surf oder contour plot.

Bezug
                                                                                                                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 21:16 Mi 07.11.2007
Autor: nschlange

Ich rede immer von 3x3 Matrizen:
Jede Matrix hat 3 Eigenvektoren, einen zu jedem Eigenwert.
Jeder Eigenvektor hat drei Komponenten.
Willst Du dann die Komponenten des ersten/zweiten/dritten
Eigenwertes nehmen und als z(x,y) auftragen?



Bezug
                                                                                                                                                
Bezug
Eigenwerte mit Variablen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:44 Mi 07.11.2007
Autor: heinz_13

Das mit den Eigenwerten und Vektoren weiß ich. Die Eigenwerte hab ich schon mit surf (z(x,y)) dargestellt. Jetzt will ich einfach die einzelnen Elemente der Eigenvektoren genauso darstellen.

Bezug
                                                                                                                                                        
Bezug
Eigenwerte mit Variablen: Antwort
Status: (Antwort) fertig Status 
Datum: 22:05 Mi 07.11.2007
Autor: nschlange

Ich häng mal zwei m-Files an,
meine Test-Matrix-Funktion und das Hauptprogramm.
Meinst Du das so?
Die Zusammengehörigkeit von Eigenwerten und Eigenvektoren müsste
man sich nochmal genauer ansehen (falls man da Aussagen machen möchte)
Sind aber schon schöne bunte Bilder...

Dateianhänge:
Anhang Nr. 1 (Typ: m) [nicht öffentlich]
Anhang Nr. 2 (Typ: m) [nicht öffentlich]
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]