Sympy (Symbolic Python)
The equation $$\int_a^b f(x)\,dx = \lim_{n\rightarrow\infty} \sum_{i=1}^n f(x_i^*)\Delta x$$ defines the definite integral over the interval $[a,b]$.
In [16]:
from sympy import init_session
init_session()
In [4]:
Integral(x**2/(x+1),(x,0,5))
Out[4]:
In [5]:
simplify(sin(x)**2 + cos(x)**2)
Out[5]:
In [7]:
simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))
Out[7]:
In [8]:
simplify(gamma(x)/gamma(x - 2))
Out[8]:
In [9]:
simplify(x**2 + 2*x + 1)
Out[9]:
In [10]:
factor(x**3 - 3*x**2 + 2*x - 5)
Out[10]:
In [6]:
expr = (x - 2)*(2*x + 3)*(3*x - 4)*(7*x + 9)
In [7]:
expand(expr)
Out[7]:
In [8]:
factor(expand(expr))
Out[8]:
In [14]:
expand((x + 1)*(x - 2) - (x - 1)*x)
Out[14]:
In [9]:
factor(x**3 - x**2 + x - 1)
Out[9]:
In [16]:
factor(x**2*z + 4*x*y*z + 4*y**2*z)
Out[16]:
In [17]:
factor_list(x**2*z + 4*x*y*z + 4*y**2*z)
Out[17]:
In [18]:
expr = expand((cos(x) + sin(x))**2)
In [19]:
expr
Out[19]:
In [20]:
factor(expr)
Out[20]:
In [21]:
expr = x*y + x - 3 + 2*x**2 - z*x**2 + x**3
In [22]:
expr
Out[22]:
In [23]:
collected_expr = collect(expr, x)
collected_expr
Out[23]:
In [24]:
collected_expr.coeff(x,2)
Out[24]:
In [25]:
cancel((x**2 + 2*x + 1)/(x**2 + x))
Out[25]:
In [26]:
expr = 1/x + (3*x/2 - 2)/(x - 4)
In [27]:
expr
Out[27]:
In [28]:
cancel(expr)
Out[28]:
In [29]:
expr = (x*y**2 - 2*x*y*z + x*z**2 + y**2 - 2*y*z + z**2)/(x**2 - 1)
expr
Out[29]:
In [30]:
cancel(expr)
Out[30]:
In [31]:
factor(expr)
Out[31]:
In [32]:
expr = (4*x**3 + 21*x**2 + 10*x + 12)/(x**4 + 5*x**3 + 5*x**2 + 4*x)
expr
Out[32]:
In [33]:
apart(expr)
Out[33]:
In [34]:
cancel(Out[33])
Out[34]:
In [35]:
acos(x)
Out[35]:
In [36]:
cos(acos(x))
Out[36]:
In [10]:
acos(cos(-5*pi/4))
Out[10]:
In [39]:
asin(1)
Out[39]:
In [40]:
trigsimp(sin(x)**2 + cos(x)**2)
Out[40]:
In [41]:
expand_trig(sin(x + y))
Out[41]:
In [42]:
expand_trig(cos(2*x))
Out[42]:
In [43]:
Out[42].subs(cos(x)**2,1-sin(x)**2)
Out[43]:
In [11]:
x, y = symbols('x y', positive=True)
a, b = symbols('a b', real=True)
z, t, c = symbols('z t c')
In [12]:
sqrt(x) == x**Rational(1, 2)
Out[12]:
In [13]:
powsimp(x**a*x**b)
Out[13]:
In [14]:
powsimp(x**a*y**a)
Out[14]:
In [49]:
powsimp(t**c*z**c)
Out[49]:
In [50]:
powsimp(t**c*z**c, force=True)
Out[50]:
In [51]:
(z*t)**2
Out[51]:
In [52]:
sqrt(x*y)
Out[52]:
In [53]:
x, y, z = symbols('x y z')
k, m, n = symbols('k m n')
In [54]:
binomial(n, k)
Out[54]:
In [55]:
hyper([1, 2], [3], z)
Out[55]:
In [60]:
cosh(x).rewrite(exp)
Out[60]:
In [61]:
acosh(x).rewrite(log)
Out[61]:
In [15]:
def list_to_frac(l):
expr = Integer(0)
for i in reversed(l[1:]):
expr += i
expr = 1/expr
return l[0] + expr
In [16]:
list_to_frac([x,y,z])
Out[16]:
In [17]:
list_to_frac([1,2,3,4])
Out[17]:
In [18]:
list_to_frac([1,1,1,1,1,1,1]).evalf()
Out[18]:
In [72]:
l = [1,2,3,4,5]
l
Out[72]:
In [79]:
l
Out[79]:
In [81]:
l[1:]
Out[81]:
In [126]:
x, y, z = symbols('x y z')
In [127]:
diff(cos(x),x)
Out[127]:
In [84]:
diff(exp(x**2),x)
Out[84]:
In [94]:
diff(y*exp(x**2),x,y)
Out[94]:
In [96]:
diff(sin(y)*exp(x**2),x,y,y,x,5)
Out[96]:
In [97]:
integrate(cos(x),x)
Out[97]:
In [98]:
integrate(x*cos(x),)
Out[98]:
In [19]:
integrate(x*cos(x**2),x)
Out[19]:
In [20]:
integrate(exp(-x), (x,0,oo))
Out[20]:
In [21]:
integrate(exp(-x**2 - y**2), (x,-oo,oo),(y,-oo,oo))
Out[21]:
In [106]:
expr = integrate(exp(exp(x)),x)
In [107]:
print expr
In [108]:
expr
Out[108]:
In [22]:
expr = Integral(log(x)**2,x)
expr
Out[22]:
In [23]:
expr.doit()
Out[23]:
In [111]:
integ = Integral(sin(x**2), x)
integ
Out[111]:
In [112]:
integ.doit()
Out[112]:
In [15]:
integ = Integral(x**y*exp(-x), (x, 0, oo))
integ
Out[15]:
In [16]:
integ.doit()
Out[16]:
In [115]:
expr = x**2/exp(x)
expr.subs(x,oo)
Out[115]:
In [116]:
limit(expr,x,oo)
Out[116]:
In [117]:
limit(1/x, x, 0, '+')
Out[117]:
In [125]:
limit(1/x, x, 0, '-')
Out[125]:
In [24]:
r, theta, a, b = symbols('r, theta a b')
In [25]:
ans = integrate(sqrt(b**2-r**2)*r,(r,a,b),(theta,0,2*pi))
In [26]:
ans
Out[26]:
In [27]:
factor(ans)
Out[27]:
In [11]:
x = symbols('x')
In [32]:
integrate(x*sqrt(x-1),x)
Out[32]:
In [39]:
x = symbols('x')
myint = Integral(x*sqrt(x-1),(x,2,5))
In [28]:
(log(-4) + acos(3)).evalf(5)
Out[28]:
In [37]:
sqrt(2).evalf(30)
Out[37]:
In [4]:
Rational(1,2) + Rational(1,3)
Out[4]:
In [6]:
expand((x+y)**5)
Out[6]:
In [9]:
trigsimp(sin(x)/cos(x))
Out[9]:
In [10]:
limit(x**x,x,0)
Out[10]:
In [11]:
limit(sin(x)/x,x,0)
Out[11]:
In [12]:
diff(log(x),x)
Out[12]:
In [18]:
integrate(x**3, (x,-oo,0))
Out[18]:
In [19]:
integrate(exp(-x**2),(x,-oo,oo))
Out[19]:
In [36]:
factor(x**3 - x**2 + x + 1)
Out[36]:
In [32]:
factor(x**2 + 1, extension=[I])
Out[32]:
In [64]:
diff(y(x)**2-5*sin(x),x)
Out[64]:
In [67]:
solve(Out[64],cos(x))
Out[67]:
In [66]:
init_printing(pretty_print=False)
In [68]:
solve(Out[64],Derivative(y(x),x))
Out[68]:
In [69]:
yp = Out[68]
In [74]:
yp[0].subs([(y(x),3),(x,4)])
Out[74]:
In [2]:
integrate(x*y,(z,0,10-10*x-5*y/2),(y,0,4-4*x),(x,0,1))
Out[2]:
In [3]:
integrate(x*y,(z,0,10-10*x-5*y/2),(x,0,1-y/4),(y,0,4))
Out[3]:
In [13]:
solve(diff(12*x**5+60*x**4-100*x**3+2,x,2),x)
Out[13]:
In [22]:
solns=solve(x**3 - 3*x**2 + 5*x - 7, x)
In [104]:
for soln in solve(x**3 - 3*x**2 + 5*x - 7, x):
print soln.evalf(5),
In [46]:
for soln in solns:
print soln.evalf(5),
In [105]:
diff(y**2*x**2,x)
Out[105]:
In [48]:
m, k, g, v0, th, t= symbols('m k g v0 th t')
y = m/k*((g*m + v0*k*sin(th))/k)*(1 - exp(-k*t/m)) - m*g*t/k
In [50]:
yp=diff(y,t)
In [51]:
yp.subs()
Out[51]:
In [52]:
subs?
In [72]:
yps=yp.subs([(g,32),(k,1),(m,3),(v0,100),(th,pi/2)])
yps
Out[72]:
In [59]:
plot(yps,(t,0,5))
Out[59]:
In [70]:
ys=y.subs([(g,32),(k,1),(m,3),(v0,100),(th,pi/2)])
ys
Out[70]:
In [71]:
plot(ys,(t,0,5))
Out[71]:
In [73]:
solve(yps,t)
Out[73]:
In [77]:
expand((2*x - 1)*(x + 1))
Out[77]:
In [83]:
solve(ln(2*x) - ln(x-2),x)
Out[83]:
In [84]:
solve(ln(x) + ln(2*x+1), x)
Out[84]:
In [86]:
(log(1/2)/5600).evalf(10)
Out[86]:
In [97]:
soln=solve(x*exp(x) - 50, x)
soln[0].evalf(20)
Out[97]:
In [99]:
2.86089*exp(2.86089)
Out[99]:
In [110]:
solve(x*3**x-10,x)[0].evalf()
Out[110]:
In [111]:
plot(1/sqrt(cos(x)),(x,0,2*pi))
Out[111]:
In [7]:
f = x*sqrt(x**2+1)
fp = simplify(diff(f,x))
fp
Out[7]:
In [8]:
fpp = simplify(diff(fp,x))
fpp
Out[8]:
In [10]:
soln=(5*e + 2)/(e - 1)
In [11]:
log(soln + 2) - log(soln - 5)
Out[11]:
In [13]:
x, y, t, r = symbols('x y t r')
int=integrate(5/sqrt(25-r**2),(r,0,sqrt(25/2)))
In [15]:
2*pi*int.evalf()
Out[15]:
In [16]:
solve(3*exp(3*x+4)-120,x)
Out[16]:
In [30]:
ans = diff((1+x)/(1+exp(x)),x)
In [31]:
ans.subs(x,0)
Out[31]:
In [32]:
ans
Out[32]:
In [33]:
a, b, t = symbols('a b t')
h = -a*exp(-t/3) - b*t + a
diff(h,t)
Out[33]:
In [35]:
Out[33].subs([(a,738),(b,96)])
Out[35]:
In [36]:
solve(Out[35],t)
Out[36]:
In [41]:
h = -738*exp(-t/3) - 96*t + 738
hp = diff(h,t)
soln=solve(hp,t)
height = h.subs(t,soln[0])
print soln[0], soln[0].evalf(), height, height.evalf()
In [45]:
df=simplify(diff(x**3/(x**2-25),x))
ddf=simplify(diff(df,x))
In [46]:
ddf
Out[46]:
In [2]:
limit(sqrt(x**2+6*x+2)-x,x,oo)
Out[2]:
In [4]:
limit(x**(7*sin(x)),x,0,'+')
Out[4]:
In [5]:
limit(x**4/(sin(x)-x),x,0)
Out[5]:
In [6]:
limit(sin(10*x)/tan(3*x),x,0)
Out[6]:
In [7]:
limit((10**x-3**x)/x,x,0)
Out[7]:
In [8]:
limit((1-6/x)**x,x,oo)
Out[8]:
In [9]:
limit((1-cos(6*x))/(1-cos(3*x)),x,0)
Out[9]:
In [11]:
limit(4**x - 3**x - 10*(x**2-1),x,1)
Out[11]:
In [12]:
limit(10*x*exp(1/x) - 10*x,x,oo)
Out[12]:
In [3]:
r, t = symbols('r t')
integrate(r**2 * cos(t)**2 * (1-r**2) * r, (r,0,1), (t,0,2*pi))
Out[3]:
In [8]:
x = symbols('x')
f = 2**(-x)*(x-10)**3
fp=diff(f,x)
factor(fp)
fpp=diff(fp,x)
factor(fpp)
Out[8]:
In [14]:
fpp_approx=Out[8].subs(log(2),log(2.0))
In [15]:
fpp_approx
Out[15]:
In [17]:
solve(0.48*x**2-13.77*x+95.63,x)
Out[17]:
In [22]:
fp_crit=solve(fp,x)
In [24]:
fp_crit[1].evalf()
Out[24]:
In [26]:
factor(fp)
Out[26]:
In [30]:
r, R = symbols('r R')
V = pi*R**2/3 * sqrt(r**2 - R**2)
dV = diff(V,R)
solve(dV,R)
Out[30]:
In [33]:
180/pi*2*pi*(1-sqrt(2/3.0)).evalf()
Out[33]:
In [35]:
simplify(V.subs(R,r*sqrt(6)/3))
Out[35]:
In [14]:
from numpy import *
x = symbols('x')
f = x**3 + x - 2
fp = diff(f,x)
xi = [2]
ii = arange(0,10,1)
for i in {1,2,3,4,5,6}:
xi.append(xi[-1] - f(xi[-1])/fp(xi[-1]))
In [23]:
t = symbols('t')
P = 10000*exp(0.55*t)
dP = diff(P,t)
t0 = solve(dP - 34000, t)
print("P(5) = " + str(P.subs(t,5)))
print("P'(5) = " + str(dP.subs(t,5)))
print("t0 = " + str(t0[0]))
print("P(t0) = " + str(P.subs(t,t0[0])))
In [52]:
t, T, k = symbols('t T k', real=True)
T0 = 70
E = 325
T = (T0 - E)*exp(k*t) + E
ks = solve(T.subs(t,10)-100.0, k)[0]
print("ks = " + str(ks))
Ts = T.subs(k,-0.0125)
print(Ts)
print([(time,Ts.subs(t,time)) for time in {10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120}])
In [79]:
t, P, k = symbols('t P k', real=True)
ts = symbols('ts', real=True)
M = 1000.0
P0 = 8.0
P = M*P0*exp(k*t) / (M + P0*(exp(k*t) - 1))
dP = simplify(diff(P, t))
ks = solve(P.subs(t,12.0)-80.0,k)[0]
print(ks)
print(P.subs(k,ks))
print(P.subs([(t,12),(k,ks)]))
#plot(dP.subs(k,ks),(t,0,60))
#plot(P.subs(k,ks), (t,0,60))
print(dP)
#ts = solve(dP.subs(k,ks)-40, t)
#print(ts)
In []: