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

inhomogenes differenzialgleichungssystem

 

mike793
Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.08.2009, 18:24     Titel: inhomogenes differenzialgleichungssystem
  Antworten mit Zitat      
halle zusammen

ich würde gerne mal wissen welchen befehl man für das lösen eines inhomogenes differenzialgleichungssystem verwenden kann.!!!!

und gibt es irgendwo dafür ein Beispiel dafür damit man sich das imm konkreten ansehen kann!!!

vielen danke
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.08.2009, 23:32     Titel:
  Antworten mit Zitat      
Code:

und ähnliche. Beispiele in der Dokumentation...
Private Nachricht senden Benutzer-Profile anzeigen
 
mike793
Themenstarter

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2009, 04:18     Titel:
  Antworten mit Zitat      
hallo danke für den Tipp!!!

aber kann der ode45 befehl auch eine differentialgleichungssystem 2.ter ordnung mit einem STÖRFUNKTION die eine Ableitung auch besitzt lösen????

schaut schematisch so aus

Ax´´+Bx´+Cx = Ru+Wu´
Dx´´+Ex`+Fx = 0

danke mike
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.08.2009, 09:02     Titel:
  Antworten mit Zitat      
DGLen zweiter Ordnung müssten in Systeme von DGLen erster Ordnung umgeschrieben werden. Da du zwei Gleichungen hast, gehe ich hier davon aus, dass die DGL wirklich als eine in zwei Funktionen aufgefasst werden kann.
Das würde allerdings dem widersprechen, dass u eine Störfunktion ist. Anders gefragt: sind u / u' vorgegeben oder sollen sie bestimmt werden?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mike793
Themenstarter

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2009, 10:43     Titel:
  Antworten mit Zitat      
ja u und u´ sind vorgegeben. also u ist ein funktion und u´ist eben die Ableitung davon. ich brauche halt x2!!!!

!


habe jetzt jedoch ein neues Diff. gleichungssystem nach der Art

Ax1´´+Bx1´+Cx2´+ Dx1´+Ex1+ Fx2=Pu+ Ou´
Ix2´´+Jx1´+Kx2´+ Lx1´+Mx1+ Nx2=0

wisst ihr wie da bei diesem Problem die übergeführten Differentialgleichungen 1ter Ordnung ausshen müssen

Ist auch mit ODE45 möglich und welchen Unterschied macht es aus im Code con Matlab? GESUCHT WIRD x2´´!!!!!

y'(t) + f(t)y(t) = g(t)

Code:

%First, define the time-dependent parameters f(t) and g(t) as the %following:

ft = linspace(0,5,25); % Generate t for f
f = ft.^2 - ft - 3; % Generate f(t)
gt = linspace(1,6,25); % Generate t for g
g = 3*sin(gt-0.25); % Generate g(t)

%Write an M-file function to interpolate the data sets specified %above to obtain the value of the time-dependent terms at the %specified time:

function dydt = myode(t,y,ft,f,gt,g)
f = interp1(ft,f,t);        % Interpolate the data set (ft,f) at time t
g = interp1(gt,g,t);      % Interpolate the data set (gt,g) at time t
dydt = -f.*y + g;         % Evalute ODE at time t



Tspan = [1 5];                                          % Solve from t=1 to t=5
IC = 1;                                                     % y(t=0) = 1
[T Y] = ode45(@(t,y) myode(t,y,ft,f,gt,g),Tspan,IC);    % Solve ODE
[/quote]
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.08.2009, 12:45     Titel:
  Antworten mit Zitat      
Dieser Ansatz wird dann standardmässig verwendet:
x3 = x1'
x4 = x2'

In deinem System kommt in den Gleichungen x1' jeweils doppelt vor, was irritieren könnte. Wenn man das jedoch so nimmt, ist:

dxdt(1) = x(3)
dxdt(2) = x(4)
dxdt(3) = 1/A * (Pu+ Ou'- (B x(3) +C x(4)+ D x(3) +E x(1)+ F x(2)))
dxdt(4) = -1/I * (J x(3) +K x(4) + L x(3)+M x(1)+ N x(2))

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mike793
Themenstarter

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2009, 10:57     Titel: Problem beim aufstellen der Differentialgleichungssystem
  Antworten mit Zitat      
Hallo habe nun das system aufgestellt, bekomme aber immer eine Fehlermeldung wenn ich das M* file Starten will! wisst ihr wodader fehler liegt?????????

Code:

%File 1
c1=300000;
c2=20000;
m1=48;
m2=500;
d1=40;
d2=1300;
%t=0:0.1:10;
t0=0;
te=10;
x0=[0;0];  
[T,X] = ode45(@gleich,[0 3000],[2 0]);

%file2

function dx  = gleich( t,x,m1,m2,c1,c2,d1,d2 )

u=sin(2*pi*(19.8/40*t).*t);


dx(1) = x(3);
dx(2) = x(4);
dx(3) = (d1+d2)/m1*x(3)+(c1+c2)/m1*x(1)-c2/m1*x(2)-d2/m1*x(4)-c1/m1*u-d1/m1*u';
dx(4) = d2/m2*x(4)+c2/m2*x(2)-d2/m2*x(3)-c2/m2*x(1);
end




 


vielleicht ist das wichtig habe die Version 2009a !

vielen dank
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.09.2009, 16:13     Titel:
  Antworten mit Zitat      
Hallo,

vermutlich liegt es daran, dass ode45 eine Funktion mit zwei Input Parametern erwartet.

Zwei Abhilfemöglichkeiten:

Die Funktion gleich als geschachtelte ("nested") Funktion mit Inputs t,x zu file1 definieren. Alle anderen Inputs werden automatisch übernommen.
ODER
statt der Funktion gleich ein Handle
f = @(t,x) gleich( t,x,m1,m2,c1,c2,d1,d2 )
übergeben.

So oder so: bitte nicht nur sagen, DASS man einen Fehler bekommt, sondern auch WELCHEN!!

Was soll bei der Berechnung von dx(3) das u' am Ende? Damit wird transponiert, was aber bei einem Skalar wenig Sinn macht. Eine Ableitung müsstest du ggf. schon von Hand berechnen!

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mike793
Themenstarter

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2009, 16:44     Titel:
  Antworten mit Zitat      
Als erstes mal vielen DANK HARALD das du mir bis jetzt so viel geholfen hast.!!!!!!

Aber einmal muss ich dich bzw. euch noch mal stören mit diesem Problem. Ist es beim ODE45 Befehl möglich die Zeitschritte von hand aus zu wählen!!!! Also das ich sage zB.: alle 0,1 sek soll er die Gleichung lösen?
und wenn ja WIE????????????

DANKE
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.449
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.09.2009, 17:41     Titel:
  Antworten mit Zitat      
Hallo nochmal,

den gewünschten Vektor als tspan (in deinem Fall statt [0, 3000] z.B. 0:0.1:3000) angeben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mike793
Themenstarter

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.09.2009, 09:20     Titel:
  Antworten mit Zitat      
Hallo

mir würd noch interessieren, wie man statt eine sinusfunktion eine liste als u angibt!!! Ich stelle mir das so for das ich eine Liste einlese und nach dieser Liste wird das u mitintegriert das soll so aussehen:
Code:

list2=0:0.01:20;
k=1:length(t);
u(k)=list2(k);  
..

nur ich bekomme nur einen Punkt als Plot uder eine Gerade um 0 was sicher nicht stimmt!

DANKE
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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 - 2024 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.