Octave
Estas clases han servido de introdución al lenguaje Octave, mismo que pueden descargar en:
https://ftp.gnu.org/gnu/octave/windows/
Para más informarción y para reforzar su aprendizaje sugerimos la lectura del primer capítulo de la bibliografía principal del curso:- Introduction to Scientific Computing - A Matrix-Vector Approach Using Matlab - 2nd Edition - Charles F. Van Loan - Mfiles
Es muy importante que por su cuenta avancen en la lectura y en la ejecución en el software, este tipo de conocimiento sólo se adquiere con la práctica.
Estos fueron algunos de los programitas que hicimos hoy:
Uso de ciclo FOR%Programita que calcula 'n' aproximaciones a la raíz cuadrada de un número 'y'
n=30;
y=143;
x=zeros(1,n);
x(1)=3;
for i=2:n
x(i)=(x(i-1)+y/x(i-1))/2;
end
plot(x)%Programita que calcula el factorial de un entero 'n!' y grafica n! vs n
n=30;
x=zeros(1,n);
x(1)=1;
for i=2:n
x(i)=x(i-1)*i;
end
plot(x)
Evaluación de una función%Gráfica del sin(x) en el intervalo [0,2*pi]
x=linspace(0,1,10);
y=sin(2*pi*x);
plot(x,y)Tarea
Con ayuda de la función ginput diseñar un programa que vaya construyendo en tiempo real un polígono con puntos ingresados desde el mouse.
Nota: Esta tarea no tiene caracter obligatorio, pero va a ser fundamental para el desarrollo de un programa de suavizamiento de contornos.Punto flotante
En estas clases hemos estado hablando de la aritmética del punto flotante, estos temas los pueden encontrar en la bibliografía recomendada, misma que completamos hoy con el paper de George E. Forsythe que dejo para su lectura:
Pitfalls in Computation, or why a Math Book isn't Enough
Sin embargo diferentes manuales prácticos se pueden encontrar en internet, uno de los que he encontrado pertenece a la Universidad Complutense de Madrid, dejo el link para su lectura:
Aritmética en punto flotante
Tras la lectura deberían ser capaces de responder la siguiente:
Algo sobre represenación IEEE 754: Descarga- Pregunta: ¿si deseas calcular la cantidad x^2-y^2, en un ordenador, cuál es el algoritmo que utilizarías (suponiendo que quieres dar la respuesta más precisa)?
Polígono
Les dejo un video donde les explico una manera de resolver el problema de hacer un polígono cuyos puntos introducimos con el puntero, también les dejo m-file que generamos y les dejo la siguiente pregunta:
Es evidente que graficar una y otra vez todos los puntos no sería eficiente si la cantidad de puntos es muy grande, cómo modificarian el programa para resolver este problema?
hint: hold on / hold off
DO IT
m-file: DESCARGATarea 01
PARTE 01: Compresión de Imágenes Digitales
Fecha de entrega: Viernes 25 de agosto de 2017
Descarga: Tarea 01Problema 1
Graficar una curva parametrizada en Octave.
He escrito el problema en un archivo y les solicito que se vuelva a entregar impreso en una hoja, de la siguiente forma:Código + Gráfico obtenidoProblema 1: DescargaAquí podrán consultar sus calificaciones a lo largo del curso: CalificacionesDiferencia entre funciones y scripts en OCTAVE
Les dejo este video donde hablo de funciones y scripts.
Reto:
¿Puedes hacer una función a la que le ingreses cuales quiera 3 puntos y te devuelva la gráfica de la curva de Bézier asociada?
Funciones anónimas en OCTAVE
- Cargar paquete image desde MAC
pkg install image-2.6.1.tar.gz
https://octave.sourceforge.io/packages.php
https://octave.sourceforge.io/image/index.html
Ver más
- Tarea 2
- DESCARGA
Tarea Examen 1
Fecha de entrega: Lunes 11 de septiembre DescargaLos ejercicios en octave sólo son: 3,4 y 5, el resto se resuelve de forma analítica.Fecha de examen: Jueves 14 de septiembreSoluciones de Tareas:
Espinosa Cañizares Carlos Alberto: Tarea 1 (Imágenes)
Osnaya Saucedo Diana Verónica.: Tarea 2(spline cúbico uniforme)
Areli Lizbeth Oropeza Ramirez: Tarea 2 (Spline cúbico)
Espinosa Cañizares Carlos Alberto: Tarea 1 (Splien cub lin)
Algunas funciones de Splines desarrolladas en clase:
Cúbico Uniforme
BSpline Cúbico No uniforme
Calificaciones al momento: Calificaciones
Si te falta el registro de alguna manda un correo.Problema 2
El lunes 11 de septiembre se dejó el siguiente problema para entregar mañana 13 de septiembre:Dados los cuatro parámetros conocidos: p(0)=alpha_1, p'(0)=alpha_2, p(1)=betha_1, p'(1)=betha_2Encontrar p(x) definido en el intervalo [0,1] que satisfaga las condiciones.Verificar que el polinomio de grado 3 es único.Resolver analíticamente y hacer un pequeño programa en Octave.- Problema 2 - Segunda versiónComo nadie hizo o no le salió el problema 2, en clase se resolvió y se dejó una nueva tarea, misma que cuenta como ejercicio de recuperación del problema anterior.
DESCARGA
Nota importante: Mañana 14/09/2017 hay examen, los temas son: Aritmética de punto flotante, tipos de errores, errores de cancelación y redondeo, splines, gráficas en octave, es decir de todo lo que hemos visto, consiste de parte teórica y práctica diseñada para resolverse en una hora. Pueden consultar la bibliografía si tienene dudas o mandar correo. - Problema 2- segunda versión SOLUCIÓNdescarga
- Jupyter - Julia
- Jupyter se ejecuta sobre un navegador web
- Puede usar como núcleo a ipython o ijulia
- Los archivos que crean se llaman notebooks
Video instrucciones para instalación de julia-jupyter:
https://www.youtube.com/watch?v=uRIQXJXRtqg
Pasos:- Instalar Julia: https://julialang.org/downloads/ en C:\Julia-0.5.2
- Crear una nueva variable de entorno (Environment Variables ) con la dirección C:\Julia-0.5.2\bin
- Desde una terminal de msdos (cmd.exe) ejecutar julia e instalar IJulia
- > julia
- > Pkg.add("IJulia")
- Ejecutar Jupyter y anclar a barra de tareas
Reanudación de actividades
Les pedimos por favor que por medio de correo electrónico (mnolasco@ciencias.unam.mx o pablobarrera@ciencias.unam.mx) nos indiquen si se encuentran bien y si se sienten listos para volver a clases.
De manera adicional:- Es importante que se sientan seguros, como han sido informados por correo electrónico, se ha determinado que la Facultad de Ciencias es un sitio seguro para reanudar sus actividades en todos sus edificios. Los dictámenes oficiales fueron emitidos por la División de Ingenierías Civil y Geomática de la facultad de ingeniería. Por lo anterior tengan la certeza que la Facultad por medio de sus brigadas y cuerpo docente los recibe en sus instalaciones salvaguardando su seguridad.
- Sean críticos de la información que reciben y sean conscientes y responsables de la información que difunden. Como científicos en formación deben corroborar sus fuentes, y difundir sólo información que venga de fuentes oficiales a fin de explicar fenómenos naturales y no provocar rumores o confusiones con el tema. "Es importante no alarmar pero estar alerta", conozcan y participen en los planes de emergencia de su hogar y su comunidad. Si éstos no existen gestionen la creación de alguno colaborando posteriormente con su aplicación. Es fundamental estar preparados a este tipo de eventualidades.
Tarea 3
DESCARGAPython, R, Julia y Octave con Jupyter Notebook
- Anaconda: https://www.anaconda.com/download/ R: https://www.anaconda.com/download/ Anaconda Prompt: conda install -c r r-essentials Julia: https://julialang.org/downloads/ Julia Prompt: Pkg.add("IJulia") Octave: https://www.gnu.org/software/octave/#install Anaconda Prompt: pip install octave_kernel python -m octave_kernel install Octave - Kernel Dead: https://github.com/Calysto/octave_kernel/issues/28 Anaconda Prompt: set OCTAVE_EXECUTABLE=C:\\Octave\\Octave-4.2.1\\bin\\octave-cli.exe Variable de Entorno Nombre de la variable: OCTAVE_EXECUTABLE Valor de la variable: C:\Octave\Octave-4.2.1\bin\octave-cli.exe
Interpolación cúbica
Aquí algunos detalles que pueden resultar complicados de seguir en clase:
DESCARGATarea 4
La tarea se comentó hoy en clase, se entrega el próximo lunes, aquí la descarga:
DESCARGAMínimos cuadrados
Diseño, parametrización de curva con Splines
TAREA EXAMEN 2
DESCARGASpline cúbico interpolante con BSplines
Aquí sobre lo que platicamos esta semana en las ayudantías.
DESCARGA
- Notebook de ajuste en Octave.
- Tarea QR
- En la clase del martes hablamos de la factorización QR DESCARGA, aquí dejo un archivo con una tarea sobre este tema. DESCARGA
- Tarea SVD aprox
- También hemos analizado las propiedades aproximantes de la SVD, aquí otra tarea, el ejercicio aparece al final del documento y también se entrega el martes: DESCARGA
- Examen Parcial
- Tareas
- Tarea 5 - Problema de mínimos cuadrados resuelto con factorizaciones matriciales
DESCARGA
Tarea 6 - Otro de SVD
Juegue con los siguientes programas en MatLab o Octave para obtener aproximaciones de imágenes en su ordenador.
svdimg.m
imagesvd.m
Instrucciones:
-Ambos programas deben de estar en el mismo directorio de trabajo.
-Ejecute:
>> svdimg
y seleccione alguna fotografía en su ordenador.
-Modifique el número de valores singulares hasta obtener una imagen con la calidad que usted considere adecuada.
Lo que se entrega:
5 aproximaciones de una fotografía grande en buena calidad de impresión
Si le es de utilidad puede usar:
imwrite(A, 'ImagenQueGeneraLaMatrizA.jpg')
para guardar en formato 'jpg' la imagen que genera la matriz A.
También se entrega el miércoles.
Considere estos trabajos como una especie de evaluación de la parte de álgebra lineal computacional que estamos terminando.
- Cuadratura Gaussiana
- Aquí lo de la clase de hoy
DESCARGA - Tarea: Platicar en qué consisten las reglas de Cuadratura Adaptativa
- Entrega de Notebooks - Trabajo del semestre
- Calificaciones: Aquí mostramos la calificación que lograron en el curso (VER CALIFICACIONES)
- A las personas en amarillo ya les fueron verificados todos los trabajos que enviaron por correo, si no estás en amarillo aún tienes trabajos pendientes por calificar.
- Verifica que todas tus calificaciones fueron correctamente asentadas, en caso de existir un error favor de enviar un correo con la calificación correcta sustentada con una fotografía.
- Hay enlaces que están vinculados a las versiones pdf de las tareas.
Lista de programas sugeridos (quizá me faltan algunos):- Programa de suavizamiento: Dado un contorno, suavizarlo con arcos parabólicos o curvas de bezier.
- Splines: Dado un conjunto de puntos encontrar el spline cúbico interpolante (hay variedad de soluciones)
- Splines: Dado un conjunto de puntos encontrar el spline cúbico de hermite (hay variedad de soluciones)
- Parametrización con spline cúbico
- HistoSpline
- Factorización QR (completo, es decir para una matriz mxn)
- Factorización PA=LU
- Factorización de Cholesky (A>0) : A=LL*
- SVD: Tratamiento de imágenes digitales.
- Ajuste de polinomios de grado n (programas y ejemplos )
- Ajuste de funciones por cambio de variable (programas y ejemplos )
- Integración numérica de funciones en cualquier intervalo utilizando alguna regla de cuadratura. (programas y ejemplos )
- Método de Secante (programas y ejemplos )
- Método de Newton una variable (programas y ejemplos )
- Método de Newton varias variables (programas y ejemplos )
- Encontrar máximos y mínimos de funciones (programas y ejemplos )
- Justificación matemática y pseudo código.
- Código
- Pruebas y ejemplos
- Bibliografías y referencias
- en formato notebook de Jupyter (*.ipynb)
- pdf y archivo en LaTex
- pdf de algun procesador de textos y archivos *.m (último de los casos y poco recomendable).
Ejemplo: Se subirá más tarde
FECHA DE ENTREGA: Miércoles 13 de diciembre
Asiganción de proyecto final: 13,14 y 15 de diciembre. (Para obtener su calificación final se asignará un pequeño proyecto)
Fecha de entrega del proyecto final (FINAL DE CURSO): 12 de enero.
- Markdown
- Hoy explicamos un poco sobre el uso de Markdown en los notebooks, aquí lo básico que les puede ser de ayuda:
archivo nb
pdf
Links útiles:
http://fobos.inf.um.es/R/taller5j/30-markdown/guiabreve.pdf
https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
- Calificaciones
- Aquí están las calificaciones asentadas.si tienes un problema con alguna calificación o crees que no todas tus calificaciones fueron registradas correctamente por favor de envía un correo con la respectiva corrección.El día de mañana se entregan los notebook.
- Asignación de proyecto
- Deberán presentarse en el cubículo del profesor P. Barrera (cub. 226 2do piso depto. Matemáticas) las siguientes personas en el horario indicado para la asignación de proyecto final:
10:00 hrs.
10:30 hrs.
11:00 hrs.
Las personas en la siguiente lista presentarán un examen práctico el jueves 11 de enero y deberán entregar el avance de los ejercicios resueltos de: Matlab-Cody. Si aún no están registrados pueden hacerlo de manera gratuita en el siguiente link: REGISTRO. Este avance será de suma importancia para su calificación final.
El examen contendrá ejercicios de tareas y/o exámenes del curso, si tienes laptop la puedes llevar.
- Proyectos
- Todos los grupos: Realizar la mayor cantidad de ejercicios de CODY-MATLAB
- Fecha de entrega: 10 de enero 10 am.
- Los proyectos se entregan: 11 de enero a las 11am.
- Grupo A: El avance en cody debe ser muy alto.
- Estudiar para: Examen práctico: 11 de enero a las 11am.
- Grupo B: Proyecto:
- Parte 1) Investigación: ¿Cómo se calcula la derivada numéricamente?
- Parte 2) Investigar cómo se resuelven numéricamente las siguientes ecuaciones diferenciales:
- x''+kx=0 (k>0: constante)
- x''+k sin(x)=0
- Hacer una análisis a la condición inicial y presentar resultados en el espacio fase (x' contra x)
- Tolentino Aguilar Jesús AdriánProyecto: ¿Cómo se calcula numéricamente las funciones elementales en una computadora?
- seno, coseno, exponencial, logaritmo, potencias
- Espinosa Cañizares Carlos Alberto
- Proyecto: Manchas Solares y Series de tiempo.
- Grupo C:
- Domínguez Morales Hugo
- Proyecto:¿Qué es una serie de tiempo?
- Ejemplos de serie de tiempo
- Palabras clave:
- Tendencia
- Determinación de periodos
- Análisis de Fourier
- Aplicaciones: Ciclos económicos
- Gatica Islas Ana LauraProyecto: ¿Cómo se calcula numéricamente las funciones elementales en una computadora?
- seno, coseno, exponencial, logaritmo, potencias
- Díaz de Léon Zepeda Gerardo
- Ensayo del libro: Against the Gods: The Remarkable Story of Risk
- Quintana Hérnandez Cristián Michael
- Cody
- Totomoch Ibarra Diego AntoninoValeriano Alamilla Gil Eduardo
- Proyecto: Método de Montecarlo
- ¿Qué es?
- Aplicaciones
- Grupo DOropeza Ramírez Areli LizbethOsnaya Saucedo Diana Verónica
- Proyecto: Transformada de Fourier Discreta
- Conceptos clave:
- Cálculo aproximado de coeficientes de fourier
- Algoritmos de cálculo
- Transformada de Fourier Rápida
- 5 Ejemplos en Matlab/Octave (fft)
- García Ybarra Cynthia
- Proyecto:Transformada de Fourier Discreta
- Parte 1: Coeficientes de Fourier de una función periódica (integral, continuidad)
- Parte 2: Transformada de Fourier Discreta(Versión aproximada, determinar periodicidad, cálculo discreto):
- Algoritmos de cálculo
- Transformada de Fourier Rápida
- 5 Ejemplos en Matlab/Octave (fft)
- Usar funciones periódicas y perturbar con ruido
- Molina Becerra Josué Ely
- Solución numérica de ecuación diferencial de segundo orden no lineal x''+4x(1+x^2)^{-3/2}=0
- Pérez Cendejas Ulises
- Movimiento browniano y Splines
- Entrega Cody
- El día miércoles 10 de enero a las 10:00hrs esperamos su avance de cody, modo de entrega: En su panel de usuarios encontrarán una barra de menús, entren en My Cody. Lo que queremos es el url de tipo https://www.mathworks.com/matlabcentral/cody/players/XXXXXXX-USER-NAME
que se obtiene al acceder a este menú:
- Calificaciones Finales
- Alumnos nuestros, llega el inicio de este nuevo año y con él sus calificaciones en nuestro curso.
- Les agradezco su esfuerzo y dedicación, sé que muchos de ustedes aprovecharon el curso de al menos una manera. También deseo que tengan un buen inicio de año, pero les deseo un mejor inicio de semestre.
- Suerte en sus metas.
- Ver calificaciones finales
- Dudas por correo o en el cubículo del profesor Pablo en horario de lu a ju de 11 a 13 hrs (hasta jueves 18 enero)