clear
exec('minqd_functions.sci')
//  Exemplo 1 
// solução 1 com base canonica 
x=1:10;
y =sin(x);
M = diag(ones(1,2));  // passamos soh phi_0=1 e phi_1=x
                      // logo vamos encontrar P_1(x) (reta)
[a,H,b]=minqd_base_geral(x,y,M);

// Encontando o Pol. interpolador:
pol = []
for i=1:size(a,1)
    pol = pol + a(i)*M(i,:);
end

// Tracando curvas:
plot(x,y,'*')
graf_pol(x(1),x(max(size(x))),pol,'b')

// --------------------------------------------------------
//  Exemplo 2 
// solução com base canonica 
x=1:10;
y =sin(x);
M = diag(ones(1,6));  // passamos soh phi_0=1 ateh phi_5=x^5
                      // logo vamos encontrar P_5(x) 
[a,H,b]=minqd_base_geral(x,y,M);

// Encontando o Pol. interpolador:
pol = []
for i=1:size(a,1)
    pol = pol + a(i)*M(i,:);
end

// Tracando curvas:
plot(x,y,'*')
graf_pol(x(1),x(max(size(x))),pol,'g')



// --------------------------------------------------------
//  Exemplo 3 
// solução com base canonica 
x=1:10;
y =sin(x);
M = diag(ones(1,8));  // passamos soh phi_0=1 ateh phi_5=x^7
                      // logo vamos encontrar P_7(x) 
[a,H,b]=minqd_base_geral(x,y,M);

// Encontando o Pol. interpolador:
pol = []
for i=1:size(a,1)
    pol = pol + a(i)*M(i,:);
end

// Tracando curvas:
plot(x,y,'*')
graf_pol(x(1),x(max(size(x))),pol,'bk')



// --------------------------------------------------------
//  Exemplo 4 
// solução com base ortogonal 
M=gera_base_discr(x,5)

[a,H,b]=minqd_base_geral(x,y,M);

// Encontando o Pol. interpolador:
pol = []
for i=1:size(a,1)
    pol = pol + a(i)*M(i,:);
end

// Tracando curvas:
plot(x,y,'*')
graf_pol(x(1),x(max(size(x))),pol,'r')


