|
|
Genauigkeit Rechenergebnisse |
|
dabauer82 |
Forum-Century
|
|
Beiträge: 184
|
|
|
|
Anmeldedatum: 21.03.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008a, R2010b
|
|
|
|
|
|
Verfasst am: 04.05.2008, 13:36
Titel: Genauigkeit Rechenergebnisse
|
|
|
|
|
Hallo,
ich bin mir über mein Problem noch nicht so ganz im Klaren. Ich schildere mal den Umstand.
Ich berechne im Raum die Extremstellen einer Fläche, nämlich x und y Kandidaten und anschliessend die Z-Werte. Da ich jedoch nur die Z-Werte brauche, die auf dem Rand dieser Fläche liegen, überprüfe ich in einer Schleifenbedingung ob x^2 + y^2 ~= r^2 erfüllt ist und setze die nichtbrauchbaren Werte auf null.
Jetzt habe ich folgende Beobachtungen gemacht.
Mein Ableitung und Extremstellensuche führt zum Beipsiel auf folgende Lösung:
Jetzt bekomme ich, wenn ich weiter mit Matlab rechnen will, oder z.B ein <= oder >= Vergleich machen will, eine Fehlermeldung wie folgt:
Aus diesem Grund habe ich nun vor allen meinen Lösungen ein eval() gesetzt, um diese Brüche und Co auszurechnen.
Ich erhalte somit auch lesbare Ergebnisse:
Problem ist jetzt nur, dass wenn ich jetzt mit denen von Matlab evaluierten Ergebnissen weiterrechne, unter der Ungenauigkeit auf 4 Stellen leide.
Die beiden Extremstellen x = 1.8944 und y = 2.7889, die definitiv auf dem Rand liegen, ergeben beim ausrechnen nicht 4 sondern 4.0001
Eine Überprüfung auf x^2 + y^2 ~= r^2 ist nicht möglich. Zur Zeit helfe ich mir mit 4 = round(4.001) - aber das finde ich alles stümperhaft.
Kann mir jmd helfen?
Meine Fragen sind jetzt die folgenden. Warum kann ich mit diesen Ergebnisse nicht rechnen, warum muss ich eval verwenden oder double damit dieser symbolische Charakter verloren geht und wenn ich es eben doch muss, wie kann ich die genauigkeit erhöhen? weil wie folgende matrix zeigt, das Ergbenis müsste eine Kreismatrix sein, fallen noch zuviele Werte heraus...
danke
|
|
|
|
|
dabauer82 |
Themenstarter
Forum-Century
|
|
Beiträge: 184
|
|
|
|
Anmeldedatum: 21.03.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2008a, R2010b
|
|
|
|
|
|
Verfasst am: 05.05.2008, 14:03
Titel:
|
|
Den einzigen Vorschlag den ich jetzt noch machen könnte ist, dass ich mir ein Epsilon-Intervall definiere...allerdings finde ich das immer noch nicht gut genug.... Einer ne Idee?
|
|
|
|
|
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 - 2024
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.
|
|