# Cálculos en ingeniería con Sympy y Jupyter Notebooks




## Cuadros de texto con ecuaciones

El editor permite escribir ecuaciones en [$\LaTeX$](). Al dar "`Doble click`", puede ver cómo se escriben tales expresiones.

$$ f(a) = \int_\infty^0 \frac{1}{a+2} \mathrm{d}a$$


## Símbolos especiales en los nombres

Para nombrar una variable con un símbolo especial, use  "`\`" seguido del nombre del símbolo y presione "`tab`".

**Ejemplo**

Escriba `\alpha` y presione "`tab`" para usar α en el código.


```python
α = 2322
α
```




    2322



## SymPy

Se importa el módulo [SymPy](http://docs.sympy.org/latest/index.html) para desarrollar operaciones matemáticas de forma simbólica, debe importase. Además se inicia un proceso de "impresión estética" para la visualización de expresiones y uno de "gráficas incorporadas".


```python
import sympy as sym
sym.init_printing()
%matplotlib inline
```

Se definen símbolos para operarlos matemáticamente.


```python
x = sym.Symbol('x')
```


```python
x
```

Se realizan operaciones matemáticas con los símbolos creados.


```python
polinomio = (x**2 + x -2)**4
polinomio.expand()
```

"`polinomio`" se creó como una operación que usa el símbolo "`x`". Después, se usó el método "`.expand()`" para expandir el "`polinomio`".

Puede tener un listado de métodos que puede usar sobre "`polinomio`" escribiendo "`polinomio.`" y presionando "`tab`"


```python
polinomio.
```

Puede obtener ayuda de un método con "`?`".


```python
polinomio.expand?
```

También puede obtener ayuda de un método al ubicar el cursor entre el paréntesis y presionar "`Shift+Tab`"


```python
polinomio.factor()
```

## Cálculo

Puede resolver integrales y derivadas.


```python
expresionA = sym.tan(sym.log(x**2 + 1)) # define una expresión 
expresionA
```


```python
expresionA.diff(x) # deriva "expresionA" respecto a "x"
```


```python
polinomio.diff(x) # primera derivada
```


```python
polinomio.diff(x, 2) # segunda derivada
```


```python
polinomio.integrate(x) # integral indefinida sin constante de integración
```


```python
polinomio.integrate((x, 0, 1))  # integral definida. Observe la tupla como argumento
```

## Límites

Puede resolver límites.


```python
expresionB = (2*sym.sin(x) - sym.sin(2*x))/(x - sym.sin(x))
```


```python
expresionB
```


```python
a = sym.symbols('a')
```


```python
lim_a = sym.limit(expresionB, x, a)
lim_a
```


```python
lim_a.subs(sym.sin(a), 1)
```


```python
lim_0 = sym.limit(expresionB, x, 0)
lim_0
```


```python
sym.plot(expresionB)
```

## Aproximaciones

Puede aproximar funciones con la serie de Taylor.


```python
expresionC = sym.sin(x)
sym.series(expresionC, x, 1.5, 7) 
# Serie de Taylor en términos de x, al rededor de x=1.5, orden 2.
```

Use `.removeO()`


```python
temp = sym.series(expresionC, x, 1.5, 2)
temp.removeO()

```

SymPy mantiene la representación exacta de los números, aunque pueden aproximarse con "`float`" o "`sympy.N`" si hay variables.


```python
c = sym.sqrt(2)*sym.pi
c + 1
```


```python
float(c) + 1
```


```python
sym.N(c*x)
```

## Solución de ecuaciones

Soluciona ecuaciones con la función "`solve`".


\begin{align}
               2x^2 + 2 &= 4 \\
           2x^2 + 2 - 2 &= 4 - 2 \\
                  2x^2  &= 2 \\
        \frac{2x^2}{2}  &= \frac{2}{2} \\
                    x^2 &= 1 \\
 \end{align}


```python
sym.plot(2*x**2 + 2)
```


```python
sym.plot(2*x**2 + 2,(x, -2, 2))
```


```python
soluciones = sym.solve(2*x**2 + 2 - 4)
soluciones
```


```python
soluciones[3]
```

Con "`sympy.Eq`" se pueden construir ecuaciones.


```python
eqA = sym.Eq(2*x**2 + 2, 4)
eqA
```


```python
sym.roots(eqA)
```


```python
eqA.lhs  # lado izquierdo de la ecuación
```


```python
eqA.rhs  # lado derecho de la ecuación
```


```python
g1 = sym.plot(eqA.lhs,(x, -2, 2), show = False,line_color='blue')
g2 = sym.plot(eqA.rhs,(x, -2, 2), show = False,line_color='red')
g1.extend(g2)
g1.show()
```

Puede resolverse un sistema de ecuaciones.


```python
x, y = sym.symbols('x, y')
sym.solve([x + y - 2, 
           x - y - 0], [x, y])
```


```python
a, b, c = sym.symbols('a, b, c')
sym.solve([a*x + b*y - 2,
           a*x - b*y - c], [x, y])
```


```python

```

5b54f3a7d4780fa853ca5ec3a8e3481bfbfe2929
ipynb
Jupyter Notebook
SympyJupyter.ipynb
pierrediazp/Se-ales_y_Sistemas
b14bdaf814b0643589660078ddd39b5cdf86b659
MIT
SympyJupyter.ipynb
pierrediazp/Se-ales_y_Sistemas
b14bdaf814b0643589660078ddd39b5cdf86b659
MIT
SympyJupyter.ipynb
pierrediazp/Se-ales_y_Sistemas
b14bdaf814b0643589660078ddd39b5cdf86b659
MIT
Qwen/Qwen-72B
1. YES
2. YES