Differenzierbarkeit 
von mehrdimensionalen Funktionen

Von Andreas Kriegl

Zuerst ein paar allgemeine Definitionen

Die Substitution von kartesische in Polarkoordinaten:

polar = {x -> r Cos[ϕ], y -> r Sin[ϕ]}

Die Kurve die wir betrachten sollen ist:

g[t_] := {t^3, t}

Und hat folgende Ableitung bei 0:

g'[0]

Aufgabe 5.56: 
Stetig differenzierbar

Die zu untersuchende Funktion

f[x_, y_] := x^4 y^2/(x^4 + y^4)

Stetige Erweiterung

Zuerst eine Zeichung:

Plot3D[f[x, y], {x, -1, 1}, {y, -1, 1}]

Die Zeichung läßt vermuten, daß die Funktion stetig
erweiterbar ist. 
Dazu müssen wir den Limes von f(x,y) für (x,y)->0 bestimmen.
Dazu verwenden wir Polarkoordinaten:

fp = f[x, y] /. polar // FullSimplify
Limit[fp, r -> 0]

Allerdings bestimmt Mathematika diesen Limes nur für
(generisches) fixes ϕ, und nicht die Gleichmäßigkeit.
Um diese einzusehen betrachten wir diesen Ausdruck ohne r^2:

fp/r^2

Und da der Nenner nicht Null wird, ist er auf dem Kompaktum [0,2π] beschränkt, also konvergiert f(x,y)->0 für (x,y)->0, und wir definieren die stetige Erweiterung durch:

f[0, 0] := 0

Partielle Ableitungen

Nun die partiellen Ableitungen:

d1f = D[f[x, y], x]
d2f = D[f[x, y], y]

Allerdings berechnet Mathematika diese wieder nur für generisches x und y, denn an der Stelle (0,0) ergibt sich z.B.:

d1f /. {x -> 0, y -> 0}

Wir zeichnen die partiellen Ableitungen:

Plot3D[d1f, {x, -1, 1}, {y, -1, 1}]
Plot3D[d2f, {x, -1, 1}, {y, -1, 1}]

Und die Zeichnung läßt deren stetige Erweiterbarkeit
zu (0,0) vermuten.
Dies können wir wieder mittels Polarkoordinaten zeigen:

d1fp = d1f /. polar // Simplify
d2fp = d2f /. polar // Simplify

Mit den gleichen Argumenten wie bei f selbst erhalten wir auch hier als Limes beide Male 0.
Nach (4.1.25) sind dies somit die partiellen Ableitungen bei (0,0).

Differenzierbarkeit

Da die partiellen Ableitungen stetig sind, ist f stetig differenzierbar
und die Matrixdarstellung der Ableitung durch [f'(0,0)]=((∂_( 1)) f(0, 
          0), (∂_2) f(0, 0))
gegeben.

Dies hätten wir auch durch Zoomen erkennen können:

ϵ = 0.1;
Plot3D[
      f[x, y], {x, -ϵ, ϵ}, {y, -ϵ, ϵ}, PlotRange -> {-ϵ, ϵ}, 
      BoxRatios -> {1, 1, 1}]

Der Rest ist nun eigentlich nicht mehr nötig

Richtungsableitungen

Für die Richtungsableitung in Richtung (cos(ϕ),sin(ϕ)) müssen wir wegen f(0,0)=0 den Limes von folgenden Ausdruck für r->0+ berechnen:

fp/r

Wir haben bereits bei der stetigen Fortsetzbarkeit gezeigt, daß dies für r->0 gegen 0 konvergiert, und zwar sogar gleichmäßig bzgl. ϕ.
Dies zeigt nochmals, daß f differenzierbar ist

Kettenregel

Um die Kettenregel zu überprüfen betrachten wir die Zusammensetzung:

h[t_] := (Apply[f, g[t]] // Simplify)

h[t]

Mit Ableitung:

h'[0]

Dies ist genau das Matrixprodukt von 
((∂_( 1)) f(0, 
          0), (∂_2) f(0, 0))=(0,0) und g'(0)=(0,1)

Aufgabe 5.57: 
Nicht differenzierbar, denn Richtungsableitung ist nicht linear.

Die zu untersuchende Funktion

f[x_, y_] := x ^2  y/(x^2 + y^4)

Stetige Erweiterung

Zuerst eine Zeichung:

Plot3D[f[x, y], {x, -1, 1}, {y, -1, 1}]

Die Zeichung läßt vermuten, daß die Funktion stetig
erweiterbar ist. 
Dazu müssen wir den Limes von f(x,y) für (x,y)->0 bestimmen.
Dazu verwenden wir Polarkoordinaten:

fp = f[x, y] /. polar // Factor
Limit[fp, r -> 0]

Allerdings bestimmt Mathematika diesen Limes nur für
(generisches) fixes ϕ, und nicht die Gleichmäßigkeit
Um diese einzusehen betrachten wir diesen Ausdruck ohne r im Zähler:

fp/r

Und da der Nenner ≥ cos(ϕ)^2 ist,
ist der Bruch durch 1 beschränkt, also konvergiert f(x,y)->0 für (x,y)->0, und wir definieren die stetige Erweiterung durch:

f[0, 0] := 0

Partielle Ableitungen

Nun die partiellen Ableitungen:

d1f = D[f[x, y], x]
d2f = D[f[x, y], y]

Allerdings berechnet Mathematika diese wieder nur für generisches x und y.

Wir zeichnen die partiellen Ableitungen:

Plot3D[d1f, {x, -1, 1}, {y, -1, 1}]
Plot3D[d2f, {x, -1, 1}, {y, -1, 1}]

Und die Zeichnung läßt insbesonders bei der zweiten vermuten, daß sie nicht stetig erweiterbar ist.
Also müssen wir die partiellen Ableitungen bei (0,0) direkt ausrechnen:

d1fo = 
      Limit[(f[x, 0] - f[0, 0])/x, 
        x -> 0]
d2fo = 
      Limit[(f[0, y] - f[0, 0])/y, 
        y -> 0]

Dies sind also beide 0

Richtungsableitungen

Für die Richtungsableitung müssen wir den Limes von folgenden Ausdruck für t->0+ berechnen:

dqf[t_, v_, 
        w_] := ((f[t v, t w] - f[0, 0])/t // Factor)

dqf[t, v, w]

Limit[dqf[t, v, w], t -> 0]

Mathematika berechnet diesen Limes aber nur für generisches v≠0 richtig, denn für v=0 erhalten wir 0 anstelle von w:

Limit[dqf[t, 0, w], t -> 0]

Die Richtungsableitung existiert somit für alle Richtungen und ist mit Ausnahme von v=0 auch linear. Dies hätten wir auch durch Zoomen sehen können:

ϵ = 0.1;
Plot3D[
      f[x, y], {x, -ϵ, ϵ}, {y, -ϵ, ϵ}, PlotRange -> {-ϵ, ϵ}, 
      BoxRatios -> {1, 1, 1}]

Differenzierbarkeit

Da die Richtungsableitung nicht linear ist, kann 
f nicht differenzierbar sein.

Kettenregel

Um die Kettenregel zu überprüfen betrachten wir die Zusammensetzung:

h[t_] := (Apply[f, g[t]] // Simplify)
h[t]

Mit Ableitung:

h'[0]

Dies ist genau (Subscript[d, g' (0)])f (g(0)) .

Die Kettenregel gilt also in diesem Fall obwohl
f nicht differenzierbar ist.

Aufgabe 5.58: 
Differenzierbar, aber Ableitung ist nicht stetig.

Die zu untersuchende Funktion

f[x_, y_] := x^2  y^2/(x^2 + y^4)

Stetige Erweiterung

Zuerst eine Zeichung:

Plot3D[f[x, y], {x, -1, 1}, {y, -1, 1}]

Die Zeichung läßt vermuten, daß die Funktion stetig
erweiterbar ist. 
Dazu müssen wir den Limes von f(x,y) für (x,y)->0 bestimmen.
Dazu verwenden wir Polarkoordinaten:

fp = f[x, y] /. polar // Factor
Limit[fp, r -> 0]

Allerdings bestimmt Mathematika diesen Limes nur für
(generisches) fixes ϕ, und nicht die Gleichmäßigkeit
Um diese einzusehen betrachten wir diesen Ausdruck ohne r^2 im Zähler:

fp/r^2

Und da der Nenner ≥ cos(ϕ)^2 ist,
ist der Bruch durch 1 beschränkt, also konvergiert f(x,y)->0 für (x,y)->0, und wir definieren die stetige Erweiterung durch:

f[0, 0] := 0

Partielle Ableitungen

Nun die partiellen Ableitungen:

d1f = D[f[x, y], x]
d2f = D[f[x, y], y]

Allerdings berechnet Mathematika diese wieder nur für generisches x und y.

Wir zeichnen die partiellen Ableitungen:

Plot3D[d1f, {x, -1, 1}, {y, -1, 1}]
Plot3D[d2f, {x, -1, 1}, {y, -1, 1}]

Und die Zeichnung läßt bei der ersten vermuten, daß sie nicht stetig erweiterbar ist.
In der Tat ist:

d1f /. {x -> t^2, y -> t} // Factor

Also müssen wir die partiellen Ableitungen bei (0,0) direkt ausrechnen:

d1fo = 
      Limit[(f[x, 0] - f[0, 0])/x, 
        x -> 0]
d2fo = 
      Limit[(f[0, y] - f[0, 0])/y, 
        y -> 0]

Dies sind also beide 0

Richtungsableitungen

Für die Richtungsableitung müssen wir den Limes von folgenden Ausdruck für t->0+ berechnen:

dqf[t_, v_, 
        w_] := ((f[t v, t w] - f[0, 0])/t // 
          Factor)
dqf[t, v, w]

Limit[dqf[t, v, w], t -> 0]

Mathematika berechnet diesen Limes aber nur für generisches v≠0 .
Das Ergebnis stimmt aber auch für v=0:

Limit[dqf[t, 0, w], t -> 0]

Die Richtungsableitung existiert somit für alle Richtungen und ist linear. Dies hätten wir auch durch Zoomen sehen können:

ϵ = 0.1;
Plot3D[
      f[x, y], {x, -ϵ, ϵ}, {y, -ϵ, ϵ}, PlotRange -> {-ϵ, ϵ}, 
      BoxRatios -> {1, 1, 1}]

Differenzierbarkeit

Es genügt zu zeigen, daß der Grenzwert welcher die
Richtungsableitung gibt gleichmäßig bzgl. der Richtung (v,w)=(cos(ϕ),sin(ϕ)) ist.

dqf[t, v, w] /. {v -> Cos[ϕ], 
        w -> Sin[ϕ]}

Um dies einzusehen betrachten wir diesen Ausdruck ohne den Factor t im Zähler:

%/t

Da dessen Nenner ≥cos(ϕ)^2 ist, ist er durch
sin(ϕ)^2≤1 beschränkt, also ist die Konvergeny gleichmäßig, und somit f differenzierbar mit Ableitung 0.

Kettenregel

Um die Kettenregel zu überprüfen betrachten wir die Zusammensetzung:

h[t_] := (Apply[f, g[t]] // Simplify)
h[t]

Mit Ableitung:

h'[0]

Dies ist genau das Matrixprodukt von 
((∂_( 1)) f(0, 
          0), (∂_2) f(0, 0))=(0,0) und g'(0)=(0,1)

Aufgabe 5.59: 
Nicht differenzierbar, aber Richtungsableitung existiert und ist linear.

Die zu untersuchende Funktion

f[x_, y_] := x  y^4/(x^2 + y^6)

Stetige Erweiterung

Zuerst eine Zeichung:

Plot3D[f[x, y], {x, -1, 1}, {y, -1, 1}]

Die Zeichung läßt vermuten, daß die Funktion stetig
erweiterbar ist. 
Dazu müssen wir den Limes von f(x,y) für (x,y)->0 bestimmen.
Dazu verwenden wir Polarkoordinaten:

fp = f[x, y] /. polar // Factor
Limit[fp, r -> 0]

Allerdings bestimmt Mathematika diesen Limes nur für
(generisches) fixes ϕ, und nicht die Gleichmäßigkeit
Um diese einzusehen betrachten wir diesen Ausdruck ohne r im Zähler:

fp/r

Und da der Nenner ≥ 2(r^2) sin (((ϕ))^3)cos(ϕ) ist,
ist der Bruch durch 1 beschränkt, also konvergiert f(x,y)->0 für (x,y)->0, und wir definieren die stetige Erweiterung durch:

f[0, 0] := 0

Partielle Ableitungen

Nun die partiellen Ableitungen:

d1f = D[f[x, y], x]
d2f = D[f[x, y], y]

Allerdings berechnet Mathematika diese wieder nur für generisches x und y.

Wir zeichnen die partiellen Ableitungen:

Plot3D[d1f, {x, -1, 1}, {y, -1, 1}]
Plot3D[d2f, {x, -1, 1}, {y, -1, 1}]

Und die Zeichnung läßt vermuten, daß beide nicht stetig erweiterbar ist.
In der Tat ist:

d1f /. {x -> 0, y -> t} // Factor
d2f /. {x -> t^3, y -> t} // Factor

Also müssen wir die partiellen Ableitungen bei (0,0) direkt ausrechnen:

d1fo = 
      Limit[(f[x, 0] - f[0, 0])/x, 
        x -> 0]
d2fo = 
      Limit[(f[0, y] - f[0, 0])/y, 
        y -> 0]

Dies sind also beide 0

Richtungsableitungen

Für die Richtungsableitung müssen wir den Limes von folgenden Ausdruck für t->0+ berechnen:

dqf[t_, v_, 
        w_] := ((f[t v, t w] - f[0, 0])/t // 
          Factor)
dqf[t, v, w]

Limit[dqf[t, v, w], t -> 0]

Mathematika berechnet diesen Limes aber nur für generisches v≠0 .
Das Ergebnis stimmt aber auch für v=0:

Limit[dqf[t, 0, w], t -> 0]

Die Richtungsableitung existiert somit für alle Richtungen und ist linear. Dies hätten wir auch durch Zoomen sehen können:

ϵ = 0.1
ParametricPlot3D[{x, y, f[x, y]} /. 
        polar, {r, ϵ/100, ϵ}, {ϕ, 0, 2  π}, 
      PlotRange -> {-ϵ, ϵ}, 
      BoxRatios -> {1, 1, 1}, PlotPoints -> {10, 37}]

Kettenregel

Um die Kettenregel zu überprüfen betrachten wir die Zusammensetzung:

h[t_] := (Apply[f, g[t]] // Simplify)
h[t]

Mit Ableitung:

h'[0]

Dies ist nicht das Matrixprodukt von 
((∂_( 1)) f(0, 
          0), (∂_2) f(0, 0))=(0,0) und g'(0)=(0,1).
Also stimmt die Kettenregel in diesem Fall nicht.

Differenzierbarkeit

Da wir ein Gegenbeispiel zur Kettenregel gefunden haben kann f nicht differenzierbar sein.

hier nichtEs genügt zu zeigen,daß der Grenzwert welcher die
Richtungsableitung gibt gleichmäßig bzgl.der Richtung (v,w)=(cos(ϕ),sin(ϕ))

dqf[t, v, w] /. {v -> Cos[ϕ], 
        w -> Sin[ϕ]}

Wieder ist der Nenner ≥cos(ϕ)^2, aber dies kürzt sich nicht weg, also
können wir so nicht auf gleichmäßige Konvergenz schließen.
Setzen wir cos(ϕ)=t^2 und somit sin(ϕ)^2=1-t^4 so erhalten wir

% /. {Cos[ϕ] -> t^2, Sin[ϕ] -> Sqrt[1 - t^4]} // 
      Factor

Mit Grenzwert ungleich 0, also ist obige Konvergenz gegen 0 nicht gleichmäßig.

Limit[%, t -> 0]

Das die Ableitung nicht existiert können wir auch durch Zoomen sehen,
wobei wir eine Umparametrisierung mit x->x^3 verwenden. um das verhalten nahe der y-Achse
deutlicher zu sehen.

ϵ = 0.1
ParametricPlot3D[{x^3, y, 
        f[x^3, y]}, {x, -(ϵ^(1/3)), (ϵ^(1/3))}, {y, -ϵ, ϵ}, PlotRange -> {-ϵ, ϵ}, 
      BoxRatios -> {1, 1, 1}]