C++嵌入数学公式

C++ Embedding Mathematical formulas

本文关键字:数学公式 C++      更新时间:2023-10-16

我想知道用C++代码记录数学公式的最佳实践。

理想情况下,能够将方程直接写入注释可能是完美的,但以人类可读的方式编写它们是不可行的。

我研究了LaTex、MathML,当与来自不同领域的许多人合作时,语法很复杂(毕竟不是每个人都是数学家).如果你在这方面有任何经验,请评论。

例如,我在每个需要记录的函数中添加了对外部HML文件的交叉引用,但这很难维护。我尝试了一下Doxygen公式,我们大多数人发现语法也很复杂。

  f[
    |I_2|=left| int_{0}^T psi(t) 
             left{ 
                u(a,t)-
                int_{gamma(t)}^a 
                frac{dtheta}{k(theta,t)}
                int_{a}^theta c(xi)u_t(xi,t),dxi
             right} dt
          right|
  f]

您可以始终使用"ASCII"艺术。如果您的编辑器支持Unicode(尤其是UTF-8编码),那就更好了。当实际查看代码时,它可能更具可读性。尽管维护它可能并不比TeX语法更容易。例如

//          │  ⌠T      {                                            }    │
//          │  |       {          ⌠a       dθ   ⌠θ                  }    │
// │ I  │ = │  |  ψ(t) { u(a,t) - |      ------ |   c(ξ) u (ξ,t) dξ } dt │
// │  2 │   │  |       {          ⌡γ(t)  k(θ,t) ⌡a        t         }    │
//          │  ⌡0      {                                            }    │

如果您有需要各种符号的复杂数学方程,最好将它们写在函数文档中,而不是代码文档中。即单独的文档。

LaTeX语法并不过于复杂,而且比MathML更易于阅读(也更易于编写!)(好吧,这是一种观点)。一点练习确实有帮助,但这不是你几个小时内不会学到的东西。根据我的经验,用LaTeX编写数学丰富的文本是迄今为止最方便的选择。

根据你的公式有多复杂,或者更确切地说,根据你是否需要花哨的符号,我认为你可以将公式嵌入到代码中并使用doxygen,或者,正如已经指出的,创建一个单独的文档。