Algoritmos numéricos método dos mínimos quadrados
-
Upload
julio-pansiere-zavarise -
Category
Engineering
-
view
15 -
download
1
Transcript of 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
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