clc
clear
echo on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Questao 2: Ajuste de Curvas
%
% Ajuste a tabela de dados armazenada no arquivo dados.m 
% polinomios de grau 1 e 2. Faca o grafico dos ajustes.
% 
% dados.m: primeira coluna contem x e segunda coluna contem y
% 
echo off
disp(' ');
disp('Tecle alguma coisa para continuar...'); pause
clc;
clc;

echo on
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ajuste de Curvas: linear e de segunda ordem
%       p1(x) = ax + b
%       p2(x) = ax^2 + bx + c
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
echo off
load dados.m
[l,c] = size(dados);
x = dados(1:l,1);
y = dados(1:l,2);
n = 1;
p1 = polyfit(x,y,n);
fprintf('\n');
fprintf('p1(x) = %f x + %f\n', p1(1), p1(2));
n = 2;
p2 = polyfit(x,y,n);
fprintf('\n');
fprintf('p2(x) = %f x^2 + %f x - %f\n', p2(1), p2(2), -p2(3));
fprintf('\n');
fprintf('\n');

xi = linspace(0,1,100);
z1 = polyval(p1,xi);
z2 = polyval(p2,xi);
plot(x,y,'*',xi,z1,";grau 1;",xi,z2,";grau 2;")
xlabel('x'),ylabel('y = f(x)')
title('Ajuste de Curvas - linear (n = 1), segunda ordem (n = 2)')
disp('Final da Questao 2');
disp(' ');
disp('Tecle alguma coisa para continuar...'); pause






