Графическое сравнение показательных функций¶
В этом примере рассматривается графический подход к определению большего из двух значений: $e^\pi$ и $\pi^e$.
Для графического сравнения значений $e^\pi$ и $\pi^e$ построим поверхность функции разницы показательных функций $z=x^y-y^x$.
Для этого в первую очередь установим и подключим библиотеку CairoMakie
.
import Pkg; Pkg.add("CairoMakie");
using CairoMakie;
Определим массивы координат поверхности.
x = 0:0.05:4; y = 0:0.05:4;
X = [i for i in x, j in 1:length(y)]; Y = [j for i in 1:length(x), j in y];
Z = X.^Y-Y.^X;
Построим поверхность по заданной функции.
using CairoMakie
# Создаем фигуру и 3D оси
fig = Figure(;size = (600, 600));
ax = Axis3(fig[1, 1],
title = "Показательные функции",
xlabel = "Ось X", ylabel = "Ось Y", zlabel = "Ось Z",
aspect=(1,1,1), azimuth=-pi*0.64);
# Создаём поверхность
CairoMakie.surface!(ax, x, y, Z,
colormap = :prism,
colorrange = (minimum(Z), maximum(Z)));
# Добавляем цветовую шкалу
Colorbar(fig[1, 2],
limits = (minimum(Z), maximum(Z)),
colormap = :prism, label = "Значения");
display(fig);
В плоскости $Z=0$ нанесём контур на построенную поверхность.
CairoMakie.contour3d!(ax, x, y, Z,
levels = [0],
color=:black, linewidth=2)
display(fig);
На построенных контурах имеется несколько точек целочисленных решений уравнения $x^y-y^x=0$. Построим эти точки на контурах.
# массивы целочисленных решений уравнения
ix=[0,1,2,2,3,4,4]
iy=[0,1,2,4,3,2,4]
iz=zeros(7)
CairoMakie.scatter!(ax, ix, iy, iz;
color=:black)
display(fig);
Теперь построим точки функции для искомых $x$ и $y$ по координатам: $(\pi,\, e,\, \pi^e-e^\pi)$ и $(e,\, \pi,\, e^\pi-\pi^e)$.
e=exp(1);
tx=[pi,e]
ty=[e,pi]
textt=["pi,e", "e,pi"]
tz=tx.^ty-ty.^tx
CairoMakie.scatter!(ax, tx, ty, tz;
color=:white)
CairoMakie.text!(ax, tx, ty, tz;
text = textt, align = (:right, :bottom),
color = :white)
display(fig);
Из построения видно, что точка с координатами $(e,\, \pi,\, e^\pi-\pi^e)$ располагается в той части поверхности, которая находится выше плоскости $Z = 0$, а точка $(\pi,\, e,\, \pi^e-e^\pi)$ - в части поверхности ниже секущей плоскости. Для удобства просмотра расположения точек можно отредактировать азимут осей и маской кодовой ячейки:
Азимут=-0.38 # @param {type:"slider",min:-6.28,max:6.28,step:0.1}
ax.azimuth[] = Азимут;
display(fig);
Отсюда можно сделать вывод, что значение $e^\pi$ больше $\pi^e$. В подтверждение рассчитаем эти значения.
@show e^pi, pi^e;
Вывод¶
В данном примере мы рассмотрели наглядный способ графического нахождения большего из двух значений.