Lösungen der Gleichung bz = c
> restart; with(plots): with(plottools):
interfaceshowassumed = 0):
interface(displayprecision = 3):
interface(displayprecision = 3):
Definition der Funktion f auf der Menge der komplexen Zahlen:
> f(z):= b^z;
Lösen der Gleichung f(z) = c:
> _EnvAllSolutions:= true:
s:= solve(f(z) = c, z);
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);
ys:= Im(s);
Wählen fester Werte für b bzw. c:
> k:= 'k':
b:= -2; #
c:= 10000; #
xs:= Re(s);
ys:= Im(s);
c:= 10000; #
xs:= Re(s);
ys:= Im(s);
Die Probe:
> lsg:= b^(xs+I*ys);
sg:= simplify([evalc(Re(lsg)), evalc(Im(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]);
display([lsgn], axesfont = [COURIER, 12]);
Definition der reellwertigen Funktion potRe: z -> Re(bx+iy):
> potRe:= proc(b,x,y)
evalf(Re(b^(x+I*y)), 30):
end;
end;
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):
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):
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]);
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]);
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]);
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]);