![39c4fda39a09ee15b975e30f8ba950c0.png](https://i-blog.csdnimg.cn/blog_migrate/3c9a04522dbe3a94bb838ce73d395d4f.png)
SymPy是符号数学的Python库,旨在用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题。虽然Matlab的类似科学计算能力也很强大,但是Python以其语法简单、易上手、异常丰富的三方库生态,可以更优雅地解决日常遇到的各种计算问题。它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁、易于理解和扩展。
1.安装Python3,Jupyter notebook
Python官网:https://www.python.org/
2.在Jupyter notebook中安装SymPy库
!pip3 install sympy
3.解一元一次方程:3X-6=0
【推荐】写法一:
from sympy import *
x=Symbol('x')
print('方程的解是:',solve(x * 3 - 6, x))
【了解】写法二:
import sympy
x=sympy.Symbol('x')
print('方程的解是:',sympy.solve(x * 3 - 6, x))
![6bae37c8fcf22a0aea51282df91e1de5.png](https://i-blog.csdnimg.cn/blog_migrate/3502bec005bdb339e3ee9c7588f580a8.png)
4.解二元一次方程组
![a91cfc5755a517b7dac76f11df0123c1.png](https://i-blog.csdnimg.cn/blog_migrate/e37d09e0f1367da33b1c249c1b72cfea.png)
from sympy import *
x=Symbol('x')
y=Symbol('y')
print('方程组的解是:',solve([y+x-1,3*x+2*y-5],[x,y]))
注:
- 在计算之前要将变量设为符号;
- 要将变量移到左侧,即y-1+x=0,3x+2y-5=0。
![d6cf86d6a2577421f3e7458dfb5aedee.png](https://i-blog.csdnimg.cn/blog_migrate/ee0018b944a07e0c842c58cc687fe4a7.png)
5.求累和∑
![a90b2d447b36b90406c660ac409c5f38.png](https://i-blog.csdnimg.cn/blog_migrate/d3655b68c076e552c73c272c2071fc3c.png)
from sympy import *
n = Symbol('n')
print('累加和是:',summation(2*n,(n,1,100))) #由初中知识可知结果为5050*2=10100
![bbe78c303b02a6819e875a82ab7e192c.png](https://i-blog.csdnimg.cn/blog_migrate/388b5447e1265c491892349ab6b48782.png)
6.求极限limit()
from sympy import *
x = Symbol('x')
print('极限是:',limit(1/x**2, x, 0))
print('极限是:',limit(x*(sqrt(x**2 + 1) - x), x, oo))
![24fe5b1164b11c455e2f0e835b2e07d7.png](https://i-blog.csdnimg.cn/blog_migrate/6fc7f7d2da3601d9c2d28907792b8a80.png)
7.计算不定积分
![fb6a08776d4b982d4f7171c721732a7d.png](https://i-blog.csdnimg.cn/blog_migrate/e1f297b3888fe258c940b055827d7781.png)
from sympy import *
n = Symbol('n')
s = ((n+3)/(n+2))**n
print('积分结果是:',limit(s, n, oo))
![0505ae84e2419279608a5b4bb818f60a.png](https://i-blog.csdnimg.cn/blog_migrate/9b0a4492d96dddfc24794df065c10c14.png)
8.求定积分
![417e8640b4068c7c79015bc08509d143.png](https://i-blog.csdnimg.cn/blog_migrate/dd64710df12ea1feaf52e4202c855928.png)
from sympy import *
t = Symbol('t')
x = Symbol('x')
m = integrate(sin(t)/(pi-t),(t,0,x)) #定义积分函数,integrate()
n = integrate(m,(x,0,pi)) #代入积分下限和上限
print('定积分结果是:', n)
![38e809f29428dfca450c492801027ba1.png](https://i-blog.csdnimg.cn/blog_migrate/0f8f41e7942dd103ea70547ce786ee26.png)
后注1:符号说明
- oo:无穷大
- E:e
- pi:圆周率π
后注2:微积分中有3个重要的极限
![9085780b2835da2b959b5d4f5ed02e3d.png](https://i-blog.csdnimg.cn/blog_migrate/3fe3e1e1c25abb5ca172f274c5fb91f9.png)
![e40ba53325cb965e8eae73fd9a4be831.png](https://i-blog.csdnimg.cn/blog_migrate/b6c574571c160fea2ff73f0ed068e17f.png)
![617dc7ccdfe3d88282d4451977c93fa5.png](https://i-blog.csdnimg.cn/blog_migrate/bba9d798ab410390e30c22718d21d1ad.png)