```python
from sympy import *
init_printing(use_latex='mathjax')
x, y, z = symbols('x,y,z')
r, theta = symbols('r,theta', positive=True)
```

## Matrices

El objeto `Matrix` de *Sympy* nos ayuda con pequeños problemas en álgebra lineal.


```python
rot = Matrix([[r*cos(theta), -r*sin(theta)],
              [r*sin(theta),  r*cos(theta)]])
rot
```

### Métodos estándar


```python
rot.det()
```


```python
rot.inv()
```


```python
rot.singular_values()
```

### Ejercicios

Encuentre la inversa de la siguiente matriz:

$$ \left[\begin{matrix}1 & x\\y & 1\end{matrix}\right] $$


```python
# Crea una matriz y usa el método `inv` para encontrar la inverso


```

### Operadores

Los operadores estándar *SymPy*  trabajan en matrices.


```python
rot * 2
```


```python
rot**2
```


```python
v = Matrix([[x], [y]])
v
```


```python
rot * v
```

### Ejercicio

En el último ejercicio encontraste la inversa de la siguiente matriz


```python
M = Matrix([[1, x], [y, 1]])
M
```


```python
M.inv()
```

Ahora verifica que esta es la verdadera inversa multiplicando la matriz por su inversa. ¿Recuperas la matriz identidad?


```python
# Multiplica `M` por su inversa. ¿Recuperas la matriz identidad?
```

### Ejercicio

¿Cuáles son los vectores y valores propios de `M`?


```python
# Encuentra los metodos para calcular vectores y valores propios. Usa estos metodos en `M`

```

### Acceso a elementos estilo NumPy


```python
rot[0, 0]
```


```python
rot[:, 0]
```


```python
rot[1, :]
```

### Mutación

Podemos cambiar elementos en la matriz.


```python
rot[0, 0] += 1
rot
```


```python
simplify(rot.det())
```


```python
rot.singular_values()
```

### Ejercicio

Juega con tu matriz `M`, manipulando elementos de forma similar a *NumPy*. Luego prueba los diversos métodos de los que hemos hablado (u otros). Averigua qué tipo de respuestas obtienes.


```python
# Juega con matrices


```

67e8ef74b065710bdcbcf1eee3b5340d286d1064
ipynb
Jupyter Notebook
tutorial_exercises/04-Matrices.ipynb
t3rodrig/sympy-tutorial-es
5cd5497f799e889d758a26539781cdc72b1e6a74
BSD-3-Clause
tutorial_exercises/04-Matrices.ipynb
t3rodrig/sympy-tutorial-es
5cd5497f799e889d758a26539781cdc72b1e6a74
BSD-3-Clause
tutorial_exercises/04-Matrices.ipynb
t3rodrig/sympy-tutorial-es
5cd5497f799e889d758a26539781cdc72b1e6a74
BSD-3-Clause
Qwen/Qwen-72B
1. YES
2. YES