Академический Документы
Профессиональный Документы
Культура Документы
MÉTODOS NUMÉTICOS
GUÍAS DE LABORATORIO
2018
Índice general
Índice general I
Índice de figuras V
Introducción 1
1. Regresión Lineal 3
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Materiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Marco Teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.1. Ajuste de una línea recta por medio de mínimos cuadrados . . . 4
1.4.2. Algoritmo para implementación de regresión lineal . . . . . . . 4
1.5. Procedimiento experimental . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.1. Curva de Tendencia de Excel . . . . . . . . . . . . . . . . . . . 5
1.5.2. Cálculo de la curva de tendencia en Matlab (Scilab) . . . . . . . 5
1.6. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
I
II ÍNDICE GENERAL
4. Método de Bisección 19
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3. Materiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4. Fundamento Teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4.1. Método de Bisección . . . . . . . . . . . . . . . . . . . . . . . 20
4.4.2. Herramientas de Matlab y Scilab . . . . . . . . . . . . . . . . . 20
4.4.3. ¿Cómo enviar la función al programa de bisección que se va a
implementar? . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4.4. Otros comandos de Matlab y Scilab . . . . . . . . . . . . . . . 21
4.4.4.1. Comando disp . . . . . . . . . . . . . . . . . . . . . 21
4.4.4.2. return . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4.4.3. Valor absoluto, abs . . . . . . . . . . . . . . . . . . . 22
4.5. Procedimiento experimental . . . . . . . . . . . . . . . . . . . . . . . 22
4.5.1. Pruebe su algoritmo . . . . . . . . . . . . . . . . . . . . . . . 23
4.6. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5. El Método de la Secante 25
5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3. Materiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.4. Fundamento Teórico . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.4.1. Método de Secante . . . . . . . . . . . . . . . . . . . . . . . . 26
ÍNDICE GENERAL III
A. Fundamentos de Matlab 29
A.1. Variables y Arreglos en Matlab . . . . . . . . . . . . . . . . . . . . . . 29
A.1.1. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
A.1.2. Arreglos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
A.1.2.1. Vectores . . . . . . . . . . . . . . . . . . . . . . . . 29
A.1.2.2. Matrices . . . . . . . . . . . . . . . . . . . . . . . . 30
A.1.2.3. Accediendo a los elementos de una matriz . . . . . . 30
A.2. Operaciones Matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . 30
A.3. Algunas funciones de Matlab . . . . . . . . . . . . . . . . . . . . . . . 30
A.4. ¿Cómo crear una función anónima en Matlab? . . . . . . . . . . . . . . 31
A.5. ¿Cómo programar en Matlab? . . . . . . . . . . . . . . . . . . . . . . 32
A.5.1. Operadores lógicos y relacionales . . . . . . . . . . . . . . . . 33
A.5.2. Estructuras de control . . . . . . . . . . . . . . . . . . . . . . 33
A.5.2.1. condicionales if, else, elseif . . . . . . . . . . . . . . 33
A.5.2.2. Estructura for . . . . . . . . . . . . . . . . . . . . . 34
A.5.2.3. Estructura while . . . . . . . . . . . . . . . . . . . . 34
Referencias 35
Índice de figuras
V
Índice de tablas
VII
Inroducción
Los métodos numéricos son técnicas mediante las cuales es posible reducir las ma-
temáticas superiores a operaciones aritméticas básicas. Esto hace de los métodos numé-
ricos una herramienta poderosa para la solución de problemas comunes a la Ingeniería.
A pesar de tratarse de operaciones aritméticas básicas, se deben hacer repetidas veces,
por lo que se hace tedioso realizar estas operaciones a mano, lo mejor es programarlas
para que sea el ordenador quien las realice.
En este documento se recopila una pequeña cantidad de guías de laboratorio, como
un primer intento por realizar un manual apropiado para el estudiante, como siempre
tratando de incluir un resumen de los fundamentos teóricos necesarios para el desarrollo
de la experiencia, y siendo más explicativos en los pasos a seguir en los primeros labo-
ratorios, mientras el estudiante se familiariza con las herramientas y procedimientos.
Para implementar los diferentes algoritmos vistos en el aula, se utiliza el software
Matlab, o en su ausencia Scilab u octave,siendo estos últimos softwares libres; en cual-
quiera de los software mencionados se puede programar con un lenguaje amigable y
fácil de entender; sin embargo, se debe tener cuidado de que el estudiante implemente
los algoritmos solo con operaciones matemáticas simples y no utilizando las funciones
propias del programa para los cálculos numéricos. Además de las experiencias guiadas,
es importante que se realicen algunos ejercicios, sin guía alguna, para comprobar que
el estudiante realmente comprenda los procedimientos indicados con anterioridad.
El orden en que se presenta las experiencias es en el orden del contenido del curso,
escogiendo algunos de los métodos más significativos de cada caso. Se espera en un
futuro lograr un manual completo de laboratorio como herramienta de apoyo al estu-
diante.
1
Laboratorio 1
Regresión Lineal
1.1. Introducción
Los métodos de regresión pretenden ajustar una serie de datos a una curva, o función
de aproximación, que represente la tendencia general de los datos, coincida o no con
alguno de sus puntos. El método busca minimizar la discrepancia entre los puntos y la
curva.
En este laboratorio aplicaremos el método de mínimos cuadrados a la regresión
lineal, o sea cuando la función de aproximación es una línea recta. Ustedes, en sus
cursos de Física, por ejemplo, han tenido que ajustar los datos experimentales a una
línea recta. Tal vez, inicialmente, esto lo hacían al ojo, haciendo pasar la recta por los
puntos centrales y tratando de dejar la misma cantidad de puntos por arriba y abajo
de la recta. Más tarde se utilizó, la herramienta que tiene excel para ello, la curva de
tendencia (lineal). Actualmente, en el curso de métodos numéricos ustedes aprenden un
procedimiento para obtener esta línea de tendencia; recordaremos en este laboratorio
en qué consiste el método de regresión lineal y cómo éste se implementa en Matlab. La
curva de tendencia en excel se utilizará para validar nuestro modelo.
1.2. Objetivos
Ajustar una función lineal a un conjunto de datos.
Evaluar los resultados al compararlos con la curva de tendencia lineal que sumi-
nistra excel.
3
4 LABORATORIO 1. REGRESIÓN LINEAL
1.3. Materiales
Computadora con software Excel y Matlab instalados.
Papel y lápiz
y = ax + b (1.1)
Los valores de a y b para el modelo lineal 1.1, deben ser tal que minimicen la suma
de los cuadrados de los residuos entre la y medida y la y la calculada:
n
X n
X
2
Sr = (yi,medida − yi,modelo ) = (yi,medida − axi − b)2 (1.2)
i=1 i=1
Los valores de a y b que minimizan esta expresión se obtienen con las ecuaciones
(Chapra y Canale, 2011) :
P P P
nxi yi − xi yi
a = (1.3)
n x2i − ( xi )2
P P
b = y − ax (1.4)
A continuación el algoritmo:
1.5. PROCEDIMIENTO EXPERIMENTAL 5
Al final del ciclo for se han obtenido todas las sumatorias necesarias. Se procede
a realizar las operaciones matemáticas para calcular a y b.
x 1 2 3 4 5 6 7 8 9
y 1 1,5 2 3 4 5 8 10 13
Agregue una línea de tendencia lineal, y seleccione presentar ecuación. Esta ecua-
ción le permitirá evaluar su implementación.
par de datos (xi , yi ) 1 . Se desea además que el programa devuelva los coeficientes
a y b de la ecuación. La primera línea de código sería:
Cree las variables necesarias para guardar las sumas como se indica en el algo-
ritmo, y asigne a cada una un valor inicial de cero.El apéndice A.1.1) le indica
como hacer esto.
Implemente un ciclo for (apendice A.5.2.2) para efectuar las sumatorias. Recuer-
de que sus datos de entrada están contenidos en una única matriz A, donde la
primera columna son los valores de x y la segunda columna son los valores de
y. En Matlab se accede a un elemento de la matriz indicando su fila y columna
(refiérase al apéndice A.1.2.3), Ejemplo A(i, j), accede al elemento de A, que se
encuentra en la fila i y la columna j. Para efectuar la suma simplemente emplee
el operador matemático 0 +0 .
Una vez obtenida todas las sumatorias necesarias para efectuar la evaluación de
a y b (ecuaciones 1.3), se procede a realizar el cálculo de estas constantes. Los
operadores matemáticos necesarios se especifican en la tabla A.1 del apéndice
A.2
Guarde su programa.
1.6. Resultados
Incluya en su informe las gráficas en excel y Matlab, y la función desarrollada en
Matlab. Recuerde contestar las preguntas formuladas durante el procedimiento.
Al subir el informe a moodle debe incluir el script de matlab.
1.7. Conclusiones
Incluya en el reporte sus conclusiones.
Laboratorio 2
2.1. Introducción
En el laboratorio anterior aplicamos el método de regresión lineal a un conjunto de
datos, sin embargo nuestra experiencia, como estudiantes de ingeniería, nos hace saber
que no todas las relaciones entre variables es lineal. En este laboratorio aplicaremos el
método de regresión lineal a un conjunto de datos para ajustarlos a funciones exponen-
ciales, potenciales y a la ecuación de razón de crecimiento.
El procedimiento para obtener las ecuaciones que relacionan las variables se im-
plementará en Matlab (o Scilab) , para lo cual se empleará la función desarrollada en
el laboratorio anterior; antes los datos deben manipularse de tal forma que se ajusten
a una función lineal. Nuevamente será utilizada las curvas de tendencia de excel para
corroborar los resultados.
2.2. Objetivos
Llevar los datos suministrados a una forma compatible con la regresión lineal.
Implementar una rutina para obtener de Matlab (Scilab) los parámetros de las
relaciones no lineales que se ajusten a los datos suministrados
9
10LABORATORIO 2. REGRESIÓN LINEAL PARA RELACIONES NO LINEALES
2.3. Materiales
Computadora con software Excel y Matlab o Scilab instalados.
Papel y lápiz
y = αe(βx) (2.1)
se puede obtener una función lineal, aplicando el logaritmo natural a cada lado de
la ecuación:
ln y = ln α + βx (2.2)
La relación que existe entre el ln y y x, es lineal por lo tanto se puede utilizar la
regresión lineal para encontrarla. Si se compara la ecuación 2.4 con la ecuación de
regresión lineal, y = a0 + a1 x, se observa que el valor de a0 , obtenido de la regresión,
es equivalente a ln α y a1 es equivalente a β.
y = αxβ (2.3)
Para linealizarla se aplica logaritmo a ambos lados de la ecuación:
En su segunda columna guarde los valores del ln(y), esto es el logaritmo natural
de cada elemento de la segunda columna de la matriz de entrada: B(:,2)=log(A(:,2).
En esta expresión se utiliza el comando log que precisamente calcula el logaritmo
natural de un número o cada elemento de un arreglo.
Cree una nueva matriz y asigne los valores del logaritmo de la matriz de entrada,
el logaritmo de base 10 se calcula utilizando la función log10(X).
Halle α.
Cree una nueva matriz y asigne los valores del recíproco de cada elemento de la
matriz de entrada, para hacer operaciones matemáticas sobre cada elemento de
una matriz utilice un punto antes del operador correspondiente. Por ejemplo, para
efectuar la operación deseada B = 1./A
Encuentre α y β
En cada caso dibuje la curva aproximada, donde se muestre también los datos origi-
nales. Utilice las funciones que usted implementó en Matlab y las lineas de tendencias
de excel.
2.6. Resultados
Incluya en su informe las gráficas en excel y Matlab y las funciones desarrollada
en Matlab. Recuerde incluir las ecuaciones de acuerdo a los parámetros devueltos por
Matlab.
Al subir el informe a moodle debe incluir el script de matlab.
2.7. Conclusiones
Incluya en el reporte sus conclusiones.
Laboratorio 3
Polinomios de Interpolación de
Lagrange
3.1. Introducción
15
16 LABORATORIO 3. POLINOMIOS DE INTERPOLACIÓN DE LAGRANGE
3.2. Objetivos
Revisar el procedimiento para obtener el polinomio de interpolación de Lagrange
Implementar el algoritmo para la interpolación polinomial utilizando el Polino-
mio de Lagrange.
Calcular diferentes predicciones utilizando el algoritmo creado.
3.3. Materiales
Computadora con software Matlab instalados.
Papel y lápiz
la ecuación 3.1 y se evalúa las operaciones indicadas. La figura 3.1 muestra el código
ofrecido en (Chapra y Canale, 2011), que calcula una sola predicción, para un polinomio
de n-ésimo grado, dado n + 1 datos.
3.6. Resultados
Para el informe haga una captura de pantalla de la función creada y otra de la ven-
tana de comandos donde muestre los resultados de la interpolación, con el uso de su
algoritmo y del comando de Matlab. Debe incluir su descripción del comando de inter-
polación de Matlab. Envíe a Moodle el archivo donde implementa el algoritmo.
3.7. Conclusiones
Realice las conclusiones de su experiencia.
Laboratorio 4
Método de Bisección
4.1. Introducción
En numerosas aplicaciones de Ingeniería es necesario conocer las raíces de ecuacio-
nes no lineales, algunas veces es posible despejar la variable o existe una fórmula para
encontrar la raíz, como es el caso de la bien conocida fórmula general que calcula la
raíz de una función polinómica de segundo orden. Sin embargo, en términos generales,
no existen tales fórmulas, por lo que se hace necesario desarrollar procedimientos de
cálculo aproximado de las soluciones.
Un grupo de estas técnicas, llamadas métodos cerrados, aplica procedimientos ite-
rativos para encerrar la raíz. En este laboratorio implementaremos en Matlab (o Scilab)
una de las más simples de estas técnicas que es el método de bisección. Cómo en otras
experiencias se introducirá el método y su algoritmo y se describirán los comandos y
herramientas, no utilizados hasta ahora, que posee Matlab/Scilab para la implementa-
ción de dicho algoritmo. Se pedirá al estudiante que pruebe su programa de bisección
mediante el cálculo de las raíces de algunas ecuaciones.
4.2. Objetivos
Implementar el algoritmo de bisección en Matlab/Scilab
4.3. Materiales
Ordenador con Matlab o Scilab
19
20 LABORATORIO 4. MÉTODO DE BISECCIÓN
Figura 4.1: Algoritmo para el calculo de una raíz por el método de bisección
Una vez definida puede enviarse al programa de bisección como cualquier otro pa-
rámetro de entrada(x = biseccion (fx,...)).
En Matlab, la función a la cual se le desea encontrar la raíz, puede especificarse
en el programa creando esta como una función anónima. La función anónima es una
forma muy simple de crear una función en Matlab, su nomenclatura es la siguiente:
nombredelafuncion=@(argumentos) expresión
donde:
Ejemplo:
Si se escribe f x = @(x) x2 , en la ventana de comandos de Matlab, f x guarda una
función que calcula el cuadrado de la variable x.
Si se escribe luego: c = f x(3), se asignará a c el valor de 9.
4.4.4.2. return
El comando return finaliza la ejecución del programa o secuencia de comando y
retorna el control a la función donde el programa fue invocado o a la ventana de coman-
dos.
22 LABORATORIO 4. MÉTODO DE BISECCIÓN
4.6. Resultados
En sus resultados incluya una impresión de su algoritmo, y una captura en pantalla
de la evaluación del algoritmo desde la ventana de comandos, con el correspondiente
valor de x. Recuerde anexar su archivo .m o .sce.
4.7. Conclusiones
Laboratorio 5
El Método de la Secante
5.1. Introducción
En este laboratorio se continuará con el estudio de los métodos de solución de ecua-
ciones no lineales, esta vez al implementar el método de la secante. El método requiere
dos aproximaciones iniciales, pero al no exigir que sean de signos diferentes, se clasifi-
can dentro de los métodos abiertos.
En esta guía se incluye una introducción al método, y se muestra el pseudocódigo
del libro de Burden (Richard y Douglas, 2011); se espera que ya en este laboratorio el
alumno maneje satisfactoriamente la programción en Matlab, al menos para los proce-
dimientos y operaciones requeridas, por lo que no se específica una explicación detalla-
da del procedimiento a seguir. Una vez terminado el algoritmo, el estudiante tendrá la
oportunidad de probarlo mediante la resolución de algunos problemas.
5.2. Objetivos
Escribir un programa en Matlab que calcule la raíz de una ecuación mediante el
método de la secante.
5.3. Materiales
Ordenador con Matlab
25
26 LABORATORIO 5. EL MÉTODO DE LA SECANTE
5.6. Resultados
En su informe debe aparecer la descripción del pseudocódigo, su programa en
Matlab y los resultados a los problemas. Debe adjuntar a su informe el archivo en
Matlab.
28 LABORATORIO 5. EL MÉTODO DE LA SECANTE
5.7. Conclusiones
Realice las conclusiones.
Apéndice A
Fundamentos de Matlab
A.1.2. Arreglos
A.1.2.1. Vectores
Para crear un vector fila, se introduce cada elemento del vector (separado por un
espacio o una coma) entre corchetes y se asigna a una variable. Por ejemplo, el vector
A = [1 4 7] se crea en matlab escribiendo en la ventana de instrucciones >> A = [1 4 7]
o A = [1, 4, 7]; ambas expresiones deben arrojar el resultado:
A =
1 4 7
Para generar un vector columna, los elementos deben estar separados por un punto
y coma o deben escribirse en líneas separadas cada elemento.
29
30 APÉNDICE A. FUNDAMENTOS DE MATLAB
A.1.2.2. Matrices
Una matriz es un arreglo de dos dimensiones el cual tiene un número de filas y
columnas. Los elementos de una matriz son entrados fila a fila, con los elementos con-
secutivos de la fila separados por coma o por un espacio, y las filas separadas por punto
y coma o pasando a la siguiente fila (usando enter). La matriz completa debe estar
encerrada
con corchetes.
Por ejemplo, si se quiere asignar a la variable A, la matriz
1 3 −4
se introduce A = [1, 3, −4; 0, −2, 8]
0 −2 8
Primero realiza los cálculos adentro del paréntesis, desde el conjunto más interno
hasta el más externo.
plot, plot(X,Y) crea un gráfico de los datos en y versus los correspondientes valores en
x. Si se quiere dibujar mas de un gráfico utilizando los mismos ejes, escriba las
variables de cada para de pnto, uno a continuación del otro: plot(X1,Y1,...,Xn,Yn).
Usted también puede especificar color, línea y marcadores para cada uno de estos
gráficos, colocando los respectivos especificadores entre comillas simples y uno
a continuación del otro. Por ejemplo plot(X,Y, b- -0)], dibujará el gráfico en líneas
punteadas, de color azul y con círculos como marcador.
size, [m,n] = size(X) Retorna el tamaño de la matriz X; m guardará el número de filas
y n el número de columnas.
zeros, zeros(n) retorna un arreglo de ceros, si se escribe zeros(n), retorna una matriz
n×n, cuyos elementos todos son ceros, para definir el número de filas y columnas
de la matriz de ceros use zeros(m,n).
return finaliza la ejecución del programa o secuencia de comando y retorna el control a
la función donde el programa fue invocado o a la ventana de comandos de Matlab.
abs, abs(A) calcula el valor absoluto de los elementos contenidos en A.
Ejemplo:
Si se escribe f x = @(x) x2 , en la ventana de comandos de Matlab, f x guarda una
función que calcula el cuadrado de la variable x.
Si se escribe luego: c = f x(3), se asignará a c el valor de 9.
puede acceder al hacer click sobre el icono new scrip , o al desplegar New y elegir
la opción scrip.
De acuerdo a como se definan, existen dos tipos de archivos tipo m:
son ejecutados en orden cuando se ejecuta el scrip; ya sea mediante el icono run
∼= Distinto que
== Igual que
<instrucciones>
end
Si la expresión es cierta, las instrucciones entre el if y el end son ejecutadas. Si la
expresión lógica es falsa, entonces salta la instrucción hasta el end.
También se puede dar la estructura:
if <condición>
<acciones a realizar por respuesta afirmativa>
else
<acciones a realizar por respuesta negativa>
end
En este caso si la expresión lógica es falsa se realizaran las instrucciones entre else
y end.
Otra estructura usa la función eslseif:
if <condición 1>
<acciones a realizar para condición 1>
elseif <condición 2>
<acciones a realizar para condición 2>
else
<acciones a realizar si ninguna condición se cumple>
end
Chapra, S., y Canale, R. (2011). Métodos numéricos para ingenieros (Sexta ed.;
S. A. McGraw Hill/ Interamericana Editores, Ed.). México, D.F..
35