miércoles, 23 de abril de 2014

Operación con matrices usando Sympy-Python

isra@linuxmint ~ $ python
Python 2.7.4 (default, Sep 26 2013, 03:20:56) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import Matrix
>>> Matrix([[1,2,3],[4,6,7]])
[1, 2, 3]
[4, 6, 7]
>>> A=Matrix([[1,2,3],[4,6,7]])
>>> b=3
>>> c = b*A
>>> c
[ 3,  6,  9]
[12, 18, 21]
>>> 
>>> x=Symbol('x')
>>> y=Symbol('y')
>>> H = Matrix([[x+y,4],[3,x-y]])
>>> H
[x + y,     4]
[    3, x - y]
>>> h = H*H
>>> h
[(x + y)**2 + 12,             8*x]
[            6*x, (x - y)**2 + 12]
>>> #matris identidad
... 
>>> eye(4)
[1, 0, 0, 0]
[0, 1, 0, 0]
[0, 0, 1, 0]
[0, 0, 0, 1]
>>> #matris ceros
... 
>>> zeros(4)
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]
>>> #matris unos
... 
>>> ones(5,6)
[1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1]
>>> v1 = Matrix([1,2,3])
>>> v2 = Matrix([5,7,8])
>>> v3 = v1.cross(v2)
>>> v3
[-5, 7, -3]
>>> #producto punto
... 
>>> v4 = v1.dot(v2)
>>> v4
43

martes, 22 de abril de 2014

Integrando Con Sympy- Python

isra@linuxmint ~ $ python
Python 2.7.4 (default, Sep 26 2013, 03:20:56) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import*
>>> ## integrando con sympy
>>> x=Symbol('x')
>>> y=Symbol('y')
>>> integrate(cos(x))
sin(x)
>>> integrate(log(x),x)
^[[1~x*log(x) - x
>>> integrate(log(x),x)
x*log(x) - x
>>> integrate(x**2 + cosh(x))
x**3/3 + sinh(x)
>>> ## integrales definidas
... 
>>> integrate(x**3,(x,-1,1))
0
>>> integrate(sin(x),(x,-pi/2,pi/2))
0
>>> integrate(cos(x),(x,-pi/2,pi/2))
2
>>> ## al infinito 
... 
>>> integrate(cos(x),(x,-pi/2,pi/2))
2
>>> integrate(x**3,(x,-1,+oo))
oo
>>> integrate(exp(-x**2),(x,-oo,+oo))
sqrt(pi)

jueves, 3 de abril de 2014

Sympy aplicado a Ingenieria Quimica

from sympy import*
x= Symbol('x')
y=Symbol('y')
z=Symbol('z')
w=Symbol('w')
#C1=x,C2=y,c3=z.,c4=w
res = solve([75*x-25*y-350,-45*y+45*x, 75*x-105*z+30*w,-20*y+30*w-150],[x,y,w,z])
print(res)
El diagrama es el siguiente.

Ejecutando el código:
{x: 7, w: 29/3, z: 163/21, y: 7}


------------------
(program exited with code: 0)
Press return to continue

martes, 1 de abril de 2014

Introduccion a Sympy parte 1

Perdonen la falta de videotutoriales o  post, ya que  hemos estado algo ocupados, por fin se termino el trimestre y antes de irnos de vacaciones  de semana santa, publicaremos un poco sobre una herramienta de calculo que es mi favorita incluso mas que Matlab, se trata de Sympy. 
SymPy es una biblioteca escrita en Python cuyo objetivo es reunir todas las características de un sistema de álgebra computacional (CAS), ser fácilmente extensible y mantener el código todo lo simple que sea posible. SymPy no requiere ninguna biblioteca externa, salvo para soporte gráfico.

Algo que me sorprende de sympy  es el trato que reciben las constantes. como Pi, e. Son consideradas símbolos lo que permite un calculo de alta precisión.


isra@linuxmint ~ $ python
Python 2.7.4 (default, Sep 26 2013, 03:20:56) 
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import *  #importamos todo!!!
#.evalf() accede al valor de una  constante o simbolo
>>> pi.evalf()
3.14159265358979
>>> pi.evalf(20)
3.1415926535897932385
>>> pi.evalf(100)
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068
#evaluando el numero e
>>> exp(1).evalf()
2.71828182845905
>>> exp(1).evalf(10)
2.718281828
>>> exp(1).evalf(50)
2.7182818284590452353602874713526624977572470937000
También existe una clase para representar al infinito matemático, llamada oo:
>>> #calcularemos un limite
... 
>>> x=Symbol('x')
>>> limit((x**3+2*x-1)/(x**3+4),x,oo)
1
>>> # por la izquierda.
... 
>>> limit((x**3+2*x-1)/(x**3+4),x,-oo)
1