# Nachtrag zu Kapitel 17: # c) Stetigkeitsuntersuchung mit "iscont" # =========================== # Eine Alternative zur Stetigkeitsuntersuchung bietet der Befehl # "iscont". Dazu muss zun"achst "readlib(iscont)" ausgef"uhrt werden: > readlib(iscont): # Obwohl die zu testende Funktion als expression eingegeben # werden soll, werden auch Heaviside(x) und piecewise(x) akzeptiert. # Beispiele: > iscont(1/x,x=-1..1); > iscont(x*sin(x),x=-1..1); > iscont(exp(x),x=-infinity..infinity); > iscont(Heaviside(x),x=-2..2); # Soweit sind die Ergebnisse korrekt. Das folgende Programm mit der # Option "operator" kann nicht behandelt werden: > f:=x-> if x<0 then 0 else 1 fi; > iscont(f(x),x=-2..2); Error, (in f) cannot evaluate boolean > iscont('f'(x),x=-2..2); Error, (in discont/discontR) does not know about function, f # Ein erfolgreicher Versuch mit "piecewise": > H:=x->piecewise(x<0,0,1); > iscont(H(x),x=-2..2); # Ein falsches Ergebnis mit "frac": > iscont(frac(x),x=-1..1); # Sicherheitshalber verkleinern wir das Intervall, um m"ogliche # Einfl"usse der Sprungstellen bei x=-1, x=1 auszuschalten: > iscont(frac(x),x=-1/2..1/2); # Auch dieses Ergebnis ist falsch. Das zugeh"orige Bild: > plot(frac(x),x=-1/2..1/2); # und einige Testwerte (f"ur einseitige Grenzwerte von Funktionen siehe # Kapitel 21): > frac(0); > limit(frac(x),x=0); > limit(frac(x),x=1,left); > limit(frac(x),x=-1,right); # Die Grenzwerte werden richtig berechnet. # # Dieses Problem mit "iscont" ist bekannt. N"aheres # dazu findet man z.~B. in den "Maple Answers" unter # Stichwort: "bug in iscont/piecewise". # # Dort wird u.a. gesagt, dass die Ergebnisse von "iscont" mit Vorsicht # zu verwenden sind, und das gilt auch f"ur den verwandten Befehl # "discont": # # Auch er muss erst eingelesen werden: > readlib(discont): > discont(frac(x),x); # Wie unter "?discont" erkl"art ist, bedeutet dies, dass # an allen ganzzahligen Werten von x Unstetigkeitsstellen # (m"oglicherweise!) zu erwarten sind. Mit Ausnahme der Stelle x=0 ist # das richtig. Da dieses Ergebnis auch im Program "iscont" verwendet # wird, ist gekl"art, welche Stelle unter "iscont" f"alschlich als # Unstetigkeitestelle angesehen wurde: x=0. In der Tat liefert # "iscont" das richtige Ergebnis, wenn das Intervall die Null # nicht enth"alt: > {iscont(frac(x),x=1..2),iscont(frac(x),x=-2..-1),iscont(frac(x),x=2..3 > )};