Runden bei Matlab < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 10:33 Do 05.08.2004 | Autor: | tommy |
Hi, ich hab ein kleines Problem mit Matlab,
ich habe eine Aufgabe, bei der man die Schleife abbrechen soll sobald die Genauigkeit (4 Stellen hinter dem Komma sollte ausreichend sein) erreicht ist.
Mein Problem ist nun das Matlab mit seinem GleitkommaVerfahren mir natürlich die Werte bis auf was weiss ich genau macht und ich somit kein Abbruchkriterium habe, vielleicht weiss ja einer von Euch wie man runden kann nach der 4ten Nachkommastelle oder einfach abschneiden.
MfG Tommy
Ich habe diese Frage in keinem weiteren Forum gestellt.
|
|
|
|
Hallo Tommy,
> Hi, ich hab ein kleines Problem mit Matlab,
> ich habe eine Aufgabe, bei der man die Schleife abbrechen
> soll sobald die Genauigkeit (4 Stellen hinter dem Komma
> sollte ausreichend sein) erreicht ist.
Genauigkeit heißt doch hier, dass der Wert den du bestimmst, auf vier Nachkommastellen mit dem gesuchten (exakten) Wert übereinstimmt. Das heißt nicht, dass die Näherung genau vier Nachkommastellen haben muss.
> Mein Problem ist nun das Matlab mit seinem
> GleitkommaVerfahren mir natürlich die Werte bis auf was
> weiss ich genau macht und ich somit kein Abbruchkriterium
> habe,
Je nach Verfahren hast du unterschiedliche Abbruchkriterien. Vielleicht kennst du den verwendeten Algorithmus ja aus der Theorie und hast eine Fehlerabschätzung, die dir sagt, nach wievielen Schleifendurchläufen du die gewünschte Genauigkeit erreicht hast.
Bei einem schnell konvergenten Verfahren kannst du auch einfach die Differenz aufeinanderfolgender Werte bestimmen. Du vergleichst den gerade berechneten Wert mit dem (gemerkten) vorher berechneten, und wenn diese Differenz kleiner ist als 1e-4 [mm] (=$10^{-4}$), [/mm] dann stimmen immerhin diese beiden Werte auf vier Nachkommastellen überein (ich würd aber besser 1e-5 als Schranke nehmen). Konvergiert das Verfahren schnell genug, wie z.B. das Newton-Verfahren, dann ist auch der exakte Wert "ganz in der Nähe".
> vielleicht weiss ja einer von Euch wie man runden
> kann nach der 4ten Nachkommastelle oder einfach
> abschneiden.
Zum Runden gibt es den Befehl round, der normalerweise auf ganze Zahlen rundet.
Aber es gibt einen Trick: Um x auf vier Nachkommastellen zu runden, berechnest du folgendes:
round(x*1e4)*1e-4
Gruss,
SirJective
|
|
|
|