| | | | |

6.2 Problemas Não Lineares

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

Em revisão

Um problema não linear de mínimos quadrados consiste em ajustar uma dada função

y=f(x;𝒄) (6.31)

que dependa não linearmente dos parâmetros 𝒄=(c1,c2,,cm), m1, a um dado conjunto de nm pontos {(xi,yi)}i=1n. Mais especificamente, buscamos resolver o seguinte problema de minimização

min{c1,c2,,cm}[E:=i=1n(yif(xi;c))2]. (6.32)

Aqui, denotaremos por r(c):=(r1(𝒄),r2(𝒄),,rn(𝒄)) o vetor dos resíduos ri(𝒄):=yif(xi,𝒄). Com isso, o problema se resume a encontrar o vetor de parâmetros 𝒄 que minimiza

E=r(𝒄)2. (6.33)

Tais parâmetros são solução do seguinte sistema de equações

Ecj=2i=1nri(𝒄)cjri(𝒄)=0 (6.34)

ou, equivalentemente, da equação

E=0JRT(𝒄)r(𝒄)=0, (6.35)

onde

JR(𝒄):=[r1c1r1c2r1cmr2c1r2c2r2cmrnc1rnc2rncm] (6.36)

é a jacobiana do resíduo r em relação aos parâmetros 𝒄.

Podemos usar o método de Newton para resolver (6.35). Para tanto, escolhemos uma aproximação inicial para 𝒄(1)=(c1(1),c2(1),,cm(1)) e iteramos

HR(c(k))δ(k) =JRT(c)r(c) (6.37)
c(k+1) =c(k)+δ(k), (6.38)

onde δ(k)=(δ1(k),δ2(k),δm(k)) é a atualização de Newton (ou direção de busca) e HR(c):=[hp,q(c)]p,q=1m,m é a matriz hessiana, cujos elementos são

hp,q:=i=1n{ricqricp+ri2ricqcp}. (6.39)
Exemplo 6.2.1.

Consideremos o problema de ajustar, no sentido de mínimos quadrados, a função

f(x;c)=c1ec2x (6.40)

ao seguinte conjunto de pontos

i 1 2 3 4
xi 1 0 1 1.5
yi 8.0 1.5 0.2 0.1

Aqui, vamos utilizar a iteração de Newton para o problema de mínimos quadrados, i.e. a iteração dada em (6.37)-(6.38). Para tanto, para cada i=1,2,3,4, precisamos das seguintes derivadas parciais do resíduo ri(c):=yic1ec2xi:

c1ri(c)=ec2xi, (6.41)
c2ri(c)=c1xiec2xi, (6.42)
2c12ri(c)=0, (6.43)
2c1c2ri(c)=2c2c1ri(c)=xiec2xi, (6.44)
2c22ri(c)=c1xi2ec2xi. (6.45)
Refer to caption
Figura 6.4: Esboço da curva ajustada no Exemplo 6.2.1.

Com isso e tomando c(1)=(1.4,1.8) (motivado do Exemplo LABEL:ex:mq_nlin0), computamos as iterações de Newton (6.37)-(6.38). Iterando até a precisão de TOL=104, obtemos a solução c1=1.471 e c2=1.6938. Na Figura 6.4 vemos uma comparação entre a curva aqui ajustada () e aquela obtida no Exemplo LABEL:ex:mq_nlin0 ().

Observamos que a solução obtida no exemplo anterior (Exemplo 6.2.1) difere da previamente encontrada no Exemplo LABEL:ex:mq_nlin0. Naquele exemplo, os parâmetros obtidos nos fornecem E=6.8e2, enquanto que a solução do exemplo anterior fornece E=6.1e3. Isto é esperado, pois naquele exemplo resolvemos um problema aproximado, enquanto no exemplo anterior resolvemos o problema por si.

O emprego do método de Newton para o problema de mínimos quadrados tem a vantagem da taxa de convergência quadrática, entretanto requer a computação das derivadas parciais de segunda ordem do resíduo. Na sequência discutimos alternativas comumente empregadas.

6.2.1 Método de Gauss-Newton

Em revisão

O método de Gauss-Newton é uma técnica iterativa que aproxima o problema não linear de mínimos quadrados (6.32) por uma sequência de problemas lineares. Para seu desenvolvimento, começamos de uma aproximação inicial c(1)=(c1(1),c2(1),,cm(1)) dos parâmetros que queremos ajustar. Também, assumindo que a n-ésima iterada c(k) é conhecida, faremos uso da aproximação de primeira ordem de f(x,c) por polinômio de Taylor, i.e.

f(x;c(k+1))f(x;c(k))+cf(x;c(k))(c(k+1)c(k)), (6.46)

onde

cf(x;c)=[c1f(x;c)c2×f(x;c)×cmf(x;c)]. (6.47)

O método consiste em obter a solução do problema não linear (6.32) pelo limite dos seguintes problemas lineares de mínimos quadrados

minδ(k) [E~:=i=1n(yif(xi,c(k))cf(xi;c(k))δ(k))2] (6.48)
c(k+1)=c(k)+δ(k). (6.49)

Agora, usando a notação de resíduo r(c)=yf(x;c), observamos que (6.55) consiste no problema linear de mínimos quadrados

minδ(k)r(c(k))+JR(c(k))δ(k)22, (6.50)

o qual é equivalente a resolver as equações normais

JRT(c(n))JR(c(n))δ(n)=JRT(c)r(c). (6.51)

Com isso, dada uma aproximação inicial c(1), a iteração do método de Gauss-Newton consiste em

JRT(c(k))JR(c(k))δ(k)=JRT(c)r(c) (6.52)
c(k+1)=c(k)+δ(k). (6.53)
Exemplo 6.2.2.

A aplicação da iteração de Gauss-Newton ao problema de mínimos quadrados discutido no Exemplo 6.2.1 nos fornece a mesma solução obtida naquele exemplo (preservadas a aproximação inicial e a tolerância de precisão).

O método de Gauss-Newton pode ser lentamente convergente para problemas muito não lineares ou com resíduos grandes. Nesse caso, métodos de Gauss-Newton com amortecimento são alternativas robustas [1, 5]. Na sequência, introduziremos um destes métodos, conhecido como método de Levenberg-Marquardt.

6.2.2 Método de Levenberg-Marquardt

Em revisão

O método de Levenberg-Marquardt é uma variação do método de Gauss-Newton no qual a direção de busca δ(n) é obtida da solução do seguinte problema regularizado

minδ(k){r(c(k))+JR(c(k))δ(k)22+μ(k)δ(k)22} (6.54)

ou, equivalentemente,

minδ(k)[r(c(k))0]+[JR(c(k))μ(k)I]δ(k)22 (6.55)

A taxa de convergência das iterações de Levenberg-Marquardt é sensível a escolha do parâmetro μ(k)0. Aqui, faremos esta escolha por tentativa e erro. O leitor pode aprofundar-se mais sobre esta questão na literatura especializada (veja, por exemplo, [1, 5]).

Observação 6.2.1.

Quando μ(k)0 para todo n, o método de Levenberg-Marquardt é equivalente ao método de Gauss-Newton.

Exemplo 6.2.3.

Consideremos o problema de mínimos quadrados discutido no Exemplo 6.2.1. O método de Gauss-Newton falha para este problema se escolhermos, por exemplo, c(1)=(0,0). Isto ocorre pois, para esta escolha de c(1), a jacobiana J(c(1)) não tem posto completo. Entretanto, o método de Levenberg-Marquardt com μ(k)=0.1 é convergente, mesmo para esta escolha de c(1).

6.2.3 Exercícios

Em revisão

E. 6.2.1.

Use o método de Gauss-Newton para ajustar, no sentido de mínimos quadrados e com precisão de 104, a curva y=c1ec2(xc3)2 aos pontos

i 1 2 3 4 5 6
xi 0.5 0.5 1.3 2.1 2.7 3.1
yi 0.1 1.2 2.7 0.9 0.2 0.1

Use as condições iniciais:

  1. a)

    c1=2.1, c2=1 e c3=1.3.

  2. b)

    c1=1, c2=1 e c3=1.

Resposta.

a) c1=2.69971e+0, c2=1.44723e+0, c3=1.24333e+0; b) divergente.

E. 6.2.2.

Resolva o exercício anterior (Exercício 6.2.1) usando o método de Levenberg-Marquardt com amortecimento constante μ=0.2.

Resposta.

a) c1=2.69971e+0, c2=1.44723e+0, c3=1.24333e+0; b) c1=2.69971e+0, c2=1.44723e+0, c3=1.24333e+0


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!