Vous êtes sur la page 1sur 7

AJUSTE POLINOMIAL MATRICIALMENTE

X 1 2 2.4 5.6 6.8


Y 1 1.5 4.8 9.5 12.6

3 2
y= A x +B x +Cx+ D

x=[1 2 2.4 5.6 6.8];

y=[1 1.5 4.8 9.5 12.6];

A=[(x').^3 (x').^2 x' ones(5,1)];

C=inv(A'*A)*(A'*y')

C=

0.0266

-0.2751

2.7387

-1.7401

>>u=1:0.01:6.8;

>> v=0.0266*u.^3-0.2751*u.^2+2.7387*u-1.7401;

>> plot(u,v,'r')

>> hold on % mantiene abierta la ventana de comando

>> plot(x,y,'*b)

>> plot(u,v,'r')
14

12

10

0
1 2 3 4 5 6 7

--------------------------------------------------

x=[1 2 5.6];

>> y=[1 1.5 9.5];

>> A=[(x').^3 (x').^2 x' ones(3,1)];

>> C=inv(A'*A)*(A'*y')

C=

0.0234

0.5938

-0.3125

0.9688

>> u=1:0.01:5.6;

>> v=C(1)*u.^3+C(2)*u.^2+C(3)*u+C(4);

>> plot(u,v,'r')
>> hold on

>> plot(x,y,'*b')

25

20

15

10

0
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6

INTERPOLACION MATRICIALMENTE

X 1 2 2.4 5.6
Y 1 1.5 4.8 9.5
y= A x 3 +B x 2 +Cx+ D

x=[1 2 2.4 5.6];

y=[1 1.5 4.8 9.5];

A=[(x').^3 (x').^2 x' ones(4,1)];

C=inv(A'*A)*(A'*y')

C=

-1.6129

14.2454
-30.9459

19.3134

>>u=1:0.01:5.6;

>> v=C(1)*u.^3+C(2)*u.^2+C(3)*u+C(4);

>> plot(u,v,'r')

>> hold on

>> plot(x,y,'*b')

25

20

15

10

-5
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6

POLINOMIO DE INTERPOLACION DE LAGRANGE

>> x=[1 2 2.4 5.6];


>> y=[1 1.5 4.8 9.5];
>> lagrange(x,y)
ans =

-1.6129 14.2454 -30.9459 19.3134


cdigo Matlab

USO DEL COMANDO poly:

>>x=1;

poly(x)

>>x=[1 2];

poly(x)

>>x=[1 2 3];

poly(x)

USO DEL COMANDO conv

Ejemplo: p=x+2; q=x+5


v=[1 2];
>> w=[1 5];
>> conv(v,w)

ans =
1 7 10

Ejemplo: p=x^2+2x+3 , q=2x+6


>> v=[1 2 3];
>> w=[2 6];

>> conv(v,w)

ans =

2 10 18 18

Ejemplo 1: Construir el polinomio de interpolacion de grado 2


x=[0 0.6 1.2];
>> y=[1 0.8253 0.3623];
>> plot(x,y,'*')
>> hold on
>> u=0:0.01:1.2;
>> L1=(u-0.6).*(u-1.2)/(-0.6)*(-1.2);
>> L1=(u-0.6).*(u-1.2)/((-0.6)*(-1.2));
>> L2=(u-0).*(u-1.2)/((0.6)*(0.6-1.2));
>> L3=(u-0).*(u-0.6)/((1.2)*(1.2-0.6));
>> P=L1+0.8253*L2+0.3623*L3;
>> plot(u,P,'r')
>> plot(u,cos(u),'k')
>>

0.9

0.8

0.7

0.6

0.5

0.4

0 0.2 0.4 0.6 0.8 1 1.2 1.4

Ejemplo 2: Construir el polinomio de interpolacin de grado3


x=[0 0.6 0.8 1.2];
>> y=[1 0.8253 0.6967 0.3623];
>> plot(x,y,'*')
>> u=0:0.01:1.2;
>> L1=(u-0.6).*(u-1.2).*(u-0.8)/((-0.6)*(-0.8)*(-1.2));
>> L2=(u-0).*(u-1.2).*(u-0.8)/((0.6)*(0.6-1.2)*(0.6-0.8));
>> L3=(u-0).*(u-0.6).*(u-1.2)/((0.8)*(0.8-0.6)*(0.8-1.2));
>> L4=(u-0).*(u-0.6).*(u-0.8)/((1.2)*(1.2-0.6)*(1.2-0.8));
>> P3=L1+0.8253*L2+0.6967*L3+0.3623*L4;
>> hold on
>> plot(u,P3,'r')
>> plot(u,cos(u),'k')
Codigo de Lagrange

function [C,L]=lagrange(X,Y)
%DATOS:
%X: Vector columna de abscisas
%Y: Vector column de ordenadas
%RESULTADOS
%C: Matriz que contiene los coeficientes del polinomio interpolador de
%Lagrange
%L: Matriz que contiene los coeficientes de los polinomios de Lagrange
w=length(X);
n=w-1;
%Formacion de los coeficientes del polinomio interpolador de lagrange
for k=1:w
V=1;
for j=1:w
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
end
%Calculo de coeficientes del polinomio interpolador de Lagrange
C=Y*L

Vous aimerez peut-être aussi