POLINOMIO DE INTERPOLACIÓN DE NEWTON EN MATLAB Delgado Luzmila, Pilatuña Diego Universidad Nacional de Chim b orazo enm.delgado @hotmail.com,
[email protected] P alabras
This document contains information about the procedure in Matlab programming for solving polynomial interpolation Newton. The above method is based on obtaining a polynomial from a given set of points, as close as possible to the desired curve. The major effort of calculation involving most of these methods makes their use is closely linked to employment programs such as Matlab for resolution This report will be released the essential techniques for modern engineer can program and solve problems using Matlab. The main processes to be followed is to recognize the variables that will determine for a table apart, the same that is helpful for determining the data to interpolate and finally build the polynomial function of x. In this way, the student can better appreciate and understand more fully the power of numerical methods as a scientific tool. With the help of this chair of Numerical Methods given by Ing. Marco Jacome, we can solve typical engineering problems.. problems. .
I.
´ N INTR ODUCCI ODUCCIO
La ciencia y la tecnología describen los fenómenos reales mediante modelos matemáticos. El estudio de estos modelos permite un conocimiento más profundo del fenómeno, así como de su evolución futura. La matemática aplicada es la rama de las matemáticas que se dedica a buscar y aplicar las herramientas más adecuadas a los problemas basados en estos modelos. Desafortunadamente, no siempre es posible aplicar métodos analíticos clásicos por diferentes razones, En estos casos son útiles los métodos métodos numéricos, que mediante una labor de cálculo más o menos intensa, conducen a soluciones aproximadas que son siempre numérica y para optimizar tiempo es de gran beneficio el uso de programas programas como lo es el Matlab.
K eywords.ywords.- Matlab( Matrix Laboratory), Laborat ory), is is a
II.
program to perform per form nu merical calcul ations with vectors and matrices.
POLINOMIO DE INTERPOLACIÓN DE NEWTON EN MATLAB
A. Matlab
contiene informacion R esumen.n. - Este documento contiene ´
sobre el procedimiento de programacion en Matlab para la resolución de polinomio de interpolación de Newton. El método métod o mencionado menci onado se basa en la obtención obten ción de un polinomio poli nomio a partir part ir de un conjunto conju nto de punto s dado, dado , aproximándose lo más posible a la curva buscada. El impor tante esfuerzo esfu erzo de cálcu lo que implica impl ica la mayoría de estos métodos hace que su uso esté íntimamente ligado al empleo programas como el Matlab Matl ab pa ra su s u re solución soluc ión En el presente pres ente informe info rme se dará a conoc er las técnicas esenciales para que el ingeniero moderno pueda prog ramar y reso lver problemas prob lemas con el uso del Matlab. Matl ab. Los principal prin cipal es proces p rocesos os q ue se deben segui r es reconocer las variables que se van a determinar para obtener una tabla de diferencia, la misma que es de ayuda para la determinación del dato a interpolar y finalment fina lmentee con struir stru ir el e l polinom po linomio io en función funci ón de x. De esta forma, forma , el estud iante puede apreciar aprec iar de mejor y comprender en forma más completa el poder de los métodos numéricos como herramienta científica. Con la ayuda de esta catedra de Métodos Numéricos impartida por el Ing. Marco Jácome, podremos soluciona sol uciona r pro blemas blema s típico t ípicoss de ingeniería ingen iería .
C lave lave.-
Matlab, Matlab, (MATrix L A B o r a t o r y ) e s un programa para realizar cálculos numéricos con vectores y m a t r i c e s .
Abst Abstra ract ct.-
Matlab es un gran programa de cálculo técnico y científico, que tiene su propio lenguaje de programación. Dicho lenguaje, es una herramienta de alto nivel para desarrollar aplicaciones técnicas fáciles fáciles de utilizar. Una de las capacidades más atractivas es la de realizar una amplia variedad de gráficos en dos y tres tr es dimensiones. [1] B. Polinomio de Interpolación de Newton
El fin de éste método es encontrar un polinomio que pase por los puntos dados inicialmente, inicialmente, cuya forma es: es: () = [0 ] + [ [0 , 1 ]( 0 ) + [0 , 1 , 2 ]( )( 1 ) + … . + [0 , 1 , . . . , ]( 0 )( )( 0 )( 1 ) … . ( −1 ) Donde:
() = [ [0 , 1 , . . . , ] = ′′ Newton Newt on trabaja directament directa mentee en la tabla obtenida obte nida mediante el proceso de Diferencias Divididas; En el desarrollo de estas diferencias finitas, se obtuvo en primer lugar las diferenc ias finitas ordinarias ordinari as y luego [2] las diferencias finitas divididas.
1
C. Propiedad de las diferencias divididas:
Las diferencias divididas son parte del polinomio de interpolación de Newton y se la puede definir de la siguiente manera: [3]
Diferencia dividida de orden ‘n’
En forma particular una diferencia dividida de orden k es de la siguiente manera:
[0 , 1 , . . . , ] =
[0 , 1 , . . . , ] [0 , 1 , . . . , −1 ] 0
Diferencia dividida orden k D. Comandos utilizados en el programa.
1) Function: Para archivos-m del tipo función 2) Length: Largo de un vector, vea también size 3) Zeros: Devuelve un vector o matriz de ceros 4) Strcat: horizontalmente concatenar matrices de caracteres, cada argumento de entrada puede ser un array de caracteres o una serie de células de vectores de caracteres 5) Str: sirve para buscar datos. 6) For: Lazo For-Next, se utiliza cuando conocemos el .
número de conteos que necesitemos. 7) If: Ejecuta código condicionalmente.[4] III.
POCEDIMIENTO EN MATLAB DEL POLINOMIO.
El resultado que se va obtener es el polinomio de interpolación de Newton para lo cual procedemos a realizer los siguientes pasos: Crear un Scrip donde se desarrollara los pasos para resolver por el método de newton para construir la función.
Llamaremos a nuestra función poli-newton y vamos a recibir los vectores “x” y “y” que son datos tabulado y también el valor q queremos interpolar xi. Vamos a inicializar una variable para conocer el número de datos obteniendo la longitud ‘ x’ y también vamos a inicializar nuestra tabla de diferencias con valores de zeros esto sería una matriz, aunque solo vamos a llenar una parte pero tenemos que agregar toda la matriz llena de ceros Y como sabemos la tabla de diferencias en la primera columna se va a construir con los datos de “y”, entonces vamos a decir que en la columna 1 vamos a inicializar con los valores de “y” Haciendo este proceso obtenemos la tabla de diferencias en la cual vamos a recorrer un circuito repetitivo desde que j vale 2 hasta que valga ‘n’ para que se empiece a rellenar desde la columna dos dado que en la primera columna son los valores de ‘y’ Luego abrimos otro circuito for para ir barriendo cada uno de los renglones siempre se va a empezar desde el primero y vamos a terminar en el reglón (n – j +1) porque el renglón de la tabla de diferencias va a tener un renglón menos cada vez y después construimos nuestra tabla de diferencias con los coeficientes i;j igual a b(i+1;j-1) hay que recordar que el coeficiente es igual al valor de la tabla de abajo menos el valor de la tabla de arriba para obtener el numerador de la diferencia y todo esto lo vamos a dividir entre el denominador que es la diferencia de las x que sería x(i+j-1)-x(i) con todo esto estamos obteniendo la tabla de diferencias y para finalizar cerramos los circuitos for Después evaluamos y con el primer renglón obtenemos los coeficientes del polinomio interpolante y evaluamos o sustituimos el valor que queremos interpolar entonces tenemos q hacer una evaluación, con el circuito for vamos a declarar una variable “xt” que tenga el valor de 1 q me va a ayudar hacer la multiplicación de esos factores con cada uno de los elementos y yi que va hacer el valor interpolante que dé inicio con el coeficiente independiente entonces abrimos un circuito for . Después calculamos xt y cerramos el circuito for . Ahora vamos a construir el polinomio
Figura 1 Creación de un nuevo Scrip
En la función se va a retornar el dato interpolado. También se retornara el texto con el polinomio y realizar si es necesario la tabla de diferencias para poder obtener los coeficiente s del polinomi o interpolante.
Figura 2 Declaración de variables
Figura 3 Construcción del polinomio de Newton
2
Se procede a convertir el primer número a un strim y se debe crear una nueva variable ‘xx’ para obtener los valores ‘x’, como se necesita verificar los signos cada una de las ‘x’ se inicia asignando el signo negativo, luego al comprobar si es el caso cambiara a positivo, para lo cual abrimos un circuito for y declaramos una variable que le podemos denominar signo y realizamos un condicional para obtener el signo positivo o negativo. Luego en la variable ‘xt’ construimos el polinomio con su respectivo signo con la ayuda del circuito for y un condicional. Por ultimo concatenar las variables ‘x’ y los signos correspondientes a cada término del polinomio. Ya concluido procedemos a guardar. Para obtener los resultados en la ventada de comandos creamos los vectores que son los valores de la tabla de diferencias, x e y. Después llamamos a la función pol_newton(x,y,xi), donde xi es el valor a interpolar. Damos enter y obtenemos el resultado de interpolación. Para mostrar el polinomio de interpolación de Newton tecleamos [yi, def]=pol_newton(x,y,xi) e inmediatamente en la pantalla aparecerá la función en términos de ‘x’. Con la ayuda de inline se puede convertir el polinomio encont rado en una función inline y poder evaluar en cualquier punto dentro del dominio establecido inicialmente en los valores de ‘x’ y obtendremos el valor de interpolación deseado. IV.
máximo este programa ya que nos va a ser de mucha utilidad en el transcurso de nuestra carrera •Es recomendable utilizar el MatLab debido a que optimiza el tiempo de elaboración de cálculos matemáticos muy extensos. VI.
BIBLIOGRAFIA
[1]Control System. (2012). GUÍA PARA EL USO DE MATLAB PARTE 1. Toolbox, 27 [2]James, M. (1973). Métodos Númericos Aplicados a la Computación Digital . Mexico: Prestaciones y Servicios de Ingeniería, S.A. [3]Villanueva, W. D. (11 de 05 de 1998). Métodos numéricos. Obtenido de Métodos numéricos: http://www.uv.es/~diaz/mn/node37.html [4]The MathWorks, Inc. (18 de 7 de 2016). Obtenido de mathworks.com. http://www.mathworks.com/help/matlab/ref/strcat.html ?requestedDomain=www.mathworks.com
CONCLUSIONES
•Se logró realizar el programa para obte ner el polinomio de interpolación de Newton, con la ayuda del MatLab e información bibliográfica se obtuvo los resultados esperados. •Al programar se reconoció los principales comandos como el for y los condicionales, que son de gran aporte para la elaboración del programa. •Se concluye que el presente trabajo de investigación fue de gran beneficio para los estudiantes debido a que se adquirió conocimientos sobre el manejo del MatLab, el mismo que es una herramienta fundamental para todo ingeniero que permite optimizar el tiempo. •Para conseguir la función fue necesario implementar en la ventana de comandos [yi, def]=pol_newton(x,y,xi) solo si escribimos lo anterior aparecerá el polinomio de interpolación de Newton. RECOMENDACIONES V. •Se recomienda utilizar más el programa MatLab ya que podemos crear o definir un sistema si tenemos su representación en térmicos de su función de transferencia, sus polos y ceros o su representación en variables de estado. •Se recomienda utilizar los comandos adecuados para poder modela r de una manera práctica y clara la función de transferencia de cualquier sistema. •Se recomienda tener más clase sobre la utilización del programa MatLab para así poder aprovechar al
3