Documentos de Académico
Documentos de Profesional
Documentos de Cultura
para
Análisis Numérico
¡Hola!
2
Preguntas a los
participantes
Conciendo a los asistentes
7
Introducción al
1 ambiente de trabajo
Instalación de App
Manejo en Línea
Manejo en PC
Instalación de la App
⊳ En la Play Store
buscar pydroid 3.0
⊳ Instalar la aplicación
9
Instalación de Complemento
⊳ En la Play Store
buscar pydroid
repository plugin
10
Manejo del interprete de comandos
11
Mi primer hola mundo
12
Aplicación para IOS
13
Manejo en Línea
15
Manejo del intérprete como
calculadora
16
Ejercicio 1
Realizar las cuatro operaciones básicas de forma individual y
mostrarlo en el intérprete
Combinar las operaciones
%
Obtener el resultado de un número elevado a una potencia
**
Resolver un problema en el que intervengan todas las
operaciones del ejercicio 1 y 2 que requiera el uso de paréntesis
18
Manejo de variables,
2 constantes y
operaciones básicas
Manejo de variables
20
Nombre de variables
Ejemplos Válido Explicación
a Sí El programa se ejecutará con una variable que solamente contenga un
carácter, sin embargo, es una mala práctica dado que el código no será
legible si regresamos a interpretarlo nosotros como personas.
numeroInt Sí Siempre es recomendable combinar minúsculas con mayúsculas para
identificar ya sea tipo de dato o alguna abstracción de la realidad. La variable
representa un valor numérico entero para la persona que lo programa y muy
posiblemente también quien revise el código.
Num ent No No pueden existir espacios entre caracteres para nombrar una variable
lim_inferior Sí También se acostumbra separar palabras en variable por medio de guiones
bajos.
lim-sup No El programa no se ejecutara por que el símbolo “-“ se utiliza para la
diferencia entre variables por lo que el programa no podrá interpretarlo
correctamente
2var No Una variable no puede iniciarse con un número
21
Ejercicio 3
Para las siguientes variables indicar si son correctas o no
var1
var_1
nombre apellidos
3color
colorEntero
22
Variables numéricas
24
Comentarios
▸ ‘’’
25
Variables de tipo Lógico
26
Operadores de comparación
== Igual a
!= Distinto a
28
Ejercicio 5
Asignar valores a cinco variables diferentes y utilizar los seis
operadores de comparación
29
Operadores booleanos
30
Tabla de verdad and
31
Tabla de verdad or
32
Tabla de verdad not
Entrada Salida
False True
True False
33
Ejemplos:
34
Ejercicio 6
Calcule el resultado de la expresión A < B and C or D, utilizando
los valores de la tabla que se muestra
A B C D Resultado
5 4 True False
1 10 False True
9 5 False False
8 7 True True
-1 -1 False True 35
Variables de cadenas de caracteres
String (Cadena)
A n i t a l a v a l a t i n a
Marcador Tipo
%d Números enteros
%s Cadena de
caracteres
%f Números
decimales 40
Ejemplos de composición
⊳ >>>calif=10
⊳ >>>print(“ La calificación es %d “ % calif)
⊳ >>>nombre=“Daniel”
⊳ >>>print(“El alumno %s obtuvo buena calificación” %
nombre )
41
Composición de enteros
42
Composición de números decimales
45
Ejercicio 7
Crear las sentencias necesarias para expresar las siguientes
oraciones ocupando variables
46
Entrada de datos
47
Ejemplos de uso de input
48
Conversiones
52
Condicionales (bloque de ejecución)
⊳ En Python utilizamos if
if <condición> :
bloque que cumple con la condición
El símbolo “” indica que se debe dar un tabulador para que esa línea pertenezca al
bloque del condicional y por lo tanto se ejecute.
*Es muy importante destacar que muchas veces damos tabulador o espacios
accidentalmente y esto hace que el intérprete nos mande error, por lo que debes de
verificar cualquier espacio indeseable.
53
Ejemplo de condiciones
55
else
56
Ejercicio 9.2
Realizar el siguiente programa
⊳ Escriba un programa que pida el salario de un empleado y calcule el varlor
del aumento. Para salarios superiores a $20,000.00, calcule un aumento
del 10% y para salarios inferiores o iguales un aumento del 15%.
⊳ Para este ejemplo utilizar else
57
elif
59
Estructuras de repetición
⊳ while <condición>:
▸ Bloque
60
Ejemplo de incremento de un número
⊳ x=1
⊳ while x<=4:
▸ print(x)
▸ x=x+1
61
Ejemplo de incremento de un número
ingresado por el usuario
▸ x=x+2
63
Acumuladores
64
Calculando promedio de calificaciones
66
Interrupción de la repetición con
ejemplo
⊳ suma=0
⊳ while True:
▸ valor=int(input(“Digite un número a sumar o 0 para salir”))
▸ If v == 0 :
▸ break
▸ suma=suma+valor
⊳ print(suma)
67
3 Uso de funciones
Funciones
69
Declarar una función propia
▸ …
▸ <return> valor
70
Ejemplo de una nueva función
⊳ def suma(a,b):
▸ print(a+b)
suma(4,5)
⊳ def suma(a,b):
▸ return a+b
print(suma(5,4))
71
Variables Locales y Globales
72
Ejemplo:
▸ print(“-” * len(Empresa))
print(“ %s ” %varLocal)
Este código no se ejecutará 74
Listas
76
Modificar a una lista
⊳ >>>Lista=[20,11,30]
⊳ >>>Lista[1]=-1
⊳ Lista
⊳ [20, -1, 30]
77
Ejemplo de calculo del promedio
⊳ Calificaciones= [10,9,8,7,9]
⊳ suma=0
⊳ cont=0
⊳ while cont < 5:
▸ …
78
Copiar y dividir listas
⊳ Lista1=[1,2,3,4]
⊳ Lista2=Lista1
⊳ Lista2[1]=10
⊳ >>>Lista1
⊳ [1 ,10 ,3 ,4]
⊳ >>>Lista2
⊳ [1 ,10 ,3 ,4]
79
Copia sin referencia
⊳ Lista1=[1,2,3,4]
⊳ Lista2=Lista1[:]
⊳ Lista2[0]=10
⊳ print(Lista1)
⊳ print(Lista2)
80
Dividiendo una lista
⊳ Lista=[1,2,3,4,5]
⊳ print(Lista[0:5])
▸ [1, 2, 3, 4, 5]
⊳ print(Lista[:5])
▸ [1, 2, 3, 4, 5]
⊳ print(Lista[1:3])
⊳ print(Lista[1:4])
⊳ print(Lista[3:])
⊳ print(Lista[:3])
⊳ print(Lista[-1])
⊳ print(Lista[-2])
81
Impresión de los elementos de una
Lista con for
82
Utilizando a for como contador
⊳ for i in range(10) :
▸ print( i )
83
4 Error y Aproximación
Concepto de error
85
Obtención del error
Error Absoluto
Se define como el valor absoluto de la diferencia del valor
verdadero menos el valor aproximado.
𝐸𝑟𝑟𝑜𝑟 𝑎𝑏𝑠𝑜𝑙𝑢𝑡𝑜 = |𝑉𝑎𝑙𝑜𝑟 𝑟𝑒𝑎𝑙 – 𝑉𝑎𝑙𝑜𝑟 𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑑𝑜|
86
Obtención del error
Error Relativo
Se define como la relación del error absoluto con el valor real
𝐸𝑟𝑟𝑜𝑟 𝐴𝑏𝑠𝑜𝑙𝑢𝑡𝑜
𝐸𝑟𝑟𝑜𝑟 𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑜 =
𝑉𝑎𝑙𝑜𝑟 𝑅𝑒𝑎𝑙
𝐸𝑟𝑟𝑜𝑟 𝐴𝑏𝑠𝑜𝑙𝑢𝑡𝑜
𝐸𝑟𝑟𝑜𝑟 𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑜 𝑃𝑜𝑟𝑐𝑒𝑛𝑡𝑢𝑎𝑙 = 𝑥100
𝑉𝑎𝑙𝑜𝑟 𝑅𝑒𝑎𝑙
87
Ejemplo de obtención del error
Ejemplo:
Calcular el valor de la constante de Euler 𝑒 mediante la siguiente
expresión
∞
𝟏
𝒆=
𝒏!
𝒏=𝟎
para el primero, segundo, tercero, cuarto y quinto término de la
serie. Tomar como valor verdadero 2.71828. 88
Aproximaciones
Primer término
𝟎
𝟏 𝟏
𝒆= = =𝟏
𝒏! 𝟎!
𝒏=𝟎
1.71828
Error Relativo = = 0.63212
2.71828
0.71828
Error Relativo = = 0.26424
2.71828
90
Error Relativo Porcentual= 26.42%
Aproximaciones
92
Convergencia y estabilidad
Método Iterativo
Llamaremos método iterativo a aquel que toma Conclusiones del ejemplo
como referencia a valores previamente obtenidos.
Al tomar como referencia el
1. e1=e0+ 1.0000=2.00000
resultado anterior se puede
2. e2=e1+ =0.500000=2.50000
acercar al resultado de una
3. e3=e2+ .166667=2.66667
4. e4=e3+ .041667=2.70833
manera mucho más rápida
Donde e0, e1, e2, e3, e4 son los respectivos valores del
número e aproximados para cada término de la
93
serie.
Convergencia de un método numérico
94
Estabilidad de un método numérico
Ejemplo de convergencia y
⊳ Un método será estable estabilidad
si su comportamiento
en cuanto al error es
lineal. Lo que implica
que hay una mayor
garantía de que exista
una convergencia
95
Métodos cerrados para obtención de
raíces
⊳ Los métodos empleados en este
tema tienen el objetivo de
obtener las raíces de funciones
que no pueden ser resueltas de
manera algebraica.
⊳ f(x)=0
96
Método de Bisección
97
Expresión del método de bisección
𝑎+𝑏
⊳ 𝑐=
2
⊳ Si existe cambio de signo entre el nuevo
intervalo f(a) y f(c) o f(b) y f(c) se elige
nuevamente el límite superior o inferior
dependiendo el caso.
98
Ejemplo:
99
Solución
Tolerancia de 0.1
Ite a b c f(a) f(b) f(c) tol
1 1 3 2 -1 23 5 2
2 1 2 1.5 -1 5 0.875 1
3 1 1.5 1.25 -1 0.875 -0.297 0.5
-
4 1.25 1.5 1.375 0.297 0.875 0.225 0.25
-
5 1.25 1.375 1.313 0.297 0.225 -0.0515 0.125
-
6 1.3125 1.375 1.344 0.051 0.225 0.0826 0.062
Raíz 1.3438
100
Método de interpolación (regla falsa)
103
Métodos abiertos para obtención de
raíces (Newton-Rapson)
𝑓(𝑥𝑖 )
𝑥𝑖+1 = 𝑥𝑖 −
𝑓′(𝑥𝑖 )
104
Criterio de convergencia de
Newton-Rapson
106
Solución
Ite xi xi1 ea
1 0.5 0.5 0.5
2 0.566311 0.566311 0.066311
3 0.567143 0.567143 0.000832
4 0.567143 0.567143 1.25E-07
Raiz encontrada 0.567143
107
Resolución de sistemas de ecuaciones
⊳ En ingeniería existen diversos problemas que se pueden resolver con sistemas
de ecuaciones de tipo algebraico.
⊳ Un sistema de ecuaciones lineal tiene la siguiente forma:
⊳ Compatible Determinado
⊳ Compatible Indeterminado
⊳ Incompatible
109
Uso de la librería numpy
𝐷 + 𝑅 𝑥ҧ = 𝑏ത
𝐷𝑥ҧ + 𝑅𝑥ҧ = 𝑏ത
𝐷𝑥ҧ = 𝑏ത − 𝑅𝑥ҧ
𝑥ҧ = 𝐷−1 𝑏ത − 𝐷−1 𝑅𝑥ҧ
Si para la expresión anterior indicamos 𝑥ҧ 𝑘+1 y 𝑥ҧ 𝑘
se obtiene la ecuación matricial de recurrencia:
𝑥ҧ 𝑘+1 = 𝐷 −1 𝑏ത − 𝐷 −1 𝑅𝑥ҧ 𝑘
112
Solución aproximada por Jacobi
1
𝑥1𝑘+1 = (𝑏1 −𝑎12 𝑥2𝑘 − 𝑎13 𝑥3𝑘 − ⋯ − −𝑎1𝑛 𝑥𝑛𝑘 )
𝑎11
1
𝑥2𝑘+1 = (𝑏2 −𝑎21 𝑥1𝑘 − 𝑎23 𝑥3𝑘 − ⋯ − −𝑎2𝑛 𝑥𝑛𝑘 )
𝑎22
⋮
1
𝑥𝑛𝑘+1 = (𝑏𝑛 −𝑎𝑛1 𝑥1𝑘 − 𝑎𝑛2 𝑥2𝑘 − ⋯ − −𝑎𝑛𝑛−1 𝑥𝑛−1
𝑘
)
𝑎𝑛𝑛
113
Convergencia
114
Vector inicial
115
Ejercicio:
116
Ecuación Diferencial
117
Ejemplo de expresión de una ecuación
diferencial
𝑑𝑦
= 2𝑥
𝑑𝑥
Se requiere obtener a 𝑦 que relaciona con 𝑦 de la
ecuación anterior
𝑑𝑦 = 2𝑥𝑑𝑥
න 𝑑𝑦 = න 2𝑥 𝑑𝑥
𝑦 = 𝑥2 + 𝑐 118
Interpretación geométrica de la
solución
⊳ Lo anterior implica que podemos tener una familia de
soluciones
119
Solución única de una ecuación
diferencial
⊳ Para obtener la solución única de una ecuación diferencial
debemos tener al menos un punto de la curva solución para
garantizar que es la que buscamos.
⊳ Para el tema que abordaremos en análisis numérico siempre
debemos tener condiciones iniciales.
120
Método de Euler para orden 1
121
Despejando
122
Ejemplo:
123
Solución
125
Ejemplo:
126
Solución: Primera iteración
𝑥0 = 0
𝑥1 = 0.2
𝑚1 = 𝐹 𝑥𝑖 , 𝑦𝑖 = 2 1 + 4 0 + 2 = 4
𝑢 = 𝑦𝑖 + ℎ𝑚1 = 1 + 0.2 4 = 1.8
𝑚2 = 𝐹 𝑥𝑖+1 , 𝑢 = 2 1.8 + 4 0.2 + 2 = 6.4
𝑦1 = 1 + 0.2 0.5 6.4 + 4 = 2.04
127
Solución: Segunda iteración
𝑥1 = 0.2
𝑥2 = 0.4
𝑚1 = 𝐹 𝑥𝑖 , 𝑦𝑖 = 2 2.04 + 4 0.2 + 2 = 6.88
𝑢 = 𝑦𝑖 + ℎ𝑚1 = 2.04 + 0.2 6.88 = 3.416
𝑚2 = 𝐹 𝑥𝑖+1 , 𝑢 = 2 3.416 + 4 0.4 + 2 = 10.432
𝑦2 = 2.04 + 0.2 0.5 6.88 + 10.432 = 3.7712
128
Tabulación de Resultados
x y
0 1
0.2 2.04
0.4 3.771
0.6 6.525
0.8 10.794
1 17.302
129
Gracias por tu
interés