GGB6/CAS: Funktionen werden willkürlich umbenannt

GeoGebrix shared this problem 5 years ago
New

Ich gebe z.B. ein:

g(x):= fp(x)

GeoGebra macht daraus:

a(x) := fp(x)


Warum? Was soll das?


GeoGebrix

Comments (10)

photo
1

Hi,

könnte sein, dass g bereits im Algebrafenster oder weiter oben im CAS anderweitig belegt wurde. Ist das nur ein Beispiel, weil so sinnvoll ist die Aktion ja nicht ;-). Es wird nur ein weiterer Zeiger auf den gleichen Code gesetzt.

BTW da hast noch Glück gehabt. Mir ist schon passiert, daß das CAS eine im Algebrafenster belegte Variable gegriffen hat. Das Ergebnis was interessant ;-)..

hawe

photo
1

Klar war das nur ein Beispiel. Ich weiß es nicht mehr genau, aber ich glaube nicht, dass g bzw. g(x) schon vergeben war. Im Geometrieteil kann ich eine neue Gerade aber g nennen, auch wenn es schon ein anderes Objekt diesen Namens gibt. Das wird dann einfach umbenannt. Warum hier ein anderes Verhalten?


GeoGebrix

photo
photo
1

Also ... die Objekte in Algebra-Ansicht und für das CAS sind "identisch". Also eine Funktion f, die über die Eingabezeile angelegt wurde ist auch im CAS nutzbar und umgekehrt kann ich Funktionen und Variablen-Werte aus dem CAS in der Eingabezeile nutzen.

Wenn man eine Zahl in der Eingabezeile anlegt (z.B. a=4), dann wirkt sich dies nicht rückwirkend auf schon getätigte Eingaben im CAS aus, wie f(a) und es wird in die Funktionsgleichung der Parameter a eingesetzt. Mit vorhandenem Schieberegler a führt f(a) dazu, dass der Wert direkt eingesetzt wird und sich mit dem Schieberegelr auch anpasst.

Was passieren kann ist, dass eine im CAS angelegt Variable sich nicht richtig löscht, wenn man die Zeile im CAS löscht. Meiner Erfahrung nach macht man das dann am besten so, dass man über die Eingabezeile diese belegte aber nicht sichtbare Variable neu belegt und dann endgültig löscht.

Wobei, was ich gerade eben ausprobiert habe ... es scheint sich im Vergleich zu früher schon etwas gebassert zu haben.

Wa das Problem von GeoGebrix betrifft, so sind da Vermutungen ziemlich vage. Am ehesten könnte man das vielleicht in der GeoGebra-Datei entdecken, dass da irgendwas festgelegt (fixiert?) ist.

Tritt das Problem öfters auf?

Kannst du Anweisungen geben um das Problem nachzuvollziehen?

photo
1

Ich guck mal, ob ich ein solches Verhalten provozieren kann. Bisher hatte ich kein System erkannt. Habe nur leider jetzt gerade keine Zeit für sowas... (wie das so ist in unserem Beruf).


GeoGebrix

photo
1

Schwierig da was reproduzierbares auf den Weg zu bringen: Aber mal ein paar Effekte


  1. fp(x):=x+x^2

    >fp(x, a):=x^(2) + x


  2. g(x):=fp(x)

    >g(x):=x^(2) + x


1. Änderung von fp add 1 (fp und g verwenden den gleichen Code)


  1. fp(x):=x+x^2 + 1

    >fp(x, a):=x^(2) + x +1


  2. g(x):=fp(x)

    >g(x):=x^(2) + x + 1


2. Änderung von fp


  1. fp(x,a):=x+x^2-a

    >fp(x, a):=x^(2) - a + x


  2. g(x):=fp(x)

    >g(x):=x^(2) + x + 1


Jetzt macht er aus fp fp_1 und ein neues fp (als multivariable Fkt) und zeichnet eine Parameterfläche ins GF. Hauptsächlich führen Änderungen an Termen, Funktionen oder Variablen zu Konflikten CAS/Algebra. Im Algebrafenster berechne ich g(3) daraus wird a=13. Jetzt sollte das Einfluss auf fp(x,a) haben, weil wegen a - is aber nicht, sollte auch nicht, kommt aber immer wieder vor. Im CAS trage ich ein a und erhalte g(3) und ein weiterer CAS-Eintrag fp(2,a) ergibt nun schon folgerichtig g(3)+6. a nimmt wohl doch Einfluß auf fp?


Ich weiß nicht ob das nachvollziehbare Ergebnisse sind - sie beleuchten aber die Problematik....

Was aktuelles https://help.geogebra.org/t...

hawe

photo
1

Generell vermute ich, das es besser ist sich in englisch an den Mike zu wenden. Weiß nicht, ob er für das CAS zuständig ist.

Meine Vermutung ist, dass das was wir aus dem Grafik-Fenster/Algebra-Ansicht kennen, dass nämlich beim Ändern eines Wertes eines Objektes, alle anderen Objekte neu berechnet werden, die von ihm abhängen, hier nicht 100%ig funktioniert.

Für einen solchen Bezeug verwendet man eventuell eher das Symbol $ ... bin aufgrund meiner Klassen nicht so der CAS-Benutzer, hab es aber mal für einen Workshop ausprobiert.

----------------------------------------------------------------------------------------------------

Dynamische Bezüge fügen anstelle einer Kopie eine Verknüpfung mit der Ausgabe einer anderen Zeile ein. Eine spätere Änderungen der verwendeten Zeile wird sich daher auch auf die folgende Zeile auswirken

  • $ fügt die vorherige Ausgabe dynamisch ein.
  • $5 fügt die Ausgabe aus Zeile 5 dynamisch ein.

----------------------------------------------------------------------------------------------------


Ich werde es auch noch mal ausprobieren, aber vielleicht geht es ja dann?

photo
photo
1

Also,

ich weiß nicht, ob dies wirklich das war, was ich bisher beobachtet habe. Aber es geht in diese Richtung und erscheint mir nicht logisch:


f(x) := x^2

-> f(x) := x^2

f(x) := x^3

-> a(x) := x^3


Hier möchte ich also die Funktion f(x) umdefinieren, indem ich sie neu definiere. Aber stattdessen wird eine neue Funktion angelegt und a(x) genannt.


Ich könnte mir zwei andere, abweichende Verhaltensweisen vorstellen, die ich beide logischer fände:

  • das alte f(x) könnte umbenannt werden, z.B. zu f_1(x) - so wäre es konstistent zum Verhalten in der Grafikansicht.
  • das alte f(x) könnte überschrieben werden, sodass die Funktion x^2 nun nicht mehr existiert. Idealerweise sollten alle Eigenschaften des alten f(x) übernommen werden (Farbe, Status ob dargestellt oder nicht,...)

Ich glaube, das Umbennen, das ich beobachtet habe, waren wohl immer solche Fälle, also der verwendete Name war schon vergeben.


GeoGebrix

photo
2

Jetzt habe ich noch ein weiteres Beispiel, es hängt eng zusammen mit meinem anderen Problem: Funktionen mit Parametern. Angeblich ist es ja kein Problem, für mich aber schon:

Zeile 1: Eingabe f(x) := a*x^2

-> f(x) := a*x^2 (kann nicht gezeichnet werden, weil a unbekannt ist)

Zeile 2: Eingabe a := 2

-> a := 2 (Zeile 1 bleibt unverändert)

Zeile 3: Eingabe f(x) (weil ich überprüfen möchte, ob jetzt das a ersetzt wird)

-> g(x) := 2*x^2 Meine Eingabe wurde auch ersetzt zu g(x) := f(x)

Hier wurde also einfach eine neue Funktion definiert, ich bin verwirrt und weiß nicht, ob die Funktion f nun noch existiert und wenn ja, ob sie allgemein a*x^2 heißt oder konkret 2*x^2.


Noch etwas ist komisch in diesem Zusammenhang:

Wenn ich nach Eingabe von Zeile 2 und entsprechender Ausgabe nochmal in Zeile 1 klicke, dann wird die Ausgabe dort zu f(x) := 2*x^2 ersetzt. Am Tablet passiert sowas sehr oft, weil man nur scrollen kann, wenn man mit dem Finger in die Zeilen klickt.

photo
1

Das ist das für GeoGebra CAS "normale" Verhalten, krank ist,


  • wenn a eine bereits eine belegte Variable ist - ist mir schon mehrmals passiert und dann ist mir das Arbeitblatt um die Ohren geflogen - kann es aber nicht reproduzierbar zeigen
  • wenn da plötzlich eine Art Automatismus daraus wird und beim Arbeiten weiter vorne belegte Variablen mit einem grafischen Eintrag immer wieder neu erzeugt werden: Eine (Ebene/Plane) E:=x+y+z+1=0 verliert ihr Bild, dann erneuere ich die Eingabezeile, E kommt wieder und ein E_1=undefiniert entsteht - das kann man beliebig oft wiederholen bis man E_1, E_2, E_3... hat - kann es aber nicht reproduzierbar zeigen.
  • Es könnte sein, dass da mehrdim Funktionen eine Rolle spielen. Hab schon mehrere Posts dazu bei Michael abgeladen. Als Auslöser habe ich in Verdacht ParameterEbenen E(r,s):=p+r v +s u oder besonders gerne Kugeln K(x,y,z):=(x-M)^2-r^2, dann umfangreiche Arbeitsblätter > 12 zeilen und dann versuche eine Aufgabenstellung zu modifizieren.
  • Das Verhalten tritt in ggb5 und ggb6 auf - sollten ja auch die gleiche Algebra-Engine haben
  • Ich würde mir wünschen einen Stop-Compute-Button zu haben damit man alle Änderungen in einem Rechenmodell einpflegen kann - wenn alls passt dann Durchrechnen lassen - so fliegen einem immer wieder die Fragezeichen um die Ohren, weil halbfertige, nicht zusammenpassende Teile durch gerechnet werden...

Das CAS ist halt nicht allein, es kommuniziert mit dem Geometrie- und Grafikmodul. Es ist lästig, wenn man keine Variable überschreiben kann - man muss alles aufheben, auch wenn man es nur einmal braucht...

hawe

---

Ich hab Dein 2. Posting gesehen und schreibe weiter:

Auch das ist für GeoGebra "normal".

Schau ins Konstruktionsprotokoll, da wird a nach f(x) geführt. f hat keine Chance zu erkennen, dass es neu berechnet werden muss, da kein Funktions-Argument geändert wurde - ich sage Seiteneffekte dazu. Du kannst im Konstruktionsprotokoll die Reihenfolge korrigieren und die Funktionsberechnung anstoßen.

Oder du kannst gleich eine mehrdim Funktion f(x,a):=a*x^2 anlegen (mit Eintrag ins 3D-Grafikfenster)...

f1(x):=f(x,2)

photo
1

The renaming when you do f(x):=... twice is deliberate. If you think there's a bug please

* post a .ggb file

* add a simple explanation of what to do to get the bug

© 2023 International GeoGebra Institute