|
|
Vektorwertige variable Funktion mit variabler Eingangsgröß |
|
Earl |

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 17.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 11:51
Titel: Vektorwertige variable Funktion mit variabler Eingangsgröß
|
 |
Hallo zusammen!
Vorweg: Ich bin ein Neuling im Umgang mit Matlab.
Ausgangslage:
Ich soll eine Funktion schreiben, dessen Aufgabe an dieser Stelle vielleicht noch keine Rolle spielt.
Eingangsparameter: unter anderem: Zeiger auf eine beliebige stetige Funktion f: -> und einen Startvektor x0 aus . Wichtig dabei: n ist variabel.
x0 ist wie gesagt nur ein Startvektor, der später ständig verändert wird.
Das Problem:
innerhalb der zu Programmierenden Funktion muss f(x0) ständig ausgewertet werden und genau das bekomme ich nicht in den Griff. Ich kann ja leider nicht einfach schreiben f(x0(1,1), x0(2,1),..) weil die Dimension von x0 ja variabel ist.
Ich Bitte um Hilfe!
Gruß Earl
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 11:55
Titel:
|
 |
versteh ich nicht. was hast du denn bis jetzt programmiert und was klappt nicht so wie du gerne hättest?
|
|
|
Earl |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 17.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 12:01
Titel:
|
 |
es ist ganz simpel: ich möchte f(x0) auswerten. In Matlab kann man aber nicht ohne weiteres einen Vektor in eine Funktion einsetzen.
In dem Programm geht es um die Methode der sukzessiven Approximation um eine Nullstelle z von f zu berechnen. Ist aber unwichtig, mein Problem beschränkt sich ja nur auf die auswertung von f(x0), was innerhalb einer Schleife ständig gemacht werden muss.
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 12:07
Titel:
|
 |
Earl hat Folgendes geschrieben: |
In Matlab kann man aber nicht ohne weiteres einen Vektor in eine Funktion einsetzen.
|
kann man schon wenn mans richtrig programmiert hat. darum war meine frage was du programmiert hast und was damit nicht funktioniert.
|
|
|
Earl |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 17.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 12:17
Titel:
|
 |
Das man das irgendwie kann ist schon klar, und genau das will ich ja wissen Jetzt mal losgelöst von dem eigentlichen Programm was ich schreiben möchte: Eine Funtion "Beispiel" soll mit den Eingabeparametern f und x0 f(x0) berechnen und ausgeben. Z.B.:
Wie stellt man das an?
|
|
|
Earl |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 17.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 12:23
Titel:
|
 |
Um das nochmal klar zu stellen: f soll nicht immer nur x1 und x2 als Argumente haben, sondern beliebig viele. Ich möchte auch andere Funtionen auswerten können und will das Programm nicht ständig umschreiben müssen.
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 12:28
Titel:
|
 |
dann musst du es auch so schreiben ^^
zb oben
du musst dann deine operationen so gestallten das sie das machen was du willst unabhängig von der länge des vektors. vieleicht musst du dann f nicht als anonyme funktion schreiben sondern als mfile mit überprüfung der länge und so weiter. und funktion handles an funktionen zu übergeben is auch kein problem aber wie gesagt du must die funktionen schon so gestalten das sie mit den argumenten klarkommen die du ihnen gibst
|
|
|
Earl |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 17.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 12:38
Titel:
|
 |
ok das ist schon mal elegant gelöst! Genau sowas meinte ich. Aber kann man das ähnlich auch für folgende Funktion machen?
f=@(x1,x2)[x1^2-2*x2; x2]
|
|
|
Earl |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 17.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 12:41
Titel:
|
 |
oder müsste ich f dann wie du sagtest extra als m-file schreiben?
|
|
|
Earl |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 17.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.05.2013, 12:59
Titel:
|
 |
hat sich erledigt
|
|
|
|
|
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.
|
|