|
|
Funktionen als Vektor speichern |
|
Enduro2 |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2012, 19:33
Titel: Funktionen als Vektor speichern
|
 |
Hallo,
ich bin neu hier und habe auch mit Matlab noch sehr wenig Erfahrung...
Ich will ein Programm schreiben, dass die Ableitung einer Funktion mit der Richardson Extrapolation und der 3-Punkte-Formel berechnet. Die Richardson Extrpolation soll 4 Schritte umfassen. Mein Code:
Die N_j sollen als Vektor gespeichert werden, das Ergebnis soll dann N_4 (in diesem Beispiel) sein.
Allerdings kriege ich dann folgende Fehlermeldung:
Conversion to cell from function_handle is not possible.
Wer kann mir helfen?
Gruß
Enduro2
|
|
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2012, 20:08
Titel:
|
 |
Hallo Enduro2,
wo tritt denn der Fehler auf?
Und was ist N an der Stelle?
Grüße
Sirius
|
|
|
Enduro2 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2012, 21:05
Titel:
|
 |
Hallo,
der Fehler tritt in der vorletzten Zeile auf, also bei N(j)=...
N(j) soll nicht ausgewertet werden, sondern als Funktion gespeichert werden, damit im nächsten Schritt N(j+1) berechnet werden kann.
Gruß
Enduro2
|
|
|
Enduro2 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2012, 21:13
Titel:
|
 |
ich habs gerade nochmal versucht, jetzt bekomme ich den Fehler
"Nonscalar arrays of function handles are not allowed; use cell arrays
instead."
Die obige Fehlermeldung bezog sich auf einen anderen Code
|
|
|
dmjr |

Forum-Century
|
 |
Beiträge: 199
|
 |
|
 |
Anmeldedatum: 02.10.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2012, 21:28
Titel:
|
 |
Dann solltest du cell arrays verwenden
Code nicht getestet, müsste aber so laufen.
|
|
|
Enduro2 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2012, 21:41
Titel:
|
 |
Hallo,
danke für die Hilfe, aber das liefert mir
N{4}=
@(h)A(h/2)+(A(h/2)-A(h))/(4^(j-1)-1)
Das Ergebnis soll aber wieder in der Form wie N{1} sein, also mit x als Variable, damit ich dann die Ableitung auswerten kann.
Das Problem ist, dass das N{j-1} in der Schleife nicht läuft, als Ausgabe für N{2} N{3} N{4} erhalte ich immer das gleiche, nämlich
"ans =
@(h)N{j-1}(h/2)+(N{j-1}(h/2)-N{j-1}(h))/(4^(j-1)-1)"
Aber warum steht da noch j? Aus N{1} soll N{2} berechnet werden usw.
Gruß
Enduro2
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2012, 23:31
Titel:
|
 |
Hallo Enduro,
da x ja auch variabel sein soll, muss es wohl
Alle Variablen, die nicht als Parameter übergeben werden behalten
ihren Wert bei, den sie bei der Definition des Funktionshandels hatten.
Dass die Darstellung das nicht wiedergibt ist für das Rechnen damit
kein Problem.
Bespiel:
Grüße
Sirius
|
|
|
Enduro2 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.12.2012, 09:46
Titel:
|
 |
Hallo,
also dann sieht mein Code so aus:
Das Ergebnis ist dann
ans =
@(x,h)N{j-1}(x,h/2)+(N{j-1}(x,h/2)-N{j-1}(x,h))/(4^(j-1)-1)
Aber da wurde ja das j nicht verändert, das soll ja von 1 bis 4 laufen und dann eine Formel rauskommen, die nur von x und h abhängt
Gruß
Enduro2
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.12.2012, 17:42
Titel:
|
 |
Nochmals,
N{4} ist eine Funktion in der j als Konstante den Wert 4 hat.
Dass es weiterhin als j dargestellt wird. ist egal!
|
|
|
Enduro2 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.12.2012, 18:13
Titel:
|
 |
Hallo,
ok, danke. Also kann ich mein N{4} dann nur als Funktion in x und h darstellen lassen? Denn wenn j=4 ist, dann steht in der Formel für N{4} ja N{3} drin. Das N{3} soll aber explizit als Funktion in x und h da stehen, wofür N{2} als Funtion von x und h dargestellt sein muss.
Schonmal vielen Dank für die Geduld die ihr mit mir habt.
Gruß
Enduro2
|
|
|
Enduro2 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 05.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.12.2012, 21:28
Titel:
|
 |
Hallo,
hat sich erledigt, ich habs hinbekommen. Die resultierende Funktion habe ich mit feval ausgewertet und geplottet. Das habe ich zwar vorher schon versucht, aber da kam nur Müll raus. Der Fehler war in der Definition der Funktion: Es muss natürlich sin(x^(1/2)) heißen...
Vielen Dank an alle, die mir geholfen haben!
Gruß
Enduro2
|
|
|
|
|
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.
|
|