# Modelización de Procesos Cognitivos: Bases de Sympy y Conjuntos

## Conjuntos

Hagamos operaciones de conjuntos


```python
# Definamos primero los dos conjuntos a trabajar
c1 = {3,6,2,7,8}
c2 = {1,2,6,3}
```


```python
#Trabajemos primero con la unión de conjuntos que se denota por el operador |
c1|c2
```




    {1, 2, 3, 6, 7, 8}




```python
# De manera opcional se puede emplear el comando print
print(c1|c2)
```

    {1, 2, 3, 6, 7, 8}



```python
# Para el caso de la intersección de conjuntos se emplea el operador &
c1&c2
```




    {2, 3, 6}




```python
# la diferencia de conjuntos se denota por -, que son los elemetos que están en A pero no están en B
c1-c2
```




    {7, 8}



Se puede también trabajar con caracteres


```python
# por ejemplo los conjuntos de nombres de personas
a1 = {'juan','jenny','sandra','noe'}
a2 = {'jose', 'rita', 'juan', 'ramon', 'sandra'}
```


```python
print(a1|a2)
print(a1&a2)
print(a1-a2)
```

    {'juan', 'jenny', 'jose', 'sandra', 'ramon', 'noe', 'rita'}
    {'juan', 'sandra'}
    {'noe', 'jenny'}


## Calculo con Sympy


```python
from __future__ import division
from sympy import * # Para importar todas las funciones de Sympy
x, y, z, t = symbols('x y z t')
k, m, n = symbols('k m n', integer = True)
f, g, h = symbols('f g h', cls = Function)
```

Podemos ocupar Sympy para resolver ecuaciones como $x^2 + 9 x - 70 = 0$


```python
solve(x**2 + 9*x - 70, x) # se resuelve la ecuación para x
```




    [-14, 5]



Se pueden factorizar ecuaciones como $x^2 - x - 6$


```python
factor(x**2 - x - 6)
```




$\displaystyle \left(x - 3\right) \left(x + 2\right)$



Se pueden expandir los términos


```python
expr1 = (3*x**2 + 5*x)*(x - 2)
expand(expr1)
```




$\displaystyle 3 x^{3} - x^{2} - 10 x$



Se pueden resolver sistemas de ecuaciones: por ejemplo, las ecuaciones $x+3y=4$ y $2x+5y=5$


```python
solve([x + 3*y - 4, 2*x + 5*y -5],[x,y])
```




    {x: -5, y: 3}



Se puede trabajar con polinomios


```python
P = (x - 3)*(x - 4)*(x - 6)
P
```




$\displaystyle \left(x - 6\right) \left(x - 4\right) \left(x - 3\right)$




```python
P.expand()
```




$\displaystyle x^{3} - 13 x^{2} + 54 x - 72$




```python
P.factor()
```




$\displaystyle \left(x - 6\right) \left(x - 4\right) \left(x - 3\right)$



Se pueden extraer las raíces (soluciones) del polinomio


```python
raices = solve(P,x)
raices
```




    [3, 4, 6]



Se pueden definir funciones por ejemplo: $f(x) = x^2$


```python
def f(x):
    return x**2 # definimos la función x^2
```


```python
f(2) # se sustituye el valor de interes
```




    4




```python
f(x)
```




$\displaystyle x^{2}$



Podemos trabajar con límites dentro de Sympy


```python
limit(x**2, x, 0)
```




$\displaystyle 0$




```python
limit(1/x, x, 0)
```




$\displaystyle \infty$




```python
limit(1/x, x, oo)
```




$\displaystyle 0$



Y se pueden evaluar límites lateral


```python
print(limit(x/abs(x), x, 0, dir='+'))
print(limit(x/abs(x), x, 0, dir='-'))
```

    1
    -1



```python
p1 = plot(x/abs(x),show=False)
p1.show()
```

Se pueden obtener las derivadas de la funciones por medio del comando **diff(f(x), x)**. Así por ejemplo, para la función lineal $f(x) = x$


```python
def f(x): 
    return x # se define la función f(x) = x
```


```python
diff(f(x), x) # se calcula la respectiva derivada
```




$\displaystyle 1$




```python
diff(x, x) # o simplemente calcular la derivada de la expresión sin necesidad de definir la función
```




$\displaystyle 1$




```python
diff(x**k, x)
```




$\displaystyle \frac{k x^{k}}{x}$




```python

```

d0ae51af4ebe2fa9baca8630eb4ad9aede275701
ipynb
Jupyter Notebook
Bases de Sympy.ipynb
CogniMath/MPC
d3d0b70be6a209aa67a8f6b4ef2dff352228a922
MIT
Bases de Sympy.ipynb
CogniMath/MPC
d3d0b70be6a209aa67a8f6b4ef2dff352228a922
MIT
Bases de Sympy.ipynb
CogniMath/MPC
d3d0b70be6a209aa67a8f6b4ef2dff352228a922
MIT
2021-01-26T17:58:00.000Z
2021-01-26T17:58:00.000Z
Qwen/Qwen-72B
1. YES
2. YES