![Tikz Изображение, а не график экспонент](https://rvso.com/image/328461/Tikz%20%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%2C%20%D0%B0%20%D0%BD%D0%B5%20%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%20%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82.png)
Я пытаюсь построить на одном графике две функции: y=1
и g(x) = (e^(1/x))^3 - 1
.
Но когда я строю график функции g с размером выборки больше 10, мой график полностью портится. Я подтвердил, что это правильное уравнение и должно быть построено правильно, но по какой-то причине это не так. Вот мой код ниже
\begin{tikzpicture}
\begin{axis}[
axis lines = left,
xlabel = $x$,
ylabel = {$f(x)$},
]
\addplot [
domain=0:10,
samples=100,
color=red,
]
{exp(3/x) - 1};
\addlegendentry{$(e^{(1/\alpha)})^3-1$}
\addplot [
domain=0:10,
samples=100,
color=black,
]
{1};
\end{axis}
\end{tikzpicture}
решение1
Причина, по которой ваш график отображается неправильно, заключается в том, что PGFplots вычисляет максимальное (не бесконечное) значение и использует его для установки границуось. В результате, когда у вас размер шага меньше ~10, вы начинаете зондировать точки, очень близкие к 0, которые очень быстро расходятся к бесконечности.
Вы можете задать границы по осям с помощью ymax
иymin
(аналогично дляИксось); однако это приведет к ошибке, поскольку возникнет переполнение, поскольку PGFplots применяет некоторые хитрые приемы для работы с ограниченными числовыми возможностями TeX.
Лучшим вариантом в вашем случае является restrict y to domain
key. Этот параметр сообщает PGFplots о необходимости отбрасывать значения, выходящие за пределы, и таким образом полностью избегает переполнений.
\documentclass[tikz,convert]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=left,
xlabel=$x$,
ylabel={$f(x)$},
restrict y to domain=0:100,
]
\addplot [
domain=0:10,
samples=100,
color=red,
]
{exp(3/x) - 1};
\addlegendentry{$(e^{(1/\alpha)})^3-1$}
\addplot [
domain=0:10,
samples=100,
color=black,
]
{1};
\end{axis}
\end{tikzpicture}
\end{document}