Download Introducción a Python - División de Ciencias e Ingenierías

Document related concepts
no text concepts found
Transcript
Métodos Numéricos: Enero
2016
Selim Gómez Ávila
División de Ciencias e Ingenierías
Universidad de Guanajuato
9 de febrero de 2016 / Inicio de cursos
1 / 17
Agenda previa
1. Horario de la clase del viernes: ?
2. Evaluación: Entrega de trabajos (tareas + proyectos) 45% + Exámenes
Parciales (4) 45% + Participación en Clase 10%
3. Lo que se presente
2 / 17
Brevísima introducción a Python
▶
▶
▶
▶
▶
Python es un lenguaje orientado a objetos.
El lenguaje no es compilado, sino que utiliza un intérprete. (Menores
tiempos de desarrollo.)
Es de código abierto, y está disponible para esencialmente cualquier
sistema operativo.
Una de las prioridades del diseño del lenguaje es la legibilidad del
código.
Las variables son de tipo dinámico.
3 / 17
Brevísima introducción a Python: operadores &
comandos
Palabras reservadas en Python:
and, as, assert, break, class, continue, def, del,
elif, else, except, False, finally, for, from,
global, if, import, in, is, lambda, None, nonlocal,
not, or, pass, raise, return, True, try, with, while,
yield .
Operaciones aritméticas convencionales, y dos un poco menos
convencionales:
+, -, *, /, **
% # División modular
// # División entera
4 / 17
Brevísima introducción a Python: operadores &
comandos
Python incluye versiones aumentadas del operador de asignación:
+=, -=, *=, /=, **=, %=
Por ejemplo, a+=b corresponde a a = a + b.
Tenemos también los operadores de comparación convencionales:
<, >, <=, >=, ==, !=
5 / 17
Brevísima introducción a Python: objetos básicos
Cadenas (strings), que son objetos inmutables:
string = 'Diagramas de Feynman' # Esto es una cadena
Tuplas (tuples), que son inmutables como las cadenas
tuple = ('Cadena', 4, (1,2,3) ) # Esto es una tupla
Listas (lists), que son análogas a las tuplas, pero son objetos mutables
list = [1.0, .0, 3.0]
# Esto crea una lista
6 / 17
Brevísima introducción a Python: print
Para mostrar información en pantalla usamos
print (object1, object2, . . .)
Por ejemplo:
a = 1234.56789
b = [2, 4, 6, 8]
print(a,b)
print(’a =’,a, ’\nb =’,b)
resulta en las líneas
1234.56789 [2, 4, 6, 8]
a = 1234.56789
b = [2, 4, 6, 8]
7 / 17
Brevísima introducción a Python: condicionales
La construcción condicional es
if condition1:
block1
elif condition2:
block2
else:
block3
El primer bloque se ejecuta si condition1 es verdadera; el segundo si
condition2 es verdadera, etcétera. Podemos agregar tantas cláusulas
elif como deseemos. El último bloque se ejecuta si ninguna de las
cláusulas if-elif.
8 / 17
Brevísima introducción a Python: condicionales
Por ejemplo, este programa
def sign_of_a(a):
if a < 0.0:
sign = ’negative’
elif a > 0.0:
sign = ’positive’
else:
sign = ’zero’
return sign
a = 1.5
print ’a is ’ + sign_of_a(a)
produce el resultado
a is positive
9 / 17
Brevísima introducción a Python: control de flujo
Tenemos una construcción
while condition :
block
else:
block
Y otra
for target in sequence:
block
Por último, tenemos una construcción que detiene la iteración; sirve para
“saltar” el resto del bloque, normalmente cuando se satisface una condición.
continue
10 / 17
Brevísima introducción a Python: control de flujo
x = [] # Esto crea una lista vacía
for i in range(1,100):
if i%7!= 0: continue
# Si i no es divisible por 7, omitir
# el resto del bloque
x.append(i) # Append i to the list
print (x)
El programa arroja como resultado
[7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98]
11 / 17
Brevísima introducción a Python: ingreso de datos
Esta función acepta una línea de input y la convierte a una cadena.
input(prompt)
Para convertir a un valur numérico, usamos
eval(string)
Por ejemplo:
a = input('Input a: ')
print (a, type(a) ) # Print a and its type
b = eval(a)
print (b,type(b) ) # Print b and its type
12 / 17
Brevísima introducción a Python: archivos
file_object = open(filename, action)
donde filename es una cadena que identifica el archivo, y acción es una
de las siguientes:
'r'
'w'
'a'
'r+'
'w+'
'a+'
#
#
#
#
#
#
#
Leer un archivo existente.
Escribir a un archivo; crearlo si no existe.
Adjuntar a un archivo
Leer y escribir de un archivo existente
Igual que r+, crear archivo si no existe.
Igual que w+, pero los datos
se adjuntan al final.
13 / 17
Hay dos ramas en los métodos numéricos
1. Desarrollo de algoritmos - ¿cómo resolvemos el problema?
2. Análisis de algoritmos - ¿qué tan buena es nuestra solución?
En particular, hay tres características de los algoritmos con números reales
que en cierta medida entran en conflicto:
1. La exactitud (o consistencia) del algoritmo
2. La estabilidad del algoritmo
3. Los efectos de la aritmética de precisión finita (el redondeo).
La eficiencia de un algoritmo es una combinación de las tres, junto con
consideraciones de su complejidad.
14 / 17
Ideas centrales del curso
A good numerical method gives you nearly the right solution to nearly the
right problem.
▶
Conceptos fundamentales: errores y aproximación
▶
Truncación y redondeo
Raíces de ecuaciones polinomiales
Álgebra lineal y sistemas de ecuaciones
▶
▶
▶
▶
Interpolación y ajuste de modelos
Diferenciación e integración numérica
15 / 17
Evaluación del curso
Será continua y permanente y se llevará a cabo en 3 momentos:
▶
Diagnóstica: Al inicio del curso para determinar el nivel promedio de la
clase y subsanar posibles fallas.
▶
Formativa: Mediante la participación en clase, en la realización de
tareas grupales y la participación en el laboratorio.
▶
Sumaria: Exámenes escritos, entrega de cuaderno de tareas, entrega de
bitácora de laboratorio, autoevaluación, co-evaluación.
Ponderación (Sugerida):
▶
Entrega de trabajos (tareas + proyectos) 45%
▶
Exámenes Parciales (4) 45%
Participación en Clase 10%
▶
16 / 17
¿Cómo localizarme?
[email protected]
fisica.ugto.mx/~selimibn/numericos
Mi oficina es la de Mauro Napsuciale, en el edificio B (aunque eso puede
cambiar) y mi extensión la 8423 (ídem).
17 / 17