sympy —— Python 符号运算

                       

0. 素因子分解

>> import sympy>> from sympy.ntheory import factorint>> factorint(100){2: 1, 3: 1, 5: 2}
    
    
    
    
  • 1
  • 2
  • 3
  • 4

1. sympy:Python 自带符号运算库

  1. from sympy import *

  2. 自带常量E和复数单位I

  3. 简单测试

>>>x = Symbol('x', real=True)>>>y = Symbol('y', real=True) >>>(x+y)**2(x + y)**2>>>expand((x+y)**2, real=True)x**2 + 2*x*y + y**2
    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

比如我们使用 sympy 来验证如下的等式:

x 2 +y 2 = (x+(2xy) 1/2 +y)(x(2xy) 1/2 +y)  x2+y2=(x+(2xy)1/2+y)(x−(2xy)1/2+y)

>> x = Symbol('x')>> y = Symbol('y')>> f1 = y+x-1>> f2 = 3*x+2*y-5>> solve([f1, f2], [x, y]){x: 3, y: -2}
    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4. python 仿真

class array(object):    def __init__(self, value, name=None):        self.value = value        if name:            self.grad = lambda g: {name : g}            # 定义梯度函数,返回一个字典    # '+' 加号运算符重载    def __add__(self, other):        assert isinstance(other, int)        ret = array(self.value+other)        ret.grad = self.grad        return ret    # '*' 乘法运算符重载    def __mul__(self, other):        assert isinstance(other, array)        ret = array(self.value*other.value)        def grad(g):            x = self.grad(g*other.value)            x.update(other.grad(self.value*g))                #  也即x*y,对x(self)的导数等于y(other),反之亦然            return x        ret.grad = grad        return retx = array(1, 'x')y = array(2, 'y')w = x*yz = w + 1print(z.value)print(z.grad(1))            # z.grad是成员函数,而不是一个变量,或者一个字典
    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

你可能感兴趣的:(sympy —— Python 符号运算)