ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
LIBRO SABATICO 2006-2007
CONTENIDO.
CONTENIDO
PRESENTACION
PREFACIO
Capitulo 1 GENERALIDADES DEL MATLAB
Generalidades y Caractersticas del MATLAB
1.1 GENERALIDADES.
Capitulo 2 TRABAJANDO CON MATLAB
2.1 NUMERACION Y OPERADORES.
2.2 COMANDOS DE PROGRAMACION.
2.3 PROGRAMAS DE EJEMPLOS VARIADOS.
Comandos MATEMATICOS BASICOS DEL MATLAB
2.4 VECTORES Y MATRICES.
2.5 OPERACIONES MATEMATICAS SIMPLES CON VECTORES Y
MATRICES.
JOSE GARZON ARIAS
-1-
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
2.6 COMANDOS MATEMATICOS PARA VECTORES.
2.6.1 Comando MIN.
2.6.2 Comando MAX.
2.6.3 Comando CROSS.
2.6.4 Comando LENGTH.
2.7 COMANDOS MATEMATICOS PARA MATRICES.
2.7.1 Comando NORM.
2.7.2 Comando MIN.
2.7.3 Comando MAX.
2.7.4 Comando SIZE.
2.7.5 Comando EIG.
2.7.6 Comando INV.
2.7.7 Comando DET.
BIBLIOGRAFIA
JOSE GARZON ARIAS
-2-
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Capitulo 3 MOTIVACION DEL ESTUDIO DE LOS
METODOS NUMERICOS
3.0
MODELOS FISICOS Y MATEMATICOS
3.1
SOLUCION DE X2=2
a) Solucin Analtica.
b) Solucin Numrica.
3.2 MODELOS MATEMATICOS Y ALGORITMOS
a) Aplicaciones de los Mtodos Numricos.
b) Algoritmo de Euclides.
c) Recursividad y Caractersticas de un algoritmo.
d) Caractersticas de un Mtodo Numrico.
3.3 TIPOS DE ERRORES
a) Cifras significativas de un Nmero.
b) Error de redondeo.
c) Reglas de Redondeo.
d) Errores de truncamiento.
e) Error relativo.
f) Error absoluto.
BIBLIOGRAFIA
JOSE GARZON ARIAS
-3-
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Capitulo 4 SOLUCION NUMERICA DE ECUACIONES
4.0
DEFINICIONES BASICAS
4.1
ANALISIS DE RAICES DE ECUACIONES POLINOMIALES
c) Solucin Analtica.
d) Solucin Numrica.
4.2 SOLUCIONES DE ECUACIONES NO LINEALES
e) Aplicaciones de los Mtodos Numricos.
4.3 METODOS DE APROXIMACIONES SUCESIVAS
g) TEOLREMA DE CONVERGENCIA.
h) PUNTOS FIJOS.
i) ITERACION DE PUNTOS FIJOS.
j) EL METODO DE APROXIMACION SUCESIVAS COMO ITERACION
DE PUNTOS FIJOS .
4.4 METODO DE BISECCION.
a) TEOREMA DE VALOR INTERMEDIO.
b) ALGORITMO DEL METODO DE BISECCION
c) ANALISIS DE ERROR
4.5 METODO DE NEWTON RAHPSON
BIBLIOGRAFIA
JOSE GARZON ARIAS
-4-
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Capitulo 5 SISTEMAS LINEALES DE ECUACIONES
5.0
SISTEMA LINEAL DE ECUACIONES
a) CLASIFICACION DE LOS SISTEMAS LINEALES.
5.1
5.2
NORMA DE UNA MATRIZ Y MATRICES CONVERGENTES
.
CONVERGENCIA DE MATRICES
a) TEOREMA DE CONVERGENCIA DE MATRICES.
5.3
METODOS ITERATIVOS PARA RESOLVER SISTEMAS
LINEALES DE ECUACIONES
a) METODO DE JACOBI.
BIBLIOGRAFIA
Capitulo 6 INTERPOLACION Y APROXIMACION
6.0
6.1
DEFINICIONES BASICAS.
INTERPOLACION DE NEWTON.
a) DIFERENCIAS DIVIDIDAS
b) POLINOMIOS DE NEWTON
6.2 INTERPOLACION DE LAGRANGE
JOSE GARZON ARIAS
-5-
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
6.2
INTERPOLACION DE SPLINES CUBICOS
6.3.1 INTERPOLACION POLINOMIAL A TROZOS.
6.3.2 SPLINES CUBICOS .
BIBLIOGRAFIA
Capitulo 7 AJUSTE DE CURVAS
7.0
DEFINICION DE AJUSTE DE CURVAS.
7.1
METODO DE MINIMOS CUADRADOS.
7.2
ERROR ESTNDAR DE ESTIMACION.
a) COEFICIENTE DE DETERMINACION
b) COEFICIENTE DE CORRELACION.
7.3
MODELO DE REGRESION LINEAL CON EL USO DE
MATRICES.
7.4
REGRESION LINEAL MULTIPLE
a) ESTIMACION DE LOS COEFICIENTES
b) INFERENCIAS EN LA REGRESIN LINEAL MLTIPLE
7.5
PREDICCION.
7.6
CORRELACION.
BIBLIOGRAFIA
JOSE GARZON ARIAS
-6-
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Capitulo 8 INTEGRACION NUMERICA
8.0
DEFINICIONES BASICAS.
a) DEFINICION DE INTEGRACION
b) INTEGRACION NUMERICA.
8.1
METODOS DE INTEGRACION CERRADA.
8.1.1 REGLA DEL TRAPECIO.
8.1.2 REGLA DE SIMPSON.
8.2
METODOS DE INTEGRACION ABIERTA
8.2.1 METODO DE CUADRATURA DE GAUSS.
8.2.2 METODO DE INTEGRACION DE ROMBERG.
BIBLIOGRAFIA
JOSE GARZON ARIAS
-7-
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
PRESENTACION
La enseanza de los mtodos Numricos, actualmente se encuentra
ntimamente ligada a la construccin de sistemas matemticos de alta
precisin y exactitud. De aqu que esta haya evolucionado , y este
evolucionando continuamente, sobre todo para satisfacer las necesidades y
requerimientos de los instrumentos de control numrico ,diseo de ingeniera,
y en muchos otros de los campos cientficos.
La mayor parte de los ingenieros dependen de herramientas de tipo
robtico, que requieren de aproximaciones cada vez mas exactas y precisas.
Es por tanto deseable que a la par de la enseanza Terica de los Mtodos
Numricos, vaya apareado , la enseanza de un lenguaje de programacin de
alto nivel, que permita escribir directamente todos los algoritmos matemticos
que se van desarrollando durante el curso. En el caso del presente libro se
utiliza, el Matlab, por ser un sistema Matemtico, muy flexible y relativamente
sencillo de utilizar .
Este libro surge de la experiencia de haber enseado la asignatura de
Mtodos Numricos durante seis semestres consecutivos , que se imparte en
el cuarto semestre de la carrera de Ingeniera en Informtica y la Licenciatura
JOSE GARZON ARIAS
-8-
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
de Ciencias de la Informtica ,de la UPIICSA del INSTITUTO POLITECNICO
NACIONAL.; durante el cual he utilizado el mtodo de participacin iterativa , y
de trabajo en equipo simultaneo, que permite al alumno , tener un doble canal
de interaccin con el docente y retroalimentacin con sus compaeros.
JOSE GARZON ARIAS
-9-
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
PREFACIO
Muchos de los problemas en matemticas continuas no tienen una
solucin exacta , por ejemplo encontrar los valores de la funcin de error
exp x , y resolver una ecuacin general polinomial de grado cinco o mayor
2
(Teorema de Abel-Ruffini). En estas situaciones , se escoge cualquiera de las
dos opciones :
1.- Se trata de encontrar una solucin aproximada usando anlisis
asinttico.
2.- Se busca una solucin Numrica . Esto se hace por medio del
anlisis numrico.
HISTORIA.
EL campo de los mtodos Numricos , es anterior a la invencin de las
computadoras modernas. La interpolacin lineal fue usada hace mas de 2000
aos . Muchos de los grandes Matemticos, del pasado se preocuparon por el
anlisis numrico.
JOSE GARZON ARIAS
- 10 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Lo cual se observa en los nombres de algoritmos importantes, tales
como El mtodo de Newton , Interpolacin polinomial de Lagrange ,
eliminacin Gausiana , o el mtodo de Euler.
Para facilitar los clculos a mano se elaboraron enciclopedias con
formulas y tablas , de datos como puntos de interpolacin y coeficientes .
Usando esas tablas , frecuentemente se calculaba hasta 16 lugares
decimales o mas para algunas funciones . Las estimaciones que se obtenan
eran bastante precisas.
El trabajo cannico en el campo
, es la publicacin editada por
Abramowitz and Stegun. Un libro de mas de 100 paginas que contiene un
gran numero de expresiones matemticas y funciones comnmente usadas ,
as como sus valores en diferentes puntos . Los valores de las funciones no
son muy tiles cuando se tiene una computadora , sin embargo la gran lista de
expresiones matemticas suele ser muy til.
La calculadora mecnica se desarrollo como una herramienta para los
clculos manuales en 1940 encontrndose que las calculadoras fueron tiles
para clculos administrativos. Sin embargo la invencin de la computadora y
los lenguajes de alto nivel , influenciaron el campo del anlisis numrico, ya
que estas permiten que se desarrollen clculos mas grandes y mas
complicados .
JOSE GARZON ARIAS
- 11 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
El uso del software especializado, permiten implementar los algoritmos
en computadora . Hay ya muchos paquetes matemticos , que contienen
libreras especificas de los mtodos, mas usuales , es decir algoritmos
clsicos que pueden ser manejados por ingenieros, en diversos campos de
aplicacin o a nivel administrativo , aun cuando sean operados por no
especialistas; tal es el caso de GNU librera cientfica o bien las libreras,
IMSL y NAG . Otro lenguaje popular para clculos numricos es el Matlab ,
que ser el que se utilizara en el presente texto.
JOSE GARZON ARIAS
- 12 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
JOSE GARZON ARIAS
- 13 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
INTRODUCCION AL MATLAB
ORIGEN
INICIACIN AL MATLAB
CARACTERSTICAS DEL ENTORNO
SALIDAS O PRESENTACIONES
FUNCIONES DE MATLAB
LIBRERIAS
VENTANAS
OPERACIONES CON VECTORES Y MATRICES
GRAFICAS
FUNCIONES ESPECIALES
JOSE GARZON ARIAS
- 14 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
INTRODUCCIN AL MATLAB.
MATLAB es un entorno de computacin y desarrollo de
aplicaciones totalmente integrado orientado para llevar a cabo
proyectos en donde se encuentren implicados elevados clculos
matemticos y la visualizacin grfica de los mismos. MATLAB integra
anlisis numrico, clculo matricial, proceso de seal y visualizacin
grfica en un entorno completo donde los problemas y sus soluciones
son expresados del mismo modo en que se escribiran racionalmente,
sin necesidad de hacer uso de la programacin tradicional.
MATLAB dispone tambin en la actualidad de un amplio abanico
de programas de apoyo especializados, denominados Toolboxes, que
extienden significativamente el nmero de funciones incorporadas en el
programa
principal.
Estos
Toolboxes
cubren
en
la
actualidad
prcticamente casi todas las reas principales en el mundo de la
ingeniera y la simulacin, destacando entre ellos el 'toolbox' de proceso
JOSE GARZON ARIAS
- 15 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
de imgenes, seal, control robusto, estadstica, anlisis financiero,
matemticas simblicas, redes neuronales, lgica difusa, identificacin
de sistemas, simulacin de sistemas dinmicos, etc. Es un entorno de
clculo tcnico, que se ha convertido en estndar de la industria, con
capacidades no superadas en computacin y visualizacin numrica.
De forma coherente y sin ningn tipo de fisuras, integra los
requisitos claves de un sistema de computacin tcnico: clculo
numrico, grficos, herramientas para aplicaciones especificas y
capacidad de ejecucin en mltiples plataformas. Esta familia de
productos proporciona al estudiante un medio de carcter nico, para
resolver los problemas ms complejos y difciles.
ORIGEN
MATLAB nace como una solucin a la necesidad de mejores y
mas poderosas herramientas de calculo para resolver problemas de
calculo complejos en los que es necesario aprovechas las amplias
capacidades de proceso de datos de grandes computadores.
JOSE GARZON ARIAS
- 16 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
El nombre MATLAB viene de "matrix laboratory" (laboratorio
matricial). MATLAB fue originalmente escrito para proveer acceso fcil
al software matricial desarrollado por los proyectos LINPACK y
EISPACK, que juntos representan el estado del arte y software para
computacin matricial. Hoy MATLAB es usado en una variedad de
reas de aplicacin incluyendo procesamiento de seales e imgenes,
diseo de sistemas de control, ingeniera financiera e investigacin
mdica. La arquitectura abierta facilita usar MATLAB y los productos
que lo acompaan para explorar datos y crear herramientas
personalizadas que proveen visiones profundas tempranas y ventajas
competitivas.
INICIACIN AL MATLAB
El Lenguaje de Computacin Tcnica MATLAB es un ambiente
de computacin tcnica integrada que combina computacin numrica,
grficos y visualizacin avanzada y un lenguaje de programacin de
alto nivel.
Sea cual fuere el objetivo, un algoritmo, anlisis, grficos,
informes o simulacin, MATLAB lo lleva all. El lenguaje flexible e
interactivo de MATLAB permite a ingenieros y cientficos expresar sus
ideas tcnicas con simplicidad. Los poderosos y amplios mtodos de
JOSE GARZON ARIAS
- 17 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
cmputo numrico y graficacin permiten la prueba y exploracin de
ideas alternativas con facilidad, mientras que el ambiente de desarrollo
integrado facilita producir resultados prcticos fcilmente.
MATLAB es la fundacin numrica y grfica para todos los
productos
de
The
MathWorks.
MATLAB
combina
computacin
numrica, grficos 2D y 3D y capacidades de lenguaje en un nico
ambiente fcil de usar.
Con su amplio rango de herramientas para modelar sistemas de
control, anlisis, simulacin y procesamiento de prototipos, MATLAB es
el sistema ideal para desarrollar sistemas avanzados de control.
Cualquiera puede crear y modelar un sistema de control, usando las
cajas de herramientas para el diseo de controles avanzados de
MATLAB - Control System, Robust Control, -Analysis and Synthesis,
Model Predictive Control, QTF Control Design y LMI control. Posteriores
anlisis y refinamientos pueden ser efectuados estableciendo una
simulacin interactiva en Simulink, y luego sintonizar automticamente
los
parmetros
usando
el
Nonlinear
Control
Design
Blockset.
Finalmente, usted puede generar cdigo C para correr en controladores
incrustados con Real Time Workshop.
JOSE GARZON ARIAS
- 18 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Combinando MATLAB con Signal Processing Toolbox, Wavelet
Toolbox y un conjunto de herramientas complementarias, tales como
Image Processing, Neural Network, Fuzzy Logic, Statistics y otras se
puede crear un ambiente de anlisis personalizado de seales y
desarrollo de algoritmos DSP. Para simulacin y desarrollo de
prototipos usted puede agregar Simulink y el DSP Blockset para
modelar y simular sus sistemas DSP, y luego usar Real-Time Workshop
para generar cdigo C para su hardware designado.
CARACTERSTICAS DEL ENTORNO
Caractersticas de MATLAB :
Clculos
intensivos
desde
un
punto
de
vista
numrico.
Grficos y visualizacin avanzada.
o Lenguaje de alto nivel basado en vectores, arrays y
matrices.
Coleccin muy til de funciones de aplicacin.
Las poderosas capacidades de clculo tcnico de MATLAB se
ponen a la disposicin de los estudiantes, aunque limita el tamao de
las matrices a 8192 elementos, la edicin de estudiante mantiene toda
JOSE GARZON ARIAS
- 19 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
la potencia de la versin profesional de MATLAB 7.0, en una forma
diseada para que los estudiantes puedan ejecutarlo en sus propios
ordenadores personales bajo Windows.
Toolbox especiales :
Se incluyen el Toolbox de seales y Sistemas ( un conjunto de
herramientas para el procesamiento de seal y para el anlisis de
sistemas de cuadro ) y el Toolbox Symbolyc Math ( herramienta de
clculo simblico basada en Maple V ).
SALIDAS O PRESENTACIONES
MATLAB provee acceso inmediato a las caractersticas grficas
especializadas requeridas en ingeniera y ciencias. Potente graficacin
orientada a objetos grficos le permite graficar los resultados de su
anlisis, incorporar grficos en sus modelos de sistemas, rpidamente
presentar complejos 3-D objetos, y crear resultados de presentacin,
entre lo cual se destaca:
JOSE GARZON ARIAS
- 20 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Representaciones 2-D y 3-D, incluyendo datos triangulados y
reticulados
Representaciones 3-D quiver, ribbon, y stem
Control de fuentes, letras Griegas, smbolos, subndices y
superndices
Seleccin expandida de smbolos marcadores de curvas
Grficos de torta, de barras 3-D y grficos de barras
horizontales
Grficos 3-D y slido modelado
Representacin de imgenes y archivos I/O
Grficos comentados
Leer/Escribir archivos de datos Hierarchical Data Format (HDF)
Presentacin de OpenGL software y hardware
Animacin
Display de buffer x rpido y exacto
Soporte de colores verdaderos (24-bit RGB)
Fuentes mltiples de luz para superficies coloreadas
JOSE GARZON ARIAS
- 21 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Vista basada en cmara y control de perspectiva
Iluminacin Plana, Gouraud y Phong
Soporte eficiente de imagen de datos de 8-bit
Control de eje y cmara
Propiedades de superficie y patch
Modelos de iluminacin
Control grfico de objetos
Impresin y representacin de copias
Formatos grficos exportables
Soporte de publicacin de escritorio
FUNCIONES DE MATLAB
Manipulacin y Reduccin de Datos MATLAB tiene un rango
completo de funciones para preprocesar datos para anlisis
Numerosas
operaciones
para
manipular
arreglos
multidimensionales, incluyendo reticulacin e interpolacin de datos,
estn tambin disponibles.
JOSE GARZON ARIAS
- 22 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Descriptivos Grficos Para Explorar y Presentar los Datos
Grficos de propsitos generales y de aplicacin especfica le permiten
visualizar al instante seales, superficies paramtricas, imgenes y
ms.
Todos
los
atributos
de
los
grficos
de
MATLAB
son
personalizables, desde los rtulos de ejes al ngulo de la fuente de luz
en las superficies 3-D . Los grficos estn integrados con las
capacidades de anlisis, de modo que se puede mostrar grficamente
cualquier conjunto de datos sin editar, ecuacin o resultado funcional.
I/O Directo de Datos Se puede ingresar y sacar datos de f
MATLAB rpidamente. Las funciones estn disponibles para leer y
escribir archivos de datos formateados en MATLAB, llamados archivos
MAT. Funciones adicionales ejecutan programas ASCII e I/O binario de
bajo nivel desde los archivos de programas M, C, y Fortran,
permitindole trabajar con todos los formatos de datos. MATLAB
tambin incluye soporte incorporado para formatos populares de
archivos estndar.
Computacin Simblica Integrada Integrando el motor simblico
Maple V con MATLAB, los Symbolic Math Toolboxes le permiten
mezclar libremente computacin simblica y numrica una sintaxis
simple e intuitiva.
JOSE GARZON ARIAS
- 23 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Anlisis de Datos Confiable, Rpido y Exacto Los mtodos
usados
comnmente
para
anlisis
de
datos
multidimensional
generalizados 1-D, 2-D estn incorporados en MATLAB. Interfaces
grficas fciles de usar, especficas para aplicaciones, la lnea de
comando interactiva y herramientas de programacin estructuradas le
permiten elegir el mejor camino para sus tareas de anlisis.
Anlisis
herramientas
de
para
Datos
para
realizar
la
DSP
MATLAB
funcionalidad
ofrece
muchas
indispensable
en
procesamiento de seales, tales como Transformadas Rpidas Fourier
y Transformadas Rpidas Inversas de Fourier. La visualizacin de datos
de procesamiento de seales est soportada por funciones tales como
grficos
stem
periodogramas.
El
lenguaje
de
MATLAB,
inherentemente orientado a matrices hace que la expresin de
coeficientes de filtros y demoras de buffers sean muy simples de
expresar y comprender.
Anlisis de Datos en Aplicaciones de Imgenes MATLAB y la
Image Processing Toolbox ofrece un amplio conjunto de herramientas
que le permite fcilmente manipular, procesar y analizar datos de
imgenes, interactivamente mostrar pantallas de imgenes 2-D o 3-D,
visualizar datos temporales cuando es necesario, y comentar sus
JOSE GARZON ARIAS
- 24 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
resultados para publicaciones tcnicas. La orientacin basada en
matrices del lenguaje de MATLAB le permite expresar en forma
compacta operaciones matemticas de forma similar a cmo las
expresara sobre papel. Como resultado, es fcil e intuitivo efectuar
procesamiento de imgenes y operaciones de anlisis tales como
FFTs, filtrado 2-D, morfologa binaria, manipulacin geomtrica,
conversin
de
espacios
de
colores,
compresin,
anlisis
de
componentes conectados y ms.
Algorithm Development (Desarrollo de Algoritmos) Sea que se
est usando los algoritmos del sistema o est inventando los suyos
propios, MATLAB le provee un ambiente en el que se puede
experimentar. A diferencia de C y C++, MATLAB permite desarrollar
algoritmos desde cero o trabajar con interfaces complicadas a
bibliotecas externas. Las poderosa fundacin de computacin, el
lenguaje tcnico, y cientos de funciones en cajas de herramientas
(toolboxes) convierten a MATLAB en lo ms adecuado para
aplicaciones matemticamente intensivas que requieran anlisis de
datos, procesamiento de seales e imgenes, modelado de sistemas o
tcnicas numricas avanzadas.
JOSE GARZON ARIAS
- 25 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
LIBRERIAS
Librera de Aplicaciones de MATLAB
Signal Processing Toolbox
MATLAB tiene una gran coleccin de funciones para el
procesamiento de seal en el Signal Processing Toolbox. Este incluye
funciones para:
Anlisis de filtros digitales incluyendo respuesta en frecuencia,
retardo de grupo, retardo de fase.
Implementacin de filtros, tanto directo como usando tcnicas
en el dominio de la frecuencia basadas en la FFT.
Diseo de filtros IIR, incluyendo Butterworth, Chebyschev tipo I,
Chebyshebv tipo II y elptico.
Diseo de filtros FIR mediante el algoritmo ptimo de Parks-
McClellan.
Procesamiento de la transformada rpida de Fourier FFT,
incluyendo la transformacin para potencias de dos y su inversa, y
transformada para no potencias de dos.
JOSE GARZON ARIAS
- 26 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
The MATLAB C Math Library
La MATLAB C Math Library proporciona al usuario la capacidad
computacional de MATLAB en una librera en formato objeto enlazable.
El objetivo principal de la C Math Library es soportar el desarrollo de
aplicaciones 'stand alone' utilizando MATLAB y su compilador. Puede
ser utilizada independientemente de MATLAB por programadores
avezados en lenguaje C que necesiten prestaciones computacionales
robustas y de alto rendimiento.
Junto con el compilador de MATLAB , la C Math Library permitir
a los programadores de aplicaciones utilizar MATLAB para la creacin
de aplicaciones 'stand alone'. Para los usuarios clsicos de MATLAB ,
se elimina as cualquier necesidad de volver a rescribir algoritmos en
lenguaje C para ser utilizada por programas externos. Para aquellos
usuarios que sean nuevos en la tecnologa MATLAB , esta tecnologa
ofrece una nueva va para la reduccin del tiempo de desarrollo y
puesta a punto de aplicaciones.
La MATLAB C Math Library proporciona una amplia gama de
funciones clsicas del programa MATLAB , proporcionadas como
libreras objeto, incluyendo bsicamente las siguientes categoras de
funciones presentes en MATLAB y archivos M compilados:
JOSE GARZON ARIAS
- 27 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
lgebra lineal.
Funciones matemticas elementales y especializadas.
Operadores lgicos y aritmticos.
Matrices elementales y manipulacin de vectores.
Matrices especiales.
Estadstica bsica y anlisis de datos.
Polinomios e interpolacin.
Gestin de cadenas de caracteres.
Entradas y Salidas.
Gestin de memoria y errores.
(Nota: Las funciones del tipo Handle Graphics no estn incluidas
en la C Math Library).
JOSE GARZON ARIAS
- 28 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
JOSE GARZON ARIAS
- 29 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
TRABAJANDO CON MATLAB
Exhibicin de Nmeros
Operaciones Aritmticas
Operadores Relacinales
Operadores Lgicos
Combinaciones
Caracteres Especiales
Ejemplos Elementales
APRENDIENDO A TRABAJAR CON MATRICES
Uso bsico de MATLAB
COMANDOS BASICOS
JOSE GARZON ARIAS
- 30 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
TRABAJANDO CON MATLAB
Para iniciar MATLAB, seleccionamos el programa MATLAB de un men del
sistema.
HACER
DOBLE
CLIC AQU
y aparece la siguiente ventana de MATLAB, que nos dice que MATLAB est
esperando que introduzcamos un comando.
JOSE GARZON ARIAS
- 31 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
La >> es el prompt del MATLAB, que esta esperando que se introduzca un
comando, funcin, variable o numero.
Seguidamente se presentan comandos ms usados.
o Para salir de MATLAB, use quit o exit.
o El comando clc despeja la ventana de comandos, y el comando clf borra la
figura actual y por tanto despeja la ventana de grficos.
o El comando clear no afecta a las ventanas, pero si borra todas las variables
de la memoria
JOSE GARZON ARIAS
- 32 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
o Para ver algunas de las capacidades de MATLAB, usar el comando demo,
que inicia el MATLAB EXPO, un entorno grfico de demostracin que ilustra
algunos tipos de operaciones que se pueden realizar con MATLAB.
o Para abortar un comando en MATLAB, mantener presionada la tecla de
control y oprima c (Ctrl. + c). Esto ocasiona un interrupcin local dentro del
MATLAB.
o Para acceder al men de ayuda se debe usar el comando help.
o El smbolo denota el prompt de MATLAB y no se escribe al entrar
instrucciones.
o El ; al final de la instruccin omite el eco o salida a la pantalla.
Exhibicin de Nmeros:
Comando MATLAB
Exhibicin
Ejemplo
format short
Por omisin
2.3333
format short e
4 decimales
2.3333e+000
format long
14 decimales
2.33333333333333
format long e
15 decimales
2.333333333333334e+000
format bank
2 decimales
2.33
format hex
exp.
4002aaaaaaaaaaab
JOSE GARZON ARIAS
- 33 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
hexadecimal
format +
+, -, espacio
Operaciones Aritmticas:
ESCALAR
MATRIZ
VECTOR
Adicin
Sustraccin
.*
Multiplicacin
./
Divisin hacia la derecha
\.
Divisin hacia la izquierda
Transposicin
DESCRIPCIN
JOSE GARZON ARIAS
- 34 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Operadores Relacinales
OPERADOR
<
DESCRIPCIN
menor que
<=
>
menor o igual que
mayor que
>=
mayor o igual que
==
Igual
~=
no igual
Operadores Lgicos
OPERADOR
DESCRIPCIN
&
Y (and)
O (or)
NO (not)
JOSE GARZON ARIAS
- 35 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Combinaciones:
P
~P
P |Q
P&Q
falso
Falso
Verdadero
Falso
falso
Falso
verdadero
Verdadero
Verdadero
falso
Verdader
Falso
Falso
Verdadero
falso
verdadero
Falso
verdadero
verdadero
o
Verdader
o
JOSE GARZON ARIAS
- 36 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Caracteres Especiales:
CARACTERES
DESCRIPCIN
[]
Se utilizan para formar vectores y matrices
()
Define
precedencia
en
expresiones
aritmticas.
Encierra
argumentos de funciones en forma usual
,
Separador de elementos de una matriz, argumentos de
funciones y declaraciones en lneas con declaraciones mltiples
Separador de declaraciones, termina renglones de una matriz
A continuacin se presentan un conjunto de ejemplos elementales que
permiten ver a un alumno principiante , como se utiliza el Math Lab, de
forma interactiva . Todo se efecta directamente en la pantalla de
trabajo. En esta el prompt es >> , donde se introducen los comandos
seguidos de un enter . Conviene siempre comenzar, limpiando la
ventana y las variables de trabajo, con clear, clf y clc.
JOSE GARZON ARIAS
- 37 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
[Link] Elementales
>> 13/3
ans =
4.3333
>> 3\13
ans
4.3333
>> 4^11
ans
4194304
>> 2*pi^3
ans
62.01255336059963
a = [0 1 2 3 4 5 6 7 8 9 10]
a=
0 1 2 3 4 5 6 7 8 9 10
b= a + 3
b=
3 4 5 6 7 8 9 10 11 12 13
t = [Link]
t=
0 2 4 6 8 10 12 14 16 18 20
c= a+b
c=
3
5 7 9 11 13 15 17 19 21 23
JOSE GARZON ARIAS
- 36 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
d = [1; 3; 5]
d=
1
3
5
d
ans =
1
f = [4; 6; 9]
f=
4
6
9
>> d*f
??? Error using ===> *
Inner matrix dimensions must agree.
>> d.*f
ans =
4
18
45
>> d * f
ans =
4
12
18
27
20
30
45
JOSE GARZON ARIAS
- 37 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
>>d.*f
??? Error using ==> .*
Matrix dimensions must agree.
>> d*4
ans =
4
12
20
>>f.*4
ans =
16
24
36
>>a/7
ans =
0.1429
0.4286
0.7143
>> a./7
ans =
0.1429
0.4286
0.7143
>> d^f
??? Error using ==> ^
Matrix dimensions must agree.
JOSE GARZON ARIAS
- 38 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
>> d.^f
ans =
1
729
1953125
>> d ^2
??? Error using ==> ^
Matrix must be square.
>> d.^2
ans =
1
9
25
>> 3d
??? Error using ==> ^
Matrix must be square.
>>3.^d
ans =
3
17
243
JOSE GARZON ARIAS
- 39 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
APRENDIENDO A TRABAJAR CON MATRICES
Para entrar la matriz
0
y lo guardamos en una variable a,
>> a = [1 2; 3 4]
Para redisplay la matriz, simplemente teclee su nombre:
>> a
Primero elevemos al cuadrado la matriz a:
>> a*a
Ahora
se har algo un poco ms complicado. Primero definiendo una
matriz b:
>> b = [1 2; 0 1]
Entonces calculando el producto a*b:
>> a*b
Finalmente, se efecta el producto en el otro orden:
>> b*a
JOSE GARZON ARIAS
- 40 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Se sabe que los dos productos son diferentes: porque la multiplicacin de
matrices es no conmutativa.
Por supuesto, tambin se puede sumar matrices:
>> a + b
Ahora guardando el resultado de esta suma para que se pueda usarlo
despus:
>> s = a + b
Las matrices a veces se pueden invertirse:
>> inv(s)
Para verificar que esto es correcto, se calcula el producto de s y su inverso:
>> s * inv(s)
El resultado es la unidad, o matriz de identidad. Tambin se puede escribir
el cmputo como
>> s/s
tambin se puede escribir
>> s\s
qu es igual que
>>inv(s) * s
JOSE GARZON ARIAS
- 41 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Para ver que estas operaciones son correctas y/o diferentes, se hace lo
siguiente:
>> a/b
>> a\b
No todas las matrices pueden invertirse, o puede usarse como el
denominador en la divisin de matrices:
>> c = [1 1; 1 1]
>> inv( c );
Una matriz puede invertirse si y slo si su determinante es diferente de
cero:
>> det(a)
>> det (c)
JOSE GARZON ARIAS
- 42 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Uso bsico de MATLAB
Normalmente se requiere de modelos computacionales con el fin de resolver
problemas de ingeniera. Muchas veces puede ser til hacer un programa que
utilice matrices, complejos, y otras estructuras matemticas, pero fcil de escribir y
revisar. MATLAB es ideal para esto. Ya que es una herramienta tan til y
poderosa, se dar una idea general sobre su manejo, con el fin de facilitar su uso.
Esta presentacin est organizada de la siguiente forma:
Generalidades.
Comandos de programacin.
Comandos matemticos.
Programas de ejemplo variados.
Cada uno de los vnculos de estas secciones, contiene una explicacin breve y
ejemplos pequeos de cada comando. La seccin de ejemplos, contiene algunos
programas completos, donde se utilizan los comandos tratados.
JOSE GARZON ARIAS
- 43 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
NOTA:
En todos los programas de ejemplo se utiliza el comando de MATLAB: % el cual
se utiliza para aadir un comentario en el programa. Estos comentarios son
importantes para que otros puedan entender el contenido con mayor facilidad.
2. Generalidades
Esta es una breve introduccin al manejo de variables (escrita para las
personas que nunca han usado MATLAB), expresiones y archivos con
extensin .m (programas ejecutables por MATLAB), con respecto a su creacin
y uso.
La idea es tratar de manera general, como es el uso de variables, expresiones y
comandos en MATLAB, as como sus caractersticas. Adicionalmente dar una
introduccin al uso de los archivos con extensin .m (programas ejecutables por
MATLAB) y como trabajar con ellos.
2.1.
Manejo de variables:
En MATLAB como en cualquier otro lenguaje de programacin, y/o asistente
matemtico se utilizan variables. Las variables deben tener un nombre segn
ciertas reglas.
JOSE GARZON ARIAS
- 44 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Estas reglas son:
NO pueden comenzar con un nmero, aunque si pueden tener nmeros
(variable1 es un nombre vlido).
Las maysculas y minsculas se diferencian en los nombres de variables. (A
y a son dos variables diferentes)
Los nombres de variables no pueden contener operadores ni puntos. (No es
vlido usar /, *, -, +, ...)
Si se trabaja con complejos slo puede utilizarse un de los nombres i y/o j
para variables. Ver complejos.
No es necesario definir el tipo de variable o tamao (si se usa un vector y
despus se expande, no hay problema)
2.2.
Manejo de expresiones:
Una expresin en MATLAB, puede ser:
Una variable o un nmero. (ej: variable1, x, 3, 22.3)
Un comando aplicado. (ej: norm(A), sin(2*pi) )
Una expresin matemtica. (ej: 2+3*variab1^ 4.5)
JOSE GARZON ARIAS
- 45 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Si cualquiera de las anteriores se escribe en la lnea de comandos (>> ) del
MATLAB, l devolver el nombre de la variable y su valor (en caso de que
la expresin tenga nombre, de no tenerlo, MATLAB devolver ans =
resultado). Un punto importante que se debe resaltar es que esto ocurre
siempre y cuando la expresin no termine con punto y coma. Al aadir un
punto y coma al final de la expresin MATLAB no imprime su valor en la
pantalla, aunque si realiza el clculo. (a=3+2; deja en a el valor de 5, pero
no lo muestra).
2.3.
Manejo de comandos:
Cada comando en MATLAB es un archivo con extensin .m, por lo tanto es
necesario tener las libreras en que se encuentran los comandos que se
desean utilizar. Aunque la gran mayora de los comandos utilizados siempre
vienen incluidos en las libreras.
MATLAB NO distingue entre maysculas y minsculas en los comandos (a
menos que se trabaje en Unix) . El resto de esta presentacin trata cada
comando en detalle (los ms usados).
JOSE GARZON ARIAS
- 46 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
2.4.
Manejo de archivos con extensin .m:
Todos los comandos a que se refiere esta presentacin pueden utilizarse
directamente desde la lnea de comandos del MATLAB (>> ). Sin embargo la
idea es hacer un archivo (con extensin .m) que contenga el programa (para
poder modificarlo, revisarlo, correrlo otra vez ....) ya que es ms ventajoso
as. Los programas no requieren indentacin como en los ejemplos que he
puesto aqu, sin embargo es recomendable hacerlo por claridad al intentar
modificar el programa o revisarlo.
Para trabajar estos archivos, es necesario saber:
Que es: Es un archivo de texto como cualquier otro donde se encuentra
el listado del programa. (slo que su extensin no es txt sino m)
Como crear uno: Las formas ms fciles son:
Desde Unix: con el comando !pico archivo.m donde archivo es el
nombre del programa.
Desde Windows: con el NOTEPAD, teniendo la precaucin de cambiar el
tipo de archivo a Todos los archivos (*.*) antes de grabarlo. (de lo
contrario el archivo quedar con nombre [Link] y el MATLAB no
podr correrlo, la solucin es quitar el .txt.).
JOSE GARZON ARIAS
- 47 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Como correrlo para obtener los resultados: Desde la lnea de comandos
de MATLAB se escribe el nombre del archivo (sin el .m)
NOTAS:
El archivo debe quedar grabado en el mismo directorio que MATLAB para
poder correrlo. Y si el archivo fue escrito en Unix la extensin tiene que ser
escrita en minscula (m), y debe escribirse el nombre exactamente igual
para correrlo (Unix diferencia entre maysculas y minsculas)
2.5
Comandos bsicos de programacin
Para la estructura de programacin en MATLAB se requiere conocer por lo
menos los siguientes comandos:
2.5. 1
Comando END
Determina hasta cual orden llega el efecto de if, for, y while. (Para ejemplos
de su uso ver if, while y for)
2.5.2.
Comando IF
Verifica si se cumple cierta condicin, y de acuerdo a si se cumple o no
realiza la accin que se desee.
La sintaxis de la orden es:
if (condicin), (ordenes 1) [else, (ordenes 2)] end;
JOSE GARZON ARIAS
- 48 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Donde las ordenes entre [ ] son opcionales.
(ordenes 1) son las ordenes que se realizarn si (condicin) se cumple.
(ordenes 2) son las ordenes que se realizarn si (condicin) NO se cumple.
(condicin) Puede ser:
a == b (verifica si a es igual a b)
a<b
(verifica si a es menor que b)
a>b
(verifica si a es mayor que b)
a <= b (verifica si a es menor o igual que b)
a >= b (verifica si a es menor o igual que b)
a ~= b (verifica que a y b sean diferentes)
El siguiente ejemplo ilustra el uso de if:
%Ejemplo de uso de if.
n=0;
if n==0,
n
% al escribir una expresin sin punto y coma final, MATLAB
escribe
% su resultado en pantalla.
else,
n=1
end;
n = 2;
if n == 0,
n
JOSE GARZON ARIAS
- 49 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
else,
n =1
end;
La salida que se obtiene con el programa anterior es la siguiente:
n=
0
n=
1
Donde el 0 (cero) proviene de entrar al primer if, y el 1 (uno), de entrar
al else del segundo if.
2.5. 3
Comando WHILE
Realiza una parte del programa mientras se cumpla alguna condicin.
La sintaxis de la orden es:
while (condicin), (ordenes) end;
(ordenes) son las ordenes que se realizarn mientras (condicin) se
cumpla.
(condicin) Puede ser:
a == b (verifica si a es igual a b)
a < b (verifica que si a es menor que b)
a > b (verifica que si a es mayor que b)
JOSE GARZON ARIAS
- 50 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
a <= b (verifica si a es menor o igual que b)
a >= b (verifica que si a es mayor o igual que b)
a ~= b (verifica que a y b sean diferentes)
El siguiente ejemplo ilustra el uso de while:
%Ejemplo de uso de while.
n=0;
while n<=5,
n
%Al escribir el nombre de la variable (sin punto y coma)
MATLAB % imprime su valor.
n = n + 1; %El punto y coma evita que MATLAB imprima el nuevo valor
de n.
end;
La salida que se obtiene al correr el programa anterior es:
n=
0
n=
1
n=
2
n=
3
n=
4
JOSE GARZON ARIAS
- 51 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
n=
5
[Link] FOR
Muy parecido al While, pero utiliza un contador, es til si se quiere repetir una
parte del programa un nmero. determinado de veces.
La sintaxis de la orden es:
for (contador), (ordenes) end;
(ordenes) son las ordenes que se realizarn (contador) llega a su valor final.
(contador) Es de la forma:
variable = a [ , b ] : c
Donde:
variable es el contador en s.
a es el valor inicial del contador (variable).
b es el segundo valor del contador (opcional, si se omite, b=a+1), su
funcin es determinar el incremento del contador.
c es el valor final del contador (variable).
JOSE GARZON ARIAS
- 52 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
El siguiente ejemplo ilustra el uso de for:
% Ejemplo de uso de for.
for i=0,0.5:2.5,
i %al escribir el nombre de una variable (sin punto y coma)
%MATLAB muestra su valor. end;
La salida del programa anterior es la siguiente:
i=
0
i=
0.5
i=
1
i=
1.5
i=
2
i=
2.5
JOSE GARZON ARIAS
- 53 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
2.5. 5
Comando PLOT
Sirve para obtener resultados grficos en 2D.
La sintaxis de la orden es:
plot(x, y);
x es el vector que contiene los valores de x.
y es el vector que contiene los valores de y,
tal que el valor de y en la posicin uno del vector corresponde al primer
valor del vector x. La grfica se realiza uniendo una serie de rectas entre los
puntos incluidos en los vectores X y Y. Si las curvas quedan muy mal
hechas, (se notan las rectas) puede ser necesario disminuir el paso de los
vectores y aumentar el nmero de puntos.
Para claridad, puede ser necesario leer la parte correspondiente a vectores
a la orden FOR.
El siguiente ejemplo ilustra el uso de plot:
% Ejemplo de uso de plot.
for i =1:101,
x(i) = (i-1) /100;
JOSE GARZON ARIAS
- 54 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
y(i)=x(i) 3 - 1; % Organiza en vectores la funcin y=x^3 - 1
end;
plot(x, y);
pause; %pausa el computador hasta que se presione una tecla ,esta
orden es
necesaria cuando se hace ms de una grfica, para poder ver
cada una por separado. Ya que MATLAB las dibuja en la misma ventana
siempre. (a menos que se use el comando FIGURE).
Al correr el programa se obtiene la grfica de la curva y=x3 -1 (para 0<=x<=1). La
grfica aparecer en una ventana aparte llamada Figure 1, y la recta se ver as:
JOSE GARZON ARIAS
- 55 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Otro ejemplo, para la grfica de y = sin(t) en el intervalo t = 0 a t = 10;
donde debemos hacer lo siguiente:
>> t = 0:.3:10;
>> y = sin(t);
>> plot( t , y)
Aqu el resultado grfico:
JOSE GARZON ARIAS
- 56 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
El comando t = 0: .3 :10; define el vector entre los componentes desde 0 a
10 incrementados de 0.3. La expresin y = sin(t); va a definir los valores de
los componentes que son: sin(0), sin(0.3), sin(0.6), etc. Finalmente, plot(t,y)
usa el vector de t y los valores de y para la construccin del grfico.
2.6 Funciones de dos variables
Vamos a elaborar la grfica de la funcin z(x,y) = x exp( - x^2 - y^2):
>> [x,y] = meshgrid(-2:.2:2, -2:.2:2);
>> z = x .* exp(-x.^2 - y.^2);
>> mesh(z)
JOSE GARZON ARIAS
- 57 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
El primer comando crea una matriz para hacer la entrada de los puntos en el
espacio cuadrado de -2 <= x <= 2, -2 <= y <= 2. Los cuadrados pequeos que
constituyen la reja son de 0.2 unidades ancho y 0.2 unidades de alto. La
segunda orden crea una matriz cuyas entradas son los valores de la funcin
z(x,y) a los puntos de la reja. La tercera orden usa esta informacin para
construir el grfico.
2.6. 1
Comando DISP
Sirve para escribir texto de salida o vectores. de resultados.
La sintaxis de la orden es:
disp(X);
X Puede ser:
Un vector.
Una matriz.
Una cadena de texto.
El siguiente ejemplo ilustra el uso de disp:
%Ejemplo de uso de disp.
JOSE GARZON ARIAS
- 58 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
a = [1, 2, 3, 4, 9 11]; % Un vector
disp(a);
a = [1, 2 , 7 ; 6, 3, 4]; % Una matriz
disp(a);
a = Texto se puede escribir as ; % Cadena de texto
disp(a);
disp( Tambin se puede escribir as. );
La salida del programa anterior ser:
1
11
Texto se puede escribir as
Tambin se puede escribir as.
JOSE GARZON ARIAS
- 59 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
2.6.2
Comando INPUT
Se utiliza para que el programa pida valores de variables mientras se
ejecuta.
La sintaxis de la orden es:
variable = input ( texto );
variable es un nombre vlido de variable, en la que se quiere almacenar el
valor que se pregunta.
texto puede ser:
Una variable o,
Una cadena.
El siguiente ejemplo ilustra el uso de input:
%Ejemplo de uso de input.
a = 0; % hace vlido el nombre de variable a.
a = input( Teclee el valor de a: );
tex = Cual es el nuevo valor de a? ;
JOSE GARZON ARIAS
- 60 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
a
% Al escribir el nombre de una variable (sin punto y coma al
final)
% MATLAB muestra su valor.
a = input(tex);
a
La salida de este programa ser:
Teclee el valor de a: (espera)
a=
xxx
% aqu se imprime el valor asignado para a.
Cual es el nuevo valor de a? (espera)
a=
yyy
Donde xxx y yyy son valores introducidos por el usuario en el momento
de correr el programa.
JOSE GARZON ARIAS
- 61 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Comandos bsicos matemticos
Lo que hace verdaderamente poderoso al MATLAB es la facilidad para
realizar operaciones matemticas con elementos como: (en cada vnculo se
encuentra las ordenes y sintaxis para cada tipo de elemento).
2.7 Vectores y Matrices
Los vectores y matrices en MATLAB se trabajan igual en cuanto a
asignacin, por eso se explican juntos. Pero las operaciones posibles, si
son diferentes, y estn separadas bajo los encabezados correspondientes.
Asignacin:
La asignacin de variables en MATLAB es sencilla, y los vectores y
matrices no son la excepcin. Cuando se desea dar el valor a toda una
matriz se puede realizar directamente de la siguiente forma:
A = [1 2 3 4 ; 5 6 7 8; 9 0 1 2];
A = [1, 2, 3, 4;5, 6, 7, 8;9, 0, 1, 2];
JOSE GARZON ARIAS
- 62 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
donde la matriz escrita arriba es:
1
Las filas se separan por punto y coma y las columnas por espacios o
comas. De lo anterior se ve fcilmente que un vector fila se asigna as:
v = [1 2 3];
v = [1, 2, 3];
y un vector columna se asigna as:
v = [1; 2; 3];
JOSE GARZON ARIAS
- 63 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Manejo de subndices:
Otra forma de asignar valores a una matriz (o un vector) es por medio de los
subndices. El menor subndice utilizado por MATLAB es 1. Y va aadiendo
valores a medida que se requieran. Los subndices se escriben entre parntesis.
Por ejemplo:
A(2, 3) =1; Asigna al elemento en la fila 2, columna 3 el valor de 1.
Si se desea cambiar todo el valor de una fila o una columna, es muy
sencillo hacerlo con el operador : as:
A(1 , :) = [4 5 6];
Asigna a la fila 1 el vector [4, 5, 6] (cambia la fila 1 por 4, 5, 6). As si A era
una matriz de 3 x 3 de ceros, ahora queda:
4
Igualmente a veces se requiere trabajar con vectores que son una columna
o una fila de una matriz.
JOSE GARZON ARIAS
- 64 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Esto se realiza fcilmente guardando este vector en un vector , as:
v = A(:,1);
Asigna al vector v la primera columna (completa) de la matriz A.
. Operaciones matemticas simples con matrices y vectores:
Esto es algo en lo que MATLAB hace las cosas verdaderamente simples, si
se tienen dos matrices (o vector y matriz, o dos vectores), y se quieren:
sumar, multiplicar restar slo es necesario anotar esta operacin
normalmente (como se hara con nmeros). Por ejemplo:
Si se quieren multiplicar dos matrices A y B y almacenar el resultado en C:
C = A * B; (Si se hace entre dos vectores (uno fila y el otro columna) el
resultado es el producto punto entre los dos)
Si se quieren sumar restar y almacenar el resultado en C:
C = A + B;
C = A - B; (Sin importar que sean matrices o vectores.)
JOSE GARZON ARIAS
- 65 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
2.8. Comandos matemticos para vectores:
Los comandos matemticos ms empleados con vectores son:
2.8.1. Comando NORM
Calcula la norma de un vector o matriz.
La sintaxis de la orden es:
Norma = norm( Matriz [, Tipo]);
Los signos [ ] son para decir que Tipo es opcional.
Matriz es la matriz o vector al que se desea calcular la norma.
Tipo es el tipo de norma que se desea calcular. Tipo puede ser una de las
siguientes:
Si se omite:
calcula la norma 2
en un vector es la magnitud del vector
2:
calcula la norma 2
inf:
calcula la norma infinito: en un vector es el
mximo valor absoluto, en una matriz es la
JOSE GARZON ARIAS
- 66 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
suma ms grande de las filas.
En Norma se almacena el valor de la norma calculada.
El siguiente ejemplo ilustra el uso de norm: (ver orden de programacin
DISP)
%Ejemplo de uso de norm.
A = [1 2; 3 4]
v = [1 2 3 4]
disp( Para la matriz: );
n2 = norm(A)
ni = norm(A, inf)
disp( Para el vector: );
n2 =norm(v)
ni = norm(v, inf)
% Al escribir una expresin sin punto y coma al final
% MATLAB muestra su valor en pantalla.
Al correr el programa se obtienen como salida los siguientes resultados:
JOSE GARZON ARIAS
- 67 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
A=
v=
Para la matriz:
n2 =
5.4650
ni =
7
Para el vector:
n2 =
5.4772
ni =
4
2.8.2. Comando MIN
Retorna el (los) menor (es) componente (s) de un vector o matriz. Para el
caso de los vectores: retorna el menor valor contenido en sus componentes.
JOSE GARZON ARIAS
- 68 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
En el caso de una matriz MIN retorna un vector (fila) que contiene el
mnimo elemento que se encontr en cada una de las columnas (la primera
componente del vector tiene el menor elemento en la primera columna de la
matriz, y as sucesivamente).
La sintaxis de la orden es:
Mnimo = min( matriz x );
Matriz es la matriz o vector al que se desea encontrar la (s) mnima (s)
componente (s).
En Mnimo se retorna (n) el (los) mnimo (s) valor (es) encontrado (s) en la
matriz o vector.
El siguiente ejemplo ilustra el uso de min:
%Ejemplo de uso de min.
A=[1 2; 3 4]
v=[1 2 3 4]
M=min(A)
m=min(v) % MATLAB diferencia entre maysculas y minsculas.
JOSE GARZON ARIAS
- 69 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
% Al escribir una expresin sin punto y coma al final
% MATLAB muestra su valor en pantalla.
Al correr el programa anterior se obtiene como salida lo siguiente:
A=
v=
M=
m=
1
2.8.3. Comando MAX
Retorna el (los) mayor (es) componente (s) de un vector o matriz. Para el
caso de los vectores: retorna el mayor valor contenido en sus componentes.
En el caso de una matriz MAX retorna un vector (fila) que contiene el
mximo elemento que se encontr en cada una de las columnas (la primera
componente del vector tiene el mayor elemento en la primera columna de la
matriz, y as sucesivamente).
La sintaxis de la orden es:
Mximo = max(Matriz);
JOSE GARZON ARIAS
- 70 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Matriz es la matriz o vector al que se desea encontrar la (s) mxima (s)
componente (s).
En Mximo se retorna (n) el (los) mximo (s) valor (es) encontrado (s) en la
matriz o vector.
El siguiente ejemplo ilustra el uso de max:
%Ejemplo de uso de max.
A = [1 2; 3 4]
v = [1 2 3 4]
M = max(A)
m = max(v) % MATLAB diferencia entre maysculas y minsculas.
Al correr el programa anterior se obtiene como salida lo siguiente:
A=
v=
3
M=
m=
4
JOSE GARZON ARIAS
- 71 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
2.8.4. Comando CROSS
Calcula el producto cruz entre dos vectores.
La sintaxis de la orden es:
Vector1 = cross( Vector2, Vector 3 );
Vector2 y Vector3 son los vectores a los que se les quiere aplicar el
producto cruz. Tanto Vector2 como Vector3 deben ser vectores
tridimensionales.
Vector1 es el vector (tridimensional) resultante del producto cruz de Vector2
y Vector3.
El siguiente ejemplo ilustra el uso de cross:
%Ejemplo de uso de cross.
x = [1 0 0]
y = [0 1 0]
z = cross(x, y)
Al correr el programa se obtiene la siguiente salida:
JOSE GARZON ARIAS
- 72 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
x=
1
y=
z=
2.8.5. Comando LENGTH
Determina el nmero de componentes de un vector. La sintaxis de la orden
es:
Longitud = length (Vector);
Vector es el vector que se quiere medir (nmero de componentes).
Longitud es el nmero de componentes de Vector.
El siguiente ejemplo ilustra el uso de lenght:
%Ejemplo de uso de length.
x = [1 2 3 4 5 6 7 ]
l = length(x)
Al correr el programa se obtiene la siguiente salida:
JOSE GARZON ARIAS
- 73 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
x=
l=
2.9. Comandos matemticos para matrices:
Los comandos matemticos ms empleados con matrices son:
2.9.1. Comando NORM
Calcula la norma de un vector o matriz.
2.9.2. Comando MIN
Retorna el (los) menor (es) componente (s) de un vector o matriz.
2.9.3. Comando MAX
Retorna el (los) mayor (es) componente (s) de un vector o matriz.
2.9.4. Comando SIZE
Devuelve el tamao de la matriz (dimensiones).
La sintaxis de la orden es:
[Filas, Columnas] = size(Matriz);
JOSE GARZON ARIAS
- 74 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
(Los smbolos [ ] se escriben.)
tambin:
Tamao = size(Matriz);
Matriz es la matriz a la que se le desea determinar el tamao
(dimensiones).
En Filas se almacena el nmero de filas.
En Columnas se almacena el nmero de columnas.
Tamao es un vector (fila) en cuyas componentes se almacenan el nmero
de filas y de columnas, siempre en ese orden.
El siguiente ejemplo ilustra el uso de size:
%Ejemplo de uso de size.
A= [1 2 3; 4 5 6]
y = size(A)
[f, c] = size(A);
f % Al escribir una expresin sin punto y coma final MATLAB
c % muestra el valor por pantalla
Al correr el programa se obtiene la siguiente salida:
JOSE GARZON ARIAS
- 75 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
A=
y=
f=
c=
2.9.6. Comando EIG
Calcula los valores y vectores propios (ortovalores y ortovectores) de la
matriz.
La sintaxis de la orden es:
[ Vectores, Diagonal ] = eig( Matriz );
(Los smbolos [ ] se escriben.)
tambin:
Valores = eig( Matriz );
JOSE GARZON ARIAS
- 76 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
DEFINICIONES DE MATRICES
Matriz es la matriz (cuadrada) a la que se le desea calcular los valores o
vectores propios.
Diagonal es una matriz diagonal que contiene los valores propios de Matriz.
Vectores es una matriz en la que se devuelven los vectores propios
(unitarios) donde cada columna de la matriz Vector es un vector propio de
matriz; tal que el primer vector corresponde al primer valor propio y as
sucesivamente.
Valores es un vector columna que contiene los valores propios de Matriz.
El siguiente ejemplo ilustra el uso de eig:
%Ejemplo de uso de eig.
A = [1 2; 3 4]
y = eig(A)
[V, D] = eig(A);
V %Al escribir una expresin sin punto y coma final MATLAB
% muestra el valor por pantalla
D
Al correr el programa se obtiene la siguiente salida:
JOSE GARZON ARIAS
- 77 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
A=
y=
-0.3723
5.3723
V=
D=
-0.8246
-0.4160
0.5658
-0.9094
-0.3723
0
0
5.3723
2.9.7. Comando INV
Sirve para invertir una matriz.
La sintaxis de la orden es:
matriz1 = inv(matriz2);
matriz2 es la matriz que se desea invertir
En matriz1 se almacena la matriz inversa de matriz 2.
El siguiente ejemplo ilustra el uso de inv:
%Ejemplo de uso de inv.
JOSE GARZON ARIAS
- 78 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
A = [1 2; 3 4]
I = inv(A);
I % Al escribir una expresin sin punto y coma al final
% MATLAB muestra su valor en pantalla.
Al correr el programa se obtiene como salida la matriz que se desea invertir
(A), y su inversa ( I ). La salida se ve as:
A=
1
I=
-2.0000
1.0000
1.5000
-0.5000
2.9.7. Comando DET
Sirve para calcular el determinante de una matriz.
La sintaxis de la orden es:
Valor = det (Matriz)
Matriz es la matriz (cuadrada) a la que se le desea calcular el determinante.
Valor es donde se almacena el valor del determinante.
El siguiente ejemplo ilustra el uso de det:
% Ejemplo de uso de det
JOSE GARZON ARIAS
- 79 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
A = [1 2 7; 4 5 8; 6 -7 10]
d = det(A)
Al correr el programa se obtiene la siguiente salida:
A=
1
-7
10
d=
-284
JOSE GARZON ARIAS
- 80 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
JOSE GARZON ARIAS
- 81 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
INTRODUCCION A LOS MTODOS NUMRICOS
MODELOS FISICOS Y MATEMATICOS
IMPORTANCIA DE LOS MTODOS NUMRICOS
SOLUCION DE LA ECUACION X2= 2
DEFINICION DE ALGORITMO
El algoritmo de EUCLIDES
MEDICION Y CIFRAS SIGNIFICATIVAS
CIFRAS SIGNIFICATIVAS.
CONCEPTO DE PRECISION Y EXACTITUD
JOSE GARZON ARIAS
- 82 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
INTRODUCCION A LOS MTODOS
NUMRICOS
3.0 MODELOS FISICOS Y MATEMATICOS
Problemas matemticos y sus soluciones.
D EFI N I CI ON
Un modelo matemtico puede definirse como una representacin simblica
, o simplificada de un fenmeno, en una o varias ecuaciones que expresan
las caractersticas esenciales de un sistema fsico ,o proceso en trminos
matemticos.
Vd = f (vi, p , f )
(1)
Vd = variable dependiente que refleja el comportamiento o estado del
sistema.
Vi = variables independientes como tiempo o espacio a travs de las
cuales el comportamiento del sistema ser determinado.
P = parmetros , son reflejos de las propiedades o la composicin del
sistema.
f = funciones de fuerza, son influencias externas sobre el sistema.
JOSE GARZON ARIAS
- 83 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
EJEMPLO:
De la segunda Ley de Newton:
F = ma ; reordenando
a=
F
M
__
(2)
Caractersticas de este modelo matemtico.
1.- Describe un proceso o sistema natural en trminos
matemticos.
2.- Representa una simplificacin de la realidad.
3.- Conduce a resultados predecibles.
Otros modelos matemticos de fenmenos fsicos pueden ser mucho
ms complejos.
De nuevo si usamos la segunda Ley de Newton para determinar la
velocidad final o terminal de un cuerpo, tenemos un expresin de
aceleracin como la razn de cambio de la velocidad con respecto al
tiempo:
dv F
=
dt m
(3)
JOSE GARZON ARIAS
- 84 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Para un cuerpo que cae, la fuerza total es:
F = FD + Fu
(4)
FD = La atraccin hacia abajo debido a la fuerza de la gravedad.
Fu = Fuerza hacia arriba debida a la resistencia del aire,
En donde:
FD = mg
Fu = -cu
c = coeficiente de resistencia o arrastre
Como la fuerza total , es la diferencia entre las fuerzas hacia abajo y las
fuerzas hacia arriba, tenemos:
dv = mg - cu
dt
m
(7)
dv = g c/m (v)
dt
(8)
Esta ecuacin es un modelo matemtico que relaciona la aceleracin de un
cuerpo que cae con las fuerzas que actan sobre l.
Se trata de una ecuacin diferencial o ecuaciones diferenciales.
JOSE GARZON ARIAS
- 85 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Si las ecuaciones son ms complejas, se requiere de tcnicas avanzadas
para obtener una solucin analtica exacta o aproximada.
Si el objeto est en reposo, v = o y t = 0
, y usando las teoras de
clculo, obtenemos:
v(t) = gm/c ( 1 e-(c/m)t )
(9)
Que es la solucin analtica o exacta,
v(t) = variable dependiente
t = es la variable independiente
c,m = parmetros
g = funcin de la fuerza
Ej. 1
Un paracaidista , con una masa de 68.1 kgs salta de un globo aerosttico
fijo. Con la ayuda de la ecuacin ( 9 ), calcule la velocidad antes de abrir el
paracadas, coeficiente de resistencia = 12 kg/seg.
Datos:
m = 68.1
c = 12.5
g = 9.8 m/s
v(t) = gm/c ( 1 e-(c/m)t ) substituyendo valores se tiene
v(t)=53.39
1 e (0.1835)t
JOSE GARZON ARIAS
- 86 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
60
50
v, m/s
40
30
Serie1
20
10
0
0
10
t,s
v, m/s
16.42
27.76
35.63
41.05
10
44.87
12
47.48
t,s
53.39
Cuando los mtodos numricos modelos matemticos no pueden
resolverse con exactitud, se requiere de una solucin numrica que se
aproxima a la solucin exacta.
Los mtodos numricos son aquellos en los que se formula el
problema matemtico para que se pueda resolver mediante operaciones
aritmticas.
Para la segunda Ley de Newton, al aproximar a la razn del cambio de
la velocidad con respecto al tiempo , tenemos:
dv = v = v ( ti + 1 ) v ( ti )
t
ti + 1 ti
dt
JOSE GARZON ARIAS
( 10 )
- 87 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Diferencias finitas divididas
v ( ti )
= es la velocidad en el tiempo inicial ti
v ( ti + 1 ) = es la velocidad despus de un tiempo mas tarde:
ti + 1
sustituyendo la ec. ( 10 ) en la ec. ( 8 ):
v ( ti + 1 ) v ( ti )
ti + 1 ti
= g c/m v ( ti )
Reordenando :
V ( ti + 1 ) = v ( ti ) +
g c/m v( ti )
JOSE GARZON ARIAS
( ti + 1 ti )
( 11 )
- 88 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
A cualquier tiempo
Nuevo valor = viejo valor + pendiente x tamao del paso.
Ejemplo .2
Resolver el ejemplo anterior mediante una solucin numrica para calcular
la velocidad. Emplear un tamao del paso de 2 segundos.
Datos:
m = 68.1 kg
c = 12.5 kg/s
g = 9.8 m/s
Substituyendo los valores en la ecuacin 11 e iterando para diferentes
tiempos se tiene
V ( ti + 1 ) = v ( ti ) +
V1 = V0 +
g c/m v( ti )
g c/m V0
( ti + 1 ti )
( ti + 1 ti )
V1 = 0 + 9.8 12.5/68.1 (0)
(2-0)
JOSE GARZON ARIAS
; t1 = 2 seg
= 19.6 m/s
- 89 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
t2 = 4s, v2 = ?
V2 = 19.6 + 9.8 12.5/68.1 (19.6)
(4-2)
= 32 m/s
Sustituyendo:
V3 = V2 + g c/m V2
V3= 32 +
9 .8 12.5/68.1 (32)
(t3 t2)
(2)
= 39.85 m/s
Entonces V3= 39.85 m/s
Sustituyendo:
V4 = 39.85 +
9 .8 12.5/68.1 (39.85)
(2)
= 44.82 m/s
V5 = 44.82 +
9 .8 12.5/68.1 (44.82)
(2)
= 47.96 m/s
V6 = 47.96 +
9 .8 12.5/68.1 (47.96)
(2)
= 49.95 m/s
JOSE GARZON ARIAS
- 90 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Los resultados numricos para la solucin exacta y la solucin numrica
se dan en la siguiente tabla
En la tabla t,s es el tiempo en segundos, SN corresponde a la solucin
analtica y SA a la solucin Numrica
TABLA DE RESULTADOS
t,s
SN
SA
19.6
16.42
32
27.76
39.85
35.63
44.82
41.05
10
48.01
44.87
12
49.05
47.48
53.39
53.39
Comparativo entre solucin numrica
y solucin analtica
60
50
V, m/s
40
30
20
10
0
0
10
12
t,s
Solucin Numrica
JOSE GARZON ARIAS
Solucin Analtica
- 91 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Como se vera la solucin numrica tiende a la solucin analtica.
Y los resultados de la primera son bastante aceptables.
IMPORTANCIA DE LOS MTODOS NUMRICOS
Los mtodos numricos son tcnicas mediante las cuales es posible formular
problemas matemticos de tal forma que puedan resolverse usando operaciones
aritmticas.
El anlisis numrico trata de disear mtodos para aproximar de una
manera eficiente las soluciones de problemas expresados matemticamente.
El objetivo principal del anlisis numrico es encontrar soluciones
aproximadas a problemas complejos utilizando slo las operaciones ms simples
de la aritmtica. Se requiere de una secuencia de operaciones algebraicas y
lgicas que producen la aproximacin al problema matemtico.
Los mtodos numricos pueden ser aplicados para resolver procedimientos
matemticos en:
Clculo de derivadas
Integrales
Ecuaciones diferenciales
Operaciones con matrices
Interpolaciones
Ajuste de curvas
Polinomios
JOSE GARZON ARIAS
- 92 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Los mtodos numricos se aplican en reas como:
Ingeniera
Industrial,
Ingeniera
Qumica,
Ingeniera
Civil,
Ingeniera
Mecnica, Ingeniera elctrica, etc...
3.1 SOLUCION DE LA ECUACION X2= 2
a) Solucin Analtica.
La solucin analtica de la ecuacin X2= 2
es un problema muy antiguo que prcticamente da lugar a los nmeros
irracionales , pues no existe una representacin racional exacta de x = 2
, que es la solucin de la ecuacin
b) Solucin Numrica.
La solucin Numrica se puede obtener con cierto numero de cifras
significativas, y con un cierto tipo de error de aproximacin, por
medio de un algoritmo simple , aplicando la siguiente formula de
recursin :
X N +1 =
1
2
(X N +
)
XN
2
3.1
Donde Xn+1 son los valores de aproximacin que se van obteniendo
a partir de los valores anteriores Xn ..
El error cometido en cada iteracin es de aproximadamente
0.5 x
10-3 % . Esto hace ver que los Mtodos Numricos , son
aproximaciones que siempre contienen un a cierta cantidad de error.
A continuacin se presenta una tabla de iteraciones con este
algoritmo , que es una tabla clsica en Mtodos Numricos.
JOSE GARZON ARIAS
- 93 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Iteracin (n)
Xn+1(valor
Xn (valor
Error (r)
nuevo)
anterior)
1.5
33.3%
1.4116
1.5
5.88%
1.4142156
1.4116
0.1733%
1.414213563
1.4142156
0.00158948%
Como se vera no existe un valor exacto, pero se obtienen
aproximaciones bastante buenas , Esto se demuestra por el error
obtenido.
3.2
DEFINICION DE ALGORITMO
Un algoritmo es una secuencia lgica de pasos necesarios para
ejecutar una tarea especifica , tal como la solucin de un problema .
Caractersticas de Un Algoritmo:
1. Finitud. Todo algoritmo debe terminar en un nmero finito de
pasos.
2. Definido. Las acciones de un algoritmo deben ser claras sin
ambigedades.
3. Entrada. Todo algoritmo debe tener una o ms entradas.
4. Salida. Todo algoritmo debe tener una o ms salidas.
5. Efectividad. Todas las operaciones involucradas deben
reportar al menos un resultado.
JOSE GARZON ARIAS
- 94 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
3.3
El algoritmo de EUCLIDES.
El mximo comn divisor de dos enteros m y n (ambos diferentes de cero)
es el mximo entero positivo que divide a m y n. As el mximo comn
divisor de 4 y 6 es 2.
Sean a, b y q enteros, con b diferente de cero, y satisfacen que a=b*q,
decimos que b divide a a. q es el cociente y b es un divisor de a.
Sean m y n enteros tales que son diferentes de cero. Un divisor comn de
m y n es un entero que divide a m y a n y se escribe en la siguiente
forma: mcd(m,n), y se interpreta como el mayor comn divisor de m y n.
Ejemplo 1:
Los divisores positivos de 30 son: 1,2 3, 5, 6, 10, 15,30
Y los divisores positivos de 105 son: 1, 3, 5, 7, 15, 21, 35,105;
As, los divisores positivos comunes de 30 y 105 son: 1, 3, 5, 15.
Esto implica que el mximo comn divisor de 30 y 105, mcd(30, 105) es
igual a 15.
JOSE GARZON ARIAS
- 95 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
3.4 MEDICION Y CIFRAS SIGNIFICATIVAS.
Antes de empezar con la definicin de errores , que es un concepto
inherente de los mtodos numricos, se presentaran los conceptos de
medicin y cifras significativas.
DEFINICION.
Una medicin es un procedimiento, por medio del cual se obtienen uno
o mas conjuntos de datos , que representan un proceso, de cualquier
clase
Las mediciones en fsica se efectan por medio de un instrumento de
medicin.
La exactitud de una medicin, depende del tipo de medicin y del
instrumento de medicin. As si se desea medir una partcula de polvo,
se requiere de un microscopio graduado en Micras. En cambio si se
desea medir el ancho de una estrella , se requiere de un telescopio con
graduacin que permita medir aos luz.
Todas las medidas que realiza un instrumento , se reportan con cierto
grado de incertidumbre, por ejemplo las medidas de una hoja de papel
tamao carta se reportan con un error de .5mm , lo cual quiere decir
que las dimensiones de la hoja (21.6,27.9cm) solo los tres primeros
dgitos son significativos.
CIFRAS SIGNIFICATIVAS.
DEFINICION.
Una cifra significativa es cada uno de los dgitos que resultan de hacer
una medicin, cuando la mxima incertidumbre no es mayor que la
mitad de la mnima unidad que puede ser medida con el instrumento de
medicin utilizado
JOSE GARZON ARIAS
- 96 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Los ceros no siempre son cifras significativas, , ya que pueden usarse
solo para ubicar el punto decimal. As los nmeros 0.00002458 y
0.0002458 tienen cuatro cifras significativas.
La importancia de las cifras significativas es :
I .- Es un criterio para especificar que tan confiable es un calculo , o
procedimiento numrico. Es comn especificar por tanto la confiabilidad
de un resultado a un numero de cifras significativas dado. Por ejemplo
en el caso de la hoja de papel tamao carta , podramos decir que la
superficie de la hoja de papel tiene una confiabilidad de 4 cifras
significativas, es decir que aun cuando se obtiene como resultado
602.64 , la confiabilidad de la medicin solo asegura la exactitud de los
cuatro primeros dgitos, es decir que la superficie de la hoja se reporta
como 602.6 0.5mm .
II.- Existen ciertos nmeros tales como , l ,
7 que representan
cantidades especificas que no se pueden expresar con un numero finito
de dgitos y solo se manejan aproximaciones como es el caso de
3.14159265 , a la eliminacin que se hace del resto de cifras
significativas se le conoce como error de redondeo.
3.5 CONCEPTO DE PRECISION Y EXACTITUD.
Cuando se efectan varias mediciones con un mismo instrumento y
a un mismo objeto, se distinguen dos cosas en los resultados
obtenidos:
1.- La repeticin de las mediciones dentro de un rango de valores
2.- La cercana de las mediciones a un valor , que de alguna forma
sabemos o consideramos como real.
JOSE GARZON ARIAS
- 97 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
DEFINICION DE PRECISION
A la repeticin de valores obtenidos de una medicin se le conoce
como la precisin de la medida.
DEFINICION DE EXACTITUD
A la cercana de las mediciones a un valor que consideramos como
el valor real se le conoce como exactitud.
Por ejemplo si la medicin de la superficie de un circulo de radio
unitario la realizamos cinco veces , obtenindose los valores siguientes:
3.141592653, 3.141592654,3.141592657,3.141592651,3.141592650,
todas las medidas tendran la misma precisin a 10 cifras significativas,
sin embargo las medidas de mayor exactitud serian la primera y la
segunda.
ERRORES.
En la vida real , no siempre se conocen las soluciones exactas de los
problemas que se presentan, ya sea en un proceso econmico,
administrativo, o cualquier calculo cientfico que se tenga que realizar.
Por este motivo, la mayor parte de los resultados que se reportan en la
practica son aproximaciones de las cantidades reales. En el rea de la
computacin, sucede lo mismo, ya que ninguna computadora puede
almacenar un numero irracional.
DEFINICION
La diferencia que existe entre una cantidad real y su aproximacin se
conoce de manera general como error.
Existen muchos tipos de errores(el tratamiento exhaustivo, y estadstico
de estos queda fuera del alcance del presente texto), dentro de los mas
importantes para el anlisis numrico, se encuentran :
JOSE GARZON ARIAS
- 98 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
El error de redondeo
El error de truncamiento
El error relativo
El error absoluto.
A continuacin describiremos cada uno de ellos.
ERROR DE REDONDEO
DEFINICION
El error de redondeo es el que resulta al suprimir o desechar un
conjunto de dgitos , que no se consideran como significativos, siguiendo las
reglas , establecidas para este caso:
a) Si el decimal n+1 es menor que 5, simplemente se suprime.
b) Si el decimal n+1 es mayor o igual a 5 , se incrementa en una
unidad la ultima cifra conservada.
Ejemplo :
Expresio
REPRESENTACION
APROXIMACION
ERROR
1/7
0.142857
0.142857
1/7000000
LN 2
0.693147180559945
0.693147
0.000000180
30941
JOSE GARZON ARIAS
559
- 99 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
3
1.259921049894873
1.25992
0.000001049
164
e
849
2.718281828459045
235
2.71828182845904
0.000000000
00000023536
ERROR DE TRUNCAMIENTO
Definicin:
El error de truncamiento es el error que aparece cuando un procedimiento
infinito, se hace finito.
El ejemplo clsico del error de truncamiento, es cuando se corta la expansin
de una funcin , en series de potencias.
La expansin de una funcin en series de potencias de Taylor esta dada
por:
f ( x) =
k =0
f k ( x0 )
( x x0 ) k ..3.2
k!
Como se ve esta expansin, es infinita lo cual no es practico, para calcular
un valor de la funcin, de ah que la serie se trunca , lo cual produce
automticamente un error ,el cual es precisamente el llamado error de
truncamiento. pngase como ejemplo, el calculo del valor de e1.5
ex =
1+ x +
x2 x3 x4
+
+
+ ........ 3.3
2
6 24
Aqu se tendrn diferentes errores, dependiendo del numero de trminos
usados para calcular la exponencial, lo cual se muestra en la siguiente tabla:
JOSE GARZON ARIAS
- 100 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Valor
Numero de
Resultado
Error
Real
trminos de la
aproximado
relativo
e1.5
expansin
4.481688927
obtenido
1
0.776869
2.5
0.442173
3.625
0.191151
4.1875
0.0656405
4.39843
0.0185756
1
2
4.46171
0.00445591
El error de aproximacin para cada expansin, esta dado por la expresin:
R n
n +1
(t )( x a ) n +1
.3.5
(n + 1)!
Donde Rn es el residuo que queda despus del n esimo termino, fn+1(t) es la
n+1 derivada paramtrica de la funcin.
Que para este caso el mayor numero de trminos es 6 as que:
et x 7
et x 7
e t 1.5 7
R6
=
=
= 0.0151932.3.6
7!
7!
7!
Como se vera el error esperado es precisamente mayor que para el 6 termino.
JOSE GARZON ARIAS
- 101 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
ERROR ABSOLUTO.
DEFINICION:
El error absoluto es el valor absoluto de la diferencia entre el valor real y el
valor aproximado.
Es decir:
abs= Vr Vo .. 3.7
donde Vr es el valor real , y Vo es el valor obtenido, o aproximado.
Como rara ves se conoce el valor real Vr , puede corresponder a cualquiera
de dos valores: El valor esperado o bien el valor obtenido por la iteracin
anterior.
Ejemplo: ln(3.5)= 1.25276 la aproximacin usando una expansin de
Taylor con 6 trminos es 14.3489, por tanto el error absoluto es:
1.25276 - 14.3489 = 13.0961
ERROR RELATIVO.
DEFINICION.
El error relativo es el cociente entre el error absoluto y el valor real.
Es decir que :
r=
V r Vo
.3.8
Vr
donde como en la definicin anterior Vr es el valor real , y Vo es el valor
obtenido o aproximado . Como ya se menciono, no siempre se conoce
el valor real , por tanto se usa el valor esperado o bien el valor
calculado anteriormente en una iteracin.
JOSE GARZON ARIAS
- 102 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejemplo : Se calculara el error relativo cometido al calcular el coseno de
60 , respecto al calculado por medio de 6 trminos de una expansin en
series de Mc Claurin.
Cos(6)= 0.960170, la expansin con 6 trminos proporciona el valor -0.733121
As r =
0.960170 + 0.733121
= 1.76353
0.960170
Muchas veces es til trabajar con el porcentaje de error relativo, lo cual se
obtiene multiplicando por 100.
En ambos errores estos se reportan de acuerdo con la exactitud que se esta
manejando.
Hay que recordar que el error de redondeo en los clculos esta dado por la
expresin Eror de redondeo = 5 X 10-n-1 donde n es el numero de decimales que
se estn considerando.
Como ejemplo al redondear el error relativo del calculo anterior del coseno se
tiene lo siguiente.
Cantidad
Redondeado a
decimales
1.76353
Cantidad
Error cometido
redondeada
1.7635
5X10-5
1.763
5X10-4
1.76
5X10-3
A continuacin se presentan una serie de ejercicios , que permiten al
estudiante reafirmar lo visto hasta ahora.
JOSE GARZON ARIAS
- 103 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejercicios:
Errores de redondeo.
1.- Dadas las siguientes cantidades 3.462335, 76.76549362, 5847.9.
Redonde a 4 decimales , y proporcione el error de redondeo.
2.- Bajo las operaciones de suma, producto y cociente de las cantidades:
549.3587, 97.3454, cual es el resultado, si estas se redondean a 3
decimales.
3.- Dada la funcin e x senx , cual es el error de redondeo, que se comete al
calcular el valor de la funcin en x = 6.33 y redondear a 5 decimales.
4.- Cual es el error mximo que se comete cuando se redondea un numero
a 7 decimales.
Errores de truncamiento
5.- Dada la funcin e 6 senx , determine el error de truncamiento , cuando esta se
evala en el punto 3.24, con los 6 primeros trminos de la serie de Mc
Claurin .
6.- Cual es el error Mximo permisible cuando la funcin cos(6x^2) , se
expande en una serie de Mc. Claurin.
7.- Sea 1+x+0.63x^2+0.534x^3+0.768x^4+589x^5 , la expansin al 50
termino de una funcin f(x) , cual seria el mximo error cometido con esta
expansin.
Errores Absolutos y Relativos
8.- Cual es el error absoluto , que se comete en el problema 5
9.- Cual es el error relativo que se comete en el problema 5
10 Cual es el error relativo que se comete en el problema 7 si el valor de la
funcin es 4.18x10 4 , en el punto 2.3456
JOSE GARZON ARIAS
- 104 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
HACIENDO USO DEL MATLAB
11.- Elabore un programa en MATLAB para cada uno de los problemas
anteriores y compruebe sus resultados.
12 .- Grafique en el Matlab , las funciones presentadas en los problemas
anteriores y sus expansiones en series de potencias , y compare las curvas,
y los valores obtenidos para la funcin.
BIBLIOGRAFIA.
ATKINSON, K.E. , An Introduction to Numerical Analysis, Wiley , Nueva York
,1987
Booth, G.W. y T.L. Peterson , Non Linear Estimation , [Link]
Program Pa. Num 687
Steven C. Chapra, Raymond P. Canale . Mtodos Numricos para Ingenieros
, Mc Graw Hill Interamericana,2003.
Mathews H, John , Fink D. Kurtis . Mtodos Numricos con MATLAB .
Pearson Educacin , S.A. Espaa ,2000
Kunz, Kaiser S. (1957). Numerical Anlisis , Mc Graw Hill, Nueva Cork.
JOSE GARZON ARIAS
- 105 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
JOSE GARZON ARIAS
- 106 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
INTRODUCCION A LA TEORIA DE ECUACIONES
DEFINICIONES BASICAS
ECUACIONES POLINOMIALES
ACOTACION DE RAICES REALES
METODOS DE SOLUCION NUMERICA DE ECUACIONES
JOSE GARZON ARIAS
- 107 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
SOLUCION NUMERICA DE ECUACIONES
4.0 DEFINICIONES BASICAS
Definicin de una ecuacin
D EFI N I CI ON
Una ecuacin es una expresin Matemtica, que contiene trminos
algebraicos
funciones
trigonometricas,
funciones
exponenciales,
logartmicas, etc, nmeros y un signo de igual Ejemplo: 3x +6x-2=1
Existen diferentes tipos de ecuaciones , dependiendo de los
trminos, las hay lineales como por ejemplo 45y+26=73. En general se
puede hablar de ecuaciones polinomiales de la forma:
anxn+an-1xn-1+an-2xn-2+an-3xn-3+=b(4.1)
Ecuaciones trigonometricas, las que tienen funciones trigonometricas,
ejemplo sen(2x)+5x=2. Ecuaciones logartmicas, las que tienen logaritmos,
como por ejemplo 5log(3x)+10=1 etc.
En general se distinguen dos tipos de ecuaciones , las lineales y las
no lineales.
RAICES DE ECUACIONES
D EFI N I CI ON
Una raz de una ecuacin es un numero que satisface le ecuacin, es decir
que si esta igualada a cero, una raz ser el numero real o complejo que la
hace cero Ejemplo la raz de la ecuacin 5x-1=0 ser
JOSE GARZON ARIAS
1
5
- 108 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Una ecuacin lineal siempre tendr como raz un solo numero real.
Las ecuaciones no lineales pueden tener normalmente mas de una
raz .
Las races de las ecuaciones no lineales pueden ser reales o
complejas.
En este momento es importante mencionar que una de las partes
importantes de los mtodos numricos es el calculo aproximado de las
races de ecuaciones que no se pueden obtener por mtodos
algebraicos , los mtodos mas conocidos son :
El mtodo de bisecciones, el mtodo de punto fijo, el mtodo de
interpolacin, el mtodo de Newton Rhapson, que sern descritos
posteriormente. Todos los mtodos mencionados anteriormente, tienen
la caracterstica de que bajo ciertas condiciones , se aproximan a las
races de las ecuaciones , con un cierto error de aproximacin , hay
tambin que considerar que hay ciertos mtodos que tienen algunas
restricciones que dificultan su uso.
4.1
ANALISIS
DE
RAICES
DE
ECUACIONES
POLINOMIALES.
En el caso del anlisis de races de ecuaciones polinomiales, es muy
importante el estudio de el Teorema fundamental del lgebra, el
Teorema del residuo y el Teorema del factor que vamos a enunciar a
continuacin.
Teorema fundamental del lgebra
Toda ecuacin polinomial de grado mayor o igual a uno tiene al menos
una raz. Es decir que el teorema fundamental del lgebra o TFA
asegura la existencia de al menos una raz para cualquier ecuacin
polinomial de grado mayor o igual a uno.
JOSE GARZON ARIAS
- 109 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Teorema del residuo
El
residuo
de
dividir
el
polinomio
Pn(x) = anx +an-1x +an-2x ++a0 de grado n 1 , entre x-b donde
n
n-1
n-2
b es cualquier constante , es igual a Pn(b) .
Teorema del factor
Si el residuo de dividir el polinomio Pn(x) ( de grado mayor o igual a
uno) , entre x-b es cero, entonces x-b es un factor de Pn(x) , entonces el
residuo de dividir Pn(x) entre x-b es cero.
Ejemplos :
El polinomio 4x5-2x3+1 , tiene una raz real , a saber :
x=
-0.9112547456
Al dividir 4x5-2x3+1 el residuo es 145
Como se obtuvo este resultado?, el resultado se obtuvo por medio de
divisin sinttica, el cual consiste en lo siguiente:
Se ordena el polinomio en orden decreciente.
Se separan los coeficientes poniendo ceros donde no hay
termino correspondiente.
Se cambia de signo el termino independiente que es el divisor.
El primer termino del cociente es el primer coeficiente del termino
de mayor grado.
A partir de ese momento se multiplican los cocientes por el
divisor hasta el ultimo termino del dividendo.
El numero final que queda es el residuo.
JOSE GARZON ARIAS
- 110 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejemplo :
Tomando el polinomio anterior 4x5-2x3+1, se tiene :
_______8___ 16___36___72__144________
4
18
36
72
145
Este es el residuo
De acuerdo con el teorema del factor el Polinomio P3(x)= x3-3x+18
tiene como factor x+3, esto se comprueba, por que al efectuar la
divisin de x3-3x+18 entre x+3 el residuo es cero.
SOLUCION DE UNA ECUACION
D EFI N I CI ON
La solucin de una ecuacin es el numero, o conjunto de nmeros
reales o complejos que , que al substituirlo en lugar de la variable
satisface la igualdad Ejemplo la solucin de la ecuacin
3x3+6x2+7x=0 tiene como solucin
2 3i
2 3i
, 1 +
,0
3
3
Como se podr observar a partir de este momento, por cada raz
compleja , que es solucin de la ecuacin, se tiene su conjugado.
Hay que observar que el numero de total de races que tiene un
polinomio, por el TFA corresponde al grado del termino mayor del
polinomio. En el ejemplo, el grado del polinomio es tres, y tiene 3
races.
La pregunta es, del numero total de races que tiene un polinomio,
cuantas se pueden esperar que sean Reales y cuantas complejas,
adems de las reales cuantas podran ser positivas y cuantas sern
negativas?. Esta pregunta se puede contestar con la regla de los signos
de Descartes.
JOSE GARZON ARIAS
- 111 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
REGLA DE LOS SIGNOS DE DESCARTES.
La
ecuacin
polinomial
de
grado
Pn(x) = anx +an-1x +an-2x ++a0 con an0 , en donde todos sus
n
n-1
n-2
coeficientes son nmeros reales y a0 0 , es decir que el cero no es
una raz de la ecuacin, entonces:
1.- El numero de races positivas de Pn (x) =0 , contadas cada una
tantas veces como indique su multiplicidad
es igual al numero de
variaciones de signo de los coeficientes del polinomio , o es menor que
este numero disminuido en una cantidad par .
2.- El numero de races negativas , de Pn(x)=0, contadas cada una
tantas veces como indique su multiplicidad , es igual al numero de
variaciones de signo de los coeficientes del polinomio evaluado en --x ,
es decir de Pn(-x) , o es menor que este numero disminuido en una
cantidad par.
Ejemplo: Sea P5(x) = 13x5+81x3+12x2+5x+27 , no tiene ninguna cambio
de signo , por lo tanto no se espera ninguna raz real positiva. Haciendo
P5(-x)=-13x5-81x3+12x2-5x+27 vemos que tiene 3 cambios de signo ,
por lo tanto esperamos 3 races reales negativas o 1 raz real negativa.
Races reales positivas
Races reales negativas
Races Complejas
Resolviendo para 13x5+81x3+12x2+5x+27=0
Se tiene : {
0.2995457166 - 0.6279304552i ,
0.2995457166 +
0.6279304552i , 0.04804288559 - 2.483977456i , 0.04804288559 +
2.483977456i ,
-0.6951772044}, la solucin presentada cumple
claramente con la regla de los signos de descartes, pues tiene 1 raz
real negativa y 4 races reales complejas.
JOSE GARZON ARIAS
- 112 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ntese como se dijo , cuando hay una raz compleja, esta viene por
pares, es decir que para cada raz compleja se tiene su conjugado.
4.2 SOLUCION DE ECUACIONES NO LINEALES.
Sea que f(x) es una funcin continua, dgase que f: . Se desea
calcular las soluciones de la ecuacin f(x)=0 (4.1). Mas aun , se puede
considerar el caso f:nn , donde n1. Problemas de este tipo
aparecen en la optimizacin de funciones y en la solucin numrica de
sistemas no lineales.
4.3 MTODO DE APROXIMACIONES SUCESIVAS
El mtodo de aproximaciones sucesivas consiste en generar funciones
convergentes, bajo un esquema iterativo, partiendo de la funcin
original, lo cual se soporta en el siguiente teorema :
TEOREMA DE CONVERGENCIA.
La raz, de cualquier sub. funcin extrada de una funcin f(x)
obtenida por una iteracin convergente , es tambin una raz de f(x).
Ejemplo de aplicacin del teorema
Sea f(x)=5senx-3x, la sub funcin sen(x) tiene como raz x=0, la cual
resulta ser tambin raz de la funcin f(x)
D EFI N I CI ON
Un esquema iterativo en Mtodos Numricos , es una tcnica
fundamental que consiste en repetir un proceso aritmtico o algebraico ,
hasta que se obtiene un resultado.
Esta definicin se aplica el proceso de iteracin que consiste en
sustituir repetidamente
en una expresin (o formula) el valor
previamente obtenido.
JOSE GARZON ARIAS
- 113 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
En este mtodo se requiere de una regla, formula o sub funcin g(x),
con la que se calculan los trminos sucesivos , junto con un valor de
partida p0, esto produce una sucesin de valores {pk} obtenida
mediante el proceso iterativo pk+1=g(pk).
La sucesin se ajusta al siguiente patrn:
P0
P1=g(P0)
P2=g(P1)
P3=g(P2)
P4=g(P3)
P5=g(P4)
P6=g(P5)
En una sucesin interminable de nmeros , se dice que el esquema
iterativo converge , si los nmeros tienden a un limite,
Ejemplo : sea f(x) = -x/20 - 0.9534461720 y p0 = 1 se tiene que
{0.04655382800, -0.002216747499, 0.0001056833004,
5.03819948510-6
, 2.40100349910-7
, - 1.14997317210-8
5.00185606810 -9 , - 9.97418760210-10 , 0}
Es decir que la raz exacta se obtiene hasta el 9 valor.
JOSE GARZON ARIAS
- 114 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
PUNTOS FIJOS.
D EFI N I CI ON
Un Punto fijo de una funcin g(x) es un numero real que P , tal que
P=g(P) .
Ejemplo: un punto fijo de la funcin g(x)=7sen(2x)-4x es cero porque
0=7sen(0)-4(0).
Geomtricamente hablando, los puntos fijos de una funcin g(x) son los
puntos de interseccin de la curva y = g(x) con la recta y=x
ITERACION DE PUNTOS FIJOS
D EFI N I CI ON
Una iteracin de punto fijo es un esquema iterativo de la forma
pn+1=g(pn) para n=0,1,.
Ejemplo: sea la interaccin convergente
P0=0.5
y Pk+1 =-pk para k=0,1,2,
Calculando los diez primeros trminos:
.
P1=-0.500000=0.606531
.
P2=-0.606531=0.545239
P3=-0.545239.=0.579703
.
JOSE GARZON ARIAS
- 115 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
P9=-0.579703=0.567560
P10=-0.567560=0.566907
La sucesin converge lo cual da :
lim Pn
= 0.567143...... .
Lo que se ha obtenido es una aproximacin de punto fijo de la funcin
f(x)= -x
EL MTODO DE APROXIMACIONES SUCESIVAS COMO
ITERACIN DE UN PUNTO FIJO
D EFI N I CI ON
El mtodo de aproximaciones sucesivas, es el procedimiento que
permite obtener una aproximacin a la solucin de
una ecuacin,
mediante la iteracin de un punto fijo.
A continuacin se presenta un programa que calcula la raz de una
ecuacin , por el mtodo de aproximaciones sucesivas.
function [k,p,err,P]=fixpt(g,p0,tol,max1)
P(1)=p0
for k=2:max1
P(k)=feval(g,P(k-1));
err=abs(P(k)-P(k-1));
relerr=err/(abs(P(k))+eps);
p=P(k);
if(err<tol) | (relerr<tol),break;end
end
if k == max1
disp(se han excedido el numero mximo de iteraciones)
end
P=P;
JOSE GARZON ARIAS
- 116 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Para poder usar este programa es un requisito introducir la funcin g(x)
como un archivo.
Ejercicios:
Obtenga la solucin , por el mtodo de aproximaciones sucesivas de las
siguientes ecuaciones:
1.- x5-3x3-2x2+2=0
2.- cos(sen(x))=2
3.- x2=sen(x+0.25)
4.4 METODO DE BISECCION :
El mtodo de de Biseccin tiene como base el Teorema de valor
Intermedio, el cual a la letra dice:
TEOREMA DE VALOR INTERMEDIO
Sea f(x) una funcin continua en [a,b] y sea p un valor entre (f(a),f(b)) ,
entonces existe un valor x* entre (a,b), tal que f(x*) = p
COROLARIO
Sea f(x) una funcin continua en [a,b] y sean f(a) y f(b) de signos
contrarios, entonces existe un valor x* entre (a.b) , tal que f(x*) = 0
El mtodo de biseccin consiste en :
Sea f(x) una funcin continua , y a, b dados tales que f(a)f(b)0 , se
define c=(a+b)/2. Si f(c) = 0 entonces el algoritmo termina.
JOSE GARZON ARIAS
- 117 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
ALGORITMO DEL METODO DE BISECCION.
1. .- Sean a1=a, b1=b , n=1
2. .- Defina cn=(an+bn)/2
3. .- Si bn-cn , entonces se acepta que cn es una raiz aproximada
y se detiene el proceso.
4. Si signo(f(bn)) signo(f(cn)).<0 , entonces an+1=cn. De lo contrario
bn+1=cn
5. Hgase n=n+1 , y regrese a 2
Ejemplo: Considere la funcin f(x)= x2+x-1 .Note como f(0)=-1 f(1)=1,
se tiene que existe una raz de la ecuacin f(x)=0 en el intervalo
(0,1).
Aproximando esta raz con el mtodo de Biseccin. Los resultados son:
N
an
bn
cn
f(an)
f(bn)
f(cn)
0.5
-1
0.25
0.5
0.25
-1
0.25
0.69
0.25
0.5
0.375
0.25
0.69
4
0.375
0.5
0.4375
0.48
0.25
0.48
5
0.4375
0.5
0.46875
JOSE GARZON ARIAS
0.37
0.25
- 118 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
0.37
0.31
La solucin correcta a seis cifras significativas es 0.618034. Se puede ver
que el mtodo de biseccin es un poco lento. A continuacin se presenta un
anlisis del error.
ANALISIS DE ERROR .
Como f(a)f(b)0 , se sabe que existe un numero [a,b] tal que f()=0
Mediante
Induccin
Matemtica
se
puede
probar
que
bn+1-an+1=1/2(bn- an). (4.2)
Esto es asi , ya que el intervalo se divide a la mitad , cada ves que se pase
por el paso 2 del algoritmo. Nuevamente usando induccin matemtica , se
obtiene que (bn- an)=
Obsrvese
que
2 n 1
(b a ) , n1 ..(4.3)
como
c n c n a n = bn c n =
[an,cn]
[cn,bn]
se
tiene
que
1
(bn a n ) .(4.4)
2
Combinando (4.3) y (4.4) se tiene que c n
1
(b a),
2n
n 1 (4.5)
Lo cual implica que cn segn n . La convergencia en (4.5) es lo que se
conoce como convergencia lineal con razn de convergencia . De la
desigualdad (4.5) se puede estimar el numero de iteraciones necesarias
para obtener c n . En particular si se requiere que
n log 2 (
ba
) .(4.6)
JOSE GARZON ARIAS
1
(b a ) ,
2n
- 119 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Basndose en este anlisis de convergencia se puede hacer las siguientes
observaciones.
El mtodo tiene convergencia segura! . Esto es dada la condicin
inicial f(a)f(b)0 , el mtodo converge a una raz en
[a,b] . Esta
propiedad conocida como convergencia global , es una de las
caractersticas fuertes del mtodo de Biseccin y la mayora de los
mtodos no la poseen.
El error en las aproximaciones generadas por el mtodo se reduce a la
mitad en cada paso.
La convergencia lineal , se caracteriza por la ecuacin (4.5) , es lenta
(es decir se requiere, un gran numero de iteraciones para llegar a un
resultado correcto) comparada con otros mtodos . Esto es as ya que
el mtodo solo usa evaluaciones de la funcin y sus comparaciones.
CONCLUYENDO.
El mtodo de biseccin tiene limitaciones sobre otros mtodos numricos,
para obtener races de ecuaciones no lineales , sin embargo da
resultados aproximados para la simplicidad del algoritmo.
4.5 METODO DE NEWTON RAHPSON.
El mtodo de Newton , como es conocido usualmente, requiere tener una
funcin diferenciable y de clase C1 . La recta tangente a f en el punto
(x0,f(x0)), esta dada por la ecuacin y = f ( x0 ) + f ' ( x0 )( x x0 ) .
Aproximando a f con la recta, y definiendo x1 como la intercepcin en x de
la recta, es decir que x1=x0-
f ( x0 )
, con f(x) 0 .(4.7)
'
f ( x0 )
f (x )
x n +1 = x n ' n
El esquema recursivo para esta expresin es :
f ( xn )
x0
f (xn)
0 , n0 (4.8)
JOSE GARZON ARIAS
- 120 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Este mtodo es una aplicacin de una iteracin de punto fijo.
El algoritmo en pseudo cdigo para este mtodo es
Para encontrar una raz real de la ecuacin f(x) = 0, proporcionar la funcin F(X) y su
derivada DF(X) y los
DATOS:
Valor inicial X0, criterio de convergencia EPS, criterio de exactitud EPS1 y nmero
mximo de iteraciones MAXIT.
La raz aproximada X o un mensaje de falla.
PASO 1.-Hacer I = 1
PASO 2.-Mientras I < MAXIT repetir los pasos 3 a 7.
PASO 3.-Hacer X = X0 - F(X0) / DF(X0) 'calcula xi
PASO 4.-Si ABS(X - X0) < EPS entonces IMPRIMIR X y TERMINAR. De otro modo
CONTINUAR.
PASO 5.-Si ABS(F(X)) < EPS1 entonces IMPRIMIR X y TERMINAR. De otro modo
CONTINUAR.
PASO 6.-Hacer I = I + 1
PASO [Link] X0 = X 'actualiza X0
PASO 8.-IMPRIMIR mensaje de falla "EL MTODO NO CONVERGE A UNA RAZ" y
TERMINAR
El algoritmo en MATLAB es :
%METODO DE NEWTON RAPSON PARA EL CALCULO DE UNA RAIZ
REAL DE f(x)
Format long
X0=a
for I=1:n
f= anx0n+1 +an-1x0na0;
df= an(n+1)x0n+an-1(n)x0n-1..a1;
x=x0-f/df;
dist = abs(x-x0);
dg=abs(1-(df2-f(xn)*(f/ df2);
disp([x,dist,dg])
x0=x;
end.
Aplicando este algoritmo al polinomio x5+4x4-3x-24 se encuentra que:
APROXIMACIONES ERROR --------2.2222 1.2222
JOSE GARZON ARIAS
- 121 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
1.8111
1.5842
1.5145
1.5086
1.5085
0.4111
0.2269
0.0697
0.0060
0.0000
Grafica de la funcion x5+4x4-3x-24
La raz es 1.5085, la cual se alcanza a la 6 iteracin
Ejercicios.
Calcule las races
1. x3+2x2+10x-20
2. 2x4-51x2+12x
3. 13x3+5x2-8
.
JOSE GARZON ARIAS
- 122 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
JOSE GARZON ARIAS
- 123 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
INTRODUCCION A LOS SISTEMAS LINEALES DE
ECUACIONES
DEFINICIONES BASICAS
CARACTERISTICAS DE LOS SISTEMAS LINEALES
CLASIFICACION DE LOS SISTEMAS LINEALES
NORMA DE UNA MATRIZ
MATRICES CONVERGENTES
METODOS ITERATIVOS PARA LA SOLUCION DE SISTEMAS
LINEALES
JOSE GARZON ARIAS
- 124 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
5.0 SISTEMA LINEAL DE ECUACIONES.
Un sistema lineal de n ecuaciones , con n incgnitas , se puede escribir
de la forma :
a1| x1 + a12 x 2 + a13 x3 + .......... + a1n x n = b1
a x + a x + a x + .......... + a x = b
22 2
23 3
2n n
2
21 1
a x + a x + a x + .......... + a x = b
n2 2
n3 3
nn n
n
n1 1
(5.1)
donde ai, bi son dados y x1, x2,..xn son desconocidos . Definiendo
las matrices y vectores:
a11
a 21
=
a n1
a12
a 22
an2
x1
.......... ..... a1n
x
...........
a2n
2
X = :
....
: :
......
........
a nn nxn
xn
b1
b
2
b= :
: :
bn
(5.2)
Entonces se puede escribir el sistema (5.1) en forma MATRICIAL como
AX=b
(5.3).
La matriz A, se conoce como la matriz de coeficientes del sistema. El
vector X , se conoce como el vector de incgnitas o variables. El vector b
se conoce como el vector de trminos independientes.
JOSE GARZON ARIAS
- 125 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Lo que se pretende hacer en este capitulo es desarrollar mtodos
numricos y sus algoritmos , que permitan resolver los sistemas lineales
que se sabe tienen solucin, lo cual ha sido establecido , por un anlisis
con las herramientas del lgebra lineal.
Haciendo un resumen de los sistemas lineales y las caractersticas, para
que estos tengan solucin, se puede enunciar:
Sea Ax=b un sistema lineal de ecuaciones
X Cuando un sistema tiene al menos una solucin se dice que , el
sistema es consistente, en caso contrario es inconsistente.
X Se dice que el sistema es homogneo cuando b = 0, es decir el
vector b es el vector nulo. Estos sistemas siempre tienen solucin,
por lo tanto estos sistemas son consistentes. Las solucin trivial de
estos sistemas es tambin X = 0
X Si b 0 se dice que el sistema es no homogneo.
X Un sistema no homogneo es consistente (tiene al menos una
solucin ) si rango(A) = rango(A|b)
X Los sistemas no homogneos son consistentes con una solucin si
rango(A)=n
Es consistente con mas de una solucin si: rango(A) =
rango(Ab)= r<n
X Si b=0 , el sistema siempre es consistente , ya que X=0 (Solucin
trivial) es siempre una solucin y esta ser nica si .rango(A)=n
X Si b=0 , el sistema tendr solucin no trivial si : rango(A) =r<n . En
cuyo caso un numero infinito de soluciones existen.
X Si b0, el sistema es inconsistente ( no existe solucin) si:
rango(Ab)>rango(A)
De forma grafica se puede clasificar los sistemas lineales en
Sistemas
de
JOSE GARZON
ARIAS
- 126 -
Ecuaciones
Inconsistentes
Consistentes
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejemplos:
1.- Sistema con soluciones infinitas:
x1+4x3+x5=-3
x2-2x3-x5=1
x4=2
La matriz aumentada es
1 0 4 0 1 : 3
0 1 2 0 1 : 1
0 0 0 1 0 : 2
Resolviendo el sistema por eliminacin Gaussiana se obtienen las
soluciones:
X1= -4s-r-3
X2= 2s+r+1
X3= s
X4= 2
X5= r
2.- Sistema con solucin nica.
JOSE GARZON ARIAS
- 127 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
-x+z = -2
2x-y+z = 1
-3x+2y-2z = -1
x-2y+3z =-2
5x + 2y +6z = -1
La matriz
aumentada
1
1 0
2 X=1 1 1
3 2 2
2 3
1 Y=
5
20 6
Z = -1
y la solucin del sistema
es:
: 2
: 1
: 1
: 2
: 1
por
el
mtodo
de
eliminacin gaussiana se tiene :
x1+2x3-2x4 = 1
-x1+x2+x4 =-2
X2+2x3-x4 =1
3.- Sistema inconsistente :
JOSE GARZON ARIAS
- 128 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
La matriz aumentada es :
1 0 2 2 : 1
1 1 0 1 : 2
0 1 2 1 : 1
por medio del procedimiento de eliminacin gaussiana se tiene:
1 0 2 2 : 1
0 1 2 1 : 1
0 0 0 0 : 2
Como la ultima fila contiene ceros del lado izquierdo y
un numero
diferente de cero del lado derecho . El sistema es inconsistente.
A continuacin se presenta un algoritmo escrito, para Matlab, que
permite calcular el rango de una matriz:
clear all
clc
%Este programa calcula el rango de una matriz
R=1;
A=[ ]mxn
Fprntf(El rango de la matriz A es %.f,R);
R=rank(A);
end
Tambin se presenta un algoritmo para el mtodo de eliminacin de
Gauss Jordan. Mtodo rpido.
clear all
clc
%El metdodo de eliminacin de Gauss Jordan
A= [ ]mxn
JOSE GARZON ARIAS
- 129 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
B = [ ]nxr
X=A/B;
disp(El valor de la matriz es igual a:);
disp([x]);
Se presenta el algoritmo del mtodo de eliminacin de Gauss Jordn
largo :
clear all
clc
%El mtodo de eliminacin largo de Gauss Jordn
A= [ ]mxn
B = [ ]nxr
for m=1:m
for n=1:n
clc
fprint(Introduce el valor de m,n,,m,n);
A(m,n)=input( );
end
end
%no se intercambia la fila
for i=2:3
A(i,:)=A(i,:)*A(i,1)/A(1,1);
End
A
%Se intercambia la fila 2 con la fila 3
copia=A(3,:);A(3,:)=A(2,:);A(2,:)=copia;
for i=1:3
if i~=2
A(i;:)=A(i,:)-A(2,:)*A(i,2)/A(2,2);
end
end
%Esto debe hacerse con cada elemento de la diagonal
A
for i=1:3
X(i)=A(i,1)/A(i,i),
end
x
disp(El valor de la matriz es igual A:);
disp([x]);
end
JOSE GARZON ARIAS
- 130 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
aplique el algoritmo descrito para resolver el sistema
5.1
NORMA
DE
UNA
MATRIZ
MATRICES
CONVERGENTES
NORMA DE UNA MATRIZ
La norma de una matriz es un numero real positivo ||A|| que cumple con
las siguientes caractersticas.
Sean A y B matrices, para las cuales estn definidas las operaciones
de Suma, y producto, entonces:
a) ||A|| 0
||A|| = 0 si A = 0
b) ||A|| = || ||A|| (con un escalar)
c) ||A+B|| ||A||+||B||
||-A|| =||A||
d) ||AB|| ||A||||B||
e) ||Ap|| ||A||p Si Amxn y p es un numero natural
f) Si A =(aij) entonces |aij|||A||
g) De |A||B se
sigue
||A||||B||
3x2-6x3-4x4-3x5=-5
Defnase algunas
-x1+3x2-10x3-4x4-4x5=-2
de
definen
definicin
orden
tres
normas de A =(aij)
arbitrario.
2x1-6x2+20x3+2x4+8x5=-8
de
que
Se
normas (dada la
norma se pueden
JOSE GARZON ARIAS
- 131 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
definir muchas mas).
1. ||A||m=
max
aij
i j
2. ||A||m =
3. ||A||k =
max
j
ij
2
ij
i, j
Ejemplos:
Se calcularan las tres normas para la siguiente matriz:
2 3
1
2
A3x3 = 4 3
2
0
2
5
a)
||A||m
max(
max
aij
i j
15
15
9
+ 2 , ,7) =
2
2
2
b) ||A||m =
max
j
ij
1
1
max(1+ 2 + 3 ,4+3+ ,
2
2
= max (1+4+0,
0+2+5)=
1 1
2 +3+2, 3 + + 5 ) =
2 2
max(5,5+ 2 ,9) = 9
c) ||A||k =
a
i, j
ij
(1 + 2 +
49
1
578
+ 16 + 9 + + 4 + 25) =
4
4
4
Como se vera la norma mas grande es la ||A||k
JOSE GARZON ARIAS
- 132 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
5.2 CONVERGENCIA DE MATRICES.
El concepto de convergencia de matrices, permite decidir si una matriz
es o no apta , para que se le pueda aplicar un mtodo numrico.
Para asegurar que una matriz se puede usar en un proceso iterativo, se
requiere que :
lim A n
=0
Donde 0 es la matriz nula de orden igual a A . Cualquier matriz que
satisface esta condicin, se dice que es una matriz convergente .
TEOREMA DE CONVERGENCIA DE MATRICES:
La matriz Amxn es convergente , es decir
lim A n
= 0 si y solo si , todos
los valores propios de A en valor absoluto , son menores que uno.
(Esta condicin se da como (A)<1, donde (A) es el radio espectral de
la matriz y esta, definido como: (A) =
max
i
i , donde i son los
valores propios de A ) .
COROLARIO La matriz A es convergente si para alguna norma se
tiene que A 1 .
Ejemplo de matriz convergente.:
JOSE GARZON ARIAS
- 133 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
27
1
A =
9
1
81
1
27
1
3
2
81
81
1
; se puede
4
81
observar que esta matriz tiene una
3 3 1
1
9 27 81
81
1 2 4
1
1
norma de
, ya que
<1 , lo cual proviene
81
81
Fcilmente se puede comprobar que
lim
An = 0
5.3 METODOS ITERATIVOS PARA RESOLVER SISTEMAS
LINEALES
DE
ECUACIONES
CUYA
MATRIZ
DE
COEFICIENTES TENGA UNA NORMA MENORA A UNO
METODO DE JACOBI:
El mtodo de Jacobi o mtodo de desplazamientos simultneos, es un
mtodo que busca una solucin para el sistema lineal de ecuaciones de
la forma: AX-b = 0.. (5.31) , el cual es satisfecho por la ecuacin
vectorial : X = BX+c,
(5.32) ,es decir que la expresin sea
tambin una solucin de la ecuacin vectorial anterior. El esquema
iterativo para esta ecuacin es : X(k+1) = BXk+c con k =1,2,3..(5.33)
JOSE GARZON ARIAS
- 134 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Donde
Xk=[x1k,x2k,x3k,.]t (5.34) es el vector de
soluciones. Este mtodo, parte de un vector inicial X(0), como primera
aproximacin al vector solucin X .
Para que el vector X k converja a la solucin X. se requiere que xjm , con
1jn se aproximen tanto a xj , 1jn que todas las diferencias
xj
xj
sean menores que un valor previo, y que se conserven
menores para todos los vectores siguientes de la iteracin. Es decir que
lim
xj = xj
m
1jn
(5.35)
Sea entonces:
a11 x1 + a12 x 2 + a13
a 21 x1 + a 22 x 2 + a 23
a31 x1 + a 32 x 2 + a 33
= b1
= b2
= b3
despejando x1 de la primera ecuacin, x2 de la segunda ecuacin y x3
de la tercera se tiene:
a12 x 2 a13 x3 b1
+
a11
a11
a11
x1 =
x1
x= x 2 =
x3
a 21 x1
a 22
x2 =
a 23 x3 b2
+
a 22
a 22
a31 x1 a32 x 2
a33
a33
x3 =
b3
a33
Lo cual queda en notacin matricial:
x1
x
2
x3
a
= 21
a
a22
31
a33
a12
a11
0
a32
a33
b1
a13
a11 x a11
1
a 23 b2
* x2 +
a 22 a 22
x3 b
3
0
a33
JOSE GARZON ARIAS
(5.36)
- 135 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Una vez que se tiene la expresin 5.36 se propone un vector inicial X0
que puede ser el vector 0, o algn otro.
Se comienzan pues las iteraciones:
En la primera iteracin teniendo como X0 = 0
b1
x a11
b
Xk= x = 2
a22
x
b
3
a33
1
1
1
2
1
3
(5.37)
El esquema iterativo general es :
1
k
k
(b1 a12 x 2 a13 x3 )
X k +1 a11
k +1 1
k
k
k+1
(b2 a 21 x1 a 23 x3 )
X = X =
a
X k +1 22
1
k
k
(b3 a31 x1 a32 x3 )
a33
(5.38)
Que tambin se puede escribir como:
Xi
k+1
n
1
k
= bi + aij x j , para
aii
j =1
j i
JOSE GARZON ARIAS
1 i n
- 136 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejemplo :
Resolver por el mtodo de jacobi:
3x1
x1
x2
x2
+ 3x2
+ 3 x3
x3
x3
x4
+ 3x4
=1
=1
=1
=1
Se puede ver que este sistema se puede trabajar con un mtodo
iterativo porque tiene una norma de
1
, lo que tambin se puede decir
3
que es diagonalmente dominante, es decir que aii aij .
j
Despejando x1 de la primera ecuacin, x2 de la segunda ecuacin y as
sucesivamente se tiene :
x1 =
x2 1
+
3 3
x
x
1
x2 = 1 + 3 +
3
3 3
.
x2 x4 1
x3 =
+
+
3
3 3
x
1
x4 = 3 +
3 3
Aplicando el mtodo de jacobi con X0=0 para la primera iteracin se
tiene:
1
3
1
1 3
X=
1
3
1
3
JOSE GARZON ARIAS
- 137 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Aplicando el esquema iterativo, se obtiene la siguiente tabla:
k
X 1k
0.0000
0.33333
0.44443333
0.48147778
0.49382593
0.5144234
X 2k
X 3k
X 4k
0.0000
0.0000
0.0000
0.33333
0.33333
0.33333
0.55553333
0.55553333
0.44443333
0.70368889
0.70368889
0.48147778
0.80245932
0.80245932
.80245926
.80245926
0.5324667
0.80245920
0.80245920
0.5324667
0.5534689
0.80214876
0.80214876
0.5534689
0.5725346
0.8019856
0.8019856
0.5725346
0.5938562
0.800987
0.800987
0.5938562
10
0.5997677
0.800599
0.800599
0.49382593
0.5144234
0.5997677
El algoritmo en Matlab para el mtodo de Jacobi es:
%Mtodo de Jacobi
clear
A=[ ]
b=[ ]
X0=zeros(1,n)
K=0;Norma=1;
fprintf(K X(1) X(2) X(3)X(n) Norma\n)
while Norma >0.0001 %Este representa la exactitud del mtodo
K=K+1;
fprintf(%2d,K)
for i=1:n
suma=0;
for j=1:n
JOSE GARZON ARIAS
- 138 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
if i~=j
suma=auma+A(I,j)*X0(j);
end
end
X(i)=(b(i)-suma/A(I,i);
fprintf( %10.4f,X(i))
end
Norma=norm(X0-X);
fprintf(%10.4f\n,Norma)
X0=X;
If K>25
Disp(No se alcanzo la convergencia)
break
end
end
BIBLIOGRAFIA:
1.-Nakos George and Joyner David
Linear lgebra and Applications
Brooks Cole Publishing
Newark U.S.A.
1998
2.- Chapra C. Steven y Canale.P. Raymond.
Mtodos Numricos para ingenieros.
4a Edicion.
McGraw-Hill
Interamericana
Mexico
2002
JOSE GARZON ARIAS
- 139 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
JOSE GARZON ARIAS
- 140 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
INTERPOLACION
DEFINICIONES BASICAS
INTERPOLACION DE NEWTON
JOSE GARZON ARIAS
- 141 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
INTERPOLACION DE LAGRANGE
INTERPOLACION POR SPLINES
APROXIMACION POR MINIMOS CUADRADOS
APLICACIONES DE LOS METODOS DE INTERPOLACION.
INTERPOLACION Y APROXIMACION
En la practica profesional, no siempre se tienen todos los datos , que nos
interesa, o bien no siempre se tiene la forma analtica de las funciones que
representa un proceso(ya sea administrativo, industrial, etc.), por tal motivo,
es necesario, que con la informacin con la que se cuenta, se puedan
obtener datos adicionales o valores intermedios aproximados, que permitan
construir un modelo mas adecuado , para describir la situacin real.
6.0 DEFINICIONES BASICAS
JOSE GARZON ARIAS
- 142 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Definicin de INTERPOLACION
D EFI N I CI ON
La interpolacin se entiende como el procedimiento para obtener , valores
intermedios de una lista o tabla de valores , que no los contiene.
Existen diferentes tipos de interpolacin, a saber:(6.1)
Interpolacin de Newton.
Interpolacin de Lagrange.
Interpolacin por Splines.
Cada tipo de interpolacin requiere de cierta informacin particular , la cual
depende del tipo de proceso que se analiza , las cuales sern descritas a
continuacin.
6.1 Interpolacin de Newton.
La interpolacin de Newton se aplica a procesos , cuyos intervalos de la
variable independiente son simtricos, es decir la longitud del intervalo entre
cada medicin es la misma. Este tipo de interpolacin es muy til, cuando el
experimento es diseado y controlado por el experimentador. Como
ejemplo se puede citar, el caso de un qumico que esta llevando a cabo una
reaccin qumica, y determina la concentracin del producto cada 5 minutos
hasta que la reaccin ha concluido. Aun cuando el qumico, toma las
JOSE GARZON ARIAS
- 143 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
lecturas peridicamente cada 5 minutos, se puede requerir la concentracin
del producto digamos a los 13 minutos, dato con el que no se cuenta, pues
los valores mas cercanos sern los de 10 y 15 minutos. Aqu es donde se
puede hacer uso de la interpolacin de Newton.
Para poder efectuar una interpolacin de Newton se requiere , introducir
algunas definiciones y conceptos adicionales.
D ife r e n cia s h a cia de la n t e
D EFI N I CI ON
Las diferencias hacia adelante se obtienen al tomar la diferencia de los
valores de la variable dependiente ,entre dos valores sucesivos de la
variable independiente.
Ejemplo 6-1 : Calcule las diferencias hacia delante de la siguiente tabla que
representa la concentracin de un reactivo, respecto del tiempo, en una
reaccin qumica.
Tiempo en
10
15
20
25
234
212
203
198
180
173
seg.
Concentracin
en moles/litro
TABLA 6-0
Las diferencias hacia delante son:
Observacin
t(tiempo)
C(concentracin)
234
C1
C2
C3
C4
212-234= -22
2
212
-9+22=13
203-212=-9
JOSE GARZON ARIAS
4-13=-9
- 144 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
3
10
203
-5+9=4
198-203=-5
15
198
-13-4=-17
-18+5=-13
180-198=-18
5
20
-8
180
41
11+13=24
-7+18=11
173-180=-7
25
173
TABLA 6-1
Las cuales representan las diferencias hacia delante.
D ife r e n cia s dividida s
D EFI N I CI ON
Las diferencias dividas de primer orden son la diferencia entre dos valores
sucesivos de la variable independiente , divididos entre la longitud del
intervalo de medicin..
Ejemplo: Se tiene una tabla de concentraciones de un reactivo en una
reaccin qumica, cada 5 minutos en la forma:
Tiempo en
10
15
20
25
234
212
203
198
180
173
seg.
Concentracin
en moles/litro
Las diferencias divididas se obtienen en la forma :
c
t
212 234
=
5
203 212
=
5
198 203
=
5
180 198
=
5
173 180
=
5
-4.4
-1.8
-1
-3.6
-1.4
JOSE GARZON ARIAS
- 145 -
2c
t 2
3c
t 3
4c
t 4
5c
t 5
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
1.8 + 4.4
=
10
0.26
0.16 0.52
=
15
-0.012
0.1360 + 0.072
=
20
-0.0005
0.0112 + 0.0128
=
25
1. + 1.8
=
10
3.6 + 1
=
10
1.4 + 3.6
=
10
0.08
0.52 0.16
=
15
0.0227
0.1920 0.1360
=
20
0.0013
-0.26
0.44 + 0.52
=
15
-0.0027
0.22
0.0001
Uniendo las dos tablas se tiene que:
Tiempo en
10
15
20
25
234
212
203
198
180
173
seg.
Concentracin
en moles/litro
c
t
2c
t 2
3c
t 3
4c
t 4
5c
t 5
212 234
=
5
203 212
=
5
198 203
=
5
180 198
=
5
173 180
=
5
-4.4
-1.8
-1
-3.6
-1.4
1.8 + 4.4
=
10
0.26
0.08 0.26
=
15
-0.012
0.0227 + 0.012
=
20
-0.0005
0.0013 + 0.0005
=
25
1. + 1.8
=
10
3.6 + 1
=
10
1.4 + 3.6
=
10
0.08
0.26 0.08
= 15
0.0227
0.0027 0.0227
=
20
0.0013
-0.26
0.22 0.26
=
15
-0.0027
0.22
JOSE GARZON ARIAS
- 146 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
0.0001
Ordenando la tabla de forma vertical se tiene:
Ob
c
t
2c
t 2
3c
t 3
4c
t 4
5c
t 5
234
-4.4
0.26
-0.012
-0.0005
0.0001
212
-1.8
0.08
0.0227
0.0013
10
203
-1
-0.26
-0.0027
15
198
-3.6
0.22
20
180
-1.4
25
173
TABLA 6-2
Las cuales representan las diferencias divididas.
POLI N OM I OS D E N EW TON .
D EFI N I CI ON
Los polinomios de newton se obtienen a partir de la expresin
k
n
y(x)=
k =0
y i , donde la expresin s=.
s ( s (k 1))!
x(xi,xi+1).y =
k!
k
x xi
pertenece al intervalo
xi +1 xi
a) Haciendo uso de las diferencias hacia delante.
JOSE GARZON ARIAS
- 147 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Se puede determinar el polinomio de Newton que representa los datos
experimentales de la tabla 6-0 :
A saber:
((t t 3 ) / 5)!
((t t1 ) / 5)!
((t t 2 ) / 5)!
((t t 4 ) / 5)!
C 3 +
C1 +
C 2 +
C 4
1!
2!
3!
4!
C(t)=
b) Haciendo uso de las diferencias divididas.
Con los valores de la tabla 6-2 se puede determinar el polinomio que
representa la funcin de concentracin como:
C4(t)= b0+b1(t-5)+b2(t-5)(t-10)+b3(t-5)(t-10)(t-15)+b4(t-5)(t-10)(t-15)(t-20) ;
As tomando como b0 =203, t=13, b1=-1,b2=0.22, se tiene para C2(13)=
203-(13-5)-0.22(13-5)(13-10)=200.28 , lo cual tiene un error del 9.35%
Lo cual resulta ser una aproximacin bastante buena.
A continuacin se presenta un programa en Matlab para calcular las
diferencias divididas y el polinomio de aproximacin.
function [C,D]=newpoly(X,y)
%Datos
% - X es el vector de las abscisas
% Y es el vector de las ordenadas
% Resultados
% C es el vector de coeficientes.
% D es la tabla de diferencias divididas.
n=lenght(X);
D=zeros(n,n);
D(:1,)=Y ;
JOSE GARZON ARIAS
- 148 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
% generador de la tabla de diferencias divididas.
for j=2:n
for k=j:n
D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));
end
% Calculo del vector de coeficientes
C=D(n,n);
for k=(n-1):-1:1
C=conv(C,poly(X(k));
m= length(C);
C(m)=C(m)+D(k,k);
end
6.2 Interpolacin de Lagrange.
La interpolacin de Lagrange es una de las interpolaciones mas tiles, en
integracin Numrica, esta consiste en una representacin de polinomios
de la funcin, a considerar.
Suponga que se dan N+1 puntos como:
x0
x1
xn
f(x0) f(x1) .. f(xN)
JOSE GARZON ARIAS
- 149 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Donde x0,x1.. son las abscisas de los puntos dados en orden creciente.
Los espacios entre los puntos son arbitrarios . El polinomio de orden N que
pasa a travs de los N+1 puntos se puede escribir como:
y(x)= a0+a1x+a2x2+.+anxn ---(6.2.1)
a
n
Es decir que la funcin y(x)=
j =0
( x) y j , se expresa como una
combinacin lineal de las observaciones independientes de un experimento.
Los aj(x)I, son los coeficientes de Lagrange.
Para encontrar los coeficientes , hay que establecer y resolver un sistema
de n ecuaciones con n incgnitas, que resulta de cada observacin .
Lo que finalmente da, para el polinomio de Lagrange de orden N:
y(x)=
(xx1)(xx2).........
.(xxn)
(xx0)(xx2).........
.(xxn)
(xx0)(xx1).........
.(xxn1)
f0 +
f1 +....+
fn --.(x1 xn)
(x0 x1)(x0 x2).........
.(x0 xn) (x1 x0)(x1 x2).........
(xn x0)(xn x1).........
.(xn xn1)
(6.2.2)
La ecuacin anterior parece complicada, pero en realidad no es tan difcil,
incluso la memorizacin.
Apliquemos esta para resolver un problema qumico clsico.
Las densidades del sodio para tres temperaturas, se dan en la tabla
siguiente:
Observacin. i
Temperatura Ti oC
Densidad i Kg/m3
94
929
205
902
371
860
Escribir el polinomio de Lagrange que se ajusta a los datos experimentales
y determinar la densidad para T= 2510 C.
Solucin:
JOSE GARZON ARIAS
- 150 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Y(T)=
(T 205)(T 371)
(T 94)(T 371)
(T 94)(T 205)
(929) +
(902) +
(860)
(94 205)(94 371)
(205 94)(205 371)
(371 94)(371 205)
(6.2.3)
Graficando esta expresin.
Como se vera el ajuste del polinomio a los datos experimentales
corresponde a una parbola, y se puede determinar ahora un valor de
densidad para una temperatura no reportada.
b) Calculase ahora el valor de la densidad para T=2510C
substituyendo 251 en la expresin, se tiene entonces:
Y(T)=
(251 205)(251 371)
(251 94)(251 371)
(251 94)(251 205)
(929) +
(902) +
(860)
(94 205)(94 371)
(205 94)(205 371)
(371 94)(371 205)
Lo cual da como resultado : y(251)= 890.5 kg/cm3. Esta aproximacin tiene
un error de 5.53% , que es bastante chico.
JOSE GARZON ARIAS
- 151 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
A continuacin se presenta un pequeo programa en Matlab para la
interpolacin de Lagrange.
function [C,L] =lagran(X,Y)
%Datos
% X es el vector de las abscisas
% Y es el vector de Las ordenadas
% Resultados
%C es la matriz de Coeficientes del polinomio interpolador
% L es la matriz de los coeficientes de lagrange.
w= lenght(X);
n=w-1;
L=zeros(w,w);
%Formacin de los polinomios de coeficientes de Lagrange.
for k=1: n+1
V=1;
for j=1:n+1
if k=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
end
% Calculo de los coeficientes del polinomio
C=Y*Y
6.3 Interpolacin de Splines cbicos.
D EFI N I CI ON
JOSE GARZON ARIAS
- 152 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Los Splines son polinom ios que se aj ust an a la m nim a
cant idad de punt os sobre los dat os experim ent ales. Con
diferent es t ipos de cot as
La interpolacin de Splines cbicos, es una de las tcnicas de ajustes de
curvas e interpolacin mas poderosas que existen. Esta permite modelar y
ajustar datos experimentales que son heterogneos. En esta tcnica se
requiere un mnimo de tres puntos para trabajar. Para poder entender esta
tcnica , se requiere haber entendido los conceptos de interpolacin
polinomial a trozos.
6.3.1 Interpolacin polinomial a trozos
D EFI N I CI ON
La int erpolacin polinom ial a t rozos, se obt iene al
dividir los
int ervalos del conj unt o de dat os en sub. int ervalos, lo m as
pequeo posible, y aplicar el m t odo de int erpolacin de
Lagrange
x0
x1
x2
FIG 6.3.1
xk-1 xk
INTERPOLACION POLINOMIAL A TROZOS
JOSE GARZON ARIAS
- 153 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
La interpolacin lineal a trozos consiste en utilizar lneas rectas entre los
puntos de la forma:
Sk(x)=
x xk
x x k +1
yk +
y k +1
x k x k +1
x k +1 x k
6.3.1
La cual tiene la forma de la lnea recta , lo cual es un Spline lineal:
Siendo dk=
y k +1 y k
x k +1 x k
Sk(x)=yk+dk(x-xk).
6.3.2
Este Spline lineal se puede escribir para toda la curva en la forma :
y 0 + d 0 ( x x0 )
y + d (x x )
1
1
1
..6.3.3
S(x)=
.
.
y k + d k ( x xk )
Suponiendo que las abscisas se ordenan de manera creciente en la forma :
X0<x1<x2<x3<<xN-1<XN y dado un valor de x , el intervalo [xk,xk+1]
al que pertenece x se puede hallar calculando de manera sucesiva las
diferencias : x-x1,..,x-xk, x-xk+1, hasta llegar a k+1 , que es el menor
entero tal que x-xk+1<0. Una vez encontrado el valor de k tal que xkxxk+1,
el valor de la funcin S(x) ser:
S(x)= Sk(x)=yk+dk(x-xk)6.3.4
JOSE GARZON ARIAS
- 154 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejemplo : Escriba los splines lineales, para la funcin tabular :
i
xi
f(xi)
0.9162
0.25
0.8109
0.5
0.6931
0.75
0.5596
1.0
0.4055
di
0.8109 0.9162
=-0.4212
0.25 0
0.6931 0.8109
=-0.4712
0.5 0.25
0.5596 0.6931
=-0.534
0.75 0.5
0.4055 0.5596
=-0.6164
1. 0.75
si
0.8109-0.4212(x-0.25)
0.6931-0.4712 (x-0.5)
0.5596-0.534 (x-0.75)
0.4055-0.6164 (x-1)
a continuacin se presenta la grafica de los splines lineales:
JOSE GARZON ARIAS
- 155 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
6.3.2 Splines cbicos.
D EFI N I CI ON
Supngase que se t ienen N+ 1 punt os de la form a
{ ( x k, y k ) }
k= 0
cuyas abscisas est n ordenadas de m anera
crecient e a= x 0 < x 1 < ..< x n = b . Se dice que la funcin S( x) es
un Spline cbico si exist en N polinom ios cbicos Sk ( x) ,que se
pueden escribir en t rm inos de coeficient es sk,0 , sk,1 ,sk,2 ,y
sk,3 com o :
I .- S( x) = Sk ( x) = sk,0 + sk,1 ( x- x k ) + sk,2 ( x- x k ) 2 + sk,3 ( x- x k ) 3
para x [ x k ,x k+ 1 ] y k = 0,1,.,N- 1,que verifican las siguient es
propiedades:
I I .- Sk ( x) = y k para k = 0,1,.,N
I I I .- Sk ( x k+ 1 ) = Sk+ 1 ( x k+ 1 ) para k = 0,1,.N- 2
I V.- S k ( x k+ 1 ) = S k+ 1 ( x k+ 1 ) para k = 0,1,.N- 2
V.- S k ( x k+ 1 ) = S k+ 1 ( x k+ 1 ) para k = 0,1,.N- 2
JOSE GARZON ARIAS
- 156 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
En la interpolacin de Splines cbicos, se construye una funcin cbica
Sk(x) en cada intervalo [xk,xk+1] de forma tal que la curva definida a tramos
y=S(x) que resulta es dos veces derivable y la segunda derivada es
continua en el intervalo completo [x0,xn] . La continuidad de la primera
derivada S(x) significa que la curva de la ecuacin y=S(x) no tiene
esquinas; la continuidad de S (x) significa que el radio de curvatura esta
definida en cada punto.
De forma Practica se parte de una funcin f(x) de valor real ,ya sea en
forma tabular o analtica en el intervalo [a,b] , con a=x0<x1<x2<..<xn=b.
Se construye una funcin g3( xi)=f(xi) con i=0,1,2,.,n
de donde pi =f(xi) y pi(xi+1)=f(xi+1) para i=0,1,..,n-1
6.3.5
y esta ultima implica que : pi-1(xi)=pi(xi) i=1,2,..,n de modo que g3(x) es
continua en [a,b] y tiene los puntos interiores x1, x2, x3, xn-1 como puntos
de quiebre o donde g3( xi) no es diferenciable en general.
Como ya se dijo se requiere que pi(xi)=f(xi) y pi(xi+1)=f(xi+1) i=0,1,,n-1
6.3.6. As que finalmente el spline cbico:
pi(x)= c1,i+c2,i(x-xi)+ c3,i(x-xi)2+c4,i(x-xi)3..6.3.6
Ejemplo:
Determinar los Splines cbicos con extremos fijos que pasa por los puntos
(0,0.0),(1,0.5),(2,2.0),(3,1.5), y que verifica las condiciones sobre la primera
derivada en la frontera dadas por S(0)=0.2,S(3)=-1. Con estos datos
calculamos :
h0=h1=h2=1
d0=(y1-y0)/h0=(0.5-0.0)/1=0.5
d1=(y2-y1)/h1=(2.0-0.5)/1=1.5
d2=(y3-y2)/h2=(1.5-2.0)/1=-0.5
u1=6(d1-d0)=6(1.5-0.5)=6.0
u2=6(d2-d1)=6(-0.5-1.5)=-12.0
Con lo cual se obtiene el sistema:
JOSE GARZON ARIAS
- 157 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
3
+2
2
m1 + m2 = 6.0 3(0.5 0.2) = 5.1
m1 + 2 + m2 = 12.0 3(1.0 (0.5)) = 10.5
2
Resolviendo m1=2.25
m2=-3.72, tomando los valores de las tablas para
los coeficientes m0=3(0.5-0.2)-
2.52
3.72
=-0.36, m3=3(-1.0+0.5)=0.36.
2
2
Con estos los splines cbicos son:
S0(x)=0.48x3-0.18x2+0.2x
0x1
S1(x) =-1.04(x-1)3+1.26(x-1)2+1.28(x-1)+0.5 1x2
S2(x)=0.68(x-2)3-1.86(x-2)2+0.68(x-2)+2.0 2x3
Graficando los splines se tiene:
A continuacin se presenta un programa que construye y determina el splin
cbico ,con extremos fijos S(x), para N+1 datos {(xk,yk)}Nk=0
function S=csfit(X,Y,dx0,dxn)
% Datos :
%X es el vector de las abscisas
JOSE GARZON ARIAS
- 158 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
%Y es un vector de las ordenadas
% dx0 = S(x0) es la derivada en el primer extremo
% dxn = S(xn) es la derivada en el segundo extremo.
% Resultado
%S es la matriz de coeficientes , en orden descendiente.
N=lenght(X)-1;
H=diff(X);
D=diff(y)./H
A=H(2:N-1);
B=2*(H(1:N-1)+H(2:N));
C=H(2:N);
U=6*diff(D);
% Restricciones en los extremos.
B(1)=B(1)-H(1)/2;
U(1)=U(1)-3*(D(1)-dx0);
B(N-1)=B(N-1)-H(N)/2;
U(N-1)=U(N-1)-3*(dxn-D(N));
for k=2:N-1
temp=A(k-1)/B(k-1);
B(k)=B(k)-temp*C(k-1);
U(k)=U(k)-temp*U(k-1);
end
M(N)=U(N-1)/B(N-1);
for k=N-2:-1:1
M(k+1)=((U(k)-C(k)*M(k+2))/B(k);
end
M(1)=3*(D(1)-dx0)/H(1)-M(2)/2;
M(N+1)=3*(dxn-D(N)/H(N)-M(N)/2;
for k=0:N-1
S(k+1,1)=(M(k+2)-M(k+1))/(6*H(k+1));
S(k+1,2)=M(k+1)/2;
S(k+1,3)=D(k+1)-H(k+1)*(2*M(k+1)+M(k+2))/6;
JOSE GARZON ARIAS
- 159 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
S(k+1,4)=Y(k+1);
end
Ejemplo de una corrida del programa anterior.
Determinacin de los coeficientes de los splines cbicos, con extremos fijos
que pasan por los puntos:
(0,0.0),(1,0.5),(2,2.0),(3,1.5)
Bajo las condiciones de la primera derivada en los extremos dadas por:
S(0)=0.2 y S(3)=-1
As
>>X=[0 1 2 3]; Y=[0 0.5 2.0 1.5]; dx0=0.2; dxn=-1;
>>S=sfit(X,Y,dx0,dxn)
lo cual despliega en la pantalla los resultados:
S=
0.4800 -0.1800 0.2000 0
-1.0400 1.2600 12800 0.5000
0.6800 -1.8600 0.6800 2.0000
PROBLEMAS:
1.- Determine los splines cbicos ,sujetos en los extremos , que pasa por
los puntos (-3,2),(-2,0),(1,3),(4,1) y verifica las condiciones sobre la
derivada primera en los extremos dadas por S(-3)=-1 y S(4)=1.
2.- Halle el Spline cbico natural que pasa por los puntos (-3,2),(-2,0),(1,3) y
(4,1) y verifica las condiciones de frontera libre S(-3)=0 y S(4)=0.
3.- Determine el Spline cbico extrapolada que pasa por los puntos (-3,2),(-
2,0),(1,3) y (4,1)
4.- Determine el Spline cbico con terminacin parablica que pasa por los
puntos (-3,2),(-2,0),(1,3) y (4,1).
JOSE GARZON ARIAS
- 160 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
BIBLIOGRAFIA.
1.- Carnahan,Brice, et al (1969): Applied Numerical Methods , Wiley New
York
2.- Conte, S.D. and Carl de Boor(1972) : Elementary Numerical Analysis ,
2nd ed., McGraw-Hill,New York.
3.- Fike , C.T. (1968) : Computer evaluation of Mathematical Functions ,
Prentice Hall ,Englewood,Cliffs,N.J.
4.- Forsythe , G.E. and C.B. Moler (1967):Computer Solution of Linear
Algebraic Systems , Prentice Hall, Englewood Cliffs,N.J.
5.-Hamming , R.W. (1962): Numerical Methods for Scientists and
Engineers, McGraw Hill, New york.
6.- Hamming , R.W. (1971): Introduction to Applied Numerical Analysys ,
McGraw Hill , New York.
7.- Hanselman Duane , Littlefield Bruce The Student Edition of MATLAB.
The Math Works Inc.
JOSE GARZON ARIAS
- 161 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
JOSE GARZON ARIAS
- 162 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
AJUSTE DE CURVAS
INTRODUCCION AL AJUSTE DE MINIMO CUADRADOS.
ERROR ESTNDAR EN LA ESTIMACIN
COEFICIENTE DE DETERMINACIN
COEFICIENTE DE CORRELACIN
MODELO DE REGRESIN LINEAL CON EL USO DE
MATRICES
REGRESIN LINEAL MLTIPLE
ESTIMACIN DE LOS COEFICIENTES.
JOSE GARZON ARIAS
- 163 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
7.0 AJUSTE DE CURVAS.
DEFINICION.
El ajuste de curvas consiste en buscar una funcin, de tipo polinomial, que
se ajuste a los datos experimentales presentados
El mtodo mas conocido es el mtodo de los mnimos cuadrados.
7.1 Mtodos de mnimos cuadrados.
El procedimiento mas objetivo para ajustar una recta a un conjunto de datos
presentados en un diagrama de dispersin se conoce como "el mtodo de
los mnimos cuadrados". La recta resultante presenta dos caractersticas
importantes:
1. Es nula la suma de las desviaciones verticales de los puntos a partir de
la recta de ajuste
(Y - Y) = 0.
2. Es mnima la suma de los cuadrados de dichas desviaciones. Ninguna
otra recta dara una suma menor de las desviaciones elevadas al cuadrado
(Y - Y) = 0 (mnima).
El procedimiento consiste entonces en minimizar los residuos al cuadrado
Ci
Re emplazando
nos queda
La obtencin de los valores de a y b que minimizan esta funcin es un
problema que se puede resolver recurriendo a la derivacin parcial de la
funcin en trminos de a y b: llamemos G a la funcin que se va a
minimizar:
JOSE GARZON ARIAS
- 164 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Tomemos las derivadas parciales de G respecto de a y b que son las
incgnitas y las igualamos a cero; de esta forma se obtienen dos
ecuaciones llamadas ecuaciones normales del modelo que pueden ser
resueltas por cualquier mtodo ya sea igualacin o matrices para obtener
los valores de a y b.
Derivamos parcialmente la ecuacin respecto de a
Primera ecuacin normal
Derivamos parcialmente la ecuacin respecto de b
JOSE GARZON ARIAS
- 165 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Segunda ecuacin normal
Los valores de a y b se obtienen resolviendo el sistema de ecuaciones
resultante. Veamos el siguiente ejemplo:
En un estudio econmico se desea saber la relacin entre el nivel de
instruccin de las personas y el ingreso.
EJEMPLO 1
Se toma una muestra aleatoria de 8 ciudades de una regin geogrfica de
13 departamentos y se determina por los datos del censo el porcentaje de
graduados en educacin superior y la mediana del ingreso de cada ciudad,
los resultados son los siguientes:
CIUDAD : 1 2 3 4 5 6 7 8
% de (X)
Graduados : 7.2 6.7 17.0 12.5 6.3 23.9 6.0 10.2
Ingreso (Y)
Mediana : 4.2 4.9 7.0 6.2 3.8 7.6 4.4 5.4 (0000)
Tenemos las ecuaciones normales
y = na + bx
xy = ax + bx
Debemos encontrar los trminos de las ecuaciones
y, x, xy, x Por tanto procedemos de la siguiente forma:
XY
JOSE GARZON ARIAS
- 166 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
4.2
7.2
30.24
51.84
4.9
6.7
32.83
44.89
7.0
17.0
119.00
289.00
6.2
12.5
77.50
156.25
3.8
6.3
23.94
39.69
7.6
23.9
181.64
571.21
4.4
6.0
26.40
36.00
5.4
10.2
55.08
104.04
43.5
89.8
546.63
1292.92
Sustituyendo en las ecuaciones los resultados obtenidos tenemos: 43.50 =
8a + 89.8b
546.63 = 89.8a + 1292.92b
multiplicamos la primera ecuacin por (-89.8) y la segunda por (8) as:
43.50 = 8a + 89.8b (-89.8) 546.63 = 89.8a + 1292.92b (8)
-3906.30 = -718.4a - 8064.04b 4373.04 = 718.4a + 10343.36b
466.74 = -0- 2279.32b
Este valor de b lo reemplazamos en cualquiera de las ecuaciones para
obtener a as:
Reemplazando b = 0.20477 en la primera ecuacin normal
43.5 = 8a + 89.8 (0.20477) 43.5 = 8a + 18.3880 43.5 - 18.3880 = 8a
25.1120 = 8a
JOSE GARZON ARIAS
- 167 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Tenemos entonces que los coeficientes de regresin son : a = 3.139 y b =
0.20477. Por tanto la ecuacin de regresin nos queda:
Significa entonces que por cada incremento en una unidad en X el valor de
se aumenta en 0.20477
Esta ecuacin permite estimar el valor de
para cualquier valor de X, por
ejemplo: Una ciudad que tiene un porcentaje de graduados a nivel superior
del 28% la mediana de ingreso para la ciudad ser:
Los valores a y b tambin se pueden obtener de la siguiente forma:
partiendo de las ecuaciones normales tenemos:
Si dividimos todos los trminos de la ecuacin (1) entre n nos queda:
Tenemos entonces que el primer termino es
el segundo termino es la
incgnita a y el tercer termino es la incgnita b multiplicada por
por tanto
nos queda:
JOSE GARZON ARIAS
- 168 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
entonces
Reemplazando a en la ecuacin (2) tenemos
a = 5.4375 0.20477 (11.2250) = 5.4375 2.2985 = 3.139
JOSE GARZON ARIAS
- 169 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Se debe tener presente la diferencia entre el valor de
obtenido con la
ecuacin de regresin y el valor de Y observado. Mientras
es una
estimacin y su bondad en la estimacin depende de lo estrecha que sea la
relacin entre las dos variables que se estudian; Y es el valor efectivo,
verdadero obtenido mediante la observacin del investigador.
En el ejemplo Y es el valor mediano del ingreso que obtuvo el investigador
utilizando todos los ingresos observados en cada ciudad y
es el valor
estimado con base en el modelo lineal utilizado para obtener la ecuacin de
regresin
Los valores estimados y observados pueden no ser iguales por ejemplo la
primera ciudad tiene un ingreso mediano observado de Y = 4.2 al
reemplazar en la ecuacin el porcentaje de graduados obtenemos un
estimado de
Grficamente lo anterior se puede mostrar as:
JOSE GARZON ARIAS
- 170 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Claramente se observa en la grfica que hay una diferencia entre el valor
efectivo de Y y el valor estimado; esta diferencia se conoce como error en
la estimacin, este error se puede medir. A continuacin se ver el
procedimiento.
7.2 Error estndar en la estimacin .
El error estndar de la estimacin designado por sYX mide la disparidad
"promedio" entre los valores observados y los valores estimados de
. Se
utiliza la siguiente expresin.
Debemos entonces calcular los valores de
para cada ciudad sustituyendo
en la ecuacin los valores de los porcentajes de graduados de cada ciudad
estudiada.
4.2
7.2
4.6
-0.4
0.16
4.9
6.7
4.5
0.4
0.16
JOSE GARZON ARIAS
- 171 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
7.0
17.0
6.6
0.4
0.16
6.2
12.5
5.7
0.5
0.25
3.8
6.3
4.4
-0.6
0.36
7.6
23.9
8.0
-0.4
0.16
4.4
6.0
4.4
0.0
0.00
5.4
10.2
5.2
0.2
0.04
1.29
Syx = 0.46 (decenas de miles $)
Como esta medida trata de resumir la disparidad entre lo observado y lo
estimado, es decir, trata de medir la diferencia promedio entre lo observado
y lo estimado esperado de acuerdo al modelo, puede considerarse como
un indicador del grado de precisin con que la ecuacin de regresin,
describe la relacin entre las dos variables. Este error estndar se ve
afectado por las unidades y sus cambios ya que es una medida absoluta,
pues, se da en la misma unidad de medida que esta dada la variable Y; en
el ejemplo 0.46 sern decenas de miles de pesos, razn por la cual no es
posible comparar con las relaciones de variables dadas en distinta unidad
de medida. Es necesario entonces calcular una medida que interprete o
mida mejor el grado de relacin entre las variables.
Coeficiente de determinacin.
El cambio de la variable Y generalmente depende de muchos factores, en
ocasiones, difciles de identificar; con el modelo lineal simple, slo tenemos
presente uno. Por ejemplo, en nuestro caso la mediana del ingreso
depende no slo del porcentaje de graduados en el nivel superior, que es,
JOSE GARZON ARIAS
- 172 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
el factor que tenemos presente, pueden entrar a jugar factores tales como,
la distribucin de la edad en la poblacin, la distribucin por sexo en la
poblacin, la industrializacin de la ciudad, el numero de universidades y
muchos otros.
El coeficiente de determinacin mide o interpreta la cantidad relativa de la
variacin que ha sido explicada por la recta de regresin, es decir, la
proporcin de cambio en Y explicado por un cambio en la variable X ( X es
el factor que se utiliza para calcular la recta de ajuste o ecuacin de
regresin, en el ejemplo es el porcentaje de graduados en el nivel superior
en cada ciudad).
Para el ejemplo el Coeficiente de determinacin va a medir la proporcin
del cambio en el ingreso mediano de cada ciudad, debido o explicado por
un cambio en el porcentaje de graduados en el nivel superior.
Veamos algunos componentes de la variabilidad en el anlisis de regresin:
La diferencia entre cada valor de Y observado y
media se denomina
variacin de Y.
La diferencia entre
estimado y
media , es la variacin tenida en cuenta
por la ecuacin de regresin, razn por la cual se denomina variacin
explicada de Y.
La diferencia entre Y observado y
estimado, son variaciones
consideradas debidas a factores diferentes al tenido presente por la
ecuacin de regresin por eso se llama: variacin no explicada de Y.
JOSE GARZON ARIAS
- 173 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
La diferencia entre Y observado y
estimado, son variaciones
consideradas debidas a factores diferentes al tenido presente por la
ecuacin de regresin por eso se llama: variacin no explicada de Y.
La sumatoria de las diferencias en cada una de las formas de variacin la
podemos representar as:
Grficamente esta relacin se puede representar as:
JOSE GARZON ARIAS
- 174 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Se dijo anteriormente, que el coeficiente de determinacin es la proporcin
de cambio explicado en Y, por cambio en X, es decir, la proporcin que
representa la variacin explicada de la variacin total. Recuerde una
proporcin es la relacin de una parte con el total, por tanto, el coeficiente
de determinacin ser:
En otras palabras el coeficiente de determinacin es la relacin entre la
variacin explicada y la variacin total. Su valor siempre estar
Para su calculo se procede as:
4.2
5.44
-1.24
1.54
4.6
-0.84
0.71
-0.4
4.9
5.44
-1.24
0.29
4.5
-0.84
0.88
0.4
7.0
5.44
1.56
2.43
6.6
1.16
1.35
0.4
6.2
5.44
0.76
0.58
5.7
0.26
0.07
0.5
3.8
5.44
1.64
2.69
4.4
-1.04
1.08
-0.6
7.6
5.44
2.16
4.66
8.0
2.56
6.55
-0.4
4.4
5.44
1.04
1.08
4.4
-1.04
1.08
0.0
5.4
5.44
0.4
0.001
5.2
-0.24
0.06
0.2
JOSE GARZON ARIAS
- 175 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
43.5
13.271
11.78
Generalmente esta proporcin se expresa como porcentaje por tanto
podemos decir que
r = 88.76%
como conclusin podemos decir que el 88.76% de la variacin en el ingreso
mediano de las ciudades de la muestra esta relacionada o explicada por la
variacin en el porcentaje de graduados en educacin Superior en cada
ciudad.
Coeficiente de correlacin
Este Coeficiente como ya se dijo mide la fuerza de la relacin entre las
variables. El coeficiente tiene el signo que tiene b y su valor estar
El signo menos en el ndice significa una relacin negativa y
un signo ms una correlacin positiva. El coeficiente se obtiene sacando la
raz cuadrada al coeficiente de determinacin y se simboliza con "r".
JOSE GARZON ARIAS
- 176 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
En este caso el coeficiente r tiene signo positivo ya que toma el valor de b
obtenido con las ecuaciones normales toma valor positivo.
A continuacin se da, a modo de orientacin , como podran interpretarse
los valores de r (positivo o negativo)
0.0
0.2
Correlacin muy dbil, despreciable
0.2
0.4
Correlacin dbil. bajo
0.4
0.7
Correlacin moderada
0.7
0.9
Correlacin fuerte, alto, importante
0.9
1.0
Correlacin muy fuerte, muy alto
La correlacin entre los valores de dos variables es un hecho. El que lo
consideremos satisfactorio o no, depende de la interpretacin. Otro
problema que representa la correlacin es cuando se pregunta si una
variable, de algn modo causa o determina a la otra. La correlacin no
implica causalidad. Si las variables X e Y estn correlacionadas, esto puede
ser por que X causa a Y, o porque Y causa a X o porque alguna otra
variable afecta tanto a X como Y, o por una combinacin de todas estas
razones; o puede ser que la relacin sea una coincidencia.
7.3 Modelo de regresin lineal con el uso de matrices.
Al ajustar un modelo de regresin lineal mltiple, en particular cuando el
nmero de variables pasa de dos, el conocimiento de la teora matricial
puede facilitar las manipulaciones matemticas de forma considerable.
Suponga que el experimentador tiene k variables independientes x1,
x2,....,xk, y n observaciones y1, y2,...., yn, cada una de las cuales se pueden
expresar por la ecuacin
yi = b 0 + b 1x1i +b 2x2i +.+ b kxki +e i
JOSE GARZON ARIAS
- 177 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Este modelo en esencia representa n ecuaciones que describen cmo se
generan los valores de respuesta en el proceso cientfico. Con el uso de la
notacin matricial, podemos escribir la ecuacin
y=Xb + e
donde
Entonces la solucin de mnimos cuadrados para la estimacin de b que se
ilustra en la seccin Estimacin de coeficientes, "Regresin lineal mltiple"
implica encontrar b para la que
SSE = (y - Xb)'(y - Xb)
se minimiza. Este proceso de minimizacin implica resolver para b en la
ecuacin
No presentaremos los detalles relacionados con las soluciones de las
ecuaciones anteriores. El resultado se reduce a la solucin de b en
(X'X)b = X'y
Ntese la naturaleza de la matriz X. Aparte del elemento inicial, el i-simo
rengln representa los valores x que dan lugar a la respuesta yi. Al escribir
JOSE GARZON ARIAS
- 178 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
las ecuaciones normales se pueden escribir en la forma matricial
AB=g
Si la matriz A es no singular, podemos escribir la solucin para el
coeficiente de regresin como
b = A-1g =(XX)-1Xy
De esta forma se puede obtener la ecuacin de prediccin o la ecuacin de
regresin al resolver un conjunto de k + 1 ecuaciones con un nmero igual
de incgnitas. Esto implica la inversin de la matriz X'X de k + 1 por k + 1.
Las tcnicas para invertir esta matriz se explican en la mayora de los libros
de texto sobre determinantes y matrices elementales. Por supuesto,
MATLAB dispone de muchos paquetes de computadora de alta velocidad
para problemas de regresin mltiple, paquetes que no slo imprimen
estimaciones de los coeficientes de regresin, sino que tambin
proporcionan otra informacin relevante para hacer inferencias respecto a
la ecuacin de regresin.
JOSE GARZON ARIAS
- 179 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejemplo 1
Se midi el porcentaje de sobre vivencia de cierto tipo de semen animal,
despus del almacenamiento, en varias combinaciones de concentraciones
de tres materiales que se utilizan para aumentar su oportunidad de sobre
vivencia. Los datos son los siguientes:
y(% sobrevivencia)
x1(peso
x2(peso
x3(peso
%)
%)
%)
25,5
1,74
5,30
10,80
31,2
6,32
5,42
9,40
25,9
6,22
8,41
7,20
38,4
10,52
4,63
8,50
18,4
1,19
11,60
9,40
26,7
1,22
5,85
9,90
26,4
4,10
6,62
25,9
6,32
8,72
9,10
32
4,08
4,42
8,70
25,2
4,15
7,60
9,20
39,7
10,15
4,83
9,40
35,7
1,72
3,12
7,60
26,5
1,70
5,30
8,20
Estime el modelo de regresin lineal mltiple para los datos dados.
SOLUCIN:
Las ecuaciones de estimacin de mnimos cuadrados, (X'X)b = X'y, son
JOSE GARZON ARIAS
- 180 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
=
De los resultados de una computadora obtenemos los elementos de la
matriz inversa
y despus, con el uso de la relacin b = (XX)-1 Xy, los coeficientes
estimados de regresin son
b0= 39.1574, b1 = 1.0161, b2 = -1.8616, b3 = -0.3433.
De aqu nuestra ecuacin de regresin estimada es
Para el caso de una sola variable independiente, el grado del polinomio de
mejor ajuste a menudo se puede determinar al graficar un diagrama de
dispersin de los datos que se obtienen de un experimento que da n pares
de observaciones de la forma {(xi, yi); i = 1, 2, .... n}.
JOSE GARZON ARIAS
- 181 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
=
Al resolver estas r + 1 ecuaciones, obtenemos las estimaciones b0, b1,.....,
br y por ello generamos la ecuacin de prediccin de regresin polinomial
El procedimiento para ajustar un modelo de regresin polinomial se puede
generalizar al caso de ms de una variable independiente. De hecho, el
estudiante de anlisis de regresin debe, en esta etapa, tener la facilidad
para
ajustar
cualquier
modelo
lineal
en,
digamos,
variables
independientes. Suponga, por ejemplo, que tenemos una respuesta Y con k
= 2 variables independientes y se postula un modelo cuadrtico del tipo
yi = b 0 + b 1x1i + b 2x2i +b 11x21i+ b 22x22i+b 12x1i x2i+e I
donde yi, i = 1, 2, ..., n, es la respuesta para la combinacin (x1i, x2i) de las
variables independientes en el experimento. En esta situacin n debe ser al
menos 6, pues hay seis parmetros a estimar mediante el procedimiento de
mnimos
cuadrados.
Adems, como el modelo contiene trminos cuadrticos en ambas
variables, se deben usar al menos tres niveles de cada variable.
El lector debe verificar con facilidad que las ecuaciones normales de
mnimos cuadrados (X'X)b = X'y estn dadas por:
JOSE GARZON ARIAS
- 182 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejemplo 2
Los siguientes datos representan el porcentaje de impurezas que ocurren a
varias temperaturas y tiempos de esterilizacin durante una reaccin
asociada con la fabricacin de cierta bebida.
Tiempo de esterilizacin, x2
Temperatura, x1 (C)
(min)
75
100
125
15
14.05
10.55
7.55
JOSE GARZON ARIAS
- 183 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
20
25
14.93
9.48
6.59
16.56
13.63
9.23
15.85
11.75
8.78
22.41
18.55
15.93
21.66
17.98
16.44
Estimar los coeficientes de regresin en el modelo
m Y|x = b 0 + b 1 x1 +b 2 x2+b 11 x12+b 22 x22+ ..+ b 12 x1 x2
SOLUCIN:
b0 = 56,4668
b11 =0,00081
b1 = -0,36235
b22 = 0,08171
b2 = -2,75299
b12 = 0,00314
y nuestra ecuacin de regresin estimada es
Muchos de los principios y procedimientos asociados con la estimacin de
funciones de regresin polinomial caen en la categora de la metodologa
de respuesta superficial, un conjunto de tcnicas que los cientficos e
ingenieros han utilizado con bastante xito en muchos campos. Problemas
como la seleccin de un diseo experimental apropiado, en particular para
casos donde hay un nmero grande de variables en el modelo, y la eleccin
de las condiciones "ptimas" de operacin sobre x1,x2,.....,xk a menudo se
aproximan a travs del uso de estos mtodos
JOSE GARZON ARIAS
- 184 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
7.4 Regresin lineal mltiple.
En la mayor parte de los problemas de investigacin donde se aplica el
anlisis de regresin se necesita ms de una variable independiente en el
modelo de regresin. La complejidad de la mayor parte de los mecanismos
cientficos es tal que para ser capaces de predecir una respuesta
importante se necesita un modelo de regresin mltiple. Cuando este
modelo es lineal en los coeficientes se denomina modelo de regresin lineal
mltiple. Para el caso de k variables independientes X1, X2,....,Xk, la media
de Y| X1, X2,....,XK est dada por el modelo de regresin lineal mltiple
m Y|x1, x2 ,, xk = b 0 + b 1 x1 +..+ b k xk
y la respuesta estimada se obtiene de la ecuacin de regresin de la
muestra
donde cada coeficiente de regresin b i se estima por bi de los datos de la
muestra con el uso del mtodo de mnimos cuadrados. Como en el caso de
una sola variable independiente, el modelo de regresin lineal mltiple a
menudo puede ser una representacin adecuada de una estructura ms
complicada dentro de ciertos rangos de las variables independientes.
Tcnicas de mnimos cuadrados similares tambin se pueden aplicar al
estimar los coeficientes cuando el modelo lineal involucra, digamos,
potencias y productos de las variables independientes. Por ejemplo, cuando
k = 1, el experimentador puede pensar que las medias m Y|x1 no caen en
una lnea recta pero que se describen de forma ms apropiada con el
modelo de regresin polinomial
m Y|x = b 0 + b 1 x +b 2 x2+ ..+ b r xr
y la respuesta estimada se obtiene de la ecuacin de regresin polinomial
JOSE GARZON ARIAS
- 185 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
En ocasiones surge confusin cuando hablamos de un modelo polinomial
como de un modelo lineal. Sin embargo, los estadsticos por lo general se
refieren a un modelo lineal como uno en el cual los parmetros ocurren
linealmente, sin importar cmo entran las variables independientes al
modelo. Un ejemplo de un modelo no lineal es la relacin exponencial
m Y|x = a b x,
que se estima con la ecuacin de regresin
Existen muchos fenmenos en la ciencia y en la ingeniera que son
inherentemente no lineales por naturaleza y, cuando se conoce la
estructura real, desde luego se debe hacer un intento para ajustar el
modelo presente. La literatura sobre estimacin por mnimos cuadrados de
modelos no lineales es voluminosa.
Estimacin de los coeficientes.
En esta seccin obtenemos los estimadores de mnimos cuadrados de los
parmetros b 0 + b 0, b 1,...., b k mediante el ajuste del modelo de regresin
lineal mltiple
m Y|x1 , x2,......, xk = b 0 + b 1x1+ b 2x2+ b kxk
a los puntos de datos
i= 1,2,....,n y n >k },
donde yi es la respuesta observada para los valores x1i, x2i,........., xki, de las k
variables independientes x1 , x2,......, xk .Cada observacin (x1i, x2i,......,xki, yi)
satisface la ecuacin
yi = b 0 + b 1x1i +b 2x2i +.+ b kxki +e i
o
yi = b0 + b1x1i +b2x2i +.+ bkxki +ei,
JOSE GARZON ARIAS
- 186 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
donde e i y ei son el error aleatorio y residual, respectivamente, asociados
con la respuesta yi . Al utilizar el concepto de mnimos cuadrados para
llegar a las estimaciones b0, b1,..., bk, minimizamos la expresin
Al diferenciar SSE a su vez con respecto a b0,b1, b2,......,bk, e igualar a cero,
generamos un conjunto de k + 1 ecuaciones normales
Estas ecuaciones se pueden resolver para b0, b1,b2, ..., bk mediante
cualquier mtodo apropiado para resolver sistemas de ecuaciones lineales.
Ejemplo 1
Se realiz un estudio sobre un camin de reparto ligero a diesel para ver si
la humedad, temperatura del aire y presin baromtrica influyen en la
emisin de xido nitroso (en ppm). Las mediciones de las emisiones se
tomaron en diferentes momentos, con condiciones experimentales
variantes. Los datos son los siguientes:
JOSE GARZON ARIAS
- 187 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
xido
Humedad
Temperatura
Presin
xido
Humedad
Tempera
nitroso,
x1
x2
x3
nitros
x1
x2
y
0,90
72,4
76,3
29,18
1,07
23,2
76,8
0,91
41,6
70,3
29,35
0,94
47,4
86,6
0,96
34,3
77,1
29,24
1,10
31,5
76,9
0,89
35,1
68,0
29,27
1,10
10,6
86,3
1,00
10,7
79,0
29,78
1,10
11,2
86,0
1,10
12,9
67,4
29,39
0,91
73,3
76,3
1,15
8,3
66,8
29,69
0,87
75,4
77,9
1,03
20,1
76,9
29,48
0,78
96,6
78,7
0,77
72,2
77,7
29,09
0,82
107,4
86,8
1,07
24,0
67,7
29,60
0,95
54,9
70,9
El modelo es:
m Y|x1, x2, x3 = b 0 + b 1 x1 + b 2 x2 +..+ b 3 x3
Ajuste este modelo de regresin lineal mltiple a los datos dados y despus
estime la cantidad de xido nitroso para las condiciones donde la humedad
es 50%, la temperatura 76F y la presin baromtrica 29,30.
SOLUCIN
Para las ecuaciones normales encontramos que
La solucin de este conjunto de ecuaciones da las estimaciones nicas
JOSE GARZON ARIAS
- 188 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
b0 = -3.507778, b1= -0.002625, b2= 0.000799, b3= 0.154155.
Por tanto, la ecuacin de regresin es
Para 50% de humedad, una temperatura de 76 F y una presin
baromtrica 29,30, la cantidad estimada de xido nitroso es
Regresin polinomial.
Suponga ahora que deseamos ajustar la ecuacin polinomial
m Y|x = b 0 + b 1 x +b 2 x2+ ..+ b r xr
a los n pares de observaciones {(xi, yi); i = 1,2,..., n}. Cada observacin, yi
satisface la ecuacin
yi = b 0 + b 1xi +b 2xi2+ ..+ b r xi2+e i
o
yi = b0 + b1xi +b2xi2+ ..+ br xir+ei
donde r es el grado del polinomio, y e i, y ei son de nuevo el error aleatorio
y residual asociados con la respuesta yi. Aqu, el nmero de pares, n, debe
ser al menos tan grande como r + 1, el nmero de parmetros a estimar.
Ntese que el modelo polinomial se puede considerar como un caso
especial del modelo de regresin lineal mltiple ms general, donde
hacemos x1 = x, x2 = x2, ..., xr. = xr. Las ecuaciones normales toman la
forma:
que se resuelve como antes para b0, b1,.........., br
JOSE GARZON ARIAS
- 189 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejemplo 2 Dados los datos
x
9,1
7,3
3,2
4,6
4,8
2,9
5,7
7,1
8,8
10
Ajustar una curva de regresin de la forma
m Y|x = b 0 + b 1 x +b 2 x2 y despus estime m Y|x
SOLUCIN:
De los datos dados, encontramos que
Al resolver las ecuaciones normales obtenemos
b0=8,697 , b1=-2,341, b2= 0,288
Por tanto:
Inferencias en la regresin lineal mltiple.
Una de las inferencias ms tiles que se pueden hacer con respecto a la
calidad de la respuesta pronosticada y0 que corresponde a los valores x10,
x20,...., xk0, es el intervalo de confianza sobre la respuesta media m | x10,
x20,...., xk0 . Nos interesa construir un intervalo de confianza sobre la
respuesta media para el conjunto de condiciones dado por
X0 = [x10, x20,...., xk0]
Aumentamos las condiciones sobre las x por el nmero 1 a fin de facilitar el
uso de la notacin matricial. Como en el caso k = 1 si hacemos la
suposicin adicional de que los errores son independientes y se distribuyen
de forma normal, entonces las Bj son normales, con media, varianzas y
covarianzas.
JOSE GARZON ARIAS
- 190 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
tambin est normalmente distribuida y es, de hecho, un estimador
insesgado para la respuesta media sobre el que intentamos unir los
intervalos de confianza. La varianza de
simplemente como funcin de
escrita en notacin matricial
, (X'X)1, y el vector de condicin x0, es
Si esta expresin se expande para un caso dado, digamos k = 2, se ve
fcilmente que explica de manera apropiada las varianzas y covarianzas de
las Bi. Despus de reemplazar
por s2, el intervalo de confianza de 100(1
)% sobre m | x10, x20,...., xk0 . se puede construir a partir de la
estadstica:
que tiene una distribucin t con n k 1 grados de libertad.
Intervalo
Un intervalo de confianza de (1 )100% para la respuesta media m |
de
x10,
x20,....,
xk0
es
confianz
a para:
m | x10,
x20,....,
xk0
donde ta /2 es un valor de la distribucin t con n-k grados de libertad.
La cantidad
a menudo se llama error estndar de prediccin y
por lo general aparece en el impreso de muchos paquetes de regresin
para computadora.
JOSE GARZON ARIAS
- 191 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Ejemplo 1
Con el uso de los datos del ejemplo 1 correspondiente al "Modelo de
regresin lineal con el uso de matrices", construya un intervalo de confianza
de 95% para la respuesta media cuando x1 = 3%, x2 = 8%, y x3 = 9%.
SOLUCIN
De la ecuacin de regresin del ejemplo 1 correspondiente al "Modelo de
regresin lineal con el uso de matrices", el porcentaje estimado de sobre
vivencia cuando x1 = 3%, x2 = 8%, y x3 = 9% es
A continuacin encontramos que:
Con el uso del cuadrado medio del error, s2 = 4.298 o s = 2.073, y de la
tabla A.4, vemos que t0.025 = 2.262 para 9 grados de libertad. Por tanto, un
intervalo de confianza de 95% para el porcentaje medio de sobre vivencia
para x1 = 3%, x2 = 8%, y x3= 9% est dado por
o simplemente
.
Como en el caso de la regresin lineal simple, necesitamos hacer una clara
distincin entre el intervalo de confianza de la respuesta media y el
intervalo de prediccin sobre una respuesta observada. Esta ltima
proporciona un lmite dentro del cual podemos decir con un grado de
certeza preestablecido que caer una nueva respuesta observada.
JOSE GARZON ARIAS
- 192 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Un intervalo de prediccin para una sola respuesta pronosticada
establece de nuevo al considerar las diferencias
aleatoria
se
de la variable
Se puede mostrar que la distribucin muestral es normal con media
y varianza
De esta manera el intervalo de prediccin de (1 )100% para un solo
valor de prediccin y0 se puede construir a partir de la estadstica
que tiene una distribucin t con n k 1 grados de libertad.
Intervalo
Un intervalo de prediccin de (1-)100% para una sola
de
respuesta y0 est dado por:
predicci
n para
y0
donde t/2 es un valor de la distribucin t con n k 1
grados de libertad.
Ejemplo 2
Con el uso de los datos del ejemplo 1 correspondiente a el tema "Modelo
de regresin lineal con el uso de matrices" construya un intervalo de
prediccin de 95% para una respuesta individual del porcentaje de sobre
vivencia cuando x1 = 3%, x2 = 8%, y x3 = 9%.
SOLUCIN:
Con referencia a los resultados del ejemplo 1 de esta seccin, encontramos
que el intervalo de prediccin de 95% para la respuesta y0 cuando x1= 3%,
x2 = 8%, y x3 = 9% es
JOSE GARZON ARIAS
- 193 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
que se reduce a
. Ntese, como se espera, que el
intervalo de prediccin es considerablemente menos estrecho que el
intervalo de confianza para el porcentaje de sobrevivencia media en el
ejemplo 1.
Un conocimiento de las distribuciones de los estimadores de los
coeficientes individuales permite al experimentador construir intervalos de
confianza para los coeficientes y probar hiptesis acerca de ellos.
De esta manera podemos utilizar la estadstica
con n k 1 grados de libertad para probar las hiptesis y construir
intervalos de confianza sobre j. Por ejemplo, si deseamos probar:
calculamos la estadstica:
y no rechazamos H0 si
donde
tiene n k 1 grados de
libertad.
Ejemplo 3
Para el modelo del ejemplo 1 correspondiente al "Modelo de regresin
lineal con el uso de matrices", pruebe la hiptesis de que 2 = -2,5 en el
nivel de significancia 0.05 contra la alternativa de que 2> -2,5.
SOLUCIN:
Clculos:
Decisin : rechazar H0 y concluir que 2> -2,5
JOSE GARZON ARIAS
- 194 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
7.5 PREDICCION.
Existen varias razones para construir una regresin lineal. Una, por
supuesto, es predecir valores de respuesta a uno o mas valores de la
variable independiente. En este aparte nos enfocamos en los errores
asociados con la prediccin.
La ecuacin = a +bx se puede usar para predecir o estimar la respuesta
media yx en x = xo no es necesariamente uno de los valores
preseleccionados, o se puede utilizar para predecir un solo valor o de la
variable Yo cuando x = xo. Esperaramos que el error de prediccin fuese
mas alto en el caso de un solo valor predicho en el caso donde se predice
una media. Esto, entonces, afectara el ancho de nuestros intervalos para
valores que se predicen.
Suponga que el experimentador desea construir un intervalo de confianza
para yx. Utilizaremos el estimador puntual
o = A + Bxo para estimar
yx. = a + b c o se puede mostrar que la distribucin muestral de
o es
normal con media:
Y varianza:
La ultima se sigue del hecho que Cov( , B) = 0. De esta forma el intervalo
de confianza de (1 - a )100% sobre la respuesta media yx. Se puede
construir a partir de la estadstica :
Que tiene una distribucin t con n 2 grados de libertad
Intervalo de confianza para yx.:
JOSE GARZON ARIAS
- 195 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
CORRELACION.
Hasta este punto hemos supuesto que la variable de regresin
independiente x es una variable fsica o cientfica pero no una variable
aleatoria. De hecho, en este contexto , x a menudo se llama variable
matemtica, que, en el proceso de muestreo, se mide con un error
insignificante. En muchas aplicaciones de las tcnicas de regresin es mas
realista suponer que X y Y son variables aleatorias y que las mediciones
{(Xi, Yi) ; i= 1, 2, ..., n} son observaciones de una poblacin que tiene la
funcin de densidad conjunta f(x, y). Consideremos el problema de medir la
relacin entre las dos variables X y Y. Por ejemplo, si X y Y representan la
longitud y circunferencia de una clase particular de hueso en el cuerpo de
un adulto, podemos realizar un estudio antropolgico para determinar si los
valores grandes de X se asocian con valores grandes de Y, y viceversa. El
anlisis de correlacin intenta medir la fuerza de tales relaciones entre dos
variables por medio de un solo numero llamado coeficiente de correlacin.
En teora a menudo se supone que la distribucin condicional f(y x) de Y,
para valores fijos de X, es normal con una media yx = a + b c o y varianza
s yx = s y X tambin se distribuye con normalmente con x y varianza s
x. La densidad conjunta de X y Y es entonces:
JOSE GARZON ARIAS
- 196 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Donde X es ahora una variable aleatoria independiente del error aleatorio
E. Como la media del error aleatorio E es cero, se sigue que:
Al sustituir para a y s en la expresin anterior para f( x, y), obtenemos la
distribucin normal bivariada:
La constante r (rho) se llama coeficiente de correlacin poblacional y juega
un papel importante en muchos problemas de anlisis de datos de dos
variables. El valor de r es 0 cuando b = 0 , que resulta cuando en esencia
no hay una regresin lineal; es decir, la lnea de regresin es horizontal y
cualquier conocimiento de X no es de utilidad para predecir Y. Como
debemos tener s y s , y r 1 por ello -1 r 1. Los valores de r = 1
solo ocurren cuando s = 0, en cuyo caso tenemos una relacin lineal
perfecta entre las dos variables. de esta manera un valor de r igual a +1
implica una relacin lineal perfecta con una pendiente positiva, mientras
que un valor de r igual a 1 resulta de una relacin lineal perfecta con
pendiente negativa. Se puede decir entonces que las estimaciones
mustrales de r cercanas a la unidad en magnitud implican una buena
correlacin o una asociacin lineal entre X y Y, mientras que valores
cercanos a cero indican poca o ninguna correlacin.
JOSE GARZON ARIAS
- 197 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Se debe sealar que en estudios de correlacin, como en problemas de
regresin lineal, los resultados que se obtienen solo son tan buenos como
el modelo que se supone. En las tcnicas de correlacin que aqu se
estudian se supone una densidad normal bivariada para las variables X y Y,
con el valor medio de Y en cada valor x linealmente relacionado con x. Para
observar la conveniencia de la suposicin de linealidad, a menudo es til
una graficacin preliminar de los datos experimentales. Un valor del
coeficiente de correlacin muestral cercano a cero resultara de datos que
muestren un efecto estrictamente aleatorio como se indica en la figura a :
en donde se puede observar poca o ninguna relacin causal. Es importante
recordar que el coeficiente de correlacin entre dos variables es una media
de su relacin lineal, y que un valor de r* = 0 implica una falta de linealidad
y no una falta de asociacin. Por ello, si existe una fuerte relacin
cuadrtica entre X y Y como se indica en la figura b, podemos aun obtener
una correlacin cero que indique una relacin no lineal.
* formula del calculo de r
JOSE GARZON ARIAS
- 198 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
JOSE GARZON ARIAS
- 199 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
BIBLIOGRAFA
1.-Casuso, Rafael L. "Clculo de probabilidades e inferencia estadstica", UCAB.
Caracas. 1996.
2.-Mendenhall, Schaeffer y Wackely. "Estadstica matemtica con aplicaciones",
Edit. Iberoamrica. Mxico. 1986.
3.-Mendelhall, William y Sincich. "Probabilidad y estadstica para ingeniera y
ciencias", Edit. Prentice may. Mxico. 1997.
4.-Miller, Irwin y otros. "Probabilidad y estadsticas para ingenieros", Edit. Prentice
may. 4ta edicin. Mxico. 1992.
5.-Ross, Sheldon. "Probabilidad y estadsticas para ingeniera y ciencias", Edit. Mc
Graw Hill. Mxico. 2001.
6.-Universidad Simn Bolvar , Por: Hernando Snchez Santibez
[Link]
[Link]
[Link], Myers y Myers (1998), "Probabilidad y Estadstica para Ingenieros",
Edit. Prentice Hall, Mxico.
JOSE GARZON ARIAS
- 200 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
JOSE GARZON ARIAS
- 201 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
DEFINICION DE INTEGRACION NUMERICA
DEFINICIONES BASICAS
TIPOS DE INTEGRACION NUMERICA
FORMULAS DE INTEGRACION CERRADA DE NEWTONCOTES
REGLA DEL TRAPECIO
REGLA DE SIMPSON
FORMULAS DE INTEGRACION ABIERTA DE NEWTONCOTES
CUADRATURA DE GAUSS
INTEGRACION DE ROMBERG.
JOSE GARZON ARIAS
- 202 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
INTEGRACION NUMERICA
En la practica profesional , es comn encontrarse con problemas que
requieren del conocimiento del rea bajo una curva de una funcin que
representa el comportamiento de un proceso, que depende de un conjunto
de variables de control, las funciones, no siempre se encuentran en forma
analtica, muchas veces se reportan en forma tabular , o varan
drsticamente entre intervalos, por este motivo, no siempre es posible
integrarlas por mtodos analticos, y se requiere de un tipo de mtodo
apropiado para cada caso, lo cual se estudiara en este capitulo.
8.0 DEFINICIONES BASICAS
Definicin De INTEGRACION
D EFI N I CI ON
La integracin definida es el procedimiento sustentado por el teorema
fundamental del calculo, por medio del cual se puede calcular de forma
exacta una sumatoria de Riemman
La notacin de Leibnitz permite escribir la integracin indefinida de
una funcin como:
f ( x)dx (8.1)
b
Existen diferentes tipos de integracin, a saber
Integracin indefinida
Integracin definida
Integracin Mltiple
Integracin Impropia. etc.
JOSE GARZON ARIAS
- 203 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Cada tipo de integracin
requiere de ciertos conceptos que han sido
estudiados y desarrollados en un curso normal de Calculo .
Los mtodos de integracin numrica se basan prcticamente en usar una
forma aproximada (obtenida por interpolacin) de una funcin y aplicarle
mtodos simples para obtener un valor numrico como aproximacin al
valor real de la integral.
Desde el punto de vista numrico, existen dos tipos generales de mtodos
de integracin, estos son los mtodos de integracin cerrada , y los
mtodos de integracin abierta.
Definicin De INTEGRACION NUMERICA
D EFI N I CI ON
La integracin Numrica es un procedimiento algebraico y aritmtico, que
permite el calculo de integrales definidas , que o bien no se pueden resolver
analticamente o su solucin es muy complicada
La integracin numrica, puede ser cerrada o abierta
8.1 Definicin De mtodos de integracin cerrada.
D EFI N I CI ON
Los mtodos cerrados de integracin, son aquellos que tienen un alcance
exclusivamente dentro del intervalo de definicin de la funcin (intervalo en
el cual se reportan los valores de la funcion). A estos se les conoce como
los mtodos de integracin cerrada de Newton-Cotes.
Dentro de los mtodos cerrados, de Newton Cotes se tienen:
La regla del Trapecio.
La regla del Trapecio Mltiple
La regla de Simpson. 1/3
La regla de Simpson 3/8
JOSE GARZON ARIAS
- 204 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Las cuales se describirn posteriormente.
Los Mtodos de Newton Cotes funcionan en general en dos pasos:
1.- Se divide el intervalo [a,b] en n intervalos de igual amplitud , cuyos
valores extremos son sucesivamente :
xi = x 0 + i (
ba
),
n
i = 0,1,2,3,......, n
(8.2)
Para quedar en la nueva notacin x0=a y xn=b
2.- Se aproxima f(x) por un polinomio de grado n, Pn(x) y se integra , para
obtener la aproximacin de la integral.
8.1.1 Definicin De la regla del Trapecio.
D EFI N I CI ON
La regla del trapecio consiste en : El intervalo original queda igual, la
funcin se aproxima por una lnea recta, y el rea bajo la curva corresponde
al rea de un trapecio.
De acuerdo a los cursos de geometra , el rea de un trapecio, es igual a la
suma de la base mayor , mas la base menor , por la altura sobre dos .
As que cada trapecio que se forma dentro de una curva tiene como rea:
Ai = (f(xi )+f(xi-1))
hi
.(8.3)
2
Al sumar todas las reas se tiene que :
f ( x)dx = ( f ( x k +1 ) + f ( x k ))
n
k =1
JOSE GARZON ARIAS
hk
.(8.4)
2
- 205 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Considerando los incrementos constantes se tiene que :
h=
ba
y xk = a+kh, as la expresin anterior queda:
n
f ( X )dx =
n
h
+
+
f
(
a
)
f
(
b
)
2
f (a + kh) .(8.5)
2
k =1
A continuacin se presenta el algoritmo de la regla del trapecio:
function s=traprl(f,a,b,M)
% Datos
%
-f es el integrando , dado como una cadena de caracteres f
% -a y b son los extremos inferior y superior del intervalo de
integracin
% - M es el numero de subintervalos
% Resultado
% -s es la aproximacin obtenida con la regla del trapecio.
%
h=(b-a)/M;
s=0;
for k=1: (M-1)
x=a+h*k;
s=s+feval(f,x);
end
s=h*(feval(f,a)+feval(f,b))/2+h*s
Aplicando este para obtener el resultado de la integral :
(2 + sen(2
x) )dx =
JOSE GARZON ARIAS
- 206 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
M
T(f,h)
10
0.5
8.1938547
20
0.25
8.18604926
40
0.125
8.18412019
80
0.0625
8.18363936
160
0.03125
8.18351924
(2 + sen(2
6
x) )dx =8.18351924
8.1.2 Definicin De la regla de Simpson.
D EFI N I CI ON
La regla de Simpson consiste en : dividir el intervalo [a,b] en 2M sub
intervalos [xk,xk+1] de la misma anchura h=
(b a)
, mediante una particin
2M
de
xk=a+kh,
nodos
equi
espaciados
con
esta
2h M 1
4h M
h
S(f,h)= ( f (a) + f (b)) +
(
)
f
x
f ( x 2 k 1 ) , que corresponde a la
+
2k 3
3
3 k =1
k =1
f ( x)dx , y se le llama regla de Simpson 1/3
b
integral
A continuacin se presenta el algoritmo para la regla de Simpon 1/3.
function s= simprl(f,a,b,M)
%Datos
% -f es el integrando, dado como una cadena de caracteres f
% -a y b son los extremos inferior y superior del intervalo de integracin.
% -M es el numero de sub intervalos.
% Resultado
% - s es la aproximacin obtenida con la regla de Simpson.
h=
(b a)
(2 * M )
s1=0;
JOSE GARZON ARIAS
- 207 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
s2=0;
for k=1:M
x=a+h*(2*k-1);
s1=s1 + fval(f,x);
end
for k=1:(M-1)
x=a+h*2k;
s2=s2+fval(f,x);
end
s=h*(feval(f,a)+feval(f,b)+4*s1+2*s2)/3;
Aplicando la regla de Simpson 1/3 para estimar el valor de la integral, que
se calculo con la regla del trapecio , se tiene:
M
S(f,h)
0.5
8.18301549
10
0.25
8.18344750
20
0.125
8.18347717
40
0.0625
8.18347908
80
0.03125
8.18347920
2 + sen(2
6
Asi que
x) = 8.18347920
Como se vera los resultados son exactos en ambas estimaciones hasta tres
decimales.
JOSE GARZON ARIAS
- 208 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
8.2 Definicin De mtodos de integracin abierta.
D EFI N I CI ON
Los mtodos abiertos de integracin, son aquellos que tienen un alcance
fuera del intervalo de definicin de la funcin. A estos se les conoce como
los mtodos de integracin abierta de Newton-Cotes.
Dentro de los mtodos abiertos, de Newton Cotes se tienen:
Integracin de Romberg
Cuadratura de Gauss
Los cuales como se dijo , se extienden fuera del intervalo de definicin de
los datos reportados.
8.2.1 Definicin Del mtodo de cuadratura de Gauss
D EFI N I CI ON
El mtodo de cuadratura de gauss consiste en realizar un cambio de
variable dentro de un conjunto de puntos de una curva imaginaria, que
depende de los datos reportados, lo cual representa un polinomio cbico.
En esta tcnica la integral de una funcin f(x), en el intervalo [a,b] se puede
escribir en la forma :
f ( z )dz = wi f ( z i ) , donde wi es el peso
n
i =1
correspondiente al valor de zi, y zi es la coordenada transformada
correspondiente
El algoritmo para el mtodo de cuadratura de gauss se da a continuacin en
pseudo cdigo :
JOSE GARZON ARIAS
- 209 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
Se aproxima el rea bajo la curva de la funcin analtica f(x) en el intervalo
[a,b], proporcionando la funcin a integrar F(x) y los siguientes datos:
DATOS : Numero de puntos por utilizar (2,3,4,5,6) : N , el limite inferior A, el limite
superior B.
RESULTADOS: El rea aproximada a n decimales: AREA.
PASO 1
Hacer (N(P(I), I= 1,2,3)= (2,3,4)
PASO 2
PASO 3
Hacer IAUX(I) =, I=1,2,..4)=(1,2,4,6)
Hacer
(Z(I)=,I1,2,.,9)=(0.577350269,0.0,0.774596669,0.339981044,0.861136312,0.0,
0.538469310
PASO 4
Hacer (W(I)= , I=1,2,.9)=(1.0,0.888888888,0.555555555,0.652145155,0.347854845
PASO 5
PASO 6
PASO 7
PASO 8
PASO 9
PASO 10
PASO 11
PASO 12
PASO 13
Hacer I=1
Mientras I5 , repetir los pasos 7 y 8
Si N= NP(I), ir al paso 10 . De otro modo continuar.
Hacer I=I+I
IMPRIMIR N NO ES 2,3,4,5, o 6 y TERMINAR
Hacer S=0
Hacer J=IAUX(I)
Mientras JIAUX(I+1) -1 repetir los pasos 13a 17
Hacer ZAUX= (Z(J)*(B-A)+B+A)/2.
PASO 14
PASO 15
PASO 16
PASO 17
PASO 18
PASO 19
Hacer S=S+F(ZAUX)*W(J).
Hacer ZAUX=(-Z(J)*(B-A)+B+A)/2.
Hacer S=S+F(ZAUX)*W(J)
Hacer J=J+1
Hacer AREA =(B-A)/2*S.
IMPRIMIR AREA y TERMINAR.
Y El programa esta dado por :
function quad= gauss(f,a,b,A,W)
%Datos
% -f es el integrando, dado como una cadena de caracteres.
% -a , y b son los extremos superior e inferior del intervalo de integracin.
JOSE GARZON ARIAS
- 210 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
% - A es el vector 1x N de nodos de la tabla de coordenadas.
% - W es el vector 1x N de pesos de la tabla de pesos.
%Resultado
% -quad es la aproximacin al valor de la integral
N= lenght(A);
T=zeros(1,N);
T=((a+b)/2)+((b-a)/2)*A;
Quad =((b-a)/2)*sum(W.*fecal(f,T));
x+2
1
Calculando con este el valor de la integral :
dx
se obtiene el valor de 1.1111 a
cinco dgitos significativos.
8.2.2 Definicin Del mtodo de Integracin de Romberg
D EFI N I CI ON
El mtodo de integracin de Romberg, consiste en expresar la integral
I= f ( x)dx como E= chr f(r)() , donde c es independiente de h, r es un
b
entero positivo y un numero desconocido [a,b], asi haciendo E= I2-I1, es
decir dos aproximaciones sucesivas de I , finalmente la mejor aproximacin
para I esta dada por I=
2 r I 2 I1
2r 1
El algoritmo para el mtodo de Romberg es:
a=A; b=B;
for k=0: w
n=2k; h=(b-a)/n; x=a; s=0;
if n>1
for j=1 : n-1
x=x+h;
f=f(x) ;aqu se introduce la funcin
s=f+s ;
JOSE GARZON ARIAS
- 211 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
end.
end.
fa=f(a);
fb=f(b);
s=h/2*(fa+2*s+fb);
I=(k+1,1) =s ;
fpritf ( %4d %10.7f/n,n,s)
end
for m=2:5
for k=1 : 5-m+1
I=(k,m) = (4(m-1)*I(k+1,m-1)-I(k,m-1))/(4(m-1)-1);
end
end
I
sen(x)dx , se tienen los
1
Aplicando este a la solucin de la integral
siguientes resultados:
2k
Ik(0)
0.0
0.5
0.6035534
0.684174
16
0.6345731
Con esto se da por terminado el tema de integracin numrica, dejando asentado,
que existen una serie de mtodos numricos, reportados en la literatura que
optimizan el procedimiento de integracin numrica , los cuales trabajan con
exactitudes distintas.
JOSE GARZON ARIAS
- 212 -
ENSEANZA DE LOS METODOS NUMERICOS CON MATLAB
BIBLIOGRAFIA.
1.- Carnahan,Brice, et al (1969): Applied Numerical Methods , Wiley New
York
2.- Conte, S.D. and Carl de Boor(1972) : Elementary Numerical Analysis ,
2nd ed., McGraw-Hill,New York.
3.- Fike , C.T. (1968) : Computer evaluation of Mathematical Functions ,
Prentice Hall ,Englewood,Cliffs,N.J.
4.-Hamming , R.W. (1962): Numerical Methods for Scientists and
Engineers, McGraw Hill, New york.
JOSE GARZON ARIAS
- 213 -