0% found this document useful (0 votes)
13 views19 pages

Practica de NumPy - Ipynb

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views19 pages

Practica de NumPy - Ipynb

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 19

{

"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Copia de Lineal.ipynb",
"provenance": [],
"collapsed_sections": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"# NumPy\n",
"\n",
"NumPy es una libreria de Algebra Lineal para Python, la razón por la cual
es tan importante para Data Science con Python es que casi todas las librerias del
ecosistema de PyData confían en NumPy como uno de sus principales componentes.\n",
"\n",
"https://stackoverflow.com/questions/993984/what-are-the-advantages-of-
numpy-over-regular-python-lists\n",
"\n",
"## Arreglos en Numpy (Arrays)\n",
"Los arreglos en NumPy son la principal forma de usar Numpy. Los arreglos
de NumPy esencialmente vienen en dos tipos: vectores y matrices. Los vectores son
estrictamente matrices de 1-d y las matrices son 2-d (pero debe tener en cuenta que
una matriz aún puede tener solo una fila o una columna)."
],
"metadata": {
"id": "sI1PmpqsVgNI"
}
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Cdz_nNknVfe9",
"outputId": "4eadc58a-fffd-47a1-8254-e6a975c128a8"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"numpy.ndarray"
]
},
"metadata": {},
"execution_count": 4
}
],
"source": [
"import numpy as np \n",
"\n",
"lista = [1,2,3,4]\n",
"array = np.array(lista)\n",
"array\n",
"\n",
"type(array)\n"
]
},
{
"cell_type": "code",
"source": [
"array.dtype"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Nk9Lgu_4XGHM",
"outputId": "c460744b-e230-4613-cf73-e8e795ef600a"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"dtype('int64')"
]
},
"metadata": {},
"execution_count": 10
}
]
},
{
"cell_type": "code",
"source": [
"_matriz = [[1,2,3],[5,6,7]]\n",
"matriz = np.array(_matriz)\n",
"matriz"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "erSdnftZXXB7",
"outputId": "32d9699f-1cfc-4187-b44a-342c58818530"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[1, 2, 3],\n",
" [5, 6, 7]])"
]
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"source": [
"# arange\n",
"np.arange(1,10,2)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "0uQ-WUloX5Pa",
"outputId": "b0e0ea7b-7656-4d50-e2a2-480e1b6d7ee0"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([1, 3, 5, 7, 9])"
]
},
"metadata": {},
"execution_count": 16
}
]
},
{
"cell_type": "code",
"source": [
"# zeros y ones\n",
"np.zeros(3)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "nIUtoX9YYCHa",
"outputId": "f96d5f72-6a98-4f9c-8816-02fe89fb68b2"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([0., 0., 0.])"
]
},
"metadata": {},
"execution_count": 18
}
]
},
{
"cell_type": "code",
"source": [
"np.ones(10)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "uFr5bQx0YLHR",
"outputId": "4c73c10d-02dd-4f6b-e4e2-0bad4fd37cb3"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])"
]
},
"metadata": {},
"execution_count": 20
}
]
},
{
"cell_type": "code",
"source": [
"# Generar 3 valores iniciando en 0 y terminando en 10 (incluyendolo)\n",
"np.linspace(0,20,6)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "YjPNxIxRYOkJ",
"outputId": "388d45fb-ef88-4e24-ba32-3bb36f43caee"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([ 0., 4., 8., 12., 16., 20.])"
]
},
"metadata": {},
"execution_count": 24
}
]
},
{
"cell_type": "code",
"source": [
"np.eye(4)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "E4mUpMYDYneS",
"outputId": "773f99c2-70d9-4730-f88a-8f2df546548d"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[1., 0., 0., 0.],\n",
" [0., 1., 0., 0.],\n",
" [0., 0., 1., 0.],\n",
" [0., 0., 0., 1.]])"
]
},
"metadata": {},
"execution_count": 25
}
]
},
{
"cell_type": "code",
"source": [
"# Crea un arreglo de la forma dada y rellenela con muestras aleatorias de
una distribución uniforme sobre [0, 1).\n",
"np.random.rand(3)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "vziR7p9CYdaR",
"outputId": "13edfe98-26d6-4561-b3dc-df9b0dde293d"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([0.10741496, 0.97149125, 0.4521476 ])"
]
},
"metadata": {},
"execution_count": 28
}
]
},
{
"cell_type": "code",
"source": [
"np.random.rand(3,3)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ti1_kVJJYyPh",
"outputId": "feef9134-ca42-4f81-ded2-c62d7faf03d4"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[0.56250765, 0.63319007, 0.30949888],\n",
" [0.12909054, 0.27333859, 0.9624057 ],\n",
" [0.84688152, 0.61638129, 0.19828679]])"
]
},
"metadata": {},
"execution_count": 30
}
]
},
{
"cell_type": "code",
"source": [
"# Devuelve una muestra (o muestras) de la distribución “estándar normal”.
A diferencia del rand que es uniforme:\n",
"np.random.randn(2)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "6E-nbmB4Y5Eg",
"outputId": "7996ca98-bc2a-4ba7-d977-168a03532a33"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([-1.0803333 , -0.49339064])"
]
},
"metadata": {},
"execution_count": 33
}
]
},
{
"cell_type": "code",
"source": [
"# Entrega numeros enteros aleatorios desde inicio (inclusivo) hasta final\
n",
"np.random.randint(1,100,(2,2))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "XqQXYL2QZs2X",
"outputId": "2c721710-1058-474f-debd-722bab5fff91"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[26, 64],\n",
" [43, 75]])"
]
},
"metadata": {},
"execution_count": 35
}
]
},
{
"cell_type": "code",
"source": [
"arr = np.arange(1,10,1)\n",
"arr"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "v1FAOU0laCvI",
"outputId": "9229c0f5-374b-4261-91ba-6286db2bd92b"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([1, 2, 3, 4, 5, 6, 7, 8, 9])"
]
},
"metadata": {},
"execution_count": 46
}
]
},
{
"cell_type": "code",
"source": [
"arr.reshape(3,3)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "D0zd-sk2aaon",
"outputId": "2d571d3b-b9e7-4f0f-e092-8aafaccc439c"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[1, 2, 3],\n",
" [4, 5, 6],\n",
" [7, 8, 9]])"
]
},
"metadata": {},
"execution_count": 47
}
]
},
{
"cell_type": "code",
"source": [
"arr = np.arange(1,10)\n",
"bool_arr = arr > 5\n",
"arr[bool_arr]"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "iPNWPED4ahHm",
"outputId": "2a6e1a96-720c-4588-d5f1-d6a9ac429e68"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([6, 7, 8, 9])"
]
},
"metadata": {},
"execution_count": 52
}
]
},
{
"cell_type": "code",
"source": [
"arr = np.arange(1,30,3)\n",
"arr[arr%2==0]"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "bqoeW3ivbyz8",
"outputId": "cc59722d-d351-4b43-b417-7c28e448b60c"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([ 4, 10, 16, 22, 28])"
]
},
"metadata": {},
"execution_count": 54
}
]
},
{
"cell_type": "markdown",
"source": [
"### Operaciones\n",
"Si quiero realizar operaciones vectoriales o con matrices se realizan con
arreglos NumPy"
],
"metadata": {
"id": "VuMxLNTOcQ69"
}
},
{
"cell_type": "code",
"source": [
"# suma\n",
"arr1 = [1,2,3]\n",
"arr2 = [4,2,5]\n",
"arr1 + arr2"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "pzFOJ5IacW7j",
"outputId": "c9a911f8-02be-4cc5-a842-bc3bdab799a0"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[1, 2, 3, 4, 2, 5]"
]
},
"metadata": {},
"execution_count": 63
}
]
},
{
"cell_type": "code",
"source": [
"ar1 = np.array(arr1)\n",
"ar2 = np.array(arr2)\n",
"ar1 + ar2"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "AHcYjaS0cj8b",
"outputId": "282df558-42ae-49a5-a13b-c433b1865fc0"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([5, 4, 8])"
]
},
"metadata": {},
"execution_count": 65
}
]
},
{
"cell_type": "code",
"source": [
"# multiplicaion\n",
"ar1 * ar2"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "-9PST2X2dGuR",
"outputId": "d262918b-0462-43d6-fd47-f87b3de39f92"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([ 4, 4, 15])"
]
},
"metadata": {},
"execution_count": 67
}
]
},
{
"cell_type": "code",
"source": [
"ar1 - ar2"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "Vr5V3udddWuR",
"outputId": "7b9a1050-7f7b-4e7c-e426-7a5ba1493fe1"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([-3, 0, -2])"
]
},
"metadata": {},
"execution_count": 68
}
]
},
{
"cell_type": "code",
"source": [
"ar1 / ar2"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "8afi0rzbdYDC",
"outputId": "6fc9ed52-3935-46a7-e3d3-0785b1e90a12"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([0.25, 1. , 0.6 ])"
]
},
"metadata": {},
"execution_count": 70
}
]
},
{
"cell_type": "code",
"source": [
"ar1**3"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "8dQ21vefdcv5",
"outputId": "c38106e2-730a-4cdb-c597-6d2a5825ae3e"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([ 1, 8, 27])"
]
},
"metadata": {},
"execution_count": 71
}
]
},
{
"cell_type": "code",
"source": [
"array_ = np.array([[1,2,3],[2,3,4]])\n",
"array_.T"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "xW-CbLE5djGB",
"outputId": "687b4574-d80f-448e-bae9-84f797c2fc80"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[1, 2],\n",
" [2, 3],\n",
" [3, 4]])"
]
},
"metadata": {},
"execution_count": 75
}
]
},
{
"cell_type": "markdown",
"source": [
"En matemáticas, un sistema de ecuaciones lineales (o un sistema lineal) es
una colección de dos o más ecuaciones lineales que involucran el mismo conjunto de
variables.\n",
"\n",
"El objetivo final de resolver un sistema de ecuaciones lineales es obtener
los valores de las variables desconocidas. Aquí hay un ejemplo de un sistema de
ecuaciones lineales con dos variables desconocidas, x y y:\n",
"\n",
"Ejemplo:\n",
"\n",
"$$\n",
"4x + 3y = 20 \\\\\n",
"-5x + 9y = 26\n",
"$$\n"
],
"metadata": {
"id": "SnzqABBMfLlg"
}
},
{
"cell_type": "code",
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# graficando el sistema de ecuaciones.\n",
"x_vals = np.linspace(0, 5, 50) # crea 50 valores entre 0 y 5\n",
"plt.plot(x_vals, (20 - (4*x_vals))/3) # grafica 4x + 3y = 20\n",
"plt.plot(x_vals, (26 + (5*x_vals))/9) # grafica -5x + 9y = 26\n",
"plt.axis(ymin = 0)"
],
"metadata": {
"id": "YRQhd3bOai6h",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"outputId": "0ae60a4c-cae6-4f97-83a9-26c38c7ef975"
},
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(-0.25, 5.25, 0.0, 7.0)"
]
},
"metadata": {},
"execution_count": 2
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png":
"iVBORw0KGgoAAAANSUhEUgAAAWoAAAD8CAYAAABekO4JAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEg
AACxIB0t1+/
AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9y
Zy+WH4yJAAAgAElEQVR4nO3dd3jV5fnH8feTRSCEsMLeJGwIQpCZiDIEKmIVHK22ahUnS5y1tf5crVoFV7V
aV50FEUVBpkjYEpCwV9gzYQXCyHx+f3xPGrSMAOfke07O53VdXMI3h+Q+Vy8/
fXzO89y3sdYiIiL+K8TtAkRE5OwU1CIifk5BLSLi5xTUIiJ+TkEtIuLnFNQiIn7unEFtjGlujFl+yq8jxpi
RpVGciIiAOZ9z1MaYUGAX0Nlau81nVYmIyH+d79ZHLyBdIS0iUnrCzvP1NwKfne4LxpihwFCAqKioji1atL
jI0kREgsfSpUv3W2tjT/e1Em99GGMigN1Aa2vtvrO9NjEx0aampp53oSIiwcoYs9Ram3i6r53P1kd/
YNm5QlpERLzrfIL6Js6w7SEiIr5ToqA2xkQBfYAvfVuOiIj8Uok+TLTWHgOq+bgWERE5Dd1MFBHxcwpqERE
/p6AWEfFzfhXUuw6fQKPBRER+zm+COutEHte8MZ/
bPljCviMn3S5HRMRv+E1QR5cL476eTVm0+QB9x6Tw9fJdWl2LiOBHQR0SYri1e2OmDE+iSWwUIz5fzr2fLO
NAdo7bpYmIuMpvgrpIk9iKfHF3Nx7p14JZazPoOyaFaav3ul2WiIhr/
C6oAUJDDPf0bMqkYd2pWSmSuz5aygP/
WU7WiTy3SxMRKXV+GdRFWtSqxFf3dWf4FXF8nbabK8ekkLIh0+2yRERKlV8HNUBEWAgP9G3Ol/
d0o2JkGL9770cen7iSYzn5bpcmIlIq/D6oiyTUr8y3w3pwZ1JjPv1xO/
1fmcvizQfcLktExOcCJqgBIsNDefxXrfjP0K4A3PjOIp75dg0n8wpcrkxExHcCKqiLXNq4Kt+NSOK3nRvwr
3lbuOq1eaTtOOx2WSIiPhGQQQ0QVS6MZ65py79vv5RjOflc+
+YCXp6+ntz8QrdLExHxqoAN6iLJzWKZOjKZa9rX5dXvN/Hrf8xn3d4jbpclIuI1AR/
UADHlw3np+gT+eUtH9h05ydWvzefNH9IpKNQVdBEJfGUiqItc2boW00Ym06tlDZ6fuo4hby1gc2a222WJiF
yUMhXUANUqluMfv+3AKze2Jz3zGANencsH87dQqNW1iASoMhfUAMYYBrWvy/
RRyXRpUo0nv1nDze8uZueh426XJiJy3spkUBepWSmS92/
txPPXtSVtx2H6jZ3LuCU71D5VRAJKmQ5qcFbXN3RqwNSRybSpW4mHJ6zgDx+mkqHhBCISIEoU1MaYysaYL4
wx64wxa40xXX1dmLfVr1qBT+/
owl8GtmL+pv30GZPCpLTdbpclInJOJV1RvwJMtda2ABKAtb4ryXdCQgy3dW/
MlBFJNK4exfDPfuK+T5Zx8Fiu26WJiJzROYPaGBMDJAPvAlhrc621AX1fu2lsRb64uysPXdmc6Wv20ndMCj
PX7HO7LBGR0yrJiroxkAm8b4z5yRjzL2NM1C9fZIwZaoxJNcakZmb6f8/osNAQ7rs8jkn39yA2uhx3/
DuVB8enceSkhhOIiH8pSVCHAR2AN621lwDHgEd/+SJr7dvW2kRrbWJsbKyXy/
SdlrUr8fV93Rl2RRwTf9pFvzEpzNu43+2yRET+qyRBvRPYaa1d7PnzFzjBXWZEhIUwum9zJtzTjfIRodz87
mKe+HoVx3M1nEBE3HfOoLbW7gV2GGOaex71Atb4tCqXtK9fmcnDk7i9e2M+WrSN/q/
MJXXrQbfLEpEgV9JTH8OAT4wxK4D2wHO+K8ldkeGhPDGwFZ/
d2YWCQsuQfy7kr1PWajiBiLjG+OKWXmJiok1NTfX69y1t2Tn5PDt5LZ/
9uJ1mNSvy8vXtaVM3xu2yRKQMMsYstdYmnu5rZf5m4sWoWC6Mv17blg9u60TWiTyueWM+Y2duIK9AwwlEpP
QoqEugZ/MaTB95GQMT6jB25kZ+/Y/
5bNh31O2yRCRIKKhLKKZCOGNuaM9bN3dgz+GTXPXaPN5O0XACEfE9BfV56temNtNGJXN581iem7KOG/
65kK37j7ldloj4g1zfZIGC+gJUr1iOt27uyJgbEli/7yj9X5nLRwu3ajiBSLDJz4UtKTDjCfhHN3grySc/
Jswn3zUIGGP49SX16NKkGo9MWMmfv17NtNX7eH5wO+pWLu92eSLiK4d3wKYZsGkWbP4BcrMhJBwadoW43lC
QD6HejVYdz/MCay2f/
biDZyavIdQYnhjYisEd62GMcbs0EblY+Tmwbb4TzBtnwP71zvOYBhDfG+L6QOMkKBd9UT/
mbMfzFNRetP3AcR4cn8aPWw/
Su2VNnru2DTWiI90uS0TO18EtsGmm82tLCuQdh9By0Ki7s2qO6wPV48GLizEFdSkqLLS8N38LL0xbT1REKM
9c05ZftavtdlkicjZ5J2DrPCeYN86Ag+nO8yqNIb6PE86NekDE/
zQO9RoFtQs2ZRxl9Lg00nZmMTChDk9d3ZoqURFulyUiANbCgXTPXvNMJ6TzT0JYJDRKKg7nak1LrSQFtUvy
Cwp584d0Xpm1kSpRETx/
XVuuaFHT7bJEglNONmydW7xqPrzNeV4tztnKiO8NDbtDuDuHARTULlu9O4vR49JYt/
co1yfW489XtSI6MtztskTKNmshc11xMG9fCAW5EF4BGl/
m+SCwN1Rp5HalgILaL+TkFzB25kb+OSed2jHleXFwO7rFVXe7LJGy5eQR2DLHCeZNs+DITud5bEuI6+VsaT
ToCmHl3K3zNBTUfmTZ9kM8OC6NzfuPcWu3RjzSrwXlI0LdLkskMFkL+1Y7e80bZ8KORVCYDxHR0OQyzwmN3
lC5vtuVnpOC2s+cyC3g+anr+GDBVhpXj+LvQxLo2LCK22WJBIYTh52LJkWXTo7ucZ7XbOusmuN6Q/
3OEBZYH94rqP3UgvT9PDR+BXuyTnDXZU0Z2TuecmFaXYv8TGEh7F1RHMw7fgRbAJEx0ORyZzujaS+oFNjHY
BXUfuzoyTyenbyWz5fsoHnNaF66PkHDCUSOH4T07z2XTmbBsQznee32xUfn6iZ6/
aq2mxTUAWD2ugwembCCg8dyGd4rnnt6NiU8VD2zJEgUFsLun4rPNe9aCrYQyldxVsvxfaDpFVCxhtuV+oyC
OkAcPp7LE1+vZlLabtrVi+GlIQnE17y4/gEifis707NqnuH88/
gBwEDdjsWr5jqXQEhwbAcqqAPM5BV7+NNXKzmWW8BDfZtze4/
GhIaowZMEuIJ82JVafK55z3LneYXqTijH93H2nKOquVunSxTUASjzaA6PfbmSmWv3cWmjqrw4pB0Nq/
muz4CITxzdWxzMm2fDySwwIVDvUk8494ZaCRCibT4FdYCy1vLlsl08OWk1BdbyxwEt+W3nBmqfKv6rIM85l
VF0rnnfSud5xVqeM829oOnlzt6z/MxFB7UxZitwFCgA8s/
0zYooqL1r9+ETPPzFCuZt2k9SfHVeGNyO2jEaTiB+ImtX8YeAm+dAzhEICXPOMhdtadRs49WWoGWRt4I60V
q7vyQ/
UEHtfdZaPl68necmryUs1PDkwNZc26GuVtdS+vJzYPui4nPNGWuc55XqFt8EbHKZc85ZSuxsQV12DiGWccY
YbunSkKS46jw4Po3R49OYtnovz/66LbHR/te3QMqYQ9uKG+lvngN5x4rHT/
V52lk1x7bQqtlHSrqi3gIcAizwT2vt26d5zVBgKECDBg06btu2zculSpGCQst787bw4vT1VCwXxrPXtKF/
28C+lSV+Ju9k8fipTTNg/
wbneeUGnpagfZy+zeUqultnGeKNrY+61tpdxpgawAxgmLU25Uyv19ZH6diwzxlOsHJXFoPa1+Gpq9sQU0Ht
U+UCHdzsfAC4aQZsmQv5J04ZP+UJ52pxWjX7yEVvfVhrd3n+mWGMmQhcCpwxqKV0NKsZzZf3duMfs9N57fu
NLNp8gL9d147Lm5fd21viRbnHi8dPbZrhBDVA1SbQ4XdOMDfsDhEV3K1Tzh3UxpgoIMRae9Tz+77AUz6vTE
okPDSEEb3juaJFDUaPX85t7y/hpkvr8/ivWlGxnD6CkFNYC/
s3njJ+aj4U5EBYeWicDJ3vcY7PleL4KSmZkvybXBOY6DldEAZ8aq2d6tOq5Ly1rRfDpPt7MGbmBt5O2czcj
ft5cXACXZsG5y0v8cjJdqZoF4Xz4e3O8+rNoNMdTjA37A7hke7WKWelCy9l0NJtBxk9Lo2tB45zW3dnOEFk
eHD0Swh61kLG2uLtjG0LoTAPIio646eK+jVXaeh2pfILupkYhI7n5vP8d+v4cOE2msRG8dKQBC5poNtgZdL
JLOfIXNG55iO7nOc1WhWfa27QNeAa6QcbBXUQm79pPw+NT2PvkZPc07MpI3o1IyJMfRUCmrWwd2XxueYdi5
3xU+UqQZOexeEcU9ftSuU8KKiD3JGTeTz9zRrGL91Ji1rRvHx9e1rVqeR2WXI+ThyC9NnF4Zy9z3leq23x0
bl6nSBUxzMDlYJaAJi1dh+PfrmSw8dzGdm7GXclNyFMwwn8U2Gh0wa06MLJziVOI/3Iyk4D/
aJG+tG13K5UvERBLf916Fguf/56Fd+u2ENC/
cq8NCSBuBq6XeYXjh0oHj+VPguOZTrP61xSvGqu06FMjZ+SYgpq+R/fpO3mz1+v4kRuAQ/
3a8Ft3RoRouEEpauwAHYtKz6hsWsZYKFCNWf8VFxvz/
ipWLcrlVKgoJbTyjh6kscmrGTWugw6N67K34ckUL+qbqH5VHZG8XZG+vfO3jMG6iU6q+a43lCnfdCMn5JiC
mo5I2st45fu5Klv1mCt5U9XteLGTvXVPtVbCvKd/
eWiCyd70pznUbHFpzOaXgEVqrpbp7hOQS3ntOvwCR4an8aC9AP0bB7L365tR60Y3Va7IEf2FG9npP8AOVlg
QqH+pZ4LJ32gVjuNn5KfUVBLiRQWWj5evI3npqwlIjSEpwa1YVD7Olpdn0tBnqeRvufo3L5VzvPo2sXB3KQ
nlK/sZpXi5xTUcl627D/Gg+PTWLrtEP3b1OKZa9pQraKGE/xM1k5nYGtRI/
3co874qQZdi7c0arZWS1ApMQW1nLeCQss7czfz8vQNREeG8dy1bbmydRCf2c3Pge0Li8M5c53zPKb+Kavmy
6BctLt1SsBSUMsFW7/3KA+MW87q3Ue49pK6/
OXq1sSUD5Lbb4e2eoJ5ltOBLu8YhEZAw27F55qrN9OqWbxCMxPlgjWvFc1X93Xn9e838frsTSxIP8Dzg9tx
WbMyeLY374QzfqpoysmBTc7zKo2g/
W+c7YzGSRAR5WqZEny0opYSW7HzMKPHpbExI5vfdG7A4wNaEhXIwwmshQPpxSc0ts6D/
JMQFgmNehSfa67WVKtm8TltfYjXnMwr4OUZG3hn7mbqVSnP3wcn0LlJAA0nyD3mzAMsOtd8aKvzvFqc50PA
Ps6MwPDyrpYpwUdBLV63ZKsznGDHoeP8oXtjHryyuX8OJ7AWMtef0kh/
ARTkQngFZ4p2vGfVXLWx25VKkFNQi08cy8nnb9+t46NF24irUZGXhiSQUN8PzgrnHPU00veca87a4Tyv3rw
4mBt01fgp8SsKavGpuRszefiLFWQczeHenk0ZdkV86Q4nsBYy1hQfndu+0GmkH1HR00jf0+CocoPSq0nkPC
moxeeyTuTx1DdrmLBsJ61qV+LlGxJoUcuHwwlOHIbNP3hWzbPg6G7nec02xeea63fW+CkJGApqKTXTV+/
ljxNXknUij1F9mnFXclNCvdE+1VrYu6L4XPOOxWALoFwMNO1ZfBuwUp2L/
1kiLtA5aik1fVvXIrFRVf701UpemLqeGWv28dKQBJrEXsBwguMHYfNs51xz+qzi8VO1E6DHKCeY63VSI30p
80q8ojbGhAKpwC5r7VVne61W1GKtZVLabp74ejU5+QU82q8Fv+t6juEEhYWw5ydnxbxxBuxKdcZPla/
itAKNKxo/
VbP03ohIKfHWinoEsBbQVFQ5J2MMg9rXpUuTajw6YQVPfrOGaav38eKQdtSrcspwgmP7PY30Pavm4wcA44y
fSn7ICee6HdRIX4JaiVbUxph6wIfAs8ADWlHL+bDWMi51B099s4ZQY3m5ex69wlZgNs2E3ctxxk9VL/
4QsOnlEFXd7bJFSpU3VtRjgYcBtQaT82ayM7ghbC4Dm0+jcNMsKi7IppAQ8up0JOLyPzp7zbXbq5G+yBmcM
6iNMVcBGdbapcaYnmd53VBgKECDBjqvGtQK8pzxUxtnOLcB964EoELFmth2V/NDYQIP/
1SNnD0xPHVpa66uo+EEImdzzq0PY8xfgVuAfCASZ4/6S2vtzWf6O9r6CEJZu4pvAm7+AXKOOOOnGnQpvnBS
s+1/V83pmdmMHpfG8h2HGdC2Fk8P0nACCW5eO0ftWVE/
qD1qIT8XdiwqPtecsdp5XqnuzxvpR8ac+VsUFPL23M2MmbGBmPLh/PXadvRppRMdEpx0jlq84/
B2Z8W8cSZsmQO52RASDg27Qp+nnHCu0bLELUHDQkO4t2cclzevwQPj0rjz36lc16EeTwxsFTzDCURKQDcT5
czyc5xG+kXnmvevd57HNIB4T0vQxkleGT+Vm1/Ia99v5B8/
pFMjuhwvDG5HUnwZHE4gcga6Qi4ld3Bz8bnmLSmQdxxCyzk9mov6NVeP91kj/
eU7DjN63HLSM49xS5eGPDagBRUi9B9+UvZp60POLPe4Z/yUp/PcwXTneZXG0P63TlvQRj1KbfxU+/
qVmTw8iRenree9+VtI2ZjJ34ck0KlR1VL5+SL+SCvqYGOtMwuwKJi3zT9l/
NQpjfSrNXW7UhZtPsBDX6Sx89AJ7kxqwgN9mvnncAIRL9DWR7DLyYatc4vD+fA253m1eCeU43tDQ/
8cP5Wdk89zU9by6eLtxNeoyMvXt6dtvTOfJBEJVArqYGMtZK77eSP9glwIj4LGyZ4PAns707UDxA/
rM3hkwgr2Z+dy/+Vx3H9FHOGhuskoZYeCOhicPOIcmSs613xkp/M8tmVxMDfoCmGBe6kk63geT36zmok/
7aJN3Uq8fH17mtVUVwMpGxTUZZG1sG9V8bnmHYuc8VPlKnlWzZ695ph6blfqdVNX7eHxias4ejKf0X2bcUd
SE+8MJxBxkU59lBUnDjuN9P87fmqP87xWW+g2zDN+6lIILduXRfq1qU1io6o8PnElf/
1uHdM9wwkaVS+dkykipU0ran9WWOiMn9o0w1k171zijJ+KjPl5I/
1Ktd2u1BXWWr5avosnvl5NfoHlsQEtuLlzw7MPJxDxU9r6CCTHDvx81Xwsw3leu71nO6MP1O2o8VOn2JN1g
kcmrCRlQybd46rxwuAE6lb2vxMsImejoPZnhQWw+6fiExq7lgIWyld1VsvxfaBpL6io69RnY63lsx938Mzk
NYQaw58HtmJIx3pqnyoBQ0Htb7IzIP17J5zTv4cTBwHjrJSLPgSsc4nGT12A7QeO8+AXafy45SC9W9bguWv
bUiM60u2yRM5JQe22gnxnUOummU4471nuPI+KdVbL8X2gyeUQVc3dOsuIwkLLe/
O38MK09VSICOWZa9pwVbs6bpclclYKajcc3VsczJtnw8ksMCFQ79Lic821EjR+yoc2ZRxl9Lg00nZmcVW72
jw9qA1VoiLcLkvktHQ8rzQU5MGOxcXnmvc546eoWAtaDnSCuUlPKF/
FzSqDSlyNaCbc04235qTzyqyNLN5ykL9d25ZeLTWcQAKLVtQXI2vnKavmOZB7FELCoH6X4lVzzTY+awkqJb
d6dxajx6Wxbu9Rrk+sx5+vakV0ZNk+by6BRStqb8nPcfpmFK2aM9c6zyvVg7bXOcHc+DKIrORunfI/
WteJ4ev7u/
PKzI28NSed+ZsO8MLgdnSPq+52aSLnpBX1uRza5lw42TTLWTXnHYPQCKdvRtG55tjmWjUHkGXbD/
HguDQ27z/G77s25JH+Gk4g7tOK+nzknfSMn/JM1N6/
wXleuSG0v8lZNTdKgnIV3a1TLliHBlWYPDyJF6at4/35W5mzIZOXrk+gY0MNJxD/pBU1wIF0z/
ipGbBlLuSf8Iyf6nFKI/04rZrLoAXp+3lo/Ar2ZJ1gaHJTRvWJp1yYzq9L6dPxvF/
KPQ5b53m2NGY6cwIBqjYtDuaG3SGigrt1SqnIzsnn2clr+OzHHTSvGc1L1yfQpq6GE0jpUlBbC/
s3Fgfz1vlQkANh5U9pCdoLqjZxu1Jx0ez1GTzyxQoOHstl2BXx3Ht5Uw0nkFJzUUFtjIkEUoByOHvaX1hr/
3K2v+MXQZ2T7UzRLgrnw9ud59WbF4+fatANwnW9WIodPp7Lk5NW89Xy3bSrF8NLQxKI13ACKQUXG9QGiLLW
ZhtjwoF5wAhr7aIz/R1XgtpayFhbHMzbFkJhHkRUdI7Mxfd2rmtXaVi6dUlAmrJyD3/6ahXZOfk81Lc5t/
dorOEE4lMXderDOkme7fljuOeX9/
dLLsTJLOfIXNHxuSO7nOc1WkOXe5wtjfpdIEzXhuX8DGhbm06NqvLHiSt5dspaZqzZx4tD2tGwmoYTSOkr0
R61MSYUWArEAW9Yax852+t9tqK2FvauLA7mHYuLx0816VncEjSmrvd/
tgQlay1fLtvFk9+spqDQ8tiAltzcuYHap4rXee3DRGNMZWAiMMxau+oXXxsKDAVo0KBBx23btl14xac6cQj
SZxefa87e5zyv1c6z19wH6nUq8+OnxF17sk7w8BcrmLtxP0nx1XlhcDtqx2g4gXiPV099GGOeAI5ba/
9+ptdc1Iq6sNBpA1p0rnnnErCFEFn5lEb6V0B0rQv7/
iIXyFrLJ4u389yUtYSGGJ4c2JprO9TV6lq84qL2qI0xsUCetfawMaY80Ad43ss1Qt4J+GaEE9DH9wPGaZ6f
9KATznU7qpG+uMoYw81dGpIUX50Hx6cxenwa01bv5dlftyU2upzb5UkZVpIr5LWBDz371CHAOGvtt96vJNK
5IXjqqjlKDXPE/
zSsFsXnQ7vy3rwtvDh9PVeOTeHZa9rQv21wDhkW3wuOCy8iPrJx31EeGJfGyl1ZDGpfh6eubkNMBX1eIufv
bFsfunYlchHia0bz5b3deKBPMyav2EPfsXOYvT7D7bKkjFFQi1yk8NAQhveK56v7ulO5fAS3vb+Ex75cQXZ
OvtulSRmhoBbxkjZ1Y5g0rDt3X9aU/yzZQb+xKSxMP+B2WVIGKKhFvKhcWCiP9m/
B+Lu7EhZiuOmdRfzfN6s5mVfgdmkSwBTUIj7QsWFVpoxI4vddG/L+/
K0MeHUuP20/5HZZEqAU1CI+UiEijP8b1IZP7uhMTl4h1725gBenrSM3v9Dt0iTAKKhFfKx7XHW+G5nE4I71
eGN2Ole/Po81u4+4XZYEEAW1SCmoFBnOC4MTePf3iRw4lsugN+bx+vcbyS/
Q6lrOTUEtUop6tazJ9JHJXNm6Fn+fvoHr3lrIpozsc/9FCWoKapFSViUqgtd/04HXbrqEbQeO8atX5/
LuvC0UFvpHm3fxPwpqEZcMTKjD9FHJ9IirztPfruGmdxax4+Bxt8sSP6SgFnFRjehI/vX7RF4c3I41u4/
Qb2wKny7eji968EjgUlCLuMwYw5DE+kwdlUz7BpX548SV3Pr+EvZmnXS7NPETCmoRP1G3cnk+ur0zTw1qzY
9bDtJ3zBwm/rRTq2tRUIv4k5AQw+
+6NmLKiCTia0Yz6j9p3PPxMvZn57hdmrhIQS3ihxpXj2LcXV15rH8Lvl+XwZVjUpi6ao/
bZYlLFNQifio0xHDXZU35ZlgPaleO5O6PlzHqP
8vJOp7ndmlSyhTUIn6uea1oJt7bnRG94pmUtpu+Y+fwg4YTBBUFtUgACA8NYVSfZnx1b3cqRYZz6/
tL+OPElRpOECQU1CIBpG29GL4Z1oOhyU347Mft9H8lhUWbNZygrFNQiwSYyPBQ/
jigJePu6kqIcYYTPP3tGg0nKMMU1CIBqlOjqkwZnsTNnRvy7rwtDHh1Lst3HHa7LPEBBbVIAIsqF8bT17Th
oz9cyoncAq57cwEvTV+v4QRlzDmD2hhT3xgz2xizxhiz2hgzojQKE5GSS4qPZerIZK5pX5fXvt/
EoDfms3aPhhOUFSVZUecDo621rYAuwH3GmFa+LUtEzldM+XBeuj6Bt2/
pSObRk1z9+jzemL1JwwnKgHMGtbV2j7V2mef3R4G1QF1fFyYiF6Zv61pMH3UZfVrV5MVp6xn81kLSMzWcIJ
Cd1x61MaYRcAmw+DRfG2qMSTXGpGZmZnqnOhG5IFWjInjjNx145cb2bNnvDCd4f76GEwQqU9LOXMaYisAc4
Flr7Zdne21iYqJNTU31QnkicrH2HTnJoxNWMHt9Jl2aVOXFwQnUr1rB7bLkF4wxS621iaf7WolW1MaYcGAC
8Mm5QlpE/EvNSpG8d2snnr+uLSt3ZtFvbAqf/
6jhBIGkJKc+DPAusNZa+7LvSxIRbzPGcEOnBkwdmUzbejE8+uVKbv9gCfuOaDhBICjJiro7cAtwhTFmuefX
AB/XJSI+UL9qBT69owt/GdiKBekH6Dsmha+X79Lq2s+VeI/6fGiPWsT/
pWdm8+D4NH7afpgBbWvx9KA2VKtYzu2ygtZF71GLSNnTNLYi4+/
qysP9mjNjzT6uHJvCjDX73C5LTkNBLRLEwkJDuLdnHJPu70FsdCR3/
juV0ePSyDqh4QT+REEtIrSsXYmv7+vOsCvi+Gr5LvqNTWHexv1ulyUeCmoRASAiLITRfZsz4Z5uVIgI5eZ3
F/Pnr1ZxTMMJXKegFpGfaV+/MpOHJ/GHHo35ePE2Brw6lyVbD7pdVlBTUIvI/
4gMD+XPV7Xi8zu7UGgt1/9zIc9NWavhBC5RUIvIGXVuUo3vRiRz06UNeDtlMwNfm8eKnRpOUNoU1CJyVhXL
hfHcr9vy4e2XcvRkPr/
+xwJenrGBPLVPLbqbrR8AAAmESURBVDUKahEpkcuaxTJtZDKDEurw6qyNXPPGfNbvPep2WUFBQS0iJRZTIZ
yXb2jPP2/pyL4jJxn42jzempNOgdqn+pSCWkTO25WtazFtZDJXtKjB375bx5C3FrBl/
zG3yyqzFNQickGqVSzHmzc7wwk2ZWTT/
5UUPlywVcMJfEBBLSIXzBjDoPZ1mT7qMro0qcZfJq3mlvcWs+vwCbdLK1MU1CJy0WrFRPL+rZ3427VtWb79
MP3GpDAudYfap3qJglpEvMIYw42XOsMJWtWpxMNfrOCOD1PJ0HCCi6agFhGvql+1Ap/
d2YUnrmrFvE376Ts2hW9X7Ha7rICmoBYRrwsJMdzeozGThyfRsFoU93/6E/d/
uoxDx3LdLi0gKahFxGfialRkwt1deejK5kxbvZe+Y1OYtVbDCc6XglpEfCosNIT7Lo/j6/
t6UC0qgj98mMrDX6Rx5KSGE5SUglpESkWrOpWYdH8P7r88ji+W7qT/
2LnM36ThBCWhoBaRUhMRFsKDVzrDCcqFhfDbfy3mL1+v4niuhhOcjYJaRErdJQ2qMHl4Erd3b8yHC7cx4JW
5LN2m4QRncs6gNsa8Z4zJMMasKo2CRCQ4lI8I5YmBrfjszi7kFViGvLWQv323jpx8DSf4pZKsqD8A+vm4Dh
EJUl2bVmPaqGRu6FSft+akc/Vr81m1K8vtsvzKOYPaWpsC6L9JRMRnKpYL46/
XtuP92zpx6Hgu17wxn1dmbtRwAg+v7VEbY4YaY1KNMamZmZne+rYiEkQub16D6aOSuapdbcbM3MB1by5g4z
4NJ/BaUFtr37bWJlprE2NjY731bUUkyFSuEMHYGy/hzd92YOehE/zqtXm8k7I5qIcT6NSHiPil/
m1rM21kMpc1i+XZKWu56e1FbDsQnMMJFNQi4rdio8vx9i0defn6BNbuPUL/
V+by8aJtQdc+tSTH8z4DFgLNjTE7jTF/
8H1ZIiIOYwzXdqjH9FHJdGxYhT99tYrfvfcju4NoOIHxxf8zJSYm2tTUVK9/
XxEJbtZaPlm8neemrCU0xPDkwNZc26Euxhi3S7toxpil1trE031NWx8iEjCMMdzcpSHfjUiiRa1oRo9PY+h
HS8k8muN2aT6loBaRgNOwWhSfD+3K4wNaMmdDJn3HzGHKyj1ul+UzCmoRCUihIYY7k5sweVgP6letwL2fLG
P4Zz9x+HjZG06goBaRgBZfM5oJ93TjgT7NmLJyD33HpDB7XYbbZXmVglpEAl54aAjDe8Xz1X3dqVIhgts+W
MKjE1ZwtIwMJ1BQi0iZ0aZuDJOGdeeenk0Zl7qDfmPnsiA98IcTKKhFpEwpFxbKI/
1aMP7ubkSEhfCbdxbz5KTVnMgN3PapCmoRKZM6NqzC5OE9uLVbIz5YsJUBr85l6bZDbpd1QRTUIlJmVYgI4
8mrW/
PpHZ3JzS9kyFsLeH5q4A0nUFCLSJnXLa46U0cmMaRjfd78IZ1Br89n9e7AGU6goBaRoBAdGc7zg9vx7u8TO
XAsl0Gvz+e1WRvJD4DhBApqEQkqvVrWZPrIZPq3rc1LM5zhBJsy/Hs4gYJaRIJOlagIXrvpEl7/
zSVsO3icAa/
O419zN1Pop8MJFNQiErSualeH6aOSSY6vzjOT13LjO4vYfuC422X9DwW1iAS1GtGRvPO7RF4c3I61u4/
Q75UUPlnsX8MJFNQiEvSMMQxJrM/UUclc0qAyj09cxe/fX8KeLP8YTqCgFhHxqFu5PB/
d3pmnB7VmyZaDXDkmhYk/
7XR9da2gFhE5RUiI4ZaujZgyIon4mtGM+k8ad3+8lP3Z7g0nUFCLiJxG4+pRjLurK4/1b8HsdZn0HZPC1FX
uDCdQUIuInEFoiOGuy5ry7fAe1Kkcyd0fL2PUf5aTdbx026cqqEVEzqFZzWgm3tudEb3imZS2m75j5/
DD+tIbTqCgFhEpgfDQEEb1acZX93anUmQ4t76/
hMe+XEl2Tr7Pf3aJgtoY088Ys94Ys8kY86ivixIR8Vdt68XwzbAe3JXchM+XbKff2BQWbT7g0595zqA2xoQ
CbwD9gVbATcaYVj6tSkTEj0WGh/LYgJaMv6sroSGGm95ZxNPfruFknm/
ap5ZkRX0psMlau9lamwt8DgzySTUiIgEksVFVvhuRxC1dGvLuvC386tW5HM/1/
lZIWAleUxfYccqfdwKdf/
kiY8xQYKjnj9nGmPUXWFN1IPCHnJ0fveeyL9jeLwThe94G1aMevOD33PBMXyhJUJeItfZt4O2L/
T7GmFRrbaIXSgoYes9lX7C9X9B79qaSbH3sAuqf8ud6nmciIlIKShLUS4B4Y0xjY0wEcCMwybdliYhIkXNu
fVhr840x9wPTgFDgPWvtah/WdNHbJwFI77nsC7b3C3rPXmPc7golIiJnp5uJIiJ+TkEtIuLn/Caog/
GaujHmPWNMhjFmldu1lAZjTH1jzGxjzBpjzGpjzAi3a/I1Y0ykMeZHY0ya5z3/
n9s1lRZjTKgx5idjzLdu11IajDFbjTErjTHLjTGpXv3e/
rBH7bmmvgHog3OhZglwk7V2jauF+ZgxJhnIBv5trW3jdj2+ZoypDdS21i4zxkQDS4FryvL/
zsYYA0RZa7ONMeHAPGCEtXaRy6X5nDHmASARqGStvcrtenzNGLMVSLTWev2Sj7+sqIPymrq1NgU46HYdpcV
au8dau8zz+6PAWpybr2WWdWR7/hju+eX+6sjHjDH1gF8B/3K7lrLAX4L6dNfUy/S/
wMHOGNMIuARY7G4lvufZAlgOZAAzrLVl/
j0DY4GHgUK3CylFFphujFnqaanhNf4S1BJEjDEVgQnASGvtEbfr8TVrbYG1tj3Ord5LjTFlepvLGHMVkGGt
Xep2LaWsh7W2A06n0fs8W5te4S9BrWvqQcKzTzsB+MRa+6Xb9ZQma+1hYDbQz+1afKw7cLVnz/
Zz4ApjzMfuluR71tpdnn9mABNxtnS9wl+CWtfUg4Dng7V3gbXW2pfdrqc0GGNijTGVPb8vj/OB+Tp3q/
Ita+1j1tp61tpGOP8uf2+tvdnlsnzKGBPl+YAcY0wU0Bfw2mkuvwhqa20+UHRNfS0wzsfX1P2CMeYzYCHQ3
Biz0xjzB7dr8rHuwC04K6zlnl8D3C7Kx2oDs40xK3AWJDOstUFxXC3I1ATmGWPSgB+Bydbaqd765n5xPE9E
RM7ML1bUIiJyZgpqERE/p6AWEfFzCmoRET+noBYR8XMKahERP6egFhHxc/
8PmUHJNjr+NNwAAAAASUVORK5CYII=\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"a = [[4, 3],[-5, 9]]\n",
"b = [20, 26]\n",
"A = np.array(a)\n",
"B = np.array(b)\n",
"np.linalg.inv(A)\n",
"X = np.linalg.inv(A).dot(B)\n",
"X"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "lRVqGxHtfZJv",
"outputId": "df6009ae-99d4-46da-f6a9-ed1b9849bce8"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([2., 4.])"
]
},
"metadata": {},
"execution_count": 86
}
]
},
{
"cell_type": "code",
"source": [
"X = np.linalg.solve(A,B)\n",
"X"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "lmVNL3yRfFOQ",
"outputId": "b48a7193-8d9c-4e0a-e1c3-d306323fa800"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([2., 4.])"
]
},
"metadata": {},
"execution_count": 88
}
]
},
{
"cell_type": "code",
"source": [
"## Factorizacion\n",
"\n",
"from scipy.linalg import lu\n",
"A = np.array([[7, 3, -1, 2]\n",
" ,[3, 8, 1, -4]\n",
" ,[-1, 1, 4, -1]\n",
" ,[2, -4, -1, 6]])\n",
"P, L, U = lu(A)\n",
"P"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "5VFZvOB0dauh",
"outputId": "5529ec4f-79c3-408e-94a6-4589e644ddaa"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[1., 0., 0., 0.],\n",
" [0., 1., 0., 0.],\n",
" [0., 0., 1., 0.],\n",
" [0., 0., 0., 1.]])"
]
},
"metadata": {},
"execution_count": 90
}
]
},
{
"cell_type": "code",
"source": [
""
],
"metadata": {
"id": "W5qwg1DLZpeo"
},
"execution_count": null,
"outputs": []
}
]
}

You might also like