Post on 21-Feb-2017
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
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
SUMÁRIO
RESUMO............................................................................................................... 1.OBJETIVOS........................................................................................................2.INTRODUÇÃO....................................................................................................3.METODOLOGIA................................................................................................. 4.RESULTADOS E DISCUSSÃO ....................................................................... CONCLUSÃO .....................................................................................................REFERÊNCIAS BIBLIOGRÁFICAS..................................................................
3
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
1.OBJETIVOS :
Desenvolver um programa em Octave para ajustar curvas pelo método dos mínimos quadrados.
5
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
−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
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
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
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
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
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
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
14