WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Rangfolge ?

 

MarcelG
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 21.10.09
Wohnort: Waltrop
Version: R2009a
     Beitrag Verfasst am: 30.10.2009, 16:24     Titel: Rangfolge ?
  Antworten mit Zitat      
Hallo,

ich frage mich gerade, wie MATLAB intern wohl eine Aufgabe wie die folgende löst:
Code:
( 5 - 2 ) * 3;


Geht es nach dem Distributivgesetz, dass also erst einmal
Code:
5 * 3 - 2 * 3

daraus wird, bevor gerechnet wird, oder wird zunächst der Inhalt der Klammer ausgerechnet,
Code:

und das Zwischenergebnis dann multipliziert?
Code:


Gruß,
Marcel
_________________

{brigens ist ein Kezboard/Treiber v;llig [berfl[ssig!
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 30.10.2009, 16:52     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 30.10.2009, 17:20     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
MarcelG
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 21.10.09
Wohnort: Waltrop
Version: R2009a
     Beitrag Verfasst am: 30.10.2009, 19:41     Titel:
  Antworten mit Zitat      
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. Wink

Schönes Wochenende.
Marcel
_________________

{brigens ist ein Kezboard/Treiber v;llig [berfl[ssig!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.10.2009, 08:47     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.