You are on page 1of 17

UNIVERSIDAD TCNICA DE AMBATO

Facultad de Ingeniera en Sistemas, Electrnica e Industrial


Proyecto
Ttulo:
Interpolacin por el mtodo de Lagrange utilizando la aplicacin GNU Octave
Carrera:
Ingeniera Industrial en procesos de automatizacin
rea Acadmica:
Informtica
Ciclo Acadmico y Paralelo:
Cuarto Industrial B
Integrantes:
Minchala Jara Jeferson Eduardo
Pilco Nez Christian Alexander
Mdulo:
Mtodos Numricos
Docente:
Ing. Mg. Rubn Nogales

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

ndice de Contenido
I.

INFORME DE PROYECTO FINAL............................................................4

1.1

Ttulo................................................................................................4

1.2

Objetivos..........................................................................................4

1.2.1

General:......................................................................................4

1.2.2

Especfico:..................................................................................4

1.3

Resumen..........................................................................................4

1.4

Palabras clave:.................................................................................5

1.5

Introduccin.....................................................................................5

1.6

Materiales y Metodologa.................................................................6

Programacin Orientada a Objetos con Java.............................................6


Clases en Java...........................................................................................6
Herencia soportada por Java.....................................................................7
NetBeans..................................................................................................8
La Plataforma NetBeans............................................................................8
Qu es un mtodo numrico?.................................................................9
Mtodo de Gauss-Jordn...........................................................................9
1.7

Discusin y Resultados...................................................................12

1.8

Conclusiones..................................................................................17

1.9

Bibliografa.....................................................................................18

1.10 Anexos............................................................................................19

INDICE DE ILUSTRACIONES

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

Ilustracin 1. Diagrama Orientada a Objetos en Java...............................6


Ilustracin 2. Coeficientes acomodados....................................................9
Ilustracin 3. Matriz identidad.................................................................10
Ilustracin 4. Primer pasod e Gauss Jordan.............................................10
Ilustracin 5. Operando la matriz............................................................10
Ilustracin 6. Segundo Paso Gauss Jordan..............................................10
Ilustracin 7. Tercer Paso Gauss Jordan...................................................11
Ilustracin 8. Cuarto Paso de gauss Jordan.............................................11
Ilustracin 9. Quinto paso de Gauss Jordan............................................11
Ilustracin 10. Final de Gauss Jordan......................................................11
Ilustracin 11. Pantalla inicio..................................................................12
Ilustracin 12. Pantalla del programa.....................................................13
Ilustracin 13. Matriz de 2x2...................................................................13
Ilustracin 14. Ingreso de Datos.............................................................14
Ilustracin 15. Datos Obtenidos..............................................................14
Ilustracin 16. Botn Limpiar rea de texto............................................15
Ilustracin 17. Men ayuda.....................................................................15

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

INFORME DE PROYECTO FINAL


a.1 Ttulo
Interpolacin por el mtodo de Lagrange utilizando la aplicacin GNU Octave
a.2 Objetivos
a.2.1

Realizar Interpolacin por el mtodo de Lagrange utilizando la aplicacin GNU


Octave.

a.2.2

General:

Especfico:

Ingresar datos numricos en un documento .txt al software


GNU Octave.

Mostrar el resultado final a partir de un valor x dado.

Modificar los datos numricos ingresados en el documento .txt


para determinar otras funciones.

a.3 Resumen
El presente proyecto se realiz como una recopilacin de los mtodos aprendidos en
la a lo largo del mdulo de Mtodos Numricos. En este proyecto se desarroll un
programa el cual permite el ingreso de datos numricos en un documento .txt, el
mismo que se cargara al programa GNI Octave para la interpolacin por el mtodo
de Lagrange, con el fin de determinar el valor de y especificando el valor de x con
anterioridad. Para su realizacin se utiliz algoritmos tales como: FOR, IF, END
FOR, END IF.
Para la validacin del programa elaborado, todos los resultados obtenidos por este
se validarn con la aplicacin Excel otorgndole a este ltimo los mismos valores

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

de la tabla especfica. De tal forma que, tanto los valores obtenidos por el programa
en Octave sean los mismos que los valores obtenidos por la herramienta de Excel.
a.4 Palabras clave:
Interpolation
GNI Octave
Lagrange
IF y For
Documentos .txt
a.5 Introduccin
El mdulo de Mtodos Numricos en curso en el cuarto nivel de la carrera de Ingeniera
Industrial en Procesos de Automatizacin se presenta con un amplio plan de estudios,
cuya esencia es la realizacin de un programa que encuentre los datos comprendidos en
una tabla por el ingreso de un valor, el mismo que se interpola con una tabla de valores,
as como la correcta manipulacin del programa GNU Octave. Por ello, se ha venido
adquiriendo conocimientos para elaborar un programa que contenga todos los
parmetros y atributos necesarias para que la aplicacin sea completa y eficiente ya que
esto se utiliza en varios campos de la vida diaria y tiene una infinidad de aplicaciones,
como en procesamiento digital de seales, anlisis estructural, estimacin, prediccin y
ms generalmente en programacin lineal as como en la aproximacin de problemas no
lineales de anlisis numrico.

a.6 Materiales y Metodologa


GNU Octave
GNU Octave es un lenguaje de alto nivel destinado para el clculo numrico. Provee
una interfaz sencilla, orientada a la lnea de comandos (consola), que permite la
resolucin de problemas numricos, lineales y no lineales, adems permite la ejecucin
de scripts y puede ser usado como lenguaje orientado al procesamiento por lotes.

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

Octave naci alrededor del ao 1988, y fue concebido originalmente para ser usado en
un curso de diseo de reactores qumicos para los alumnos de Ingeniera Qumica de la
Universidad de Texas y la Universidad de Wisconsin-Madison.

Octave posee una gran cantidad de herramientas que permiten resolver problemas de
algebra lineal, clculo de races de ecuaciones no lineales, integracin de funciones
ordinarias, manipulacin de polinomios, integracin de ecuaciones diferenciales
ordinarias y ecuaciones diferenciales algebraicas. Sus funciones tambin se pueden
extender mediante funciones definidas por el usuario escritas en el lenguaje propio de
Octave o usando mdulos dinmicamente cargados escritos en lenguajes como C, C++
y Fortran entre otros [1].
Mtodo de interpolacin de Lagrange
Este mtodo consiste en construir el polinomio interpolador de grado n que pasa por n
+ 1 puntos (xi, yi) de la forma
n

Pn(x) =

Li(x)yi

i=0

donde las funciones Li(x) cumplen Li(xk) = 0 si i = k y Li(xi) = 1. Esta propiedad


garantiza Pn(xk) = yk. Las funciones Li(x) se construyen como:

De su forma explcita, vemos que Li(xi) = 1 y que Li(xk) = 0 para i = k. Podemos


escribir

el polinomio interpolador de una funcin f (x) en los puntos x0, x1, . . . ,

xnde forma compacta como:


5

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

El mtodo de Lagrange permite construir fcilmente de forma explcita, el polinomio


interpolador. Dos de las interpolaciones ms utilizados son las interpolaciones lineal y
parablica. Los correspondientes polinomios interpoladores son:

Lineal

Parablica

Sin embargo, cuando deseamos evaluar el polinomio interpolador en uno o varios


puntos, el mtodo de Lagrange no es conveniente ya que no da los coeficiente de cada
grado, lo cual es necesario para aplicar el algoritmo de Horner. Sin embargo el mtodo
de Lagrange es fcil de entender, lo que justifica su valor pedaggico, y es de utilidad a
la hora de elaborar un cierto nmero de demostraciones, como por ejemplo la frmula
del error cometido por el polinomio interpolador, que pasamos a demostrar a
continuacin.

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

Un aspecto importante es la determinacin del error del polinomio interpolador Pn(x)


con respecto a la funcin interpolada f (x), en el intervalo [x0, xn]. Sea xs un punto
arbitrario de este intervalo, en el que deseamos estimar el error. Construimos la funcin

que, por construccin, se anula en x0, x1, . . . xn y xs. Como g(x) tiene n + 2 ceros y
por el teorema de Rolle la derivada g(1)(x) tiene n + 1 ceros, la derivada g(2)(x) tiene n
ceros y as sucesivamente hasta la derivada g(n+1)que tiene al menos un cero. Sea
este cero. Derivando n + 1 veces la anterior igualdad y sustituyendo x = obtenemos
(la derivada n + 1 de Pn(x) es nula y la del polinomio de orden n + 1 del numerador del
ltimo trmino es (n + 1)!)

Con lo cual concluimos que:

El punto es desconocido, pero si podemos acotar la funcin f (n+1)(x) en el intervalo


[x0, xn] por el valor f (n+1)(xm), donde xm es el punto donde f (n+1)(x) alcanza el
valor mximo, encontramos la cota de error en el intervalo [x0, xn]:

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

que es vlida, independientemente del mtodo empleado para obtener el polinomio


interpolador [2].
Archivos y extensiones
Un archivo es un programa, un conjunto de datos utilizados por el programa o un
documento creado por los usuarios. Los archivos son las unidades bsicas de
almacenamiento que permiten a la computadora distinguir entre los diversos conjuntos
de informacin.
El nombre de archivo permite identificar y administrar el archivo.
La extensin es un conjunto de caracteres aadido a un nombre de archivo para definir
su tipo o clarificar su significado. Indica el formato, tipo de datos que contiene y el
programa que requiere la computadora para visualizarlo o editarlo. Cabe sealar que la
computadora realiza esta asociacin de manera automtica, siempre y cuando tenga
habilitado el programa de cmputo requerido por el archivo.
Ejemplo: Planificacin.doc

Tipos de archivos:
De datos, son aquellos que, principalmente, contienen datos, y necesitan de una
aplicacin especfica para ser abiertos.
Ejemplo: .TXT, .DOC , .XLS, etc
De texto
Dentro de los documentos de texto hemos de diferenciar entre el texto plano y el
enriquecido. Es decir, entre los formatos que sencillamente guardan las letras (txt,
log...) y los que podemos asignarles un tamao, fuente, color, etc, (doc).

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

.TXT: archivo de texto plano, sin grficos. Se abre con cualquier editor de texto,
incluido el Bloc de Notas, de Windows [3].

Programacin en GNU Octave


Este es uno de los puntos flojos de todo este tipo de herramientas de clculo numrico,
ya que no existen grandes posibilidades de programacin, aunque s las formas de
programacin bsica.
Bifurcaciones y bucles
Como todo lenguaje de programacin, podemos encontrar bifurcaciones y bucles. Las
bifurcaciones sirven para realizar una u otra operacin:

Ilustracin 1: Estructura de un Bucle y bifurcacion

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

Los bucles nos permiten realizar varias iteraciones de un mismo proceso, o sea, realizar
una misma operacin sobre distintos elementos. Podemos encontrar varios tipos de
bucles:

while

do-until

for

Adems de las sentencias break y continue utilizadas dentro de los bucles para salir del
proceso.
Sentencia IF
Esta sentencia nos sirve para hacer bifurcaciones, podemos hacer 3 usos diferentes de
ella:

Una sola sentencia que utilizamos si es verdadera y sino no hacemos nada:

if (condition)
then-body
endif
Utilizando la expresin else con la que conseguiremos hacer uso de una expresin u
otra si es consecuentemente true o false.
if (condition)
then-body
else

10

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

else-body
endif
Utilizando la expression elseif con la que se pueden anidar bifurcaciones (aunque es
mejor usar la sentencia switch)
if (condition)
then-body
elseif (condition)
elseif-body
else #es la opcin por defecto cuando no se cumple ninguna condicin
else-body
endif
Una observacin muy importante: la condicin del if puede ser una condicin
matricial, del tipo A==B, donde A y B son matrices del mismo tamao. Para que se
considere que la condicin se cumple, es necesario que sean iguales dos a dos todos los
elementos de las matrices A y B. Basta que haya dos elementos diferentes para que las
matrices no sean iguales, y por tanto las sentencias del if no se ejecuten.
Anlogamente, una condicin en la forma A=B exige que todos los elementos sean
diferentes dos a dos. Bastara que hubiera dos elementos iguales para que la condicin
no se cumpliese. En resumen:
if A==B exige que todos los elementos sean iguales dos a dos

11

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

if A=B exige que todos los elementos sean diferentes dos a dos
Sentencia FOR
Repite una serie de sentencias un nmero determinado de veces, sin importar los
procesos que ocurran dentro, por lo que la nica manera de salir del bucle es esperar
que acabe.
for var = expression
body
endfor
cuando var llega al valor expression el bucle se detiene [2].
a.7 Discusin y Resultados

1.8 Conclusiones
La aplicacin del programa en la resolucin de ecuaciones de n incgnitas permite una
fcil y rpida obtencin de resultandos. En el cual se procede a resolver por el mtodo
de Gauss-Jordan, en el cual se visualiza todos los pasos necesarios para obtener una

matriz identidad, pivoteando los elementos de la diagonal principal.


En el programa realizado se utiliz el lenguaje Java para crear comandos que permitan
la ptima y verdica obtencin de resultados. A su vez, la comprobacin del mismo en
el software Octave, teniendo una referencia para corroborar la correcta creacin del
programa.
12

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

Los datos numricos ingresados al programa una vez linealizadas las ecuaciones,
permiten la obtencin eficaz de resultados en el mismo, para ello en el programa se
incorpor un documento de ayuda que facilite la correcta utilizacin del programa, sin

consecuencias de errores y sin mayor complejidad.


La realizacin de un video explicativo ayuda favorablemente a la persona que lo
utiliza en interpretar y manejar correctamente el programa puesto que en ello se
encuentra los pasos o comandos que se utilizaron para su elaboracin, adems en el
video se encuentran libreras para que su programa se visualice con mayor esttica.

1.9 Bibliografa
[1] Platzi, MAESTROS DEL WEB, 26 Octubre 2007. [En lnea]. Available:
http://www.maestrosdelweb.com/que-son-las-bases-de-datos/.
[2] Corporacion de Tecnologia e informatica , Tecnologia e Informatgica, 8 Febrero
2013. [En lnea]. Available:
https://tecnologiaeinformaticacji.files.wordpress.com/2013/02/lectura-tipos-de-basesde-datos.pdf.

13

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

[3] J. James L, E. Nawathe, H. Korth y A. Silverschatz, Modelos BD, 27 Febrero 2012.


[En lnea]. Available: https://modelosbd2012t1.wordpress.com/2012/01/27/bases-dedatos-orientados-a-objetos/.

[4] Microsoft Corporation, Support Microsoft, 07 Diciembre 2013. [En lnea]. Available:
https://support.microsoft.com/es-es/kb/283878.
[5] N. Aranibar, Monografias, 12 Marzo 2010. [En lnea].
http://www.monografias.com/trabajos88/mysql-worckbench/mysql-

1.10

Anexos

Matriz
int n =this.getN();
for (int i = 0; i <n; i++) {
double d, c = 0;
d = m[i][i];// seleccionamos el pivote

14

Available:

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

Area.append(Double.toString(1/d) + "*fila" + (i + 1) + "\n");// muesra en el area de


texto el pivote seleccionado
for (int j = 0; j <n; j++) {// pasamos a convertir en 1 al pivote seleionado
m[i][j] = ((m[i][j]) / d);
}
r[i] = ((r[i]) / d);
// paso a mostrar las opraciones realizadas en la matriz aumentada
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
Area.append(Double.toString(m[j][k]) + "\t");
}
Area.append("|\t" + Double.toString(r[j]) + "\n");
}
Area.append("\n\n");// fin paso a motrar las opraciones realizadas en la matriz
aumentada
for (int x = 0; x <n; x++) {
if (i != x) {
c = m[x][i];
Area.append("-" + Double.toString(c) + " * fila" + (i + 1) + "+ fila" + (x + 1) +
"\n");// mustra en pantalla las opraciones que se realizaran por fila
for (int y = 0; y <n; y++) {// se hace cero a todos los elemntos de la colunma
que no sean el pivote
m[x][y] = m[x][y] - c * m[i][y];
}
r[x] = r[x] - c * r[i];
// paso a mostrar las opraciones realizadas en la matriz aumentada
15

UNIVERSIDAD TCNICA DE AMBATO


FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL
PERODO ACADMICO: OCTUBRE/2015 FEBRERO/2016

for (int j = 0; j < n; j++) {


for (int k = 0; k < n; k++) {
Area.append(Double.toString(m[j][k]) + "\t");
}
Area.append("|\t" + Double.toString(r[j]) + "\n");
}
Area.append("\n\n");// fin paso a motrar las opraciones realizadas en la matriz
aumentada
}// fin if (i != x)
}// fin for (int x = 0; x <= r.length - 1; x++)
}//fin bucle i
return r;// retorna la solucion l sistema
}

16

You might also like