ESTIMACIÓN DE VALORES INTERMEDIOS EMPLEANDO MULTIPLICADORES DE LAGRANGE
Nexus BrokenExamen25 de Julio de 2019
2.593 Palabras (11 Páginas)145 Visitas
Práctica No. 12
Nombre: ESTIMACIÓN DE VALORES INTERMEDIOS EMPLEANDO
MULTIPLICADORES DE LAGRANGE.
Objetivo: Realizar un programa en OCTAVE para estimar valores intermedios de un conjunto de puntos asociados con datos empleando multiplicadores de Lagrange.
Introducción:
POLINOMIOS DE INTERPOLACIÓN DE LAGRANGE
El polinomio de interpolación de Lagrange es simplemente una reformulación del polinomio de Newton que evita el cálculo de las diferencias divididas, y se representa de manera concisa como
Donde
Donde [pic 1]designa el “producto de”. Por ejemplo, la versión lineal es
Y la versión de segundo grado es
Temas relacionados:
5.2 Polinomio de interpolación de Lagrange.
Metodología:
Parte 1.
Dados los siguientes puntos:
ajuste un polinomio de cuarto grado, utilizando polinomio de interpolación de Lagrange, para estimar el valor de la función en [pic 2][pic 3][pic 4].
Para ello, elaboraremos primeramente el programa lagrange_simple.m en OCTAVE.
Parte 2.
Primeramente, crearemos el programa con el nombre de lagrange_simple.m. En la interfaz principal de OCTAVE damos click en file/New/New script, y escribimos en la ventana del editor lo siguiente:
function[]=lagrange_simple(PUNTOS,Xint)
%lagrange_simple(PUNTOS,Xint)
%Interpolación por Multiplicadores de Lagrange
% PUNTOS es la matriz de puntos a interpolar, que contiene los valores de la % variable independiente x en la primera columna, ordenados de menor a
% mayor, y los valores de la variable dependiente y en la segunda columna. % Xint es el valor a interpolar.
%Los resultados muestran el valor de Xint, al igual que Yint= f(Xint)
%clc
[n,m]= size(PUNTOS); A=PUNTOS;
x=Xint; for i=1:n
X=A(:,1); X(i)=[];
num=x-X;
den=A(i,1)-X; L(i)=prod(num)/prod(den); f(i)=L(i)*A(i,2);
endfor
f=sum(f);
disp('')
disp(['El valor de la función para Xint = ',num2str(Xint),' es ',num2str(f)]) endfunction
Guardamos el programa como lagrange_simple.m.
La figura 53 ilustra lo anterior y muestra el código del programa.
Figura 53. Código del programa “lagrange_simple.m” para la estimación del valor de la función por interpolación usando multiplicadores de Lagrange.
Se han utilizado algunos comandos de OCTAVE como por ejemplo “size(A)”, el cual nos da el tamaño de la variable “A”, dado que todas las variables en OCTAVE son del tipo matricial. Con la instrucción
[n,m]= size(PUNTOS);
Se almacenan, el número de puntos en la variable “n”, y un 2 en la variable “m”. Mediante el comando
X=A(:,1);
En la línea 19 del código, se extraen las componentes [pic 5]del conjunto de puntos y se almacenan en la variable “X”.
[pic 6]
Así, el elemento [pic 7][pic 8]del punto [pic 9][pic 10][pic 11][pic 12][pic 13][pic 14][pic 15]se almacenará como X(1). Y el elemento del punto [pic 16][pic 17][pic 18][pic 19][pic 20][pic 21][pic 22]será entonces igual a X(2), y así sucesivamente.
Es posible extraer elementos de un arreglo. Por ejemplo, la instrucción
X(i)=[];
permite extraer el i-ésimo elemento del vector X, que está formado por las coordenadas [pic 23]de los puntos del conjunto de datos, reduciendo su tamaño en una unidad.
Si restamos o sumamos un número a una matriz, OCTAVE resta o suma ese número a cada elemento de la matriz.
En la línea 21, se tiene num=x-X;
mediante lo cual, se le resta al número x cada elemento de la matriz X, dando como resultado una matriz del mismo tamaño que X.
Luego, se tiene, en la línea 23, el comando “prod()”, el cual realiza el producto de los elementos de la matriz en el argumento de la función. En nuestro caso, “prod(num)” y “prod(den)”, siendo “num” y “den” las matrices del numerador y denominador de cada multiplicador de Lagrange.
Por último se utiliza, en la línea 28, el comando “num2str()”, que transforma una variable numérica en una cadena de caracteres (string).
Parte 3.
Para correr el programa, solamente escribimos el nombre del programa en la ventana de comandos como cualquier otra función de OCTAVE. En nuestro caso, podríamos crear la variable datos como una matriz de 5X2, para almacenar en ella los datos de entrada, o bien, escribirla directamente en la función lagrange_simple.m. Haremos lo primero, por lo que escribimos en la ventana de comandos de OCTAVE
>> datos=[1,800;3,2310;5,3090;7,3940;13,4755]; >> lagrange_simple(datos,10)
La figura 54 ilustra lo anterior.
[pic 24]
Figura 54. Sintaxis para correr el programa lagrange_simple.m
Es importante recalcar que la matriz de datos es una matriz de tamaño (n+1)x2, en nuestro caso de tamaño 5x2. Si se utilizara una matriz de tamaño 2x5, tendríamos problemas para correr el programa. La figura 55 nos muestra el resultado de correr el programa lagrange_simple.m.
Figura 55. Estimación del valor de la función, por medio de un polinomio de interpolación de Lagrange de cuarto grado, en [pic 25][pic 26][pic 27].
En la figura 55, se puede observar el resultado de la estimación del valor de la función, por medio de un polinomio de interpolación de Lagrange de cuarto
[pic 28]
grado, en el valor intermedio [pic 29][pic 30][pic 31], obteniéndose el valor estimado de la función en este punto,
Se esperaría que al correr el programa para alguno delos puntos del conjunto de datos, el resultado de la interpolación coincida con lo que se tiene. Por ejemplo, si tomamos el punto [pic 32][pic 33][pic 34][pic 35][pic 36], de nuestros datos y corremos el programa para [pic 37][pic 38][pic 39], esperaríamos obtener un valor de interpolación [pic 40][pic 41][pic 42].
Lo anterior se cumple, y lo podemos observar en la figura 56.
[pic 43]
Figura 56. Resultado de estimar el valor de la función para el punto [pic 44][pic 45][pic 46][pic 47][pic 48]de nuestros datos.
Parte 4.
Actividades complementarias por parte del alumno:
22.Agregue comentarios al programa lagrange_simple.m, de tal forma que se explique su funcionamiento.
23.¿Funcionará el programa para un conjunto de datos con cualquier número de puntos? Explique por qué.
24.Modifique el programa para que nos dé la gráfica del polinomio de Lagrange, señalando con asteriscos negros los puntos de los datos de entrada, al igual que en rojo el punto a interpolar.
Reporte del alumno:
Cada alumno deberá entregar un reporte que contenga lo siguiente: Número de la práctica.
Nombre de la práctica
Nombre del alumno Objetivo de la práctica Desarrollo
Detallar la forma como se desarrolló la práctica
Incluir el análisis que se llevo a cabo, diagramas, imágenes
Resultados
Incluir el código generado
Impresión de la pantalla con los resultados
Conclusiones
Práctica No. 13
Nombre: ESTIMACIÓN DE VALORES INTERMEDIOS EMPLEANDO
INTERPOLACIÓN POR TRAZADORES Y APLICACIONES.
Objetivo: Realizar un programa en OCTAVE para estimar valores intermedios de un conjunto de puntos asociados con datos empleando trazadores lineales, cuadráticos y cúbicos.
Introducción:
INTERPOLACIÓN MEDIANTE TRAZADORES (SPLINES)
Un método alternativo al de utilizar polinomios de n-ésimo grado para interpolar entre n+1 puntos asociados con datos, consiste en colocar polinomios de grado inferior en subconjuntos de los puntos asociados con datos. Tales polinomios conectores se llaman trazadores o splines.
Trazadores lineales
Los trazadores de primer grado para un grupo de puntos asociados con datos ordenados pueden definirse como un conjunto de funciones lineales
Donde [pic 49][pic 50]está dada por
Estas ecuaciones se pueden usar para evaluar la función en cualquier punto entre [pic 51][pic 52]y [pic 53][pic 54], localizando primero el intervalo dentro del cual está el punto. Después, se usa la ecuación adecuada para determinar el valor de la función dentro del intervalo.
Trazadores cuadráticos
...