Métodos Numéricos:
Introducción a Python
Tatiana Espinosa Bautista1
1 tespinosa@[Link]
Ciencias Básicas
Facultad de Ingenierı́as
Universidad de San Buenaventura, Bogotá, Col.
February 8, 2024
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 1 / 17
1 Python
2 Módulos Matemáticos
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 2 / 17
¿Qué es Python?
1 Python es un lenguaje orientado a objetos que se desarrolló a fines de
la década de 1980 como un lenguaje de secuencias de comandos..
2 Es un lenguaje para desarrollar aplicaciones de ingenierı́a.
3 Los programas de Python no se compilan en código de máquina, sino
que los ejecuta un intérprete.
4 El desarrollo de Python ha estado claramente influenciado por Java y
C++, pero también hay una notable similitud con MATLAB (otro
lenguaje interpretado, muy popular en la academia y enseñanza de la
ingenierı́a).
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 3 / 17
Para tener una idea de las similitudes y diferencias entre MATLAB y
Python, veamos los códigos escritos en los dos lenguajes para la solución
de ecuaciones simultáneas Ax = b por eliminación de Gauss.
Figure: Comparación entre Matlab y Python
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 4 / 17
Operadores aritméticos, de asignación y comparación
Figure: a. Operadores aritméticos. b. Operadores de asignación. c. Operadores
de comparación
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 5 / 17
Módulos Matemáticos
La mayorı́a de las funciones matemáticas no están integradas en el núcleo
de Python, pero están disponibles cargando el módulo matemático. Hay
tres formas de acceder a las funciones de un módulo:
from math import *
from math import func1, func2, . . .
import math
Un módulo también se puede hacer accesible bajo un alias. Por ejemplo, el
módulo matemático puede estar disponible bajo el alias m con el comando
import math as m
import math as m
print([Link]([Link](0.5)))
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 6 / 17
Creando arreglos
Los arreglos se pueden crear de varias maneras. Una de ellas es usar la
función array para convertir una lista en una matriz:
from numpy import array
a = array([[2.0, -1.0],[-1.0, 3.0]])
print(a)
La función arange(from,to,increment) se conoce como la función de
rango, devuelve una matriz en lugar de una secuencia.
from numpy import *
print(arange(2,10,2))
print(arange(2.0,10.0,2.0))
print(ones((2,2)))
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 7 / 17
Ejemplos
Escriba las lı́neas de código y comente las funciones de cada una de ellas
from numpy import *
A = array([[4,-2,1],[-2,4,-2],[1,-2,3]],float)
b = array([1,4,3],float)
print(diagonal(A))
print(diagonal(A,1))
print(trace(A))
print(identity(3))
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 8 / 17
Algebra lineal
El módulo numpy viene con un módulo de álgebra lineal llamado linalg
que contiene tareas rutinarias como la inversión de matrices y la solución
de ecuaciones.
from numpy import array
from [Link] import inv,solve
A = array([[ 4.0, -2.0, 1.0], [-2.0, 4.0, -2.0], [ 1.0, -2.0, 3.0]])
b = array([1.0, 4.0, 2.0])
print(inv(A))
print(solve(A,b))
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 9 / 17
Graficando con [Link]
El módulo [Link] es una colección de funciones de trazado 2D
que proporciona a Python una funcionalidad de estilo MATLAB. Al no ser
parte del núcleo de Python, requiere una instalación por separado.
import [Link] as plt
from numpy import arange,sin,cos
x = arange(0.0,6.2,0.2)
[Link](x,sin(x),’o-’,x,cos(x),’-’)
[Link](’x’)
[Link]((’sine’,’cosine’),loc = 0)
[Link](True)
[Link](’[Link]’,format=’png’)
[Link]()
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 10 / 17
Estilos de lı́nea y localización:
Los estilos de lı́nea y marcador se especifican mediante los caracteres de
cadena que se muestran en la tabla a. (solo se muestran algunos de los
caracteres disponibles). Los códigos de ubicación (loc) para la ubicación
de la leyenda se muestran en la tabla b.
Figure: a. Estilos de lı́nea. b. Códigos de ubicación
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 11 / 17
Ejemplo
Muestre el resultado de ejecutar el siguiente código:
import [Link] as plt
from numpy import arange,sin,cos
x = arange(0.0,6.2,0.2)
[Link](2,1,1)
[Link](x,sin(x),’o-’)
[Link](’x’);[Link](’sin(x)’)
[Link](True)
[Link](2,1,2)
[Link](x,cos(x),’ˆ-’)
[Link](’x’)
[Link](’cos(x)’)
[Link](True)
[Link]()
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 12 / 17
Ejemplos
Desarrolle un programa para determinar las raı́ces de una ecuación
cuadrática,
ax 2 + bx + c,
en python. Utilice un procedimiento de subrutina para calcular las
raı́ces (sean reales o complejas).
a= 1, b = 6, c = 2;
a = 0, b = –4, c = 1.6;
a = 3, b = 2.5, c = 7.
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 13 / 17
Ejemplos
La función coseno puede evaluarse por medio de la serie infinita
siguiente:
x2 x4 x6
cos(x) = 1 −
+ − ···
2! 4! 6!
Escriba un algoritmo para implementar esta fórmula de modo que
calcule e imprima los valores de cos x conforme se agregue cada
término de la serie. En otras palabras, calcule e imprima la secuencia
de valores hasta el término de orden n que usted elija. Para cada uno
de los valores anteriores, calcule y haga que se muestre el error
porcentual relativo:
valor verdadero − valor aproximado
%error = × 100
valor verdadero
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 14 / 17
Ejercicios
Programe en Python las siguientes expresiones y muestre el resultado para
n=10, n=50, n=100, n=1000
1
n r
X iπ iπ
s= sin( )
100 100
i=0
2
n
X 1
f (n) =
i4
i=1
3
x2 x3 xn
ex = 1 + x + + + ··· con x = 0.5
2! 3! n!
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 15 / 17
Ejercicios
Programe en Python las siguientes expresiones y muestre el resultado para
n=10, n=50, n=100, n=1000
1
x2 x4 x6 x8
cos(x) = 1 − + − + − ··· con x = 0.3π
2 4! 6! 8!
2 Evalúe e −5 con el uso de dos métodos
x2 x3
e −x = 1 − x + − + ···
2 3!
1
e −x =
ex
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 16 / 17
Referencias bibliograficas I
[1] Holly Moore, MATLAB para ingenieros, Pearson Prentice Hall
[2] [Link]
Tatiana Espinosa Bautista (USBBOG.) Métodos Numéricos: Introducción a Python February 8, 2024 17 / 17