|
|
Jacobi-Matrix; Problem mit function handle |
|
S_Fuchs |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 16.01.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.01.2013, 19:11
Titel: Jacobi-Matrix; Problem mit function handle
|
 |
Hallo,
ich möchte ein Programm schreiben, dass die Jacobi-Matrix einer mehrdimensionalen (beliebigen) Funktion an einer bestimmten Stelle (x_0) ausgibt.
Der Anfang meines Versuchs sieht so aus:
Da der Benutzer eine Funktion angeben können soll, nutze ich "fhandle".
Die Funktionen sind im Allgemeinen von mehreren, beliebig vielen Variablen abhängig, zusammengefasst als Vektor x.
Mein Problem ist: Wie bekomme ich es hin, dass mein Programm den Vektor x, nach dessen einträgen die Jacobi-Matrix ja ableiten soll, aus der Funktion übernimmt?
Ich hab etwas rumprobiert, aber ich bin noch ein ziemlicher Anfänger und dankbar wenn ihr mir helfen könnt. Auch für weitere Tipps bin ich dankbar.
Eine Beispielfunktion, die ich versucht habe einzusetzen:
|
|
|
|
|
HerrErnie |

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 21.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.01.2013, 02:49
Titel:
|
 |
|
 |
|
Hallo,
Aus deinem Versuch werde ich zugegebenermaßen nicht ganz schlau. Zunächst wurde die Variable x gar nicht definiert. Desweiteren ist die Funktion jacobian meines Wissens nur für symbolische Ausdrücke gedacht. Und vor allem, wenn doch die symbolic math toolbox offenbar verfügbar ist, wozu dann der Aufwand?
Dein Beispiel könntest du auch einfach so mit vorhandenen Funktionen lösen:
Bin mir bei der Syntax von jacobian und subs gerade nicht 100% sicher, aber so in etwa dürfte das aussehen, notfalls in die Hilfe schauen.
Wenn es jedoch tatsächlich nur darum geht, eine per function-handle gegebene Funktion an einer bestimmten Stelle zu differenzieren, käme wohl eher der numerische Weg in Frage.
Ich hab das für ähnliche Zwecke vor einiger Zeit mal wie folgt gelöst:
Die partiellen Ableitungen werden einfach durch den zentralen Differenzenquotienten approximiert. Als Eingabe wird hier jedoch kein function-handle, sondern eine anonyme Funktion f erwartet. Solange die Funktionswerte betragsmäßig nicht zu groß sind, erhielt ich damit meist ordentliche Resultate. Im Beispiel würde damit
eine Approximation der Jacobi-Matrix im Vektor x0 ausgeben.
|
|
|
S_Fuchs |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 16.01.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.01.2013, 20:36
Titel:
|
 |
Danke für deine Antwort!
Ich muss auch gestehen dass ich vorher noch nicht mit der symbolic math toolbox gearbeitet habe. Wie ich das Beispiel damit lösen kann war mir noch einigermaßen klar, ich wollte es aber allgemein haben, weil ich mit der Jacobi-Matrix noch weiter arbeiten will (Newton-Verfahren).
Ich werde es dann doch numerisch angehen, auch da vielen Dank für deine Hilfe!
|
|
|
|
|
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.
|
|