¡Descarga programacion numerico y más Diapositivas en PDF de Programación C solo en Docsity!
Programaci´on Num´erica
Dr. Alfonso Alba Cadena Facultad de Ciencias [email protected] UASLP
Introducci´on a las notas del curso
- Estas notas est´an dise˜nadas para ser una gu´ıa en un curso b´asico de m´etodos num´ericos. La metodolog´ıa sugerida es exponer cada uno de los m´etodos en clase, resaltando sus ventajas y desventajas, implementar algunos de los m´etodos y dejar otros como ejercicios, y utilizar los m´etodos para resolver problemas pr´acticos.
Contenido
- Introducci´on a Octave
- Soluci´on de ecuaciones no lineales
- Sistemas de ecuaciones lineales
- Interpolaci´on
- Regresi´on lineal por m´ınimos cuadrados
- Integraci´on y diferenciaci´on num´ericas
Bibliograf´ıa sugerida
• ANALISIS NUMERICO.
Richard L. Burden, J. Douglas Faires. Thompson Editores.
• METODOS NUMERICOS PARA INGENIEROS.
Steven C. Chapra, Raymond P. Canale. Mc Graw Hill.
• COMO PROGRAMAR C++.
Deitel y Deitel. Prentice Hall.
GNU Octave...
- Es un lenguaje de alto nivel orientado al c´omputo num´erico
- Trabaja nativamente con vectores y matrices
- Es altamente compatible con Matlab
- Puede extenderse mediante funciones escritas en C/C++
- Es de distribuci´on gratuita
Octave puede descargarse de http://www.octave.org
Operaciones con matrices y vectores
- En Octave se pueden definir matrices escribiendo sus ele- mentos entre corchetes.
- La coma separa los elementos en columnas, y el punto y coma los separa en renglones.
Ejemplo: m = [1, 2, 3; 4, 5, 6] asigna a la variable m la matriz [ 1 2 3 4 5 6
] .
Aritm´etica de matrices
- Suma y resta: a + b, a - b
- Producto matricial: a * b
- Producto elemento por elemento: a .* b
- Transpuesta conjugada: a’
Matrices especiales
Las siguientes funciones de Octave devuelven matrices de utili- dad general.
- Identidad: eye(n, m)
- Unos: ones(n, m)
- Ceros: zeros(n, m)
- Ruido uniforme: rand(n, m)
- Ruido normal: randn(n, m)
- Vector de n valores equiespaciados: linspace(base, limit, n)
- Rango de ´ındices: a:b (devuelve el vector [a, a+1, ..., b])
Funciones
Una funci´on de Octave toma cero o mas par´ametros (escritos entre par´entesis), realiza alg´un procedimiento, y puede o no de- volver alg´un resultado.
Ejemplos de funciones:
cos(1) ans = 0. ones(1, 5) ans = 1 1 1 1 1 floor(mean([1, 2, 3, 4, 5])) ans = 3
Definici´on de funciones
Uno puede escribir sus propias funciones de Octave usando la siguiente sintaxis:
function resultado = nombre (parametros) cuerpo de la funci´on end
Ejemplo:
function y = cuad(x) y = x * x; end cuad(5) ans = 25
Buenas pr´acticas de programaci´on
- Escribir funciones de librer´ıa para realizar tareas comunes.
- Dividir un problema grande en sub-problemas mas peque˜nos cuya implementaci´on sea sencilla.
- Agregar comentarios a las funciones de librer´ıa que describan la tarea que realizan y los par´ametros que toman.
- Limitar las funciones a las tareas que deben realizar de ma- nera que sean claras y reutilizables.
Ejercicios:
- Escribir una funci´on fact(x) que calcule y devuelva el factorial de x. Para esto, investigar c´omo realizar ciclos (for, while, etc.) en Octave.
- Escribir una funci´on que tome como entrada dos vectores y devuelva el producto punto. La funci´on debe verificar primero que los vectores tengan la misma longitud. Usar las estruc- turas if, for, y la funci´on length().
- Utilizando la funci´on anterior, escriba una funci´on que calcule la norma de un vector x (dada por
x · x ).
Descripci´on del problema
- Se tiene una funci´on y = f (x), y se desea encontrar las ra´ıces de f (x), es decir, aquellos valores de x para los cuales f (x) = 0.
- Alternativamente, si se desea resolver la ecuaci´on f (x) = a, podemos definir g(x) = f (x) − a y encontrar las ra´ıces de g(x).
Detalles sobre la implementaci´on
- Al implementar un m´etodo para encontrar las ra´ıces de una funci´on f (x), por lo general deseamos que el m´etodo pueda trabajar con cualquier funci´on f (x) que nosotros proporcionemos.
- Deseamos entonces poder escribir una funci´on de Octave que encuentre la ra´ız de otra funci´on de Octave que nosotros le proporcionemos como par´ametro.
- Una manera de lograr esto en Octave es utilizando la funci´on feval, la cual sirve para evaluar la funci´on que se le pasa como par´ametro. Ejemplo:
feval("sqrt", 4) ans = 2
- Los par´ametros que recibe feval son el nombre de la funci´on a evaluar, escrito entre comillas, y los par´ametros de la funci´on a evaluar.