耦合和高阶 ODE

耦合和高阶 ODE

我想绘制在重力场中发射的球的轨迹,我们根据二次定律考虑空气阻力:

图表

为了更简单起见,我取 alpha = 0。因此运动方程为:

速度

我特别想绘制速度:

速度

我们可以将运动方程重写为:

移动

所以我最后想绘制出我的球的轨迹。

这些值是:

t0 = 0 秒 | te = 10 秒 | m = 58e-3 千克 | k = 1.15e-3 SI | z0 = 200 米 | x0 = 0 米 | vx0 = 10 毫秒-1 |vz0 = 0 毫秒-1 | g = 9.81 毫秒-2

我不太确定 LaTeX 的语法。我宁愿用pst-ode。但任何能生成好的 PDF 的方法都会受到欢迎。

有人能帮帮我吗?

编辑:感谢@AlexG 的回答。我想分享我最终的结果:

这

抱歉我法语不好。

答案1

耦合的高阶微分方程完全没有问题。

首先,我们将原来的两个二阶系统转换为四个一阶 ODE 系统:

在此处输入图片描述

然后,我们将所有内容放在一起(4 个 ODE,4 个初始条件)。请注意,\pstODEsolve我们可以对解向量进行后期计算(计算 || 来自其组件)在写入输出表时。

排版如下pdflatex --shell-escape

\documentclass[varwidth]{standalone}

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

\def\vZero{10} % initial velocity
\def\alpha{0}  % elevation angle

\begin{document} 
\pstODEsolve[algebraicAll,saveData]{table}{
  t | x[0] | x[2] | sqrt(x[1]^2+x[3]^2)  % save in `table2.dat': t, x, z, |v|=sqrt(v_x^2 + v_z^2)
}{ 0 }{ 10 }{ 250 }{                     % t_0, t_e, N=250
  0 |
  \vZero * cos(\alpha) |                 % initial conditions x(0), v_x(0), z(0), v_z(0)
  200 |
  \vZero * sin(\alpha)
}{ 
  x[1] |                                 % RHS, (4 equations)
  -1.15*10^-3/(58*10^-3) * sqrt(x[1]^2+x[3]^2) * x[1] |
  x[3] |
  -1.15*10^-3/(58*10^-3) * sqrt(x[1]^2+x[3]^2) * x[3] - 9.81
}
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}

Trajectory:\\[1ex]
\begin{tikzpicture}
  \begin{axis}[
%    axis equal,
    xlabel=$x$,
    ylabel=$z$,
    ylabel style={rotate=-90}
  ]
  \addplot [blue] table [x index=1, y index=2] {table.dat};
  \end{axis}
\end{tikzpicture}

Velocity:\\[1ex]
\begin{tikzpicture}
  \begin{axis}[
    xlabel=$t$,
    ylabel=$|\mathrm{v}|$,
    ylabel style={rotate=-90}
  ]
  \addplot [blue] table [x index=0, y index=3] {table.dat};
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容