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" - System von DGL lösen
System von DGL lösen < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

System von DGL lösen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 10:43 So 11.11.2007
Autor: Prinzessin04

Aufgabe
Plotten sie die Lösung des DGL-Systems für [mm]t \in [0,400][/mm] ab dem Startwert [mm]x(0)=1[/mm], [mm]y(0)=0[/mm], [mm]z(0)=0[/mm]:
[mm]\dot x = -(y+z)[/mm]
[mm]\dot y = x+ay[/mm]
[mm]\dot z = b+xz-cz[/mm]
mit [mm]a=0.2[/mm], [mm]b=0.3005[/mm], [mm]c=6.02[/mm]

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

Hi!

Ich stehe bei dieser Aufgabe irgendwie total auf dem Schlauch.
Wie bringe ich Matlab dazu dieses System von DGL zu lösen?
Ich habe zu den einzelnen DGLs Funktionen geschrieben, nach dem Muster

function dx = DGL_x1(t, y, z)
dx = -(y+z);


Und die dann zu lösen via

[t1,x] = ode45(@DGL_x1, [0 400], 1);

[t2,y] = ode45(@DGL_y1, [0 400], 0);

[t3,z] = ode45(@DGL_z1, [0 400], 0);


und anschließend zu plotten.

Das bringt mir zwar ein Ergebnis, aber natürlich nicht das korrekte.
Wie schaffe ich es, dass Matlab die DGLs in die entsprechenden Beziehungen setzt?

Vielen Dank schonmal an alle, die versuchen mir zu helfen!

Gruß,
die Prinzessin

        
Bezug
System von DGL lösen: Antwort
Status: (Antwort) fertig Status 
Datum: 12:21 So 11.11.2007
Autor: nschlange

Hi,

da macht man sich die Vektor-Orientiertheit von Matlab zu nutze:
Für das DGL-System schreibt man nur ein m-File dgl.m:
1: function dy=dgl(t,y)
2: dy=zeros(3,1);
3: global a;
4: global b;
5: global c;
6: dy(1)=-(y(2)+y(3));
7: dy(2)=y(1)+a*y(2);
8: dy(3)=b+y(1)*y(3)-c*y(3);


in dy(1) steht x'
in dy(2) y'
und in dy(3) z'
y(1) ist x,
y(2) ist y,
y(3) ist z.

Die globalen Variable a, b und c müssen im Hauptprogramm deklariert werden.
1: global a; a=0.2;
2: global b; b=0.3005;
3: global c; c=6.02;
4: y0=[1;0;0];
5: t=[0 400];
6: [t,y]=ode45(@dgl,t,y0);
7:
8: plot(t,y(:,1),t,y(:,2),t,y(:,3));


y ist dann der Lösungsvektor, mit Werten für
x, y und z zu den Zeitpunkten in t.

Das kannst Du auch z.B. hier nachlesen:
[]MATLAB Function Reference

Viele Grüße
nschlange

Bezug
                
Bezug
System von DGL lösen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:59 So 11.11.2007
Autor: Prinzessin04

Vielen Dank!

So funktioniert es.

Gruß,
die Prinzessin

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


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