Python中的计算机代数系统(CAS)
项目描述
SymPy
请参阅AUTHORS文件以获取作者列表。
还有许多人在SymPy邮件列表上提供了帮助,报告了错误,帮助组织SymPy参加谷歌夏日代码、谷歌高度开放参与竞赛、谷歌代码洞察、撰写关于SymPy的博客...
许可证:新BSD许可证(有关详细信息,请参阅LICENSE文件)涵盖sympy存储库中的所有文件,除非另有说明。
我们的邮件列表在https://groups.google.com/forum/?fromgroups#!forum/sympy。
我们在Gitter有一个社区聊天室Gitter。请随意在这里提问。我们有一个非常友好和乐于助人的社区。
下载
推荐的安装方法是使用Anaconda,https://anaconda.net.cn/products/distribution
您还可以从https://pypi.python.org/pypi/sympy/获取SymPy的最新版本
要获取git版本,请执行以下操作
$ git clone https://github.com/sympy/sympy.git
有关其他选项(tar包、debs等),请参阅https://docs.sympy.cn/dev/install.html。
文档和用法
有关安装和构建文档的详细说明,请参阅SymPy文档风格指南。
所有内容都在
您可以通过以下方式在本地SymPy副本中生成上述网站上的所有内容
$ cd doc
$ make html
然后文档将位于_build/html。如果您不想阅读它,这里有一个简短的用法
从此目录开始,启动Python并
>>> from sympy import Symbol, cos
>>> x = Symbol('x')
>>> e = 1/cos(x)
>>> print(e.series(x, 0, 10))
1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)
SymPy还附带一个控制台,它是一个简单的经典Python控制台(或当可用时为IPython)包装器,它加载SymPy命名空间并为您执行一些常用命令。
要启动它,请从以下目录执行以下操作
$ bin/isympy
如果SymPy尚未安装或简单地
$ isympy
如果SymPy已安装。
安装
要使用PyPI安装SymPy,请运行以下命令
$ pip install sympy
要使用Anaconda安装SymPy,请运行以下命令
$ conda install -c anaconda sympy
要从GitHub源安装SymPy,首先使用git
克隆SymPy
$ git clone https://github.com/sympy/sympy.git
然后,在您克隆的sympy
存储库中,只需运行以下命令
$ pip install .
有关更多信息,请参阅https://docs.sympy.cn/dev/install.html。
贡献
我们欢迎任何人的贡献,即使你是开源新手。请阅读我们的贡献简介页面和SymPy文档风格指南。如果您是新手并想寻找一些贡献的方式,一个好的开始是查看标记为易于修复的问题。
请注意,所有参与本项目的人士都应遵守我们的行为准则。通过参与本项目,您同意遵守其条款。请参阅CODE_OF_CONDUCT.md。
测试
要执行所有测试,请在当前目录中运行
$./setup.py test
。
要更精细地运行测试或doctests,请使用bin/test
或分别使用bin/doctest
。GitHub Actions自动测试master分支。
要测试拉取请求,请使用sympy-bot。
重新生成实验性LaTeX解析器/词法分析器
解析器和词法分析器使用sympy/parsing/latex/_antlr
中的ANTLR4工具链生成,并已签入到存储库中。目前,大多数用户不需要重新生成这些文件,但如果您计划在此功能上工作,您将需要antlr4
命令行工具(并确保它在您的PATH
中)。获取它的方法之一是
$ conda install -c conda-forge antlr=4.11.1
或者,按照ANTLR网站上的说明操作,并下载antlr-4.11.1-complete.jar
。然后按照说明导出CLASSPATH
,而不是创建antlr4
作为别名,而是将其作为具有以下内容的可执行文件
#!/bin/bash
java -jar /usr/local/lib/antlr-4.11.1-complete.jar "$@"
在修改sympy/parsing/latex/LaTeX.g4
后,运行
$ ./setup.py antlr
清理
为了清理所有内容(从而得到与仓库中相同的树形结构)
$ git clean -Xdf
这将清除由.gitignore
忽略的所有内容,并且
$ git clean -df
清除所有未跟踪的文件。您可以使用以下命令在git中撤销最近的更改
$ git reset --hard
警告:上述命令将清除您可能已做的所有更改,并且您将永远失去它们。在进行任何这些操作之前,请务必使用git status
、git diff
、git clean -Xn
和git clean -n
检查事项。
错误
我们的问题跟踪器在https://github.com/sympy/sympy/issues。请报告您发现的任何错误。或者,更好的是,在GitHub上fork存储库并创建一个pull request。我们欢迎所有大小变更,如果您对git新手,我们将帮助您创建pull request(只需在我们的邮件列表或Gitter频道提问即可)。如果您还有其他疑问,您可以在使用sympy标签的Stack Overflow上找到答案。
简要历史
SymPy始于2005年,Ondřej Čertík开始,他在夏季编写了一些代码,然后在2006年夏季又编写了一些代码。2007年2月,Fabian Pedregosa加入了该项目,并帮助修复了许多问题,提供了文档,并使其重新活跃起来。5名学生(Mateusz Paprocki、Brian Jorgensen、Jason Gedge、Robert Schwarz和Chris Wu)在2007年夏季作为Google Summer of Code的一部分极大地改进了SymPy。Pearu Peterson在2007年夏季加入开发,通过从头开始重写核心,使SymPy的速度从10倍提高到100倍。Jurjen N.E. Bos贡献了美化打印和其他补丁。Fredrik Johansson编写了mpmath并贡献了大量补丁。
SymPy自2007年以来参加了每一次Google Summer of Code。您可以在https://github.com/sympy/sympy/wiki#google-summer-of-code上查看详细信息。每年都在一定程度上提高了SymPy的性能。SymPy的大部分开发都来自Google Summer of Code的学生。
2011年,Ondřej Čertík辞去了首席开发者的职务,由同样作为Google Summer of Code学生开始的Aaron Meurer接替。Ondřej Čertík仍然活跃在社区中,但由于工作和家庭原因,无法担任首席开发角色。
从那时起,更多的人加入了开发,也有一些人离开了。您可以在doc/src/aboutus.rst中看到完整的名单,或在线查看
https://docs.sympy.cn/dev/aboutus.html#sympy-development-team
git历史可以追溯到2007年,当时开发从svn迁移到hg。要查看该点之前的历史,请查看https://github.com/sympy/sympy-old。
您可以使用git查看最大的开发者。命令
$ git shortlog -ns
将显示每个开发人员,按对项目的提交进行排序。命令
$ git shortlog -ns --since="1 year"
将显示过去一年的顶级开发者。
引用
在出版物中引用SymPy时使用
Meurer A, Smith CP, Paprocki M, Čertík O, Kirpichev SB, Rocklin M, Kumar A, Ivanov S, Moore JK, Singh S, Rathnayake T, Vig S, Granger BE, Muller RP, Bonazzi F, Gupta H, Vats S, Johansson F, Pedregosa F, Curry MJ, Terrel AR, Roučka Š, Saboo A, Fernando I, Kulal S, Cimrman R, Scopatz A. (2017) SymPy:Python中的符号计算. PeerJ Computer Science 3:e103 https://doi.org/10.7717/peerj-cs.103
LaTeX用户的BibTeX条目是
@article{10.7717/peerj-cs.103,
title = {SymPy: symbolic computing in Python},
author = {Meurer, Aaron and Smith, Christopher P. and Paprocki, Mateusz and \v{C}ert\'{i}k, Ond\v{r}ej and Kirpichev, Sergey B. and Rocklin, Matthew and Kumar, Amit and Ivanov, Sergiu and Moore, Jason K. and Singh, Sartaj and Rathnayake, Thilina and Vig, Sean and Granger, Brian E. and Muller, Richard P. and Bonazzi, Francesco and Gupta, Harsh and Vats, Shivam and Johansson, Fredrik and Pedregosa, Fabian and Curry, Matthew J. and Terrel, Andy R. and Rou\v{c}ka, \v{S}t\v{e}p\'{a}n and Saboo, Ashutosh and Fernando, Isuru and Kulal, Sumith and Cimrman, Robert and Scopatz, Anthony},
year = 2017,
month = Jan,
keywords = {Python, Computer algebra system, Symbolics},
abstract = {
SymPy is an open-source computer algebra system written in pure Python. It is built with a focus on extensibility and ease of use, through both interactive and programmatic applications. These characteristics have led SymPy to become a popular symbolic library for the scientific Python ecosystem. This paper presents the architecture of SymPy, a description of its features, and a discussion of select submodules. The supplementary material provides additional examples and further outlines details of the architecture and features of SymPy.
},
volume = 3,
pages = {e103},
journal = {PeerJ Computer Science},
issn = {2376-5992},
url = {https://doi.org/10.7717/peerj-cs.103},
doi = {10.7717/peerj-cs.103}
}
SymPy遵循BSD许可协议,因此您可以自由地以任何方式使用它,无论是学术、商业、创建分支或衍生品,只要在重新分发时复制BSD声明(有关详细信息,请参阅LICENSE文件)。话虽如此,尽管SymPy许可协议没有要求,但如果您方便的话,请在您的工作中使用SymPy时引用SymPy,并考虑将您的所有更改贡献回来,这样我们就可以将其纳入其中,最终我们都会从中受益。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。