Falsche Vorzeichenverarbeitung beim Quadrieren

Liebe RagTimer,

in der langen Diskussion um die falschen Vorzeichen haben ja einige bestätigt, dass -5^2 = 25 richtig ist.
Damit wir nicht so allein auf weiter Flur stehen, habe ich vielen Mathematiklehrern geschrieben und um ihre Stellungnahmen gebeten. Sechs haben bisher geantwortet und sechs bestätigen zweifelsfrei, dass die obige Gleichung richtig ist.
Aus den Antworten hier nur drei Zitate:

I.
Aber auch ich habe in Schule und Studium gelernt und kenne es aus allen Mathematikbüchern, dass -5^2 = -25 ist.
Warum Excel und co. das Minuszeichen offensichtlich der Basis zuschreiben ist zwar erklärbar - aber eigentlich nicht richtig.
Liebe Grüße
***

II.
(-5^2 ) = 25 und -5^2 =-25. Ich bin also genau der gleichen Meinung, habe es so selber in der Schule gelernt und erkläre es den Schülern auch so. Außerdem steht es in allen Formelsammlungen, die ich besitze.
Viele Grüße und schöne Ferien
Dr. Petra ***

III.
Die folgenden Programme bzw. Programmiersprachen berechnen -5^2 zu -25,
so wie man es erwarten würde und es nach traditioneller
"Mathematikerlesart" sein muss.

1. Mathematikprogramme : Maple, Scilab, Maxima, Geogebra (alles
professionell entwickelte Matheprogramme)
2. Progammiersprachen: Unix-Shell, Perl (mehr habe ich in letzter Zeit
nicht benutzt)

Open.Office-Calc hingegen berechnet -5^2 zu 25.

Ich nehme an, dass es sich hierbei um eine Macke handelt, die wahrscheinlich auf eine Nachlässigkeit der ersten Programmierer von Excel beruht, und nun traut sich keiner, diese Macke zu korrigieren, weil das so weitreichende Folgen haben könnte, dass irgendwo ein Atomkraftwerk in die Luft fliegen könnte oder ähnliches. Wer will schon in den Millionen von industriell genutzten Scripten die Fehler suchen, das wäre ein Milliardengrab.
Trotzdem, richtig ist das nicht, egal was in den Programmierrichtlinien steht, aber man muss wohl damit leben.
Mit Zähneknirschen muss man hier feststellen, dass das Recht des Stärkeren gilt. Und es gibt eben viele, die die Starken vergöttern.

Mit freundlichen Grüßen, Jens ***

Ich hoffe, dass jetzt klar ist, dass es sich bei dem Fehlverhalten mancher Programme schlicht um Schlamperei, um Gleichgültigkeit oder die Berufung auf falsche Autoritäten handelt. Oder auch auf dem Zwang, mit anderen Systemen kompatibel zu bleiben zu wollen und zu müssen.

Zur Kenntnis nehmen und berücksichtigen muss man das, klar! Aber verteidigen!?!

Mit besten Grüßen
Andreas Loos

Falsche Vorzeichenverarbeitung beim Quadrieren

#9819 On 21 Oktober, 2010 07:39 Gottwalt said,

Hallo liebe Liste,

auch wenn diese Diskussion schon fast nicht mehr wahr ist, so lang wie sie ist, möchte ich -ebenfalls als studierter Mathematiker- Andreas Loos noch ein wenig ergänzen:

Daß schriftlich beim Ausdruck "minus n hoch m" sicherlich die Potenz als innerer Ausdruck betrachtet wird sollte inzwischen unstrittig sein, geklammert habe ich es ja schon dargestellt, und auch Jürgen Schell hat es nochmals ausgeführt.

Daß in einigen formalen Sprachen dennoch andere Konventionen gelten hat eine banale historische Ursache: Frühe Interpreter arbeiteten stur "von links nach rechts" (eben prozedural) den Code ab, konnten das mangels Speicher- und Rechenkapazität gar nicht anders. Da war es Aufgabe des Programmierers, den Code so aufzugliedern, daß Zwischenergebnisse eben im voraus einzeln ermittelt, gespeichert und dann für die erneute Operation erneut geladen werden mußten. Einfach deshalb wird heute noch in den vielen hier schon aufgeführten Fällen erstmal ein "-n" als negativer Wert geladen und die dann im Code folgende Operation auf diesen Wert angewandt, auch wenn dies der papierenen Konvention widerspricht.

Das, was man RagTime (und anderen Programmen) wirklich vorwerfen kann ist die Inkonsequenz dieser Handhabung. Denn, im Gegensatz zu den Ausführungen von Jürgen, handelt es sich ja nicht um unterschiedliche Operatoren, sondern der Operator verändert lediglich seine Bindung, wenn er an verschiedenen Positionen innerhalb einer Formel steht, und das ist ausgesprochen befremdlich und kann zu Fehlern führen.

Und hier auch noch zurück zu den Ausführungen von Thomas Kaegi: Natürlich arbeitet RagTime die ganze Zeit mit Gleichungen (oder Ungleichungen oder Abschätzungen), das zeigt sich schon sehr schön daran, daß ja der Cursor bei der Eingabe des "="-Zeichens in die Formeleingabe springt, falls dieses Fenster geöffnet ist. Aber für Thomas noch verständlicher: In vielen Fällen habe ich ja in einer Formel eine Abschätzung, z. B. in der Form (ist jetzt aus der Auswertung eines Fragebogens) "wenn(-A1^K1<-6; ....)". Dieser Ausdruck wird leider für alle Werte in A1 niemals erfüllt werden. Das Problem ist: Die Formel sah ursprünglich anders aus, da war noch eine Werteverschiebung drin, es stand ursprünglich "wenn(6-A1^K1<0; ...), und da rechnete er richtig. Durch die formal richtige Umwandlung der Ungleichung bzw. Abschätzung veränderte aber plötzlich der Operator seine Bindung, und nichts stimmte mehr. Ich klammerte dann, und alles war gut. Aber formal ist es eben idiotisch, wenn ein Operator seine Bindung verändert bei einer derartigen Umformung, die lediglich der Übersichtlichkeit dient und an der Aussage der Ungleichung nichts ändert. Man kann das sehr einfach testen, indem man die Formel

Wenn(6-A1^K1<0;'JA';'NEIN')

eingibt und dann in A1 eine Zahl größer 2 und in K1 eine 2.
Ändert man nun die Formel lediglich wie oben beschrieben und zieht die 6 von links nach rechts, also

Wenn(-A1^K1<-6;'JA';'NEIN')

so erhält man die entgegengesetzte Aussage. Das heißt mit anderen Worten genau das, was Jürgen ja schon aussagte: Die formale Sprache von RagTime ist (nicht nur) an diesem Punkt uneinheitlich bzw. unlogisch, man muß es schlicht wissen, daß hier ein Regelbruch stattfindet. Und zwar nicht nur ein Regelbruch bezüglich der Papier-Notation, sondern (und das erachte ich als gravierender) ein Regelbruch innerhalb des eigenen Formalismus.

Und damit komme ich zu meiner Kernaussage zurück: Hätte RagTime endlich einen brauchbaren Formeleditor mit Syntax-Highlighting, so würden derartige Eigentümlichkeiten durch die Hervorhebung der Bindungen sofort ersichtlich. Da wir das nicht mehr erleben werden, bleibt nichts anderes übrig als sehr sehr aufmerksame Kontrolle aller Formeln (dabei erachte ich gerade derartige Eigentümlichkeiten als gravierend, denn sie können ggf. selbst bei gründlicher Analyse unentdeckt bleiben!), und vorsorgliches Klammern, um potentielle Mißinterpretationen zu vermeiden, auch wenn der Ausdruck "eigentlich" eindeutig ist. Und hier zurück zu Excel: Dort gibt es zahlreiche Fehler bei der Behandlung der "Punkt-vor-Strich"-Regel, die man ebenfalls nur durch umfangreiches Klammern umgehen kann. Allerdings bietet Excel dabei wenigstens als Hilfe die farbliche Markierung der Klammerbindungen an.

Zurück zu Andreas: RagTime bietet noch mehr Eigentümlichkeiten dieser Art, so wird bei Divisionen durch sehr kleine Teiler ab etwa der 10. Nachkommastelle einfach die Fehlermeldung "DIV!0" ausgegeben, also "Division durch 0", obwohl der Wert selbstverständlich ungleich 0 war. Auch dies ist z. B. ein Fehler, über den ich zufällig im Rahmen einer statistischen Auswertung stolperte und den man dann umgehen muß, indem man den gesamten Ausdruck hinreichend erweitert, damit der Nenner groß genug wird. Ärgerlich ist halt, wenn im Vorfeld der Auswertung noch gar nicht klar ist, daß einzelne Werte diese Grenze unterschreiten. Noch ärgerlicher ist, wenn die Fehlermeldung gar nicht auftaucht, da es sich bei dem sehr kleinen Wert gar nicht um einen Nenner handelt, er aber dennoch als "0" behandelt wird und deshalb die gesamte Operation ein falsches Ergebnis ausgibt. Auch da zieht sich RagTime auf den Standpunkt zurück, daß dies "üblich" sei (mit anderen Worten: Die allermeisten Tabellenkalkulationen verwenden auch nicht mehr Nachkommastellen).

Gruß

Gottwalt

Re: Falsche Vorzeichenverarbeitung beim Quadrieren

#9822 On 22 Oktober, 2010 08:46 Andreas Loos said,

Lieber Gottwalt,

vielen Dank für den historischen Verweis auf die frühen Interpreter. Jetzt weiß ich wenigstens, wie dieser ganze Kuddelmuddel entstanden ist. Und ich weiß auch, was Du mit „prozeduralem“ Rechnen meinst.
Auch noch Dank für den Tipp der zu Null gerundeten kleinen Zahlen. Man lernt nie aus!

Mit bestem Gruß
Andreas Loos

Re: Falsche Vorzeichenverarbeitung beim Quadrieren

#9820 On 21 Oktober, 2010 10:29 Jochen said,

Ich finde die Diskussion faszinierend und lehrreich und sie zeigt ich welche Tiefen man manchmal heruntersteigen muss um das alles zu verstehen.

Nun meine Frage:
"n" hoch "m" kann ja auch heissen, dass sowohl "n" als auch "m" negativ sein kann,
Wie ist denn da die Vereinbarung in der Mathematik ?
werden "n" und "m" immer als positiver Wert verstanden und wenn er negativ sein soll muss ein Minus davor ?

Jochen

Re: Falsche Vorzeichenverarbeitung beim Quadrieren

#9823 On 22 Oktober, 2010 08:48 Andreas Loos said,

Lieber Jochen,

ich weiß nicht genau, wie umfassend Du Deine Frage „Wie ist denn da die Vereinbarung in der Mathematik?“ meintest?
Gottwalt hat sie ja schon z. T. beantwortet: mit den Variablenbezeichnungen m und n meint man meistens ganze, oft dann auch positive Zahlen. Aber eben nicht zwingend. Wenn man deutlich machen will, dass diese Beschränkung nicht gelten soll, dann schreibt man vielleicht besser x und y oder Ähnliches.

Vielleicht richtete sich Deine Frage auch auf die Bedeutung von x^y? Z. B. 8^(-1/3) = 1/2.
Genaueres und sehr Ausführliches dazu findest Du in Wikipedia „Potenzen“.

Mit besten Grüßen
Andreas Loos

Re: Falsche Vorzeichenverarbeitung beim Quadrieren

#9824 On 22 Oktober, 2010 10:14 Gottwalt said,

Liebe Liste,

da die Fragestellung den einen oder anderen anscheinend doch nicht losläßt (mich auch nicht), nun doch noch ein Nachtrag:

Die allermeisten Schreibweisen in der Mathematik sind "Abkürzungen" umständlicher Aussagen, und über die Verwendung dieser Abkürzungen wurden Vereinbarungen getroffen, teils systematisch, teils aus Gewohnheit, häufig, weil der Entdecker eines Zusammenhanges für die Darstellung eine bestimmte Notation verwendete. Auch das uns so geläufige "Punkt vor Strich" und ähnliche Regeln sind lediglich Absprachen, um Mißverständnisse zu vermeiden. Man kann (und macht das in der Mathematik auch, wenn dies sinnvoll erscheint) auch andere Regeln definieren, die anderen Gesetzmäßigkeiten gehorchen. Allerdings bemüht man sich meist, innerhalb eines Regelkanons zu bleiben, damit Fehler durch Ausnahmen und Regelbrüche möglichst unterbleiben.
Die gesamte Diskussion hier entzündete sich daran, daß RagTime einerseits die Regeln der papierenen Notation bricht (das wäre an sich zulässig, aber eigentlich unnötig) und andererseits sich selbst nicht an die eigenen Regeln hält bzw. unnötige Ausnahmen definiert, auch wenn diese exakt definiert sind. Und dies ist eine überflüssige Fehlerquelle.

Zum Verständnis muß ich jetzt etwas ausholen: Auch wenn Physiker und Ingenieure gerne das - als zwei verschiedene Operatoren betrachten, einmal nämlich als Rechenanweisung und einmal als "Vorzeichen", so handelt es sich jedesmal um denselben Operator. Denn die Schreibweise "-n" für n aus IN\0 (also sei n eine natürliche Zahl ohne Null) bedeutet ja nichts anderes als (-1)*n oder wahlweise (0-n), und ist lediglich die Abkürzung dieser längeren Ausdrücke. Und es geht weiter: Der Ausdruck "n^m" bedeutet ja nichts anderes als n*n*...*n, dabei wiederholt sich der Ausdruck eben m-mal. Dabei einigte man sich für die papierene Schreibweise darauf, daß die Potenz und die Basis die stärkste Bindung eingehen, es sei denn, es wäre anders geklammert. Also beim Ausdruck 0-n^m würde ebenso wie beim Ausdruck (-1)*n^m immer erst der "innere" Ausdruck bearbeitet, also die Potenzierung durchgeführt. Das muß natürlich auch bei der abgekürzten Schreibweise beibehalten werden. Anscheinend (oder offensichtlich) wird Software aber gerne zur Lösung konkreter Probleme erstellt, und dabei waren wohl eher Physiker und Ingenieure als Mathematiker beteiligt, oder die beteiligten Mathematiker waren glücklicherweise pragmatisch genug, sich mit Konventionsbrüchen arrangieren zu können, solange diese wohldefiniert (also die Ausnahmen exakt eingegrenzt und exakt beschrieben) waren. Wir müssen uns jetzt mit den Folgen davon rumschlagen, und natürlich kann man derartige über viele Jahre eingeführte Regeln nicht umwerfen, denn es würden dadurch haufenweise alte, bewährte Formeln nicht mehr funktionieren. Viel lustiger ist, daß tatsächlich im Mathematikunterricht von Schülerseite ebenso argumentiert wird wie es hier Thomas Kaegi anführte: Wenn sogar Excel so rechnet, dann kann das doch nicht falsch sein!?! Und als Lehrer benötigt man dann die Größe zuzustimmen, daß es nicht falsch ist, aber den gebräuchlichen Regeln, die für den Schulunterricht vereinbart wurden, widerspricht.

Fazit: Alle Formalismen (egal ob Rechtschreibung oder Straßenverkehrsordnung oder Benimmregeln) dienen ja dem besseren Verständnis, und je mehr Ausnahmen ein Formalismus enthält, desto größer wird das Risiko der Mißverständnisse und Interpretationsfehler. Wir haben hier ein wunderbares Beispiel abgehandelt, das herrlich zum Philosophieren über Sinn und Unsinn von Konventionen anregen kann, und das dennoch in Einzelfällen u. U. zu gravierenden Fehlern führt, da die Ausnahme im Formalismus dem Mathematiker weder logisch erscheint noch bekannt sein muß. Und wer hat schon alle Ausnahmen des RagTime-Formalismus im Kopf? Dem besseren Verständnis würde also dienen, wenn sich RagTime einheitlicher Konventionen bediente. Noch besser wäre es sicherlich, wenn diese dann identisch der papierenen Konvention wären, aber den Einwand von Thomas Kaegi kann ich auch gelten lassen, daß heutzutage die Konvention von Excel stark normierenden Charakter hat. Wobei ich dem ein "leider" anfügen möchte. Und es ist schade, daß RagTime bis heute das Auffinden solcher Besonderheiten eben NICHT durch einen brauchbaren Formeleditor unterstützt. Der wäre spätestens mit RagTime 4 fällig gewesen ...

Gruß

Gottwalt

Re: Falsche Vorzeichenverarbeitung beim Quadrieren

#9825 On 22 Oktober, 2010 15:10 Andreas Loos said,

Lieber Gottwald,

Deinem Beitrag in node/3208/9824#9824 ist nichts hinzuzufügen.
Der Forderung nach einem "richtigen" Editor allerdings möchte ich mich noch einmal ausdrücklich anschließen.

Den node/3208/9824#9824 erwähne ich deshalb, weil ich nicht weiß, ob sich dieser Beitrag im Forum wirklich Deinem Beitrag anschließt. Meine beiden Antworten von heute morgen erschienen jedenfalls bei mir an völlig anderer Stelle als dort, wo ich geantwortet hatte. Dadurch müssen sie ziemlich unverständlich wirken. So wie mir die Struktur dieses Forums!

Andreas Loos

Re: Falsche Vorzeichenverarbeitung beim Quadrieren

#9826 On 22 Oktober, 2010 15:32 Jochen said,

Habt Ihr mal auf der Apple Seite geschaut ?
Da gibt es eine Menge Formeleditoren.

http://www.apple.com/downloads/macosx/math_science/

Ihr meint aber gewiss Editoren mit denen man direkt in RagTime Rechenblättern arbeiten kann.

Jochen

Re: Falsche Vorzeichenverarbeitung beim Quadrieren

#9821 On 21 Oktober, 2010 10:54 Gottwalt said,
Hallo Jochen,

da will ich doch nochmal drauf eingehen:

Am 21.10.2010 um 11:31 schrieb Jochen:

Ich finde die Diskussion faszinierend und lehrreich und sie zeigt ich welche Tiefen man manchmal heruntersteigen muss um das alles zu verstehen.

Nun meine Frage:
"n" hoch "m" kann ja auch heissen, dass sowohl "n" als auch "m" negativ sein kann,


Ja, natürlich. Aber das macht ja nichts. Wenn ich hier statt "n" und "m" Verweise auf Felder setze, so wie in meiner Formel, dann kann in diesen Verweisen ja auch stehen was will, egal ob positiv oder negativ.

Wie ist denn da die Vereinbarung in der Mathematik ?

Häufig werden in der Mathematik diese beiden Buchstaben gewohnheitsmäßig als "natürliche Zahlen", also positive ganze Zahlen, verstanden. Aber das ist NUR eine Gewohnheit, keinesfalls eine Konvention oder gar Regel!
Abgesehen davon spielt es ja keine Rolle: Dann würde genau das greifen, was Andreas und auch Jürgen beschrieben haben: Das Minus würde sich direkt auf die Zahl beziehen. Will man das schreiben, so wird man halt klammern müssen.

Am konkreten Beispiel: Sei n gleich -5 und m gleich 2
Dann müßte man eben für "n hoch m" schreiben (-5)^2
Würde man die Formel mit ebendiesen Buchstaben schreiben und dann für m und n positive und negative Werte einsetzen, so müßte man bei der Berechnung der expliziten Ergebnisse eben entsprechend klammern.

werden "n" und "m" immer als positiver Wert verstanden und wenn er negativ sein soll muss ein Minus davor ?

Siehe oben: Es gibt zwar eine gewisse Tradition, n und m als Platzhalter für Zahlen aus dem Bereich der natürlichen Zahlen zu verwenden, aber das ist nicht mehr als eine Tradition. Und schon da müßte jedesmal klargestellt werden, ob sie auch 0 sein können oder nicht.
So steht z. B. bei meinem schönen alten Buch über Lineare Algebra gleich zu Anfang sinngemäß: In diesem Buch werden n und m als Zahlen aus IN\0 verwendet (also es sind Platzhalter für natürliche Zahlen ohne Null). Aber auch wenn dies durchaus üblich ist, muß es explizit erwähnt werden, sonst wären viele Aussagen schlicht falsch bzw. uneindeutig.

Gruß

Gottwalt