| | | |

Matemática numérica I

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

6.2 Problemas não lineares

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), m≥1, a um dado conjunto de n≥m pontos {(xi,yi)}i=1n. Mais especificamente, buscamos resolver o seguinte problema de minimização

min{c1,c2,…,cm}⁡[E:=∑i=1n(yi−f⁢(xi;c))2]. (6.32)

Aqui, denotaremos por r⁢(c):=(r1⁢(𝒄),r2⁢(𝒄),…,rn⁢(𝒄)) o vetor dos resíduos ri⁢(𝒄):=yi−f⁢(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

∂E∂cj=2⁢∑i=1nri⁢(𝒄)⁢∂∂cj⁢ri⁢(𝒄)=0 (6.34)

ou, equivalentemente, da equação

∇E=0⇔JRT⁢(𝒄)⁢r⁢(𝒄)=0, (6.35)

onde

JR⁢(𝒄):=[∂r1∂c1∂r1∂c2⋯∂r1∂cm∂r2∂c1∂r2∂c2⋯∂r2∂cm⋮⋮⋮⋮∂rn∂c1∂rn∂c2⋯∂rn∂cm] (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{∂ri∂cq⁢∂ri∂cp+ri⁢∂2ri∂cq⁢∂cp}. (6.39)
Exemplo 6.2.1.

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

f⁢(x;c)=c1⁢ec2⁢x (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):=yi−c1⁢ec2⁢xi:

∂∂c1⁢ri⁢(c)=−ec2⁢xi, (6.41)
∂∂c2⁢ri⁢(c)=−c1⁢xi⁢ec2⁢xi, (6.42)
∂2∂c12⁢ri⁢(c)=0, (6.43)
∂2∂c1⁢∂c2⁢ri⁢(c)=∂2∂c2⁢∂c1⁢ri⁢(c)=−xi⁢ec2⁢xi, (6.44)
∂2∂c22⁢ri⁢(c)=−c1⁢xi2⁢ec2⁢xi. (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 T⁢O⁢L=10−4, 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.8⁢e−2, enquanto que a solução do exemplo anterior fornece E=6.1⁢e−3. 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)=[∂∂c1⁢f⁢(x;c)⁢∂∂c2⁢f⁢(x;c)⁢⋯⁢∂∂cm⁢f⁢(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(yi−f⁢(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)=y−f⁢(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 10−4, a curva y=c1⁢ec2⁢(x−c3)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.


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

E. 6.2.2.

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


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


Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
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.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| | | |