用于微分方程的Python解析器:带有ast和sympify的语法错误

祖波

我正在尝试解析(普通)微分方程。理想情况下,我更喜欢使用现有的解析器-否则,这将直接导致诸如语法之类的事情,并且可能相当费力。

编辑:的想法是然后将方程式馈送给SymPy的求解器和积分器,并对其做一些与问题无关的事情。

我已经找到了此自定义解析器列表,但似乎有些过时了,而且似乎没有提到我要直接查找的内容。

到目前为止,我尝试过ast(我认为它使用compile())和sympify,但没有成功:

lagrangeODE = '''f''(x) + f'(x) + f(x)'''

import ast
tree = ast.parse(lagrangeODE)

产生

tree = ast.parse(lagrangeODE)
  File "<unknown>", line 1
    f''(x) + f'(x) + f(x)
      ^
SyntaxError: invalid syntax

尽管

import sympy as sy
expr = sy.sympify(lagrangeODE)

产生

---------------------------------------------------------------------------
SyntaxError                               Traceback (most recent call last)
[...]
SympifyError: Sympify of expression 'could not parse "f''(x) + f'(x) + f(x)"' failed, because of exception being raised:
SyntaxError: invalid syntax (<string>, line 1)

对我而言,这基本上意味着ast和symp不能理解ODE的Langrangian符号。

请指教:

  1. 我使用ast并表示错误,还是不适合该任务?
  2. 是否存在另一种现有方法,还是应该自己实施?
user2357112支持Monica

ast模块旨在解析Python。您输入的不是Python。同样,sympify旨在解析看起来像SymPy语法而'不是SymPy语法的字符串两种工具都不适合您的任务。

获取通用解析器生成器并编写语法。pyparsing将是一种选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python PLY解析器的语法错误

来自分类Dev

解析器组合器,分离语法和AST构造

来自分类Dev

从 antlr 解析器获取有意义的语法错误

来自分类Dev

带有“的 Python 语法错误”

来自分类Dev

带有Python的Vcard解析器

来自分类Dev

鼠尾草斜率场和微分方程

来自分类Dev

Unity着色器:解析器错误:第19行的语法错误

来自分类Dev

解析和语法错误

来自分类Dev

解析和语法错误

来自分类Dev

“解析器错误”语法错误:位置 0 处的 JSON 中的意外标记 <

来自分类Dev

带有 64 位和 32 位 sh 调用的 Sonarqube 包装器语法错误

来自分类Dev

C微分方程

来自分类Dev

自上而下的解析器可以检测输入字符串的语法错误吗?

来自分类Dev

简单的解析器 - 当 len(tokens) 大于 0 时,为什么会引发“语法错误”?

来自分类Dev

带有哈希和方括号的语法错误

来自分类Dev

带有哈希和方括号的语法错误

来自分类常见问题

带有'%='令牌的VScode eslint解析器错误

来自分类Dev

带有'%='令牌的VScode eslint解析器错误

来自分类Dev

在Python 3和Matplotlib中使用带有字符串的格式的无效语法错误

来自分类Dev

带有 DataLoader 和嵌套端点的 GraphQL 解析器

来自分类Dev

用python(Duffing振荡器)解非线性非齐次微分方程

来自分类Dev

正弦函数不适用于微分方程

来自分类Dev

适用于Python的足够MUD样式和有效文本解析器的示例

来自分类Dev

带有'end'参数的Python无效语法错误

来自分类Dev

python语法错误* args带有可选的arg

来自分类Dev

带有测试代码的Python语法错误

来自分类Dev

为什么我生成的Flex / Bison解析器即使在规则中添加了语法,也会出现语法错误?

来自分类Dev

语法错误:意外的EOF在解析ast.literal_eval()

来自分类Dev

Python有条件地求解延迟微分方程

Related 相关文章

  1. 1

    Python PLY解析器的语法错误

  2. 2

    解析器组合器,分离语法和AST构造

  3. 3

    从 antlr 解析器获取有意义的语法错误

  4. 4

    带有“的 Python 语法错误”

  5. 5

    带有Python的Vcard解析器

  6. 6

    鼠尾草斜率场和微分方程

  7. 7

    Unity着色器:解析器错误:第19行的语法错误

  8. 8

    解析和语法错误

  9. 9

    解析和语法错误

  10. 10

    “解析器错误”语法错误:位置 0 处的 JSON 中的意外标记 <

  11. 11

    带有 64 位和 32 位 sh 调用的 Sonarqube 包装器语法错误

  12. 12

    C微分方程

  13. 13

    自上而下的解析器可以检测输入字符串的语法错误吗?

  14. 14

    简单的解析器 - 当 len(tokens) 大于 0 时,为什么会引发“语法错误”?

  15. 15

    带有哈希和方括号的语法错误

  16. 16

    带有哈希和方括号的语法错误

  17. 17

    带有'%='令牌的VScode eslint解析器错误

  18. 18

    带有'%='令牌的VScode eslint解析器错误

  19. 19

    在Python 3和Matplotlib中使用带有字符串的格式的无效语法错误

  20. 20

    带有 DataLoader 和嵌套端点的 GraphQL 解析器

  21. 21

    用python(Duffing振荡器)解非线性非齐次微分方程

  22. 22

    正弦函数不适用于微分方程

  23. 23

    适用于Python的足够MUD样式和有效文本解析器的示例

  24. 24

    带有'end'参数的Python无效语法错误

  25. 25

    python语法错误* args带有可选的arg

  26. 26

    带有测试代码的Python语法错误

  27. 27

    为什么我生成的Flex / Bison解析器即使在规则中添加了语法,也会出现语法错误?

  28. 28

    语法错误:意外的EOF在解析ast.literal_eval()

  29. 29

    Python有条件地求解延迟微分方程

热门标签

归档