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 mit mehrdimensionalem Array?

 

DarkCell
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 20.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.10.2012, 22:06     Titel: ode45 mit mehrdimensionalem Array?
  Antworten mit Zitat      
Moin,
folgende Ausgangssitution:
Ich habe ein Array mit Zellen, sollen biologische Zellen simulieren aber das ist nicht so wichtig also einfach ein Array mit Dingen/Zellen.
Ich habe eine DGL-System, dass eine!! dieser Zellen beschreibt. Wobei das System für alle Zellen identisch ist.
Die Zellen sind miteinander verbunden, sodass die Reaktion einer Zelle, die direkt anliegenden beeinflussen kann.
Ich habe unterschiedliche Startwerte für jede Zelle.

Aufgabe:Das DGL System für alle Zellen gleichzeitig lösen mit Berücksichtigung der Verknüpfungen.

Mein Ansatz: Der Übersichtlichkeit halber wollte ich die Startbedingungen und Ableitungsfunktion so anpassen, dass sie ein dreidimesionales Array bilden, wobei die letzten zwei "Koordinaten" eben identisch mit den Zell-Array Koordinaten sind.
Problem offensichtlich schreibt die ode45 Funktion die dreidimensionale Matrix in einen Vektor um. Kann die ode45 Funktion nicht mit mehrdimensionalen Matrizen umgehen?
Sofern er den Input in einen Vektor umschreibt, in welcher Reihenfolge tut er das?

Da ich noch Matlab Neuling bin, bin ich auch für Kritik an meinem Ansatz dankbar, sofern es einfacher, schneller, etc. gehen sollte.
Ich kann auch Quellcode posten, sofern gewünscht.

Danke schonmal im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.10.2012, 22:42     Titel: Re: ode45 mit mehrdimensionalem Array?
  Antworten mit Zitat      
Hallo DarkCell,

Matlab's ODE-Solver bearbeiten tatsächlich nur Vektoren. Allerdings ist das mathematisch gesehen kein Unterschied, ob das nun ein mehrdimensionales Arrays ist oder ein Vektor, solange die Operatoren geeigent definiert sind.

Die Reihenfolge der Elemente bei der Umwandlung von 3D-Arrays in Vektoren ist spalten-orientiert. Beispiel:
[code]
x = [1, 2; ...
3, 4];
y = x(:); % Umwandlung in Spaltenvektor ändert die Reihenfolge nicht
% ==> [1; 3; 2; 4][code]
Die Reihenfolge geht also von oben nach unten und danch von links nach rechts. Wenn das noch nicht klar ist, probiere es einfach mal mit ein paar test-Matrizen:
[code]x = reshape(1:24, [2,3,4])[/code]
Der eigentliche Ansatz hört sich gut an.

Gruß, Jan
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 - 2025 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.