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

ode45 und funktionsaufruf dazu

 

christian_ki

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.10.2008, 10:07     Titel: ode45 und funktionsaufruf dazu
  Antworten mit Zitat      
hallo miteinander:
ich habe ein programm bekommen, dass ich verstehen soll:

Code:

[t,x]=ode45('hopf10',[0,8],[-.5;1;.6;.6;-.5;1;.6;.6;-.5;1;.6;.6;-.5;1;.6;.6;-.5;1;.6;.6;-.5;1;.6;.6;0;0;0;0],[],w1,w2,w3,w4,u);
___________________

function dx=hopf10(t,x,flag,w1,w2,w3,w4,u);
 

    dx=[(u-x(1)^2-x(2)^2)*x(1)-w1*x(2)-w2*(x(3)+x(5)+x(7)+x(9)+x(17));
        (u-x(1)^2-x(2)^2)*x(2)+w1*x(1);
        (u-x(3)^2-x(4)^2)*x(3)-w1*x(4)-w2*(x(1)+x(5)+x(7)+x(11)+x(19));
        (u-x(3)^2-x(4)^2)*x(4)+w1*x(3);
        (u-x(5)^2-x(6)^2)*x(5)-w1*x(6)-w2*(x(3)+x(1)+x(7)+x(13)+x(21));
        (u-x(5)^2-x(6)^2)*x(6)+w1*x(5);
        (u-x(7)^2-x(8)^2)*x(7)-w1*x(8)-w2*(x(3)+x(5)+x(1)+x(15)+x(23));
        (u-x(7)^2-x(8)^2)*x(8)+w1*x(7);
        (u-x(9)^2-x(10)^2)*x(9)-w1*x(10)-w3*x(1);
        (u-x(9)^2-x(10)^2)*x(10)+w1*x(9);
        (u-x(11)^2-x(12)^2)*x(11)-w1*x(12)-w3*x(3);
        (u-x(11)^2-x(12)^2)*x(12)+w1*x(11);
        (u-x(13)^2-x(14)^2)*x(13)-w1*x(14)-w3*x(5);
        (u-x(13)^2-x(14)^2)*x(14)+w1*x(13);
        (u-x(15)^2-x(16)^2)*x(15)-w1*x(16)-w3*x(7);
        (u-x(15)^2-x(16)^2)*x(16)+w1*x(15);
        (u-x(17)^2-x(18)^2)*x(17)-w1*x(18)-w4*x(1);
        (u-x(17)^2-x(18)^2)*x(18)+w1*x(17);
        (u-x(19)^2-x(20)^2)*x(19)-w1*x(20)-w4*x(3);
        (u-x(19)^2-x(20)^2)*x(20)+w1*x(19);
        (u-x(21)^2-x(22)^2)*x(21)-w1*x(22)-w4*x(5);
        (u-x(21)^2-x(22)^2)*x(22)+w1*x(21);
        (u-x(23)^2-x(24)^2)*x(23)-w1*x(24)-w4*x(7);
        (u-x(23)^2-x(24)^2)*x(24)+w1*x(23);
        (u-x(25)^2-x(26)^2)*x(25)-2*w1*x(26)-w2*x(1);
        (u-x(25)^2-x(26)^2)*x(26)+2*w1*x(25);
        (u-x(27)^2-x(28)^2)*x(27)-2*w1*x(28)-w2*x(19);
        (u-x(27)^2-x(28)^2)*x(28)+2*w1*x(27)];
 


Frage 1:
wieso wird hopf10 nicht mit dem @operator aufgerufen? in jeder doku die ich finde kommt es so vor..

Frage 2:
da programm erstellt ja 28 einzelne lösungen.
wie müsste denn der code aussehen wenn ich nur eine schwinung haben möchte?
mein versuch funktioniert leider nicht(hab den genzen rest mal weggelassen:
Code:

 function dx=hopf10_test(x,u)
    dx=[(u-x(1)^2-x(2)^2)*x(1);
        (u-x(1)^2-x(2)^2)*x(2)+x(1);];
_________________

u=1;
[t,x]=ode45('hopf10_test',[0,8],[1;0],[],u);



 



vielen dank
christian


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 21.10.2008, 12:10     Titel:
  Antworten mit Zitat      
m-files bzw. m-files als function benötigen keinen @operator. Da musst du nochmal den Unterschied zwischen Funktionen im eigentlichen Sinne und den m-files anschauen.

Dein Aufruf für eine Schwingung funktioniert nicht, weil du zu viele Eingabeparameter angibts, obwohl du nur 2 in der Funktion definiert hast.



Code:
function dx=hopf10_test(x,u) % <--- 2 parameter
    dx=[(u-x(1)^2-x(2)^2)*x(1);
        (u-x(1)^2-x(2)^2)*x(2)+x(1);];
_________________

u=1;
[t,x]=ode45('hopf10_test',[0,8],[1;0],[],u); % <--- 4 parameter
 

_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
luke_you know?
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 15.10.08
Wohnort: 100km weg von Shanghai
Version: ---
     Beitrag Verfasst am: 21.10.2008, 14:40     Titel:
  Antworten mit Zitat      
wieso 2 oder 4 parameter? der einzige parameter ist doch u?

der rest ist lösungsintervall und 2 anfangsbedingungen??so ganz nach vorschrift, ausserdem das obere beispiel funktioniert ja...


gruss chr
_________________

hi i´m luke, like luky luke - you know?
Private Nachricht senden Benutzer-Profile anzeigen
 
Schrank
Forum-Century

Forum-Century


Beiträge: 203
Anmeldedatum: 10.07.08
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 21.10.2008, 17:21     Titel:
  Antworten mit Zitat      
Hallo Chr,
bevor du dich mit deiner eigentlichen Aufgabe beschäftigst, solltest du dir vielleicht mal ansehen wie "functions" in Matlab funktionieren.
Dann wirst du feststellen das (alle) Funktionen eine bestimme Anzahl von Inputvariablen brauchen und ebenso eine bestimmte Anzahl von Outputvariablen. Gibst du zuviele oder zuwenige Variablen als Input in eine Funktion gibt es einen Fehler.
Gruß Schrank

P.S. die Anzhal erkennst du an
function [Anzahl der Outputvariablen] = Funktionsname(input1, input2...)
Private Nachricht senden Benutzer-Profile anzeigen
 
luke_you know?
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 15.10.08
Wohnort: 100km weg von Shanghai
Version: ---
     Beitrag Verfasst am: 29.10.2008, 09:07     Titel:
  Antworten mit Zitat      
ok_sorry für mein unverständnis, das hat sich jetzt geklärt..
mein matlab_buch hat nur die letzten parameter als parameter erklärt. War mir nicht ganz klar, dass man beim funktionsaufruf dann auch das lösungsintervall und die anfangsbedingungen angeben muss.
jetzt funktionierst.

vielen dank.
_________________

hi i´m luke, like luky luke - you know?
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 - 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.