from IPython.display import display
from sympy.interactive import printing
printing.init_printing(use_latex='mathjax')
from __future__ import division
from sympy import *
https://github.com/sympy/sympy/wiki/Tutorial
a = Rational(1,2)
a
a*2
a.evalf()
a**2
(a**2).evalf()
pi
pi.evalf()
oo
oo+1
oo > 1e35
I**2
c=3*I+5
c
c.adjoint()
x = Symbol('x')
x
y
x, y = symbols('x y')
x,y
t=Symbol('2')
2*t
limit(sin(x)/x, x, 0)
limit(1/x,x,oo)
diff(sin(x),x)
limit((sin(x+y)-sin(x))/y,y,0) # Derivative defined as limit
integrate(cos(x),x)
#s=Symbol('sigma')
s=Symbol('sigma', nonnegative=true)
There are many possible assumptions for a variable. A reference is here: http://docs.sympy.org/dev/modules/assumptions/index.html
s
g=1/(s*sqrt(2*pi))*exp(-x**2/(2*s**2))
g
integrate(g,x)
integrate(g,(x,-1,1))
integrate(g,(x,-s,s))
N(integrate(g,(x,-s,s)))
integrate(g,(x,-oo,oo))
cos(x)
cos(x).series(x,0,10)
sin(x).series(x,0,10)
exp(x).series(x,0,10)
exp(I*x).series(x,0,10)
cos(x).series(x,0,10)+I*sin(x).series(x,0,10)
exp(I*x).series(x,0,10)-(cos(x).series(x,0,10)+I*sin(x).series(x,0,10))
simplify(exp(I*x).series(x,0,10)-(cos(x).series(x,0,10)+I*sin(x).series(x,0,10)))
F = Function('f')
DiffF = Eq(F(x).diff(x,x)+F(x),0)
F(x).diff(x,x)+F(x)
dsolve(DiffF, F(x))
Alg = Eq(x**4, 1)
Alg
solve(Alg,x)
Eq1=Eq(x + 5*y, 2)
Eq2=Eq(-3*x + 6*y, 15)
Eq1, Eq2
solve([Eq1, Eq2], [x,y])
px = Point(0,0)
py = Point(1,1)
pz = Point(1,0)
t = Triangle(px, py, pz)
t.area
t.medians[px]
t.medians
intersection(t.medians[px], t.medians[py], t.medians[pz])
t.bisectors()[px]
intersection(t.bisectors()[px], t.bisectors()[py], t.bisectors()[pz])
center=intersection(t.bisectors()[px], t.bisectors()[py], t.bisectors()[pz])[0]
center
L=Line(px,py)
radius=(L.distance(center))
C=Circle(center, radius)
C
C.is_tangent(L)
#Plot(C)
Matrix([[1,x],[5,y]])
Matrix(2,2,[1,x,5,y])
diag(1,2,3,4,5,6)
ones(4,3)
zeros(2,5)
M=Matrix([[1,x],[5,y]])
M[0,1]
M[:,1]
M*M
(M*M-M)/M
exp(M)
v1=Matrix([3,5])
v2=Matrix([7,2])
M*v1
v1*M
v1.T*M
v1.T
v1.T*v2
(v1.T*v2)[0]
M.det()
M.inv()
M.inv()*M
simplify(M.inv()*M)
v1.norm()
M.norm()
M