答案1
可以使用包在 LaTeX 中求解 ODE pst-ode
。它实现了 Runge-Kutta-Fehlberg 方法(RKF45) 为 4 阶,内嵌 5 阶,用于自适应步长控制。因此,用户提供的初始步长 (2.0/400=0.005) 对精度并不重要:
排版两次lualatex
:
\documentclass[border=1pt,varwidth]{standalone}
\usepackage{pst-ode}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{mathtools}
% result table `t y' written to Y.dat
\pstODEsolve[algebraicAll,saveData]{Y}{t | y[0]}{0.0}{2.0}{401}{1.0}{-y[0]/(1+0.8*cos(10*Pi*y[0]))}
\begin{document}
\begin{equation*}
y^{\prime}=-\frac{y}{1 + 0.8 \cos 10 \pi y }\text{, }y(0)=1
\end{equation*}
\IfFileExists{Y.dat}{%
\begin{tikzpicture}
\begin{axis}[
xlabel={$t$},
ylabel={$y$}, ylabel style={rotate=-90}
]
\addplot [no markers] table {Y.dat};
\end{axis}
\end{tikzpicture}%
}{Rerun!}
\end{document}