**Tarea Nro. 3 - LinAlg + Sympy**

- Nombre y apellido: Ivo Andrés Astudillo
- Fecha: 7 de diciembre de 2020  

# Producto punto

## Use un producto punto y la lista de compras de la tabla 9.4 para determinar su cuenta total en la tienda.




```python
import numpy as np
```


```python
articulo = np.array([2, 1, 2, 5, 1])
costo = np.array([3.50, 1.25, 4.25, 1.55, 3.15])
print("Cuenta total:", np.dot(articulo, costo))
```

    Cuenta total: 27.65


# Multiplicación matricial

## Con un calorímetro de bomba se realizó una serie de experimentos. En cada experimento se usó una cantidad diferente de agua. Calcule la capacidad calorífica total para el calorímetro en cada uno de los experimentos, mediante multiplicación matricial, los datos de la tabla 9.8 y la información acerca de la capacidad calorífica que sigue a la tabla.


<br><br>




```python
bomba = np.array([
    [110, 250, 10],
    [100, 250, 10],
    [101, 250, 10],
    [98.6, 250, 10],
    [99.4, 250, 10]
]).reshape(5, 3)

capacidad_calorica = np.array([4.2, 0.45, 0.90]).reshape(3, 1)

capacidad_calorica_total = np.dot(bomba, capacidad_calorica)

i=1
for c in capacidad_calorica_total:
    print(f'Capacidad calórica del experimento {i} = {float(c)}')
    i+=1
```

    Capacidad calórica del experimento 1 = 583.5
    Capacidad calórica del experimento 2 = 541.5
    Capacidad calórica del experimento 3 = 545.7
    Capacidad calórica del experimento 4 = 535.62
    Capacidad calórica del experimento 5 = 538.98


# Determinantes e inversos

## Recuerde que no todas las matrices tienen inverso. Una matriz es singular (es decir: no tiene inverso) si su determinante es igual a 0 (es decir, |A| = 0). Use la función determinante para probar si cada una de las siguientes matrices tiene inverso:



Si existe un inverso, calcúlelo.


```python
def detInv(m, nombre):
    det = np.linalg.det(m)
    if det != 0:
        inv = np.linalg.inv(m)
        print(f'El determinante de la matriz {nombre} es: {det}')
        print(f'El inverso de la matriz {nombre} es:')
        print(inv)
        print('\n')
    else:
        print(f'El determinante de la matriz {nombre} es: {det} por lo tanto no tiene inverso.')
        print('\n')


A = np.array([
    [2, -1],
    [4, 5]
]).reshape(2,2)

B = np.array([
    [4, 2],
    [2, 1]
]).reshape(2,2)


C = np.array([
    [2, 0, 0],
    [1, 2, 2],
    [5, 4, 0]
]).reshape(3, 3)

detInv(A, 'A')
detInv(B, 'B')
detInv(C, 'C')
```

    El determinante de la matriz A es: 14.000000000000004
    El inverso de la matriz A es:
    [[ 0.35714286  0.07142857]
     [-0.28571429  0.14285714]]
    
    
    El determinante de la matriz B es: 0.0 por lo tanto no tiene inverso.
    
    
    El determinante de la matriz C es: -15.999999999999998
    El inverso de la matriz C es:
    [[ 0.5    0.     0.   ]
     [-0.625 -0.     0.25 ]
     [ 0.375  0.5   -0.25 ]]
    
    


# Resolución de sistemas ecuaciones lineales

## Resuelva el siguiente sistema de ecuaciones




```python
M = np.array([
    [3, 4, 2, -1, 1, 7, 1],
    [2, -2, 3, -4, 5, 2, 8],
    [1, 2, 3, 1, 2, 4, 6],
    [5, 10, 4, 3, 9, -2, 1],
    [3, 2, -2, -4, -5, -6, 7],
    [-2, 9, 1, 3, -3, 5, 1],
    [1, -2, -8, 4, 2, 4, 5],
]).reshape(7, 7)

res = np.array([42, 32, 12, -5, 10, 18, 17]).reshape(7, 1)

print('Solución del sistema de ecuaciones:\n')
print(np.linalg.solve(M, res))
```

    Solución del sistema de ecuaciones:
    
    [[-0.18899493]
     [ 2.54589061]
     [-3.28057396]
     [-6.75778176]
     [ 1.32124449]
     [ 4.31944831]
     [ 0.62940585]]


# Cálculo

La capacidad calorífica C<sub>p</sub> de un gas se puede modelar con la ecuación empírica

\begin{equation}
C_p = a + bT + cT^2+dT^3
\end{equation}

donde a, b, c y d son constantes empíricas y T es la temperatura en grados Kelvin. El cambio en entalpía (una medida de energía) conforme el gas se caliente de T 2  es la integral de esta ecuación con respecto a T:

\begin{equation}
\bigtriangleup h = \int_{T_{1}}^{T_{2}} C_{p}\,dT
\end{equation}

## Encuentre el cambio en entalpía del oxígeno gaseoso conforme se calienta de 300 K a 1000 K. Los valores de a, b, c y d para el oxígeno son


\begin{equation} 
\begin{split}
a & = 25.48 \\
b & = 1.520 x 10^{-2} \\
c & = -0.7155 x 10^{-5} \\
d & = 1.312 x 10^{-9}
\end{split}
\end{equation}



```python
a, b, c, d, C_p, T, T_1, T_2, h = sp.symbols('a b c d C_p T T_1 T_2 h')
```


```python
a = 25.480
b = 1.52 * (10**-2)
c = -0.7155 * (10**-5)
d = 1.312 * (10**-9)
T_1 = 300
T_2 = 1000
```


```python
C_p = a + b*(T_2) + c*(T_2**2) + d*(T_2**3)
C_p
```




    34.836999999999996




```python
h = sp.Integral(C_p, (T, T_1, T_2))
h
```




$\displaystyle \int\limits_{300}^{1000} 34.837\, dT$




```python
h.doit()
```




$\displaystyle 24385.9$



51e2f1333d5adb808aadd974621f5000ba0eb1d9
ipynb
Jupyter Notebook
Tareas/PrimerBimestre/TareaNro3 LinalgSympy/LinAlg-Sympy.ipynb
iaastudillo/PythonIntermedio
2b1393761445e7ee521d82c1dbb33826a9dd475e
MIT
Tareas/PrimerBimestre/TareaNro3 LinalgSympy/LinAlg-Sympy.ipynb
iaastudillo/PythonIntermedio
2b1393761445e7ee521d82c1dbb33826a9dd475e
MIT
Tareas/PrimerBimestre/TareaNro3 LinalgSympy/LinAlg-Sympy.ipynb
iaastudillo/PythonIntermedio
2b1393761445e7ee521d82c1dbb33826a9dd475e
MIT
Qwen/Qwen-72B
1. YES
2. YES