Algoritmos numéricos método dos mínimos quadrados

18
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO DEPARTAMENTO DE MATEMÁTICA APLICADA JULIO PANSIERE ZAVARISE 2014102032 IMPLEMENTAÇÃO EM OCTAVE DO MÉTODO DOS MÍNIMOS QUADRADOS 1

Transcript of Algoritmos numéricos método dos mínimos quadrados

Page 1: Algoritmos numéricos método dos mínimos quadrados

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTOCENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO

DEPARTAMENTO DE MATEMÁTICA APLICADA

JULIO PANSIERE ZAVARISE 2014102032

IMPLEMENTAÇÃO EM OCTAVE DO MÉTODO DOS MÍNIMOS QUADRADOS

São Mateus2016

1

Page 2: Algoritmos numéricos método dos mínimos quadrados

JULIO PANSIERE ZAVARISE 2014102032

IMPLEMENTAÇÃO EM OCTAVE DO MÉTODO DOS MÍNIMOS QUADRADOS

SÃO MATEUS2016

2

Trabalho apresentado à disciplina de Algoritmos Numéricos como requisito parcial avaliativo na Centro Universitário do Norte do Espírito Santo-Universidade Federal do Espírito Santo.Orientador: Profª Isaac Pinheiro dos Santos

Page 3: Algoritmos numéricos método dos mínimos quadrados

SUMÁRIO

RESUMO............................................................................................................... 1.OBJETIVOS........................................................................................................2.INTRODUÇÃO....................................................................................................3.METODOLOGIA................................................................................................. 4.RESULTADOS E DISCUSSÃO ....................................................................... CONCLUSÃO .....................................................................................................REFERÊNCIAS BIBLIOGRÁFICAS..................................................................

3

Page 4: Algoritmos numéricos método dos mínimos quadrados

RESUMO

O algoritmo apresentado foi implementado de forma computacional utilizando-

se o software GNU OCTAVE versão 4.0.3 com o intuito de resolver três

problemas de ajuste de curvas e análise dos desvio pelo método dos mínimos

quadrados. No problema 1 , foi solicitado que o processo de minização do

desvio D pelo metodo dos mínimos quadrados. No problema 2 ,o algoritmo

construído foi implementado de forma que o usuário pudesse inserir como

entrada n pares ordenados (x,y) e o grau m do polinômio desejado . Já no

problema 3 , pede-se o ajuste de um polinômio de grau 4 a um conjunto de

dados e a ainda , que seja apresentado um gráfico deste polinômio . Verificou-

se que o algoritmo construído no problema 2 pode ser empregado na resolução

do problema e por isso adicinou-se no programa uma função para plotar o

gráfico do polinômio resultante da interpolação linear . Os resultados obtidos

foram bons pois apresentaram parâmetros adequados .

Palavras-Chave: Metódo dos Míninos Quadrados;Interpolação de dados; Octave; Interpolação Polinomial .

4

Page 5: Algoritmos numéricos método dos mínimos quadrados

1.OBJETIVOS :

Desenvolver um programa em Octave para ajustar curvas pelo método dos mínimos quadrados.

5

Page 6: Algoritmos numéricos método dos mínimos quadrados

2.INTRODUÇÃO :

O Método dos Mínimos Quadrados foi concebido no final do século

XVIII. Bem no início do século XIX, o mundo viu sua primeira aplicação no

estudo de trajetórias de corpos celestes. A ideia básica é: dado um conjunto de

pontos, achar uma curva que melhor se ajusta a eles. Legendre foi o primeiro a

publicar o méetodo em 1805, em seu trabalho: “Nouvelles méthodes pour la

détermination des orbites des comètes”. Gauss publicou suas conclusões

apenas em 1809, embora acredita-se que ele já conhecia o Método desde

1795. Esse método vem sendo ampliado, generalizado e largamente utilizado

até hoje.

De acordo com CAMPOS ,2007 , o Método dos Mínimos Quadrados

consiste justamente em encontrar uma estimativa da reta u=β0+β1 x de modo a

produzir o menor a produzir o menor valor possível do desvio .

D (β0 , β1 )=∑i=1

n

( yi−ui ) ²= ∑i=1

n

( yi−β0−β1 xi) ² (Eq.1)

Cujas derivadas parciais são :

dD (β0 , β1 )d β0

=−2∑i=1

n

( yi−β0−β1 xi) e

dD (β0 , β1 )d β1

=−2∑i=1

n

( yi−β0−β1 xi)xi.

Os valores para os quais as funções D (β0 , β1 ) possui um mínimo são

aqueles onde as derivadas parciais se anulam, isto é , se D (b0 , b1 ) for o ponto

de mínimo de D (β0 , β1 ), então :

−2∑i=1

n

( yi−β0−β1 xi )=0→∑i=1

n

bo+∑i=1

n

b1xi=∑i=1

n

yie

6

Page 7: Algoritmos numéricos método dos mínimos quadrados

−2∑i=1

n

( yi−β0−β1 xi )xi=0→∑i=1

n

boxi+∑i=1

n

bixi2=∑i=1

n

xiyi.

Simplificando a notação ,pode-se escrever que ∑i=1

n

¿∑ :

[ n ∑i=1

n

xi

∑i=1

n

xi ∑i=1

n

xi ²][ bob1]=[ ∑i=1n

yi

∑i=1

n

xiyi]Cuja solução é :

b1=∑i=1

n

xi∑i=1

n

yi−n∑i=1

n

xiyi

(∑i=1

n

xi)2

−n∑i=1

n

xi ² e

bo=∑i=1

n

yi−b1∑i=1

n

xi

n

Para aferir a qualidade do ajuste pode-se utilizar alguns parâmetros

como o coeficiente de determinação r² , definido como a proporção da variação

total dos dados em torno da média y que é explicada pelo modelo de

regressão, satisfazendo 0≤ r ²≤1:

r ²=1− D(bo ,b1)

∑i=1

n

y i2−1n

¿¿¿ (Eq. 2)

Outro parâmetro importante que pode ser usado para aferir a qualidade

do ajuste é variância residual :

σ 2=D (b0 , b1)n−p

(Eq.3)

Em que:

n é o número de pontos ;

p é o número de parâmetros estimados .

7

Page 8: Algoritmos numéricos método dos mínimos quadrados

Um caso particular e importante da regressão linear múltipla , é quando

se relaciona a variável resposta y com uma variável explicativa x ,segundo o

modelo :

y=β0+β1 x+β2 x2+…+β gxg+e (Eq. 5)

Esse modelo é denominado regressão polinomial e escrevendo as

equações normais obtidas pelo método dos mínimos quadrados calculando-se

as derivadas parciais e igualando-as a zero a fim de encontrar o ponto mínimo

da função D(β0 , β1 , β2 ,…, βg) na forma matricial , tem-se que :

[n ∑ xi ∑ xi ² ⋯ ∑ xi g

∑ xi ∑ xi ² ∑ xi ³ ⋯ ∑ xig+ 1

∑ xi² ∑ xi ³ ∑ xi4 ⋯ ∑ xig+ 2

⋮ ⋮ ⋮ ⋱ ⋮

∑ xig ∑ xig+1 ∑ xig+2 ⋯ ∑ xi2 g ] [b0b1b2⋮bg

]=[ ∑ yi∑ xi yi∑ xi ² yi

∑ xig yi]

Um algoritmo capaz de executar o Método dos Mínimos Quadrados é

apresentado abaixo. Inicialmente, tem-se os dados de entrada e saída :

Figura 1- Fluxograma representando a entrada de dados no algoritmo e a

saída

O objetivo do algoritmo, simbolizado por → , é minimizar a soma dos

quadrados[ f (x 1)−g1] ²+ ·· ·+¿¿ ², em que f é definida por

f (x)=a1 f 1(x)+· ··+amfm(x ). Deseja-se resolver o sistema linear FA=B. A

matriz dos coeficientesF tem o elemento da linha i e coluna j definido por:

A matriz dos termos independentes é dada por:

8

Page 9: Algoritmos numéricos método dos mínimos quadrados

Para definirmos B, tomemos uma funcão g, tal que

g(xk )=gk , ∀ k∈{1,2 , ...n }. De acordo com ,

Na prática, em alguns casos, a funcão g é totalmente dispensável, isto é,

basta considerarmos a última soma na definição de . Finalmente, a matriz das

incógnitas é dada por:

O algoritmo pode ser sintetizado na figura 2 :

Figura 2- Algoritmo a ser construído para executar o método dos mínimos quadrados

para realizar a interpolação de dados

9

Page 10: Algoritmos numéricos método dos mínimos quadrados

3.METODOLOGIA :

No problema 1 , descreveu-se o processo de minização do desvio D ,

dado pela equação ---- , mostrando-se que o mesmo resulta em um sistema do

tipo Ax=b .

No problema 2 , utilizou-se o software GNU OCTAVE, versão 4.0.3, para

construir o algoritmo a ser empregado na resolução do problema 3. Num

primeiro momento o algoritmo foi construído para que o usuário pudesse inserir

um número natural n, que vem a ser o número de pares ordenados (x;y) e em

seguida o grau m , do polinômio interpolador empregado , porém tendo em

vista que seria vantajoso analisar graficamente qual é a relação entre o

polinômio construído e os dados inseridos inseriu-se no algoritmo a função que

permite a plotagem do gráfico que correlaciona os pares (x;y) e polinômio

interpolador.

No problema 3 , o polinômio interpolador construído possui grau 4 e os

pares ordenados inseridos foram obtidos da tabela 1 , disposta abaixo :

Tabela 1- Dados deformação-tensão para a borracha

Deformação ϵ (MPa) Tensão σ (MPa)

0.0 0.0

0.4 3.0

0.8 4.5

1.2 5.8

1.6 5.9

10

Page 11: Algoritmos numéricos método dos mínimos quadrados

2.0 5.8

2.4 6.2

2.8 7.4

3.2 9.6

3.6 15.6

4.0 20.7

4.4 26.7

4.8 31.1

5.2 35.6

5.6 39.3

6.0 41.5

4. RESULTADOS E DISCUSSÃO:

Problema 2 : O Algoritmo criado segue abaixo :

Linha 1: clear

Linha 2: clc

Linha 3: format short

Linha 4: Linha 5: printf("\n\n Digite numero de pontos\n\n");

Linha 7: n = input("n:\n");

Linha 8: nAqui tem-se o comando para inserir o número de pontos a serem

interpolados .

Linha 9: printf("\n\n Digite o grau do polinomio\n\n");

Linha 10: m= input("m:\n");

Linha 11: mLinha 12: for i=1:n

Aqui tem-se o comando para inserir o grau do polinômio interpolador.

Linha 13: printf("Digite x(%d)\n\n", i);

Linha 14: x(i)= input("x:\n");

Linha 15: x(i)

11

Page 12: Algoritmos numéricos método dos mínimos quadrados

Linha 16: printf("Digite y(%d)\n\n", i);

Linha 17: y(i)= input("y:\n");

Linha 18: y(i)

Linha 19: endfor

Linha 20: %Preenchendo a matriz dos coeficientes, temos

Linha 21: a(1,1)=n;

Linha 22: for i1=1:m+1

Linha 23: for j=1:m+1

Linha 24: a(i1,j)=sum(x.^(j+i1-2));

Linha 25: endfor

Linha 26: endfor

Aqui tem-se um laço de iteração dentro de outro laço para preecher a

matriz dos coeficientes

Linha 27: %Preenchendo o vetor dos termos independentes, temos

Linha 28: for i1=1:m+1

Linha 29: c(i1)=sum(y.*x.^(i1-1));

Linha 30: endfor

Linha 32: aLinha 33: cLinha 34: c=c';

Linha 35: b=a\c; %faz as equacões normais e calcula a solucão do sistema

Linha 36: b = b(end:-1:1) %coeficientes do polinômio interpolador u(x)

Linha 37: x1=(-10:1:10); %Intervalo onde os gráficos serão plotados

Linha38: d=polyval(b,x1); % calcula a imagem dos pontos pela funcão

aproximada

O intervalo em que os gráficos serão plotados é arbitrário e depende dos

valores que serão ajustados pelo polinômio interpolador. Sendo assim , como o

maior valor em x é 6.0 e o menor valor 0.0 adotou-se 10 como o limite superior

e -10 como o limite inferior para plotar os dados .

Linha 39: Linha 40: %Plotagem do gráfico

Linha 41: hold on;

Linha 42: plot(x1,d,x, y, 'b.');

Linha 43: title('Ajuste de minimos quadrados')

12

Page 13: Algoritmos numéricos método dos mínimos quadrados

Linha 44: xlabel('x');

Linha 45: ylabel('u(x)');

Linha 46: grid on;

Comando empregado para plotar o gráfico correlacionando os pares

ordenados (x;y) e o polinômio interpolador .

Problema 3 : Com os dados da tabela 2 , obteve-se o seguinte vetor , que representa

os coeficientes ---- do polinômio interpolador obtido de acordo com as

condições especificadas :

b=[ −0.264393.11855

−10.1926712.87798−0.27461

](i) O polinômio obtido será da forma

U ( x )=b0 x0+b1x1+b2 x2+b3 x3+b4 x4 , em que :

b 4=−0.26439 , b3=3.11855 , b2=−10.19267 , b1=12.87798 eb0=−0.27461 .

Logo , tem-se que :

U ( x )=−0.27461 x0+12.87798 x1−10.19267 x2+3.11855 x3−0.26439 x4

(ii) O gráfico plotado pelo software encontra-se disposto abaixo na

figura ---:

Figura -- - Gráfico tensão-deformação

13

Page 14: Algoritmos numéricos método dos mínimos quadrados

14