如何绘制简单的微分方程?

如何绘制简单的微分方程?

我想绘制以下微分方程:

在 LaTeX 上,我很难理解我需要做什么才能让它工作(我知道有关于它的帖子,但我不明白)。有人能告诉我要使用哪个包并给我一个简单的请举个例子来说明如何做?

这是研究抛射体在有空气摩擦的重力场中的速度。我知道所有的初始条件。

答案1

本例使用PSTricks包pst-ode以该方法对微分方程进行数值求解RKF45

PSTricks 需要latex--> dvips-->ps2pdf工作流程进行排版。由于我们pgfplots在这里使用,使用命令解决 ODE\pstODEsolve被外包到辅助文档中,并将解决方案写入文件table.dat。因此,为了排版下面列出的代码,请使用选项运行pdflatex或。lualatex--shell-escape

请注意,对于RKF45,结果的精度不取决于所选的输出点数。该方法使用自适应步长控制。为了进行比较,只有 4 个输出点的解决方案(_0,_1,_2,_e) 是根据具有 250 个输出点的细粒度解决方案绘制的。

用 排版pdflatex --shell-escape example.tex


example.tex

\documentclass{standalone}

%%%%%%%%%%%%%%%%%%%%%%% solve ODE in auxiliary document %%%%%%%%%%%%%%%%%%%%%%%%
\begin{filecontents}[overwrite]{solve.tex}
\documentclass{article}
\usepackage{pst-ode}

\begin{document} 
% arguments:
%   algebraicAll --> all arguments in algebraic notation
%   saveData     --> also write result into file `table.dat'
%   `table'      --> PostScript variable that takes result
%   t | x[0]     --> output format in `table' and `table.dat'
%   0, 10        --> integration interval t_0, t_e
%   250          --> number of saved output points t_0, t_1, ..., t_e
%   10           --> initial value
%   9.81 - ...   --> right-hand side of ODE 
\pstODEsolve[algebraicAll,saveData]{table}{ t | y[0] }{ 0 }{ 10 }{ 250 }{ 10 }{ 
  9.81 - 1.15*10^-3 / (58*10^-3) * y[0]^2
}
% for comparison: 4 output points
\pstODEsolve[algebraicAll,saveData]{table2}{ t | y[0] }{ 0 }{ 10 }{ 4 }{ 10 }{ 
  9.81 - 1.15*10^-3 / (58*10^-3) * y[0]^2
}
dummy text
\end{document}
\end{filecontents}

\immediate\write18{latex solve}
\immediate\write18{dvips solve}
\immediate\write18{ps2pdf -dNOSAFER solve.ps}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{pgfplots}
\pgfplotsset{compat=1.17}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    xlabel=$t$,
    ylabel=$v$,
    ylabel style={rotate=-90}
  ]
  \addplot [thin,black] table {table2.dat}; % solution with 4 output points
  \addplot [blue] table {table.dat};
  \end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述


或者,如果没有,可以在排版主文档之前手动排版--shell-escape辅助文档:solve.texexample.tex

latex solve
dvips solve
ps2pdf -dNOSAFER solve.ps
pdflatex example
pdflatex example

ps2pdf必须使用选项运行-dNOSAFER才能允许它写入文件(table.dat)。

相关内容