Matlab - Cómo expandir polinomio obtenido mediante interp1

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 4 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Cómo expandir polinomio obtenido mediante interp1

Publicado por Ester de la Torre (6 intervenciones) el 08/09/2016 14:54:27
Estimado:

Deseo conocer la forma de obtener la expresión de los polinomios que se hallan mediante el comando de Matlab interp1(x,y,'metodo'). Para interpolar puntos y graficar no tengo problemas. Para obtener las expresiones imagino que ha de ser trabajando por tramos pero no se cómo hacerlo.

Me interesa saber, si hay varias formas para distintas versiones de Matlab.

Este es el ejemplo que he trabajado.

1
2
3
4
5
6
7
xint=[0 2 3 5 6];
yint=[0 4 1 5 8];
x=linspace(-2,10);
y=interp1(xint,yint,x,'linear');
z=interp1(xint,yint,x,'spline');
plot(x,y,'b',x,z,xint,yint,'o')
grid on
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Cómo expandir polinomio obtenido mediante interp1

Publicado por Daniel (264 intervenciones) el 08/09/2016 21:18:52
puedes usar:


1
2
pp1 = interp1(xint,yint,'linear','pp'); % para lineal
pp2 = interp1(xint,yint,'spline','pp'); % para spline

pp1 o pp2 tienen adentro un par de cosas:

1
pp1.coefs
tiene los coeficientes de los polinomios interpoladores de cada tramo del mayor orden al menor c(1)*x^n+c(2)x^(n-1) ...c(n)
(fila = numero de tramo columna = orden de mayor a menor)

1
pp1.breaks
tiene los lugares en donde cambia de un polinomio a otro

si queres evaluarlos puedes usar ppval(pp1,xx) donde xx son los valores a evaluar

los polinomios están escritos respecto de la distancia al break que define el limite menor del intervalo
ej : si tenes los valores de pp1 (lineales) y tenes uque evaluar en 12 y corresponde al 5to tramo con break en 10 y el proximo en 15 y queres evaluarlo manualmente

1
y=pp.coefs(5,1)*(x-10)+pp.coefs(5,1);

para el caso spline el polinomio es de tercer grado ( 4 coeficientes)

Comentanos como te fue

Saludos

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar