dh-Materialien
Maple   
Anwendungen

Lösungen der Gleichung bz = c

> restart; with(plots): with(plottools):
interfaceshowassumed = 0):
interface(displayprecision = 3):

Definition der Funktion f auf der Menge der komplexen Zahlen:

> f(z):= b^z;

f(z)=b^z

Lösen der Gleichung f(z) = c:

> _EnvAllSolutions:= true:
s:= solve(f(z) = c, z);

s

Die Konstante _Z1 ist ganzzahlig:

> about(_Z1);

Aufspalten der komplexen Zahl s in ihren Realteil bzw. Imaginärteil:

> alias(k = _Z1):
xs:= Re(s);
ys:= Im(s);

xs, ys

Wählen fester Werte für b bzw. c:

> k:= 'k':
b:= -2; #
c:= 10000; #
xs:= Re(s);
ys:= Im(s);

b=-2; c=10000

Die Probe:

> lsg:= b^(xs+I*ys);
sg:= simplify([evalc(Re(lsg)), evalc(Im(lsg))]);

lsg

Berechnung und Darstellung einiger Lösungen der Gleichung f(z) = c:

> lsgseq:= seq([evalf(xs, 30), evalf(ys, 30)], k = -20..20):
lsgn:= plot([lsgseq], style = point, color = blue):
display([lsgn], axesfont = [COURIER, 12]);

lsgseq

Definition der reellwertigen Funktion potRe: z -> Re(bx+iy):

> potRe:= proc(b,x,y)
  evalf(Re(b^(x+I*y)), 30):
end;

Diagramm

Auswahl einiger der oben berechneten Lösungen der Gleichung f(z) = c:

> num:= nops([lsgseq]):
points:= []:
xmin:= 12; #
xmax:= 18; #
for k from 1 to num do
  if (([lsgseq][k][1] > xmin) and ([lsgseq][k][1] < xmax)) then
    print ([lsgseq][k]);
    points:= [op(points), [lsgseq][k]];
  fi:
od:
pnum:= nops(points):

Lösungen

3D-Darstellung von potRe sowie der vorstehend aufgelisteten Lösungen:

> ymin:= floor(points[1][2]):
ymax:= ceil(points[pnum][2]):
flaeche:= plot3d(potRe(b,x,y), x = xmin..xmax, y = -0.3..1,
  axesfont = [COURIER, 12],
  labelfont = [COURIER, 12],
  orientation = [-112, 66],
  axes = boxed,
  style = wireframe):
lxmin:= points[1][1]:
lymin:= points[1][2]:
lxmax:= points[pnum][1]:
lymax:= points[pnum][2]:
gerade:= line([lxmin, lymin, c],[lxmax, lymax, c],
  color = red,
  linestyle = solid):
punkte:= seq(point([points[k][1],points[k][2],c],
  color = blue,
  symbolsize = 12,
  symbol = diamond),
  k = 1..pnum):
display([flaeche, gerade, punkte]);

3D-Diagramm

Variieren von c:

> c:= 10^n;
k:= 7:
xs:= Re(s);
ys:= Im(s);
points7:= [seq([evalf(xs, 30), evalf(ys, 30)], n = 3..5)]:
pnum7:= nops(points7):

k:= 8:
xs:= Re(s):
ys:= Im(s):
points8:= [seq([evalf(xs, 30), evalf(ys, 30)], n = 3..6)]:
pnum8:= nops(points8):

k:= 9:
xs:= Re(s):
ys:= Im(s):
points9:= [seq([evalf(xs, 30), evalf(ys, 30)], n = 4..6)]:
pnum9:= nops(points9):

flaeche:= plot3d(potRe(b,x,y), x = xmin..xmax, y = -0.8..1.3,
  axesfont = [COURIER, 12],
  labelfont = [COURIER, 12],
  orientation = [-112, 66],
  axes = boxed,
  style = wireframe):

pktopts:= 'color = blue, symbolsize = 12, symbol = diamond':

punkte7:= seq(point([points7[j][1],points7[j][2],10^(j+2)],
  pktopts),
  j = 1..pnum7):
punkte8:= seq(point([points8[j][1],points8[j][2],10^(j+2)],
  pktopts),
  j = 1..pnum8):
punkte9:= seq(point([points9[j][1],points9[j][2],10^(j+3)],
  pktopts),
  j = 1..pnum9):

display([flaeche, punkte7, punkte8, punkte9]);

c=10^n
3D-Diagramm