Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Multiplicadores de Lagrange y Ajustes de Curvas

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 15

Multiplicadores De Lagrange y Ajustes de curvas (Linealización)

Para el ajuste de curvas no eran precisamente a un polinomio, sino a funciones

Esta transformación nos va a permitir saber si una secuencia de puntos corresponde a una
potencia

En la logarítmica ya se tiene un mayor parecido a la ecuación de la recta


La 4° función es

Debemos linealizar de acuerdo al modelo que corresponda, para que con ello la linealización salga
bien

Ejercicio 1
Debemos ver a qué modelo pertenece

Aplicamos el logaritmo a los valores de x

En el recíproco se aplica el operador punto y es la gráfica donde mejor se alínean los puntos, por
ende ese es el modelo adecuado

clc; clear all; close all;

x=[-1 0.45 1.7 2.1 3.45 6.1 7.8 9.7]


y=[.501 .157 .099 .0887 .0649 .043 .0355 .03]

%Como en los ejercicios anteriores, lo primero es graficar


figure(1)
plot(x,y,'o')

%Probamos distintos modelos


figure(2)
plot(log(x),y,'o')
%Caso 2
figure(3)
plot(x,log(y),'o')

%caso 3
figure(4)
plot(log(x),log(y),'o')

%Probamos con el recíproco


figure(5)
plot(x,1./y,'o')

%Sumatorias posterior a la inversa


n=length(x)
Sx=sum(x)
Sx2=sum(x.^2)
Sy=sum(1./y) %Por la reciproca
Sxy=sum(x.*1./y)

%Sacamos la matriz aumentada, pero antes generamos las sumatorias


A=[n Sx Sy;
Sx Sx2 Sxy]

%Resolvemos la matriz
A(1,:)=A(1,:)/A(1,1)
A(2,:)=A(2,:)-A(1,:)*A(2,1)

%Para el 1 de la columna y fila 2


A(2,:)=A(2,:)/A(2,2)
A(1,:)=A(1,:)-A(2,:)*A(1,2)

m=A(2,3)
b=A(1,3)

%De acuerdo con el modelo de la linealidad


Yr=m*x+b %Yr por el recíproco
%graficamos
hold on
plot(x,Yr) %Los valores de x se quedan igual

figure(1)
x=[-1 0.45 1.7 2.1 3.45 6.1 7.8 9.7]
y=[.501 .157 .099 .0887 .0649 .043 .0355 .03]
plot(x,y,'o')

X=min(x):0.1:max(x)
Y=1./(b+m*X)

hold on
plot(X,Y)
FIN DEL TEMA
Para un polinomio de grado 2, se generan 3 ecuaciones, por ello para una curva con más puntos,
serían muchas más ecuaciones. Al tener un polinomio de 8 puntos, sería generar 8 ecuaciones y
llegar a x^9

Para evitar el desarrollo de matrices demasiado extensas y la propagación de errores (redondeo,


truncado, etc), se utiliza:

POLINOMIOS INTERPOLADORES DE LAGRANGE


Interpolar se refiere a una estimación del valor de Xn puntos, mediante la unión de los dos polos a
los extremos de los 2 puntos con una recta y ese punto contaría como una primer aproximación

Sin embargo, si se sigue una tendencia fuera de una recta, podemos observar lo siguiente:

En la cual se observa un error con respecto al tipo de curva que se estaba manejando (la recta)
Partimos del modelo de la recta:

m= pendiente que puede determinarse mediante

Polinomio de grado 1

Si se sustituye el valor de X0

Para el caso de X1

PENDIENTE, pero queda Y1

Lagrange realiza el siguiente ajuste para P1(x)=


Ilustración 1. POLINOMIO DE GRADO 1 DE LAGRANGE

Si se sustituyen los valores de X0

Para el caso de P1(X1)

Pendiente, PERO QUEDA Y1

Otra forma de verlos


Esta sería la forma genérica que nos permite desarrollar de forma más sencilla a los de un grado
más avanzado, por ejemplo:

Para el grado n, se da la siguiente expresión

EJERCICIO DE APLICACIÓN

Se tienen 3 puntos, por lo que podemos determinar un polinomio de grado 2

N=2

Pn=P2=P2(x)=
Para los términos de abajo (denominador)
Resultando

clc; clear all; close all;

x=[-8 2 18]
y=[7.5 15.8 -2.7]
X=7;

%Para L2,0
%En matlab no se permite poner la posición 0, por lo tanto deberemos
%recorrer un número la posición y para interpretar seria x-1
L20=((X-x(2))*(X-x(3))) ./ ((x(1)-x(2))*(x(1)-x(3)));

%Segunda expresión L2,1


L21=((X-x(1))*(X-x(3))) ./ ((x(2)-x(1))*(x(2)-x(3)));
%Tercera expresión L2,2
L22=((X-x(1))*(X-x(2))) ./ ((x(3)-x(1))*(x(3)-x(2)));

%Ahora sacamos el polinomio de grado 2


P2=y(1)*L20+y(2)*L21+y(3)*L22 %El resultado sería el valor
correspondiente de x en y

%Graficamos para verificar el resultado extraño


plot(x,y,'o') %Valores originales

hold on
plot(X,P2,'*') %Valores obtenidos

%graficamos una parábola para determinar la tendencia de un conjunto de


%puntos, en el anterior solo se graficó un punto

X=-10:20;

for i=1:length(X)
L20=((X(i)-x(2)).*(X(i)-x(3))) ./ ((x(1)-x(2)).*(x(1)-x(3)));
L21=((X(i)-x(1)).*(X(i)-x(3))) ./ ((x(2)-x(1)).*(x(2)-x(3)));
L22=((X(i)-x(1)).*(X(i)-x(2))) ./ ((x(3)-x(1)).*(x(3)-x(2)));

P2(i)=y(1)*L20+y(2)*L21+y(3)*L22;
end

plot(X,P2)
Cuando se desarrolla el Ln, no se toma en cuenta la posición del subíndice que se está trabajando

Es decir, en L1, no se toma la posición x(1)

En L2, no se toma en cuenta la posición x(2)

Y así sucesivamente

Esto debido a que se anularía el término y se indeterminan las divisiones!!!! [x(1)-x(1)] genera 0 y
al multiplicar por los demás, haría 0 al denominador

También podría gustarte