|
MarcelG |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 21.10.09
|
|
|
|
Wohnort: Waltrop
|
|
|
|
Version: R2009a
|
|
|
|
|
|
Verfasst am: 30.10.2009, 16:24
Titel: Rangfolge ?
|
|
Hallo,
ich frage mich gerade, wie MATLAB intern wohl eine Aufgabe wie die folgende löst:
Geht es nach dem Distributivgesetz, dass also erst einmal
daraus wird, bevor gerechnet wird, oder wird zunächst der Inhalt der Klammer ausgerechnet,
und das Zwischenergebnis dann multipliziert?
Gruß,
Marcel
_________________
{brigens ist ein Kezboard/Treiber v;llig [berfl[ssig!
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 30.10.2009, 16:52
Titel:
|
|
Gute Frage. Ich tippe mal nach, dass zuerst die Klammer berechnet wird, weil ich einige Tipps zum Handlen von sehr grossen Matrizen kenne die in diesem Fall vorschlagen die Rechenschritte genau in dieser Weise aufzuteilen, so dass intern weniger Specicher belegt wird.
Andreas
|
|
|
derOli |
Forum-Meister
|
|
Beiträge: 579
|
|
|
|
Anmeldedatum: 19.03.08
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 30.10.2009, 17:20
Titel:
|
|
Ich gehe auch davon aus, ich habe mal vor Jahren selbst einen solchen mathematischen Interpreter in C++ geschrieben und da war das auch die sinnvollste Möglichkeit. Das war sehr lustig, zum Beispiel konnte man die Klammern gut mit Stacks abarbeiten. Aber das alles nur so am Rande,
Viele Grüße,
der Oli
|
|
|
MarcelG |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 21.10.09
|
|
|
|
Wohnort: Waltrop
|
|
|
|
Version: R2009a
|
|
|
|
|
|
Verfasst am: 30.10.2009, 19:41
Titel:
|
|
Nabend,
also 2:0 für Möglichkeit b. Danke.
Nach nun einigen Momenten des Grübelns, scheint es mir auch sinniger zu sein, erst den Inhalt der Klammern zu evaluieren, da so letztlich nur eine Subtraktion und eine Multiplikation erfolgt. Nach der ersten Möglichkeit, hätte man wohl - neben der Arbeit des Klammernauflösens - zwei Multiplikationen und eine Subtraktion.
Aber wer weiß ... Wer nicht fragt, bleibt dumm.
Schönes Wochenende.
Marcel
_________________
{brigens ist ein Kezboard/Treiber v;llig [berfl[ssig!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.10.2009, 08:47
Titel:
|
|
Hallo,
3:0
Ich schließe mich nämlich den Vorpostern an, und habe auch ein Beispiel:
(0.3 - 0.299999999999999) * 2.34567 - (0.3 * 2.34567 - 0.299999999999999 * 2.34567)
ist nicht 0.
Warum? Beim Abziehen zweier in etwa gleich großer Zahlen entsteht ein Genauigkeitsverlust ("Auslöschung"). Wenn MATLAB hier aber das Distributionsgesetz anwenden würde, würde immer noch zwei Mal genau das selbe gerechnet.
Grüße,
Harald
|
|
|
|
|
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.
|
|