1.- Se evaluará con 2 exámenes parciales, 2 tareas y un proyecto. El Periodo 1 tiene un valor del 40% y el Periodo 2 tiene un valor del 60% de la calificación.
El Periodo i tiene la evaluación Pi como sigue: La Tarea i da derecho al Examen i. Sean Ti y Ei las calificaciones respectivas. Si Ti es al menos 6, entonces Pi es el techo de Ei, sino, Pi es el piso de Ei, donde i=1,2.
Para la Calificación final CF se obtiene como sigue: Si tanto T1 como T2 son al menos 6, entonces CF es el techo de 0.4P1+0.6P2, sino CF es el piso de P1+P2.
Fecha del Examen parcial 1: miércoles de la semana 8.
Fecha del Examen parcial 2: miércoles de la semana 16.
Para poder presentar exámen final (ordinario), es necesario que el alumno haya obtenido 5 en su evaluación, ver artículo 10 liga.
2.- Presentar examen final (ordinario) en 1ra o 2da vuelta, y su calificación se pone en actas.
Temario link
Horario: lunes de 4 a 7pm y miércoles de 4 a 7pm, salón 1523.
Bibliografía
Burden, Faires, Burden. (2017). Análisis Numérico. Cengage Learning.
Boyd, Vandenberghe. (2004). Convex Optimization. Cambrige.
Overton, M. (2025). Numerical Computing with IEEE Floating Point Arithmetic: Including One Theorem, One Rule of Thumb, and One Hundred and Six Exercises, Second Edition. SIAM.
No se guarda calificación.
No se aceptan calificaciones de otros cursos.
No se cambian calificaciones (ni 5 por NP, ni NP por 5).
Las actividades no se reciben de forma extemporánea.
Las tareas se entregan el día del examen.
Los examenes se devuelven al profesor.
La clase termina 5 minutos antes de la hora.
No se aceptan alumnos oyentes.
No se permiten acompañantes de clase.
Uso recomendado de cubrebocas.
No ingerir alimentos en clase.
Limitar el uso del celular en clase incluyendo no hablar por teléfono en clase.
Acerca de Zoom (en caso de ser requerido)
La plataforma que usaremos para tomar clase es zoom mediante el registro del campus virtual.
Previo a cada clase se enviará la liga por su correo pcpuma
Usar una foto de perfil donde se vea su rostro de frente
Acceder a la plataforma con su nombre completo, sin video ni audio para no sobrecargar la red
La participación será a través de video y audio
· Sobre Julia: En este curso se hará uso del lenguaje de programación de Julia ya que es un lenguaje de programación de alto nivel que ofrece una facilidad comparable a Python, pero una potencia y velocidad comparable al lenguaje C. Julia es un lenguaje de programación dinámico creado por el Departamento de Ciencias de la Computación del MIT en el año 2009; desarrollado por Jeff Bezanson, Stefan Karpinski, Viral B. Shah y Alan Edelman, liberado gratuitamente en 2012.
Karpinski, uno se su creadores, comenta que Julia empodera a científicos de datos, físicos, comerciantes de finanzas cuantitativas y diseñadores de robots para resolver problemas sin tener que convertirse en programadores informáticos o contratar programadores informáticos para traducir sus funciones en código informático, ver [D’Cunha, 2017]. Para ver la eficiencia de Julia en un gráfico, ver [JuliaLang.org-Contributors, 2023].
Actualmente Julia está en constante crecimiento. Para dimensionar esto, se tiene como referentes a las grandes compañias como Amazon, Apple, Disney, Facebook, Ford, Google, Blackrock, IBM, Microsoft o NASA, las cuales están contratando significativamente a programadores de Julia, ver [D’Cunha, 2017]. De acuerdo con GitHub, en 2017, Julia esta en el top 10 de lenguajes con mayor desarrollo dentro de su plataforma [Claster, 2017].
· Sobre Jupyter Notebook: Por otro lado, el proyecto Jupyter es un software de código abierto, gratuito y libre. Uno de sus productos es Jupyter Notebook que es un entorno interactivo basado en la web para crear documentos. Contiene una lista ordenada de celdas de entrada/salida para contener código, texto (incluyendo LaTeX), matemáticas o gráficos. Soporta entornos de ejecución, llamados núcleos, en varios lenguajes, tales como Julia, R o Python. Sus archivos usan la extensión .ipynb.
La interfaz computacional de Jupyter Notebook es similar a la interfaz de notebook de otros programas como Mathematica, Maple o SageMath que se originó con Mathematica en la década de 1980, ver [Somers, 2018].
· Sobre la instalación link
Si todo va bien, ya podremos ejecutar Julia dando clic en el ícono, el cual abrirá una terminal y aparecerá la línea
julia>
Frecuentemente requerimos instalar paquetes, en la terminal indica como ir al modo de instalar paquetes, esto es, tecleamos
julia> ]
y automáticamente aparecerá
(@v1.9) pkg
"v1.9" es la versión instalada de Julia. Allí vamos a escribir
(@v1.9) pkg add IJulia
+ Enter a lo que comenzará la instalación de ese paquete para poder iniciar los Notebooks. Posteriormente escribimos
(@v1.9) pkg add Plots
+ Enter a lo que comenzará la instalación del paquete para graficar. Para saber los paquetes instalados, escribimos
(@v1.9) pkg status
Para salir del modo de instalación de paquetes tecleamos
(@v1.9) pkg ⌫
es decir, la tecla "Del" o "Backspace", a lo obtenemos
julia>
Ahora escribimos
julia> using IJulia
para compilar ese paquete. Posteriormente escribimos
julia> notebook()
Esto nos permitirá el acceso a Julia en el repositorio de Jupyter. La primera vez que se corren estos comandos solicita el permiso de una instalación mínima de Python vía Conda. Lo permitiremos al escribir
julia> y
En el caso de Windows, podría generarse un error de instalación que se puede evitar deshabilitando temporalmente su antivirus. Entonces, en nuestro navegador se despliega una página donde se va a trabajar en los Notebooks.
En esa página se muestra una carpeta que está en su ordenador, como podrá verificar. Para abrir los notebooks previamente descargados (o clonados) nos dirigimos a la carpeta “Downloads” (o “Descargas” según el idioma de su ordenador). Dando clic sobre los archivos .ipynb accedemos a ellos.
Para cerrar correctamente damos clic en "Quit" (parte superior-derecha del navegador) en la primer página desplegada. Ya puede cerrar la página e ir a la terminar de Julia, donde verá nuevamente .
julia>
Para salir correctamente de la terminal escribimos exit() + Enter.
Estaré actualizando la tarea por semana.
TAREA 1.
Semana 1.
Repasar tipos de error, notación asintótica, solución numérica de una variable.
Realizar un resumen de las unidades 1 (Arturo) del libro de Overton.
Notebook: Introducción al uso de Julia liga
Implementar en Julia el algoritmo 6.1, 6.2 y 6.3
Semana 2.
Realizar un resumen de las unidades 2(Leo)&3(Sebas) del libro de Overton.
Notebooks: Uso de números en Julia liga & Operaciones de Julia liga
Implementar en Julia el algoritmo 6.4, 6.6 y 6.7.
Semana 3.
Realizar un resumen de las unidades 4(Alfredo)&6(Rafael) del libro de Overton.
Notebooks: Uso de funciones en Julia liga & Arreglos de Julia liga
Revisar superficies cuádricas y graficar usando el polinomio característico así como los valores y vectores característicos de
2x^2-√3 xy+y^2=1.
2x^2+y^2+z^2+2xy+2xz=9.
2xy+2xz+2yz-4x +6y +3=0.
3x^2-y^2+4xz-10x +2y-4z +3=0.
Implementar en Julia el algoritmo 9.1&9.2 que incluyan el procedimiento ∆2 de Aitken.
Semana 4.
Realizar un resumen de la unidad 5(Arturo) del libro de Overton.
Notebooks: Uso de Markdown en Julia liga & uso de datos en Julia liga
Implementar en Julia el algoritmo 9.5, 9.6 & el algoritmo de Jacobi (para valores y vectores propios).
Semana 5.
Realizar un resumen de la unidad 7(Bruno)&8(Sebas) del libro de Overton.
Notebooks: Instrucciones de Julia liga & uso de guardar una función en Julia liga
Implementar en Julia el algoritmo 7.1 &7.2.
Hacer un resumen sobre Matriz pseudoinversa.
De los ejemplos de la semana 3, considere el sistema Ax=b al obtener los vectores propios. Aplique la matriz pseudoinversa para obtener la solución de mínimos cuadrado para cada valor propio.
Semana 6.
Realizar un resumen de las unidades 9(Leo) del libro de Overton.
Implementar en Julia el algoritmo de Descomposición en Valores Singulares.
Semana 7.
Realizar un resumen de las unidades 10(Sebas)&11(Alfredo) del libro de Overton.
Del ejemplo de https://juliastats.org/MultivariateStats.jl/dev/pca/ aplicar el método de la matriz de covarianzas de manera independiente a la función de Julia.
Del ejemplo de https://dlegorreta.wordpress.com/2015/03/13/un-ejemplo-sencillo-sobre-analisis-de-componentes-principalespca-principal-components-analysis/ realizarlos con Julia.
Tarea 2
Semana 9.
Realizar un resumen de las unidades 12(Bruno)&13(Rafael) del libro de Overton.
Implementar en Julia el algoritmo de Diferencias divididas, Hermite & trazadores cúbico.
Realizar ejercicios del capítulo correspondiente de Burden (diferencias divididas y polinomio de Hermite).
Realizar ejercicios del capítulo correspondiente de Burden (trazadores cúbicos).
Semana 10.
Realizar un resumen de las unidades 14(Bruno)&15(Arturo) del libro de Overton.
Implementar en Julia el algoritmo de ...
Realizar al menos 2 ejercicios de cada subsección 8.2-8.6 del libro de Burden (teoría de aproximación).
Semana 11.
Realizar un resumen de las unidades 16(leo) del libro de Overton.
Realizar 10 ejercicios del capítulo 2 del libro de Boyd (conjuntos convexos).
Semana 12. Realizar 10 ejercicios del capítulo 3 del libro de Boyd (funciones convexas).
Llenar la encuesta de enseñanza-aprendizaje: https://encuestas.acatlan.unam.mx/aprendizaje/
Semana 13. Realizar 10 ejercicios del capítulo 4 del libro de Boyd
Semana 14. Realizar 10 ejercicios del capítulo 5 del libro de Boyd
Semana 15. Realizar 10 ejercicios del capítulo 9 del libro de Boyd (Minimización sin restricciones).
Software
Sitio Web
Akili link
Videos
El ingenioso ingenio de la calculadora Video
Complemento a 9 Video
Computadora de canicas Video
Computadoras de bombillas Video
Futuro de las Computadoras Video
Computadoras Analógicas Video
Conversor a puntos flotantes sitio
Algoritmo rápido de la raíz cuadrada video
El Universo es hostil con las computadoras Video
El algoritmo más importante 1 Video
El algoritmo más importante 2 Video
Sobre la TRF Video
Sobre autotune Video
Factorización de matrices para CD Video
Otros recursos liga