|
|
Funktionsgröße und Variablenzahl dynamisch regulieren |
|
StarkEffect |

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 24.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.05.2013, 23:38
Titel: Funktionsgröße und Variablenzahl dynamisch regulieren
|
 |
|
 |
|
Hi,
versuche gerade eine Routine von mir zu verallgemeinern bei er eine bestimmte Zahl von Gleichungen mit fsolve gelöst wird. Ein einfaches Beispiel ist
wobei c's Konstanten sind die aus anderen Unterprogrammen gewonnen werden und fun(T) eine andere Funktion ist die von T abhängt. Soweit funktoniert alles, allerdings kann sich die Größe des Gleichungssystems und die Variablen, in dem Problem das ich behandle, öfter ändern. Beispielsweise könnte auch
als Funktion benötigt werden. Nun möchte ich vermeiden für jede Änderung der Größe des Gleichungssystems alle Eingaben per Hand zu verändern. Ist es daher möglich die Funktionen und Variablen irgendwie dynamisch zu variieren. Hatte mich meinen bisherigen Versuchen and dem Foreneintrag
http://www.gomatlab.de/funktion-in-.....ife-defnieren-t12531.html
gehalten. Allerdings konnte ich auch das dort angegebene Programm nicht zum Laufen bringen, da immer die Fehlermeldung Variable 'x' nicht definiert auftauchte.
Würde mich über eine Antwort und Lösung des Problems sehr freuen.
Viele Grüße
Sven
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 25.05.2013, 00:49
Titel:
|
 |
vielleicht mit
allerdings ist das schwer zu debuggen.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.05.2013, 15:47
Titel:
|
 |
Hallo,
aus den zwei Funktionen kann man ein gewisses Muster vermuten. Wenn es ein solches Muster gibt, könnte man das über Funktionen wie sum und diff lösen.
Allerdings müsstest du zunächst mal sagen, ob es ein solches Muster gibt und wie es genau aussieht.
Das wäre vermutlich in einer separaten Funktion einfacher als in einem anonymous Function Handle.
Sind an manchen Stellen ein paar ",0" zuviel?
Grüße,
Harald
|
|
|
StarkEffect |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 24.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.05.2013, 18:26
Titel:
|
 |
Hi zusammen,
ja genau es gibt ein Muster wie du vermutest. Die erste Zeile ist ein Energieerhaltungssatz und enthält immer alle Variablen T(i) die in den folgenden Gleichungen vorkommen. Die folgenden Gleichungen sind alle identisch abgesehen davon, dass die Variablen sich ändern. Also in der ersten Gleichung kommt T(2) und T(1) vor, in der zweiten T(3) und T(2) usw. Die Funktion fun selbst sieht wie folgt aus:
Dabei ist die Größe data in der Funktion fun enthalten (wird vorher geladen und ändert sich die ganze Zeit während der Berechnung nicht mehr). Auch das ,0 zu viel ist stimmt sollte nur fun(T) sein.
Also wie von dir vermutet gibt es ein Muster, allerdings weiß ich nicht, ob man sum und diff in der Definition von Funktionen verwenden darf. Schaue mir das aber nochmal an.
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.05.2013, 11:02
Titel:
|
 |
Hallo StarkEffect,
wenn Du eine richtige Funktion benutzen würdest, könntest Du das Ergebnis von fun auch zwischenspeichern und müsstest nicht alles doppelt berechnen.
Wenn dann noch fun Vektoren als Eingabe versteht:
|
|
|
|
|
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.
|
|