SciELO - Scientific Electronic Library Online

 
vol.29 número3Controvérsia ação a distância/ação mediada: abordagens didáticas para o ensino das interações físicas índice de autoresíndice de assuntospesquisa de artigos
Home Pagelista alfabética de periódicos  

Serviços Personalizados

Journal

Artigo

Indicadores

Links relacionados

Compartilhar


Revista Brasileira de Ensino de Física

versão impressa ISSN 1806-1117versão On-line ISSN 1806-9126

Rev. Bras. Ensino Fís. v.29 n.3 São Paulo  2007

http://dx.doi.org/10.1590/S1806-11172007000300020 

NOTAS E DISCUSSÕES

 

Uma generalização do polinômio dos quadrados mínimos condicionado

 

A generalization of the constrained least squares polynomial

 

 

Oclide J. Dotto; Adalberto A. Dornelles Filho1

Departamento de Matemática e Estatística, Universidade de Caxias do Sul, Caxias do Sul, RS, Brasil

 

 


RESUMO

Este artigo descreve um programa de computador em MATLAB para a obtenção de um polinômio de ajuste dos quadrados mínimos, condicionado a passar por um conjunto arbitrário de nodos de ancoramento, contanto que ainda retenha um conveniente número de graus de liberdade.

Palavras-chave: ajustamento, quadrados mínimos, condicionamento.


ABSTRACT

The article describes a computer program in MATLAB for obtaining a least-squares polynomial fit, constrained to pass through an arbitrary set of anchorage nodes, provided a sufficient number of freedom degrees is retained.

Keywords: data fitting, least squares, constraint.


 

 

1. Introdução

Em recente artigo [1] mostramos que é possível determinar um polinômio de ajuste dos quadrados mínimos (QM) preestabelecendo que contenha um nodo de ancoramento (um ponto fixado; a origem, por exemplo). Chamamos a um polinômio de ajuste desse tipo de polinômio dos quadrados mínimos condicionado (PQMC) ou ancorado. Nos comentários finais do citado artigo dissemos que se poderia tentar desenvolver um algoritmo que obrigue o polinômio a passar por um conjunto arbitrário de nodos de ancoramento, contanto que ainda retenha um número de graus de liberdade suficientemente elevado. Recentemente conseguimos obter um algoritmo para o PQMC com um número t qualquer de nodos de ancoramento. A Fig. 1 ilustra um exemplo de ajustamento do PQMC de ordem m = 4 ancorado em t = 2 nodos.

 

 

2. Algoritmo

Segue o algoritmo, implementado na linguagem do MATLAB. Para auxiliar a compreensão, intercalamos explicações detalhadas de diversos passos desse algoritmo.

O algoritmo tem, como dados de entrada, os vetores das abscissas x = [x1, ..., xn]T e ordenadas y = [y1, ..., yn]T dos n dados (dados experimentais, por exemplo), os vetores das abscissas u = [u1, ...,ut]T e ordenadas w = [w1, ..., wt]T dos t nodos de ancoramento (pontos que certamente pertencem à função teórica, por exemplo) e a ordem m do PQMC

P(x) = p1xm + p2xm-1 + ··· + pmx + pm+1,

a determinar. Quase sempre a ordem coincide com o grau do polinômio, mas algumas vezes, muito raramente, o grau é menor que a ordem; isso acontece quando é nulo o coeficiente p1.

No MATLAB, o comando length(x) determina o tamanho (número de componentes) do vetor x. Para que haja algum grau de liberdade do ajustamento polinomial ancorado, a ordem m do PQMC não deve ser menor que o número t de nodos de ancoramento. Por exemplo, se t = 2, então o polinômio deve ter grau m > 2, pois m = 1 determinaria a reta passando pelos 2 nodos, sem liberdade para o ajustamento.

O PQMC procurado pode ser escrito na forma

P(x) = Q(x) R(x) + S(x),

onde

S(x) = s1xt-1 + s2xt-2 + ··· + st-1x + st

é o polinômio interpolador pelos nodos de ancoramento com ordem t-1 e

R(x) = (x - u1) (x - u2) ··· (x - ut)

é um polinômio auxiliar. Já

Q(x) = q1xm-t + q2xm-t-1 + ··· + qm-tx + qm-t+1

é um polinômio de ajuste dos QM livre de ordem m -t.

Por construção, tanto R(x) quanto S(x) não possuem graus de liberdade, pois estão ancorados aos nodos u1, ...,ut. Já o polinômio de ajuste Q(x) possui m - t + 1 graus de liberdade que são, de fato, os graus de liberdade de P(x). Se, para i = 1, ..., t, temos R(ui) = 0, então P(ui) = S(ui), de forma que P(x) fica também ancorado aos nodos u1, ..., ut.

Inicialmente, determinamos os coeficientes s1, ..., st do polinômio interpolador S(x). No MATLAB, o comando vander(u) constrói, a partir do vetor u, a matriz de Vandermonde

e o comando s = V\w fornece a solução2 (clássica) do sistema linear V s = w.

Determinamos os coeficientes q1, ..., qm-t+1 do polinômio dos QM livre Q(x) observando que

Q(xi) R(xi) + S(xi) = yi, i = 1, ···, n,

e que esse conjunto de equações constitui um sistema linear sobredeterminado que deve ser resolvido no sentido dos QM. Ele pode ser reescrito como

Q(xi) R(xi) = yi – S(xi), i = 1, ···, n,

ou ainda,

Com o comando polyval(s, x(i)) efetuamos o cálculo de S(xi). Então montamos o sistema linear A q = b, onde

e

O comando q = A\b obtém a solução dos QM do sistema linear A q = b.

Finalmente obtemos os coeficientes p1, ..., pm+1 de P(x). Inicialmente, pela convolução dos vetores p e [ 1, -ui ]T executada pelo comando conv(p, [1; -u(i)]) e, em seguida, pela soma (devidamente deslocada) do vetor s. Isso é equivalente às operações polinomiais em Q(x)R(x) + S(x).

 

3. Ancoramento em um único nodo

O método descrito acima é geral. Como caso particular, temos o ajustamento condicionado a conter um único nodo (u1,w1); nesse caso o PQMC é da forma

P(x) = Q(x) (x - u1) + w1

onde Q(x) = q1 xm-1 + q2 xm-2 + ... + qm-1 x +qm é um polinômio de ajuste de ordem m-1. Obtemos os coeficientes q1, ..., qm de Q(x) pela resolução (no sentido dos QM) do sistema linear A q = b, onde

 

4. Conclusão

O programa que acabamos de descrever é melhor que o programa polqmcond do referido artigo pelo fato de ser uma generalização deste, e, além disso, usar apenas cálculos numéricos (enquanto o último usa também cálculos simbólicos), o que o torna mais rápido e portável, isto é, pode ser convertido em outra linguagem mais facilmente. Os comandos específicos do MATLAB podem ser implementados pelo usuário, ou mesmo, podem já estar disponíveis em bibliotecas (LAPACK, por exemplo).

 

Referências

[1] Oclide J. Dotto e Adalberto A. Dornelles Filho, Revista Brasileira de Ensino de Física 28, 397 (2006).        [ Links ]

 

 

Recebido em 28/11/2006; Aceito em 19/3/2007

 

 

1 E-mail: aadornef@ucs.br.
2 No MATLAB, o comando ''\'' fornece solução dos QM de um sistema linear A x = b. Um sistema linear pode não ter solução clássica, mas sempre tem solução dos QM. A solução dos QM é obtida pela resolução da equação normal AT A x = AT b. Essa solução dos QM é única quando A tem colunas linearmente independentes (seja A quadrada ou não). No caso de infinitas soluções de QM, a solução encontrada pelo MATLAB é a de menor norma. Importante: A solução dos QM coincide com a solução clássica quando esta existe. O sistema linear V s = w é determinado, isto é, possui uma única solução (clássica). Já o sistema linear a q = b é sobredeterminado, isto é, possui apenas solução dos QM.

Creative Commons License Todo o conteúdo deste periódico, exceto onde está identificado, está licenciado sob uma Licença Creative Commons