Hola! soy estudiante de ingeniería civil química y me han dado una tarea sobre los metodos de interpolación. Estoy muy perdida con esto.. ya que no entiendo muy bien que es lo que me piden. Les dejo la tarea, pero principalmente me interesa entender la pregunta 2, ya que piden que se grafique para todos los n y por lo que entiendo n es uno de los parametros que se ingresa.. Saludos y gracias
Anuncio
Colapsar
No hay ningún anuncio todavía.
Métodos de Interpolación, MATLAB
Colapsar
X
-
Re: Métodos de Interpolación, MATLAB
Para cada n te saldrá una interpolación. Supongo que con un "hold on" podrás graficar todas en un solo gráfico en ese intervalor. Eso sí, ten en cuenta que para dibujar eso tienes que sacar el valor de la función con feval o funciones similares. Para que te salga bien yo que tú cogería en el intervalo unas 150 divisiones.
Un saludo!Última edición por gdonoso94; 11/04/2013, 13:35:26.'Como físico, no temo a la muerte, temo al tiempo.'
'Bene curris, sed extra vium.'
'Per aspera ad astra.'
- 1 gracias
-
Re: Métodos de Interpolación, MATLAB
Hola, gracias por responder, lo que pasa es que primero estoy tratando de hacer la función pero me sale con errores.. mucho no se de MATLAB y es por eso que estoy muy colgada, te dejo el código
function L = Lagrange(n)
p=(-1:0.1:1);
for i=1:n+1
x=(-1+(2/n)*i);
for j=1:n+1
y=(-1+(2/n)*j);
if x~=y
t=(p-x)/(y-x);
end
end
end
L=t
end
%
eso me arroja los valores de t como un vector fila, pero tenia entendido qe el lagrange era la pitatoria de estos resultados.. al inicializar t=1 y luego ir ponderandolo por el t nuevo me sale un error, trate de definirlo como un vector de puros '1' pero aun asi no me resulta. Muchas gracias.. espero tu respuesta
Comentario
-
Re: Métodos de Interpolación, MATLAB
Yo hice una función para Lagrange hace tiempo, te copio el código:
[FONT=Courier]function y1=lagrange(x,y,x1)[/FONT]
[FONT=Courier]%este programa obtiene el valor interpolado y1 correspondiente al valor x1[/FONT]
[FONT=Courier]%empleando el polinomio interpolador de Lagrange de grado n, obtenido a[/FONT]
[FONT=Courier]%partir de los vectores x e y (de longitud n)[/FONT]
[FONT=Courier]%obtenemos el tama~no del conjunto de datos,[/FONT]
[FONT=Courier]n=length(x);[/FONT]
[FONT=Courier]%inicializamos la variable de salida[/FONT]
[FONT=Courier]y1=0;[/FONT]
[FONT=Courier]%construimos el valor a partir de los polinomios de Lagrange,[/FONT]
[FONT=Courier]for j=1:n[/FONT]
[FONT=Courier]%inicializamos el polinomio de Lagrange correspondiente al dato i[/FONT]
[FONT=Courier] lj=1;[/FONT]
[FONT=Courier]%y lo calculamos...[/FONT]
[FONT=Courier] for i=1:j-1[/FONT]
[FONT=Courier] lj=lj*(x1-x(i))/(x(i)-x(j));[/FONT]
[FONT=Courier] end[/FONT]
[FONT=Courier] for i=j+1:n[/FONT]
[FONT=Courier] lj=lj*(x1-x(i))/(x(i)-x(j));[/FONT]
[FONT=Courier]end[/FONT]
[FONT=Courier]%sumamos la contribución del polinomio de Lagrange lj[/FONT]
[FONT=Courier] y1=y1+lj*y(j);[/FONT]
[FONT=Courier]end[/FONT]
Espero que te sirva.
Un saludo!
- - - Actualizado - - -
De todas maneras te recomiendo que lo hagas primero a mano e intentes sacar el algoritmo, luego sencillamente es plasmarlo en MATLAB.'Como físico, no temo a la muerte, temo al tiempo.'
'Bene curris, sed extra vium.'
'Per aspera ad astra.'
- 1 gracias
Comentario
-
Re: Métodos de Interpolación, MATLAB
Los yi son los valores interpolados. La verdad es que no me acuerdo muy bien del funcionamiento de esta interpolación, ya que la vimos de pasada en clase. Si pones como variable de salida el yi, de la forma:
[FONT=Courier][y1]=lagrange(x,y,x1)
Debería salirte lo que quieres. Los xi los tienes que calcular a parte, ya que en la función que te pasé no está esa parte del ejercicio.
Espero haberte ayudado. [/FONT]'Como físico, no temo a la muerte, temo al tiempo.'
'Bene curris, sed extra vium.'
'Per aspera ad astra.'
Comentario
Contenido relacionado
Colapsar
Comentario