|
|
ode45 mit mehrdimensionalem Array? |
|
DarkCell |

Forum-Anfänger
|
 |
Beiträge: 11
|
 |
|
 |
Anmeldedatum: 20.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.10.2012, 22:06
Titel: ode45 mit mehrdimensionalem Array?
|
 |
|
 |
|
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.
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 03.10.2012, 22:42
Titel: Re: ode45 mit mehrdimensionalem Array?
|
 |
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|