Python Sympy 包学习笔记


#学习sympy笔记  函数包括: symbols, solve, summation, limit, diff, intergrate

#求方程及方程组----------------------
from sympy import symbols, solve
x = symbols('x')
f = x ** 2 + x -6
solve(f > 0, x)

x = symbols('x')
f1 = x ** 2 + x -6
f2 = 2 * x + 6 - 7 * x +9
solve([f1 > 0, f2 >=0], x)

x,y = symbols('x y')
solve([x + y - 1,x - y -3],[x,y])

#求和-----------------------------
import sympy#定义变量
n=sympy.Symbol('n')
f=2*n
#前面参数放函数,后面放变量的变化范围
s=sympy.summation(f,(n,1,100))
print(s)

#求带和的方程-----------------------
import sympy
#定义变量
n=sympy.Symbol('n')
f=2*n
#前面参数放函数,后面放变量的变化范围
s=sympy.summation(f,(n,1,100))
print(s)

#求极限-------------------------
#求极限使用limit方法
#定义变量与函数
x=sympy.Symbol('x')
f1=sympy.sin(x)/x
f2=(1+x)**(1/x)
f3=(1+1/x)**x
#三个参数是 函数,变量,趋向值
lim1=sympy.limit(f1,x,0)
lim2=sympy.limit(f2,x,0)
lim3=sympy.limit(f3,x,sympy.oo)
print(lim1,lim2,lim3)


#求微分 diff(f,x,x)----------------------------------
from sympy import symbols, diff
import sympy as sp
x = symbols('x')
diff(sp.cos(x),x)

diff(x**4, x, 3)#求三阶导数
diff(x**4, x, x, x) #同求三阶导数

#求积分 intergrate(f,a,b)----------------------------------
import sympy as sp
x = symbols('x')
f = sp.integrate(sp.cos(x),x)#一重积分

x, y = symbols(['x', 'y'])
sp.integrate(sp.exp(-x**2 - y**2), (x, -float('inf'), float('inf')), (y, -float('inf'), float('inf'))) #二重积分
#注意这里无穷的写法: float('inf)



#表达式简化-------------------------------
from sympy import simplify
#simplify( )普通的化简
from sympy import simplify
simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))
#trigsimp( )三角化简
trigsimp(sin(x)/cos(x))
#powsimp( )指数化简
powsimp(x**a*x**b)

a = (x + 1)**2
b = x**2 + 2*x + 1
simplify(a - b) #符号运算!好强啊...用这个去高考绝对满分啊....

#表达式的同项拆分与合并 expand , factor--------
from sympy import expand, factor
expand(x * (x**2+y))
factor(x**3 + x*y)

#表达式生成的高级操作-------------------------------------
expr = x**4 - 4*x**3 + 4*x**2 - 2*x + 3
replacements = [(x**i, y**i) for i in range(5) if i % 2 == 0]
expr.subs(replacements)
-4*x**3 - 2*x + y**4 + 4*y**2 + 3

#计算函数值得最高级操作-------------------------------
x = symbols('x')
f = x**2
f.evalf(subs={x:2})
f.evalf(subs={x:1, y:2})

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值