Você está na página 1de 2

Roteiro para o ajuste de curvas no Matlab

O Matlab contm uma funo prpria para o ajuste polinomial chamada polyfit (para maiores informaes, digite help polyfit no Matlab) e vamos us-la para calcular diferentes tipos de ajuste (linear, polinomial e no-linear). Primeiramente, vamos gerar os valores (x,y) que sero ajustados, usando a funo sen x:
>> x = [0:0.1:2] >> y = sin(x)

Agora vamos ajustar uma funo linear y = a1 x + a0, usando a funo Matlab polyfit:
>> p1 = polyfit(x,y,1)

O vetor linha p1 contm os valores dos coeficientes de ajuste linear a1 e a0 nesta ordem, pois a1 = p1(1,1) e a0 = p1(1,2). Vamos ajustar agora uma funo polinomial de 2 grau y = a2 x2 + a1 x + a0, usando novamente a funo Matlab polyfit:
>> p2 = polyfit(x,y,2)

Observar que o coeficiente 2 no argumento da funo polyfit corresponde ao grau do polinmio de ajuste. O vetor linha p2 contm os valores dos coeficientes de ajuste de 2 grau: a2 = p2(1,1), a1 = p2(1,2) e a0 = p2(1,3). Para comparar visualmente o ajuste, vamos desenhar um grfico contendo os dados de ajuste (x,y) e as curvas de ajuste linear e de 2 grau. Primeiramente, temos que gerar os valores numricos das curvas de ajuste, que vamos chamar de y1 e y2, respectivamente para os valores do ajuste linear e de 2 grau, usando a funo Matlab polyval:
>> y1 = polyval(p1,x) >> y2 = polyval(p2,x)

Observar que usamos os valores de x para gerar os valores de y1 e y2. Para desenhar as trs curvas no mesmo grfico, vamos usar a instruo plot com as trs curvas no argumento:
>> plot(x,y,or,x,y1,-b,x,y2,-k); shg

A primeira curva, contendo os dados (x,y) desenhada somente com crculos vermelhos (or); a segunda curva, contendo os dados da funo linear (x,y1), desenhada com linha contnua azul (-b) e a terceira curva, contendo os dados da funo polinomial de 2 grau (x,y2), desenhada com linha contnua preta (-k). A instruo shg faz com que a janela grfica seja exibida na frente da janela de comandos do Matlab. Vamos agora fazer um ajuste no-linear, utilizando a funo exponencial y = aebx, cujas relaes de linearizao so descritas por: y = ln y, a0 = ln a, a1 = b

Primeiro, vamos calcular os valores da varivel linearizada y, que vamos chamar no Matlab de yp:

>> yp = log(y)

Observar que a funo matemtica ln y no Matlab descrita pela funo log(y). Com o valor de y linearizado, vamos novamente usar a funo polyfit para calcular os coeficientes de ajuste da funo linearizada pp:
>> pp = polyfit(x,yp,1)

O vetor linha pp contm os valores dos coeficientes de ajuste da funo exponencial linearizada, a1 = pp(1,1) e a0 = pp(1,2). Os valores dos coeficientes de ajuste exponencial so calculados por:
>> a = exp(pp(1,2)) >> b = pp(1,1)

Lembre-se que os coeficientes a1 e a0 esto em ordem decrescente na varivel pp. Vamos desenhar um grfico comparativo dos valores (x,y) e da funo de ajuste exponencial, seguindo o mesmo procedimento utilizado no ajuste anterior:
>> yap = a*exp(b*x) >> plot(x,y,or,x,yap,-b); shg

A varivel yap contm os valores da funo exponencial y = aebx usando os mesmos valores de x fornecidos no incio do programa. Finalmente, vamos calcular os coeficientes de correlao de Pearson dos trs ajustes realizados, utilizando a frmula geral:

r = 1
2

N N

y2 (

(y yaj )2

y)

Para a funo de ajuste exponencial, a frmula deve ser aplicada aos valores linearizados de y, tanto dos valores de ajuste quanto da funo linearizada.
>> >> >> >> >> N = length(x) r1 = 1 N*sum((y y1).^2)/(N*sum(y.^2) sum(y)^2) r2 = 1 N*sum((y y2).^2)/(N*sum(y.^2) sum(y)^2) ylin = pp(1,1).*x + pp(1,2) rexp = 1 N*sum((yp ylin).^2)/(N*sum(yp.^2) sum(yp)^2)

A primeira linha atribui varivel N o nmero de graus de liberdade; a segunda linha calcula o coeficiente de correlao linear; a terceira linha o coeficiente de correlao de 2 grau; a quarta linha, calcula o valor da funo exponencial linearizada e a quinta linha, calcula o seu coeficiente de correlao. Observar com bastante ateno o ponto ortogrfico colocado antes dos operadores de potenciao nas segunda, terceira e quinta linhas e antes do operador multiplicao na quarta linha. Ele necessrio, pois desejamos realizar operaes aritmticas escalares e no matriciais. Dos resultados grficos e dos valores calculados de r2, conclui-se que o ajuste polinomial de 2 grau representa o melhor ajuste dentre as trs funes, sendo que tambm pode ser considerado um ajuste com excelente concordncia entre os valores numricos e os valores ajustados (r2 = 0,998).

Você também pode gostar