在C/C++,Python或Fortran中编程时输入方程的方法

GGr*_*wal 12 python fortran numpy scientific-computing scipy

我正在编写一个代码,它具有很长的数学方程式,具有许多三角函数和其他身份.有没有一种方法可以在乳胶中可视化相同的表达式,并从它或其他方式制作C或python表达式.

如何输入和检查数学表达式以查看括号等是否在正确位置并在乳胶文档中使用它们?

提前致谢

dou*_*oug 16

你看过Sympy吗?它有一个用于从python代码生成LaTeX的模块,但它实际上要多得多.

Sympy,正如你可以从名称中猜到的那样,是一个用于符号计算的python库.

Sympy库还包含它自己的内置解释器(cd到site-packages中的sympy目录,并在shell提示符下键入ipython).

通过sympy interpeter,您可以执行以下操作:

In [1]: (1/cos(x)).series(x, 0, 10)
Out[1]: 

     2      4       6        8           
    x    5?x    61?x    277?x            
1 + ?? + ???? + ????? + ?????? + O(x**10)
    2     24     720     8064            

In [2]: ((x+y)**2).expand()
Out[2]: 

 2            2
x  + 2?x?y + y 

In [3]: (1/cos(x)).series(x, 0, 10)
Out[3]: 

     2      4       6        8           
    x    5?x    61?x    277?x            
1 + ?? + ???? + ????? + ?????? + O(x**10)
    2     24     720     8064            


# not quite LaTeX--but Sympy can easily generate LaTeX from python code: 
>>> from sympy import Integral, latex
>>> from sympy.abc import x
>>> latex(x**2)
    'x^{2}'

>>> latex(x**2, mode='inline')
    '$x^{2}$'

>>> latex(x**2, mode='equation')
    '\\begin{equation}x^{2}\\end{equation}'
Run Code Online (Sandbox Code Playgroud)

我也想一般推荐Sympy图书馆 - 现在正在积极开发大约四年,并且每年都有很大的改进; 它是一个优秀的,成熟的符号计算库,拥有优秀的文档,以及一个积极和乐于助人的社区.(除了提交几个补丁之外,我不是Sympy dev/committer,只是一个用户.)


小智 3

编辑:似乎对于某些方程,绝对可以使该过程自动化,见下文。原答案保持不变!


基于与 LaTeX 方程设置进行斗争的许多痛苦时间以及我自己未能注意到大块中缺失元素的失败equation:虽然几乎肯定可以将 LaTeX 转换为 python 或反之亦然,但它可能比仅仅手动执行更痛苦,并且您无论如何,可能需要花时间整理结果。

也就是说,已经提出并回答了类似的问题,

也许你可以从那里开始。


编辑 我浏览了之前的问题,并测试了评论的组合(1 2 3)。一切归功于这些评论的作者!

import sympy

def python_to_latex(expression, simplify=False):
    sym_expr = sympy.sympify(expression) 

    if simplify: sym_expr = sympy.simplify(sym_expr)

    return sympy.latex(sym_expr)

if __name__ == '__main__':
    print python_to_latex(raw_input("Enter a python math expression: "), simplify=True)
Run Code Online (Sandbox Code Playgroud)