|
StAnger_ |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 24.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.10.2010, 13:44
Titel: Sekantenverfahren
|
 |
Hallo, ich benutze Matlab seit ca einer Woche und bin deshalb noch nicht so fit. Ich soll das Sekantenverfahren als Funktion implementiern und zwar soll ich eine datei sekanten.m schreiben und diese als funktion wie folgt definieren:
function [xstern]=sekanten(f,x1,x2,eps), wobei f die funktion ist x1,x2 die Startwerte und eps die Genauigkeit bei der abgebrochen werden soll. xstern soll dann als NS zurückgegeben werden!
Hier mein Code:
Beim ausführen bekomm ich dann den Fehler:
Error in ==> sekanten at 4
while (abs((x(n+1)-x(n))) >= eps)
Was habe ich hier falsch gemacht bzw. funktioniert das mit der Indizierung überhaupt so, oder muss ich das anders machen???
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 24.10.2010, 14:43
Titel:
|
 |
Hallo,
es fehlt die Initialisierung.
Zudem bezieht sich die Abfrage auf einen Wert, der noch gar nicht errechnet wurde; es müsste heißen:
Am Ende benötigst du dann
weil n ja schon hochgezählt wurde.
Die Fehlermeldung hineinzukopieren war eine gute Idee, den entscheidenden Teil (was für ein Fehler aufgetreten ist) hast du allerings weggelassen
Grüße,
Harald
|
|
|
StAnger_ |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 24.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.10.2010, 14:52
Titel:
|
 |
Super, Danke! Jetzt versteh ichs und es funzt auch!
Und die nächsten Male wird der wichtige Teil der Fehlermeldung dann auch hinzugefügt
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.10.2010, 15:33
Titel:
|
 |
Hallo StAnger,
noch eine Bemerkung: "eps" ist der Name einer Matlab-Funktion. Es ist zwar kein Fehler den Namen auch als Namen einer Variable zu benutzen. Dies führt aber oft zu verblüfften Usern, die plötzlich nicht mehr auf die Funktion zugreifen können:
Gruß, Jan
|
|
|
NewMat |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.10.2010, 18:20
Titel:
|
 |
Müsste das gesamte Programm nicht dann so aussehen :
Bei mir wirft das wegen der Initialisierung aber Fehler aus, wie kann ich die verhindern?
??? Input argument "x1" is undefined.
Error in ==> sekanten2 at 4
x(1) = x1;
|
|
|
StAnger_ |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 24.10.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.10.2010, 18:39
Titel:
|
 |
Das ist richtig! Man muss die Funktion aus einer anderen Datei heraus aufrufen und mit argumenten "füttern", also an Stelle von f, x1, x2 und eps konkrete Werte einsetzen.
Wenn du die Funktion so direkt ausführst ist natürlich nicht klar, welche Funktion untersucht wird, welche Startwerte benutzt werden und was eps ist!
|
|
|
NewMat |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.10.2010, 18:59
Titel:
|
 |
Wenn ich aber mit matlab hauptfenster nun sekanten(x^3-2,-2,4,1e-06) eingebe, wie mache ich ihm dann klar wo er das m-file suchen muss wo meine funktion drinnen steht? denn so mault er rum, dass x nicht definiert wurde
|
|
|
bligg |

Forum-Anfänger
|
 |
Beiträge: 23
|
 |
|
 |
Anmeldedatum: 15.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.10.2010, 19:13
Titel:
|
 |
Alles weitere dazu findest du unter dem Stichwort function handle.
|
|
|
NewMat |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.10.2010, 19:41
Titel:
|
 |
Danke euch nun klappt es endlich
|
|
|
|
|
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.
|
|