% Métodos numéricos 
% Cap. 3 - Minimos quadrados lineares
% Resolução do exercicio 1 da ficha prática nº4.
% Carlos Balsa 2008/2009

close all;

t=[0 1 2 3 4 5]';          % variavel independente
y=[1 2.7 5.8 6.6 7.5 9.9]';% variavel dependente

c1=ones(6,1);
A=[c1 t];
D=A'*A;
b=A'*y;
x=D\b;
P1=x(1)+x(2)*t;   % polinómio de grau 1

% alinea a)
figure(1)
plot(t,y,'o'); hold on;
plot(t,P1,'-r')


%% alinea b)
% polinómio de grau 2
tt=[min(t):0.1:max(t)]; % variavel independente com mais pontos
figure(2)
A=[c1 t t.^2];
[x,res]=normaleq(A,y); 
P2=x(1)+x(2)*tt+x(3)*tt.^2;  
plot(t,y,'o'); hold on;
plot(tt,P2,'-r')

% polinómio de grau 3
figure(3)
A=[c1 t t.^2 t.^3];
[x,res]=normaleq(A,y); 
P3=x(1)+x(2)*tt+x(3)*tt.^2+x(4)*tt.^3;   
plot(t,y,'o'); hold on;
plot(tt,P3,'-r')

% polinómio de grau 4
figure(4)
A=[c1 t t.^2 t.^3 t.^4];
[x,res]=normaleq(A,y); 
P4=x(1)+x(2)*tt+x(3)*tt.^2+x(4)*tt.^3+x(5)*tt.^4; 
plot(t,y,'o'); hold on;
plot(tt,P4,'-r')

% polinómio de grau 5
figure(5)
A=[c1 t t.^2 t.^3 t.^4  t.^5];
[x,res]=normaleq(A,y); 
P4=x(1)+x(2)*tt+x(3)*tt.^2+x(4)*tt.^3+x(5)*tt.^4+x(6)*tt.^5; 
plot(t,y,'o'); hold on;
plot(tt,P4,'-r')
