0. 素因子分解
>> import sympy>> from sympy.ntheory import factorint>> factorint(100){2: 1, 3: 1, 5: 2}
- 1
- 2
- 3
- 4
1. sympy:Python 自带符号运算库
from sympy import *
自带常量
E
和复数单位I
简单测试
>>>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