viernes, 7 de noviembre de 2014

Digitalización de Curvas con matlab e Interpolación

Para adquirir los datos de puntos de las Curvas:

http://arohatgi.info/WebPlotDigitizer/app/


Gráficas de datos:
https://plot.ly/api/

Interpolación

http://users.dsic.upv.es/asignaturas/eui/cnu/prac/p4/4-2.html


<<<     >>>    

4.2. El Polinomio Interpolador de Lagrange

En este apartado pasamos a implementar el cálculo del polinomio de interpolación mediante la fórmula de Lagrange, utilizando los coeficientes de Lagrange obtenidos en el apartado anterior.
Objetivos:
  • Implementar una función que calcule el polinomio de interpolación de Lagrange.
  • Observar cómo el error aumenta cuando se utilizan muchos puntos base.

El polinomio de Lagrange

Ejercicio 3: Completar la función lagrange de forma que permita construir el polinomio de interpolación de Lagrange, p, utilizando la función coef_lag implementada en el apartado anterior. Los argumentos de entrada de la función son el conjunto de puntos base, almacenados en el vector x, y los valores de la función a interpolar evaluada en cada uno de dichos puntos base, en el vector y. La función debe tener la siguiente forma:
function p = lagrange(x,y)
% p = lagrange(x,y) devuelve en p el polinomio interpolador
% de Lagrange que pasa por los puntos (x(i),y(i))

n = length(x)-1;
% ... COMPLETAR ...
Ejercicio 4: Dados los puntos (1,4), (3,1), (4,2) y (7,6), representar de forma gráfica el polinomio de interpolación calculado (mediante la función polyplot del apartado anterior). Observar que, efectivamente, el polinomio pasa por los puntos base especificados.
Ejercicio 5: Dado el polinomio de interpolación p(x) de los puntos del ejercicio anterior. ¿Cuál es el valor de dicho polinomio en el punto x=5?.

Aplicación gráfica utilizando el polinomio interpolador de Lagrange

El objetivo de este apartado consiste en desarrollar una aplicación gráfica sencilla en Matlab. Es objetivo de esta aplicación es permitir el trazo de una curva que pase por una serie de puntos seleccionados con el ratón. La aplicación permitirá realizar una operación gráfica que soportan la mayoría de editores de texto comerciales.
El comando ginput de Matlab permite la obtención de un conjunto de puntos en una ventana gráfica pulsando el botón izquierdo del ratón. La secuencia de puntos se finaliza cuando se pulsa la tecla enter. De este forma, el siguiente comando:
>> [x,y] = ginput;
almacenaría en el vector x las coordenadas del eje de abscisas de los puntos seleccionados con el ratón, mientras que el vector y tendría las coordenadas del eje de ordenadas de los puntos seleccionados. Si pasamos un parámetro al comando ginput de Matlab, este parámetro indica el número de puntos a introducir antes de la finalización del comando. En este caso no será necesario pulsar ninguna tecla:
>> [x,y] = ginput(1);
En este caso [x,y] contiene las coordenadas del único punto leído. Ejercicio 6: Completar la función apli con el fin de que dibuje la curva que une los puntos seleccionados con el botón izquierdo del ratón.
Nota: La función apli debe redibujar toda la curva después de cada nuevo punto seleccionado.
function apli

salir=0;
X=[]; Y=[];
while salir==0  
   axis([0 1 0 1]);
   [x,y]=ginput(1);
   if (x<=0 | x>=1 | y<=0 | y>=1)
      salir=1;
   else    
      X=[X x]; Y=[Y y];
      % ...COMPLETAR...
      text(X,Y,'o')
   end
end
La función apli va leyendo los puntos con el comando ginput(1) y añadiéndolos a los vectores X e Y, los cuales contienen todos los puntos seleccionados desde el comienzo de la aplicación. La aplicación finaliza cuando se selecciona con el ratón un punto fuera de la ventana.

El error en la interpolación de Lagrange

El objetivo de este apartado es comprender el aumento del error en la interpolación de Lagrange cuando el número de puntos base crece por encima de un valor, es decir, cuando el grado del polinomio de interpolación es relativamente grande. Para ello utilizaremos la función desarrollada en el apartado anterior.
Ejercicio 7: Observa el efecto que se produce cuando utilizamos la función apli seleccionando un número elevado de puntos. ¿A partir de que número de puntos el error empieza a ser considerable?
<<<     >>>    

No hay comentarios:

Publicar un comentario