método de euler e método pseudoespectral usando pontos

Transcrição

método de euler e método pseudoespectral usando pontos
KARLA CRISTIANE ARSIE
MÉTODO DE EULER E MÉTODO PSEUDOESPECTRAL
USANDO PONTOS LEGENDRE GAUSS RADAU PARA
UMA CLASSE DE PROBLEMAS DE CONTROLE ÓTIMO
Curitiba
2013
KARLA CRISTIANE ARSIE
MÉTODO DE EULER E MÉTODO PSEUDOESPECTRAL
USANDO PONTOS LEGENDRE GAUSS RADAU PARA
UMA CLASSE DE PROBLEMAS DE CONTROLE ÓTIMO
Dissertação apresentada ao Programa de PósGraduação em Matemática Aplicada da Universidade Federal do Paraná, como requisito
parcial à obtenção do grau de Mestre em Matemática Aplicada.
Orientadora: Dr.a Elizabeth Wegner Karas.
Coorientador: Dr. Miguel A. Dumett Canales.
Curitiba
2013
iii
iv
v
Agradecimentos
Agradeço primeiramente à minha famı́lia, pelo apoio,
compreensão, ajuda e por todo carinho ao longo deste percurso.
Amo vocês.
Ao meu noivo Rodrigo, que esteve sempre ao meu lado, que me
apoiou, incentivou, ajudou e participou comigo dos momentos de
angústias e alegrias. Neoqeav.
Aos meus amigos, especialmente Izabela, Janaina, Keilla,
Leonardo e Priscila, pela ajuda e pelo carinho.
Agradeço aos meus orientadores Elizabeth e Miguel, pelas
orientações, conversas, por estarem sempre dispostos a me ajudar.
Obrigada pelo esforço, tempo dedicado e por sempre acreditarem
no meu trabalho.
Aos membros da banca, professores Dr. Antonio Carlos Gardel
Leitão, Dr. Saulo Pomponet Oliveira e Dr.a Ailin Ruiz Zarate
Fabregas obrigada por aceitarem fazer parte deste momento e dar
suas contribuições valiosas.
Ao Programa de Pós-Graduação em Matemática Aplicada da
UFPR pela oportunidade e formação de qualidade propiciada.
A CAPES pelo apoio financeiro.
E finalmente, mas não menos importante, a Deus pela capacitação
concedida, pela força espiritual e por seguir ao meu lado.
vi
“ A mente que se abre a uma nova ideia jamais
voltará ao seu tamanho original.”
Albert Einstein
vii
Resumo
O objetivo deste trabalho é discutir o método pseudoespectral com pontos
de colocação de Legendre-Gauss-Radau (LGR) apresentado em [22], para
determinar soluções numéricas de algumas classes de problemas de controle ótimo. Nesta dissertação revisa-se [22], e se deriva a discretização do
método pseudoespectral LGR, de problemas de controle ótimo (sem restrições nas variáveis de estado e de controle) utilizando notação tensorial.
Adicionalmente se derivam as condições de otimalidade de Karush-KuhnTucker (KKT) associadas ao problema.
Para avaliar a precisão do método em problemas de controle ótimo especı́ficos, é necessário conhecer a solução exata dos problemas escolhidos.
Procurando replicar os resultados em [22], trabalhou-se num primeiro exemplo com um Problema de Bolza (tipo LQR) sem restrições nas variáveis de
estado e de controle. Se apresenta uma derivação detalhada da solução exata
deste problema quadrático, utilizando o Princı́pio do Máximo de Pontryagin. O problema de minimização resultante foi resolvido através da rotina
quadprog do MATLAB. A precisão do método pseudoespectral LGR é comparada, com bons resultados, com o método de Euler (aplicado ao problema
de otimização quadrático produto da discretização por Euler do problema
de Bolza tipo LQR original).
Para evidenciar que o método pseudoespectral LGR de discretização pode
ser aplicado a problemas de controle ótimo com restrições nas variáveis de
controle e de estado (o que não é abordado em [22]), dois exemplos adicionais, apresentados em [31], são discutidos nesta dissertação. No segundo
exemplo a função custo é não quadrática e a rotina fmincon do MATLAB é
encarregada de fazer o trabalho de otimização a partir das equações discretizadas pelo método pseudoespectral LGR. No terceiro exemplo, o problema
de otimizção foi resolvido pela rotina quadprog. Existem poucos problemas
nao-lineares de controle ótimo (com restrições) cujas soluções exatas são conhecidas. Usualmente argumentos de convexidade e outros, são necessários
para encontrar as soluções exatas.
Palavras-chave: Controle ótimo; problema tipo Bolza; método pseudoespectral; pontos de colocação LGR; método de Euler.
viii
Abstract
The goal of this work is to present the details of the Legendre-Gauss-Radau
(LGR) pseudoespectral numerical method. This method was published in
[22] and it is utilized to find numerical solutions of certain classes of optimal
control problem. In this dissertation, we review [22], and derive the discretization of the LGR pseudoespectral method of optimal control problems
(without restrictions in the state and control variables) using tensorial notation. In adition, the associated Karush-Kuhn-Tucker (KKT) optimality
conditions are derived. To assess the accuracy of the LGR method in specific
optimal control problems, it is necessary to know the exact solution of the
selected problems. Aiming to replicate the results in [22], we worked initially
a Bolza problem (LQR type) without restrictions in the state and control
variables. The process of finding the exact solution of this quadratic problem is derived in detail, utilizing the Pontryagin Maximum Principle. The
LGR pseudoespectral discretization technique was successful when applied
to the Bolza problem without restrictions. The corresponding MATLAB
code is included in the Appendix, and utilizes mainly the quadprog routine.
The accuracy of the LGR pseudoespectral method is compared successfully
against Euler method (applied to the quadratic optimization problem which
is obtained from the forward Euler discretization of the LQR type original
Bolza problem). To point out that the LGR pseudoespectral discretization
method could be applied to optimal control problems with restrictions in the
state and control variables (something not attempted in [22]), and outside of
the Bolza problem class, two additional examples from [31] are presented in
this dissertation. There are few non-linear optimal control problems (with
restrictions) whose exact solutions are known. Usually, convexity arguments
and others, are necessary to find the exact solutions.
Palavras-chave: Optimal control; Bolza problem; pseudoespectral method;
LGR collocation points; Euler method.
ix
Sumário
Introdução
1
1 O problema de Controle Ótimo
1.1 Princı́pio do Máximo de Pontryagin . . . . . . . . . . . . . . . .
1.2 Método Pseudoespectral usando Pontos Legendre Gauss Radau
1.2.1 Fundamentação . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Discretização do problema . . . . . . . . . . . . . . . . .
1.2.3 Condições de Karush-Kuhn-Tucker . . . . . . . . . . . .
1.2.4 Sistema Adjunto Transformado . . . . . . . . . . . . . .
1.2.5 Formulação Integral . . . . . . . . . . . . . . . . . . . . .
1.3 Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Outros métodos . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1 Comparação com o método de Kameswaran e Biegler . .
1.4.2 Comparação com o método de Fahroo e Ross . . . . . .
1.5 Problema de Bolza . . . . . . . . . . . . . . . . . . . . . . . . .
2 Exemplos
2.1 Exemplo 1 . . . . . . . . . . . .
2.1.1 Solução Exata . . . . . .
2.1.2 Solução aproximada pelo
2.1.3 Solução aproximada pelo
2.2 Exemplo 2 . . . . . . . . . . . .
2.2.1 Solução aproximada pelo
2.3 Exemplo 3 . . . . . . . . . . . .
2.3.1 Solução aproximada pelo
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
método pseudoespectral
método de Euler . . . .
. . . . . . . . . . . . . .
método pseudoespectral
. . . . . . . . . . . . . .
método pseudoespectral
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
5
6
7
10
12
15
18
20
21
21
22
23
.
.
.
.
.
.
.
.
24
24
25
28
30
35
35
37
38
Conclusão
41
Apêndices
42
A Revisão de Conceitos
42
A.1 Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
A.1.1 Produto direto de Matrizes . . . . . . . . . . . . . . . . . . . . . . . 42
x
A.1.2 Exponencial de matriz . . . . . . .
A.2 Solução de um sistema de EDOs . . . . . .
A.3 Tópicos de otimização contı́nua . . . . . .
A.3.1 Método de gradientes conjugados .
A.3.2 O Teorema de Karush-Kuhn-Tucker
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
45
46
47
49
B Códigos em Matlab
52
Referências Bibliográficas
67
xi
Introdução
O objetivo da teoria de controle ótimo é determinar o controle, que fará com que
um sistema satisfaça um conjunto de restrições fı́sicas e ao mesmo tempo minimize algum
critério de desempenho. Normalmente, os problemas de controle ótimo têm restrições
nas variáveis de estado e de controle. As soluções para problemas de controle ótimo
(sem restrições) podem ser encontradas, por exemplo, através da aplicação do cálculo
variacional ([11, 20, 31]) e da aplicação do Princı́pio do Máximo de Prontryagin ([11, 18]).
Em [11] se faz uma analogia entre problemas de controle ótimo e os problemas do cálculo
de variações, mostra-se também uma estratégia de como o Princı́pio do Máximo pode, em
alguns casos, ser utilizado para efetivamente determinar uma solução de um determinado
problema de controle ótimo. Porém, em [31, Cap. 10], se menciona que em geral não é
uma boa ideia trabalhar com a estratégia antes mencionada, pois ela se baseia em definir
U = Y 0 e trabalhar com a variável estado estendida W = (Y, U ), nos problemas de
cálculo de variações para tentar encontrar as soluções de problemas de controle ótimo. A
dificuldade principal está no fato que Y 0 é conhecida explicitamente, mas U 0 não é. Várias
técnicas foram desenvolvidas para resolver os problemas de controle ótimo. Estes métodos
numéricos são divididos em duas categorias: métodos indiretos e métodos diretos [3, 17].
Os métodos indiretos consistem em converter o problema de otimização em um
sistema de equações algébrico-diferenciais de valor no contorno a partir da aplicação do
Princı́pio do Máximo de Pontryagin. A principal vantagem desse método é a alta precisão e
garantias de soluções que satisfazem as condições necessárias de otimalidade. No entanto,
há uma desvantagem significativa. As condições necessárias de otimalidade devem ser
encontradas analiticamente, e para a maioria dos problemas esta busca não é trivial.
Os métodos diretos utilizam a parametrização na variável de controle ou a parametrização nas variáveis de estado seguida da solução do problema de programação nãolinear resultante. Nestes métodos polinômios podem ser usados para aproximar a equações
diferenciais em pontos de colocação ([4, 24, 28]). Estas técnicas baseiam-se em métodos
pseudoespectrais que consistem em encontrar soluções numéricas de equações diferenciais.
Métodos pseudoespectrais são uma classe de métodos de colocação direta, onde o problema de controle ótimo é transcrito para um problema de programação não-linear através
de uma parametrização do estado e do controle utilizando polinômios de Legendre ou
Chebyshev em conjunto com pontos de colocação. Tal problema de programação nãolinear pode então ser resolvido com uso de algoritmos de Otimização para obter soluções
Introdução
2
aproximadas localmente ótimas.
Neste trabalho aborda-se um método pseudoespectral que consiste na parametrização do estado e do controle utilizando polinômios de Legendre em conjunto com
a discretização utilizando pontos de colocação LGR. O método fornece, também, uma
maneira precisa de encontrar as condições de otimalidade de KKT associadas ao problema. Mostra-se que o método apresentado está relacionado a método de integração
global implı́cita. Isto é feito provando que a inversa da matriz de diferenciação obtida
no método pseudoespectral coincide com a matriz associada a um método de integração
global implı́cito [16].
Este trabalho está organizado da seguinte forma. No Capı́tulo 1, se apresenta brevemente o que é um problema de controle ótimo (sem restrições) e se enuncia o resultado
fundamental da teoria de controle ótimo, o teorema do Princı́pio do Máximo de Pontryagin. Em seguida, se apresenta o método pseudoespectral LGR, seguindo a sequência
estabelecida em [22], mas com demonstrações diferenciadas das encontradas nessa referência. Adicionalmente se menciona o método de Euler e se apresenta o problema de
Bolza.
O Capı́tulo 2 inicia especificando o tipo LQR do problema de Bolza e encontrando
a solução exata desse problema utilizando o Princı́pio do Máximo de Pontryagin. Logo, a
discretização pseudoespectral LGR é utilizada para encontrar uma solução numérica do
problema de Bolza LQR. A precisão do método é comparada com a precisão do método
de Euler aplicado ao mesmo problema de Bolza sem restrições. Os códigos MATLAB
necessários para construir os pontos de colocação LGR e para calcular os pesos de quadratura da discretização pseudoespectral LGR, assim como também a chamada da rotina
QUADPROG, para encontrar explicitamente, as soluções numéricas do estado e do controle do problema de Bolza, são apresentados no Apêndice da dissertação.
Adicionalmente, são incluı́dos dois problemas de controle ótimo com restrições
não-lineares, para testar a discretização pseudoespectral LGR (isto não é feito em [22])
Ambos os problemas, com suas respectivas soluções exatas, são apresentados em [31, Cap.
10]. O método pseudoespectral LGR é bem sucedido em encontrar uma solução numérica.
Os códigos em MATLAB correspondentes são dados no Apêndice da dissertação e estarão
disponı́veis no site da pós-graduação em Matemática Aplicada.
Finalmente, nos Apêndices apresentam-se alguns resultados básicos da teoria
abordada no trabalho, bem como os códigos implementados em Matlab para resolver
numericamente os exemplos discutidos.
Introdução
3
Notação.
xT
k.k∞
k.k
ẋ, x0
ẋj (τ )
hx, yi
ej
AT
Ak
diag(α1 , . . . , αn )
AB
∇f
∇φ
C(I)
ˆ
C(I)
C 1 (I)
Cˆ1 (I)
transposto do vetor x
norma infinito
norma 2
derivada de x
derivada da j-ésima componente de x em relação a τ
produto interno de x por y
vetor canônico com 1 na componente j e as demais componentes nulas
transposta da matriz A
k-ésima linha da matriz A
matriz diagonal quadrada cujos elementos da diagonal são α1 , . . . , αn
multiplicação da matriz A pela matriz B
gradiente da função f : IRn → IR. A mesma notação será adotada
para indicar a matriz m × n cuja i-ésima linha é ∇fi , quando
f : IRn → IRm
.
matriz m × n cujo elemento (i, j) é (∇φ(X))ij = ∂φ(X)
∂Xij
Aqui φ : IRm×n → IR e X ∈ IRm×n
Espaço das funções contı́nuas em I.
Espaço das funções contı́nuas por partes do intervalo I.
Espaço das funções continuamente diferenciáveis em I.
Espaço das funções continuamente diferenciáveis por partes no intervalo I.
Capı́tulo 1
O problema de Controle Ótimo
Um problema de controle ótimo consiste em minimizar um certo funcional que
depende de dois tipos de variáveis: variáveis de estado ou próprias (x ∈ IRn ) e variáveis
de controle (u ∈ IRm ). As duas variáveis estão parametrizadas por uma variável real
independente t, usualmente associada ao tempo, isto é, x = x(t), u = u(t). Formalmente
x ∈ Cˆ1 é uma função x : IR → IRn diferenciável por pedaços e u ∈ Cˆ é uma função
u : IR → IRm contı́nua por pedaços em cada intervalo de tempo. A variável de estado x(t)
obedece a uma dinâmica dada pela seguinte equação diferencial, denominada equação de
estado
ẋ(t) = f (x(t), u(t)),
(1.1)
onde f : IRn×m → IRn é uma função contı́nua. A variável de estado pode estar ainda
sujeita a condições x(t0 ) = x0 e x(tf ) = xf . A variável de controle u(t) é uma função que
pertence a um certo espaço de funções U, chamado o conjunto de controles admissı́veis.
Por exemplo, em [18] considera-se U = {u : [0, ∞) −→ IRm | u(.) é mensurável}.
No caso que (1.1) não depende de u, então (1.1) vira uma equação diferencial. É
conhecido que sob a condição de continuidade de f , o teorema de Peano [30] garante a
existência de soluções de (1.1). Adicionalmente, se a função f é localmente Lipschitziana
em x, o teorema de Picard[30] garante a existência de uma solução única de (1.1). Quando
a função u(t) é constante, em [30, Cap.2] encontram-se condições similares às de Peano e
Picard, para garantir existência e unicidade de soluções de (1.1).
Usualmente, o funcional a minimizar em um problema de controle ótimo é composto de dois termos: o primeiro deles depende do estado final x(tf ) e o segundo é da
forma
Z t
f
r(x(t), u(t))dt.
t0
Adicionalmente, são impostas restrições por desigualdade nas variáveis de estado
e de controle. Por exemplo, x(t) ≥ 0 e |u(t)| ≤ 1, para t0 ≤ t ≤ tf .
Condições gerais para existência e unicidade de um problema de controle ótimo
podem ser encontradas em [31]. Em geral, estas condições são do tipo f ∈ C 1 , r ∈ C 1 , x ∈
4
5
C 1 , u ∈ C 0 por partes. Neste trabalho assumimos a existência de uma única solução. Nos
exemplos a serem considerados no próximo capı́tulo, a solução exata é conhecida.
Em geral, encontrar analiticamente uma solução exata de um problema de controle ótimo com restrições é muito difı́cil e métodos numéricos são necessários. No entanto,
quando o problema de controle ótimo não tem restrições, o Princı́pio de Máximo de
Pontryagin é uma ferramenta muito útil para procurar soluções exatas.
Como em [22], considera-se o caso de problema de controle ótimo sem restrições
para apresentar a correspondente discretização pseudoespectral LGR.
Pode-se formular o problema de controle ótimo descrito acima, segundo [11], por
Rt
minimizar t0f r(x(t), u(t))dt
sujeito a u ∈ U
ẋ(t) = f (x(t), u(t))
x(t0 ) = x0
x(tf ) = xf .
(1.2)
No problema acima, os instantes de tempo inicial e final são dados (problema de
tempo fixo), porém, há problemas em que o tempo final é uma das incógnitas no problema
de controle ótimo (problemas de tempo livre) ou as vezes o tempo tf é dado mas xf (o
estado final) é desconhecido (problema de tempo fixo com estado final variável) [18]. Este
trabalho restringe-se nos problemas de tempo fixo. Para mais detalhes consultar [31] e
[11, Cap.10].
Neste capı́tulo será apresentado um dos principais resultados na teoria de controle ótimo, o Princı́pio do Máximo de Pontryagin, que neste trabalho será utilizado
para obter a solução exata de um problema de controle ótimo. Em seguida, para se
obter a solução aproximada deste problema, apresenta-se um método pseudoespectral,
que consiste na parametrização do estado e do controle utilizando polinômios de Legendre
em conjunto com a discretização com pontos de colocação LGR - Legendre Gauss Radau.
São discutidas as condições de otimalidade de Karush-Kuhn-Tucker (KKT) associadas ao
problema discretizado e mostra-se que este método pseudoespectral pode ser visto como
um método de integração global implı́cito. Por fim, apresenta-se o método de Euler, um
método alternativo, para obter uma solução aproximada.
1.1
Princı́pio do Máximo de Pontryagin
O princı́pio de Pontryagin estabelece um conjunto de condições para que uma
curva seja solução de um problema de controle ótimo. Esse princı́pio se expressa em
termos da função H : IRn × IRn × IRm → IR definida por
H(x, p, u) = hf (x, u), pi + r(x, u),
6
onde f : IRn × IRm → IRn , r : IRn × IRm → IR (as mesmas funções dadas no problema do
controle ótimo) e p ∈ IRn . Essa função é conhecida como Hamiltoniano de Pontryagin.
O teorema abaixo, que é baseado em [11, Teorema 178] e [18, Teorema 4.3], é
apresentado de uma forma conveniente para que, na obtenção da solução exata de um
problema de controle ótimo, se possa utilizá-lo diretamente.
Teorema 1.1 - Princı́pio do Máximo de Pontryagin Considere um sistema de controle ótimo, sendo u = ω(t) o controle e x = γ(t) a trajetória correspondente. Se
(γ(t), ω(t)) é uma solução ótima então existe uma função µ : [0, tf ] → IRn tal que, para
todo t ∈ [0, tf ] vale que:
• A curva p = µ(t) satisfaz
µ̇i = −
∂H
(γ(t), µ(t), ω(t)),
∂xi
• A trajetória x = γ(t) satisfaz
γ̇i = −
∂H
(γ(t), µ(t), ω(t)),
∂pi
• O controle u = ω(t) maximiza o Hamiltoniano, ou seja,
max H(γ(t), µ(t), u) = H(γ(t), µ(t), ω(t)).
u∈U
Demonstração. [11, Apêndice B].
Utiliza-se o princı́pio do máximo para determinar a solução de um problema.
1.2
Método Pseudoespectral usando Pontos Legendre Gauss Radau
Nesta seção estuda-se a formulação do método pseudoespectral usando pontos
LGR - Legendre Gauss Radau, proposto em [22] para resolver o problema de controle
ótimo (1.2). Inicialmente o problema é discretizado, tendo como referência [8]. Em
seguida, as condições de KKT são estabelecidas para o problema discretizado, seguindo
uma abordagem diferente, mas equivalente, à apresentada em [22]. Enquanto em [22] fazse o uso do Lagrangeano, aqui opta-se pela forma discutida no Apêndice A.3.2, ou seja,
encontram-se as condições de otimalidade relacionando o oposto do gradiente da função
objetivo com o gradiente das restrições do problema e da condição inicial com relação a
cada uma de suas variáveis. Cabe ressaltar que ambas as abordagens são equivalentes.
Por fim, mostra-se que a restrição do problema tem uma formulação equivalente através
7
de integrais, mostrando que este método pseudoespectral pode ser visto como um método
de integral global implı́cito.
1.2.1
Fundamentação
Pontos de colocação LGR
Um dos objetivos deste trabalho é discretizar um problema para que se possa
encontrar sua solução aproximada através de um método de colocação, que consiste em
encontrar a solução numérica de equações diferenciais ordinárias, equações diferenciais
parciais e equações integrais. A ideia é escolher um espaço de dimensão finita de soluções
canditadas, que são obtidas, geralmente, através de polinômios aplicados em uma quantidade de pontos no domı́nio, chamados de pontos de colocação. A discretização proposta
por [22] utiliza pontos de colocação Legendre-Gauss-Radau (LGR).
Além do conjunto de pontos de colocação LGR, outros dois conjuntos são apresentados em [22] e muito utilizados: Lengendre-Gauss(LG) e Legendre-Gauss-Lobatto(LGL).
Esses três conjuntos de pontos são obtidos a partir de raı́zes de um polinômio de Legendre
e\ou combinações lineares desses polinômios e suas derivadas.
O polinômio de Legendre de grau n, Pn , é dado por:
[n/2]
Pn (x) =
X
k=0
(−1)k
(2n − 2k)!
xn−2k ,
− k)!(n − 2k)!
2n k!(n
(1.3)
onde
 n

se n é par
2
[n/2] =
 n−1
se n é ı́mpar.
2
Há algumas relações entre os polinômios de Legendre Pn com valores de n consecutivos e também entre os Pn e suas derivadas. Estas relações de recorrência permitem
obter um novo Pn ou relacionar derivadas, a partir de outros. Apresentam-se a seguir
algumas destas relações de recorrência. Os detalhes podem ser consultados em [6]. A
primeira relação, bastante utilizada, permite obter um polinômio a partir de outros dois
de menor ordem,
nPn (u) = (2n − 1)uPn−1 (u) − (n − 1)Pn−2 (u).
(1.4)
A próxima, relaciona o polinômio e as derivadas de polinômios consecutivos
0
uPn0 (u) − Pn−1
= nPn (u).
(1.5)
Por fim, tem-se a relação de polinômio com a derivada de outros dois
0
0
(2n + 1)Pn (u) = Pn+1
(u) − Pn−1
(u).
(1.6)
8
Por (1.3), P0 (u) = 1 e P1 (u) = u. A relação (1.4) permite a obtenção rápida de
P2 (u) = 23 u2 − 21 , a seguir P3 (u) = 25 u3 − 32 u, e assim por diante. Geralmente, esse é o
processo usado em computação, para se evitar os fatoriais de ordem alta, sendo que estes
têm grande custo computacional.
A figura abaixo mostra os polinômios de Legendre de graus 0, 1, 2 e 3.
4
3
2
Solução
1
0
−1
−2
P0(u)
P1(u)
−3
P2(u)
P3(u)
−4
−1.5
−1
−0.5
0
t
0.5
1
1.5
Figura 1.1: Polinômios de Legendre Pn (u).
O conjunto de N pontos de colocação Legendre-Gauss-Radau (LGR), LengendreGauss(LG) e Legendre-Gauss-Lobatto(LGL) são definidos no domı́nio [−1, 1] como:
LG :
raı́zes de PN ;
LGR : raı́zes de PN −1 + PN ;
LGL : raı́zes de ṖN juntamente com os pontos − 1 e 1,
onde ṖN denota a derivada do polinômio de Legendre PN . Note que os pontos de LG
não incluem nenhum dos extremos do intervalo [−1, 1], os pontos LGR incluem um dos
seus extremos, e os pontos LGL incluem ambas as extremidades do intervalo. Outra diferença é que os pontos de LGR, ao contrário dos outros dois conjuntos, são relativamente
assimétricos em relação à origem. Neste trabalho concentra-se a atenção nos pontos LGR.
Forma de Lagrange do Polinômio de Interpolação
Interpolar uma função f consiste em aproximar essa função por uma outra função
g, escolhida entre uma classe de funções definida a priori e que satisfaça algumas propriedades. A necessidade de se fazer esta aproximação surge em várias situações, como por
exemplo, quando são conhecidos somente os valores numéricos da função f para um conjunto de pontos e é necessário calcular o valor da função em um ponto que não se saiba
seu valor ou ainda quando a função f tem uma expressão tal que operações como a diferenciação e a integração são difı́ceis, ou impossı́veis, de serem realizadas. Considera-se
9
aqui o caso de interpolação polinomial [27] ou seja em que a função é aproximada por um
polinômio.
Dados n pontos (x1 , f (x1 )), ..., (xn , f (xn )), o objetivo é aproximar f por um polinômio pn−1 , de grau menor ou igual a n − 1, tal que, para k = 1, 2, ..., n:
f (xk ) = pn−1 (xk ).
Teorema 1.2 Existe um único polinômio pn−1 , de grau menor ou igual a n − 1, tal que,
para k = 1, 2, ..., n
pn−1 (xk ) = f (xk ),
desde que xk 6= xj , j 6= k.
Demonstração. [27, Teo.8.1].
Considere que os n pontos x1 , . . . , xn pertencem a um intervalo (a, b). Considere f
contı́nua e sendo n vezes diferenciável nos n pontos no intervalo (a, b). Denote yi = f (xi )
para i = 1, . . . , n. Seja pn−1 o polinômio de grau menor ou igual a n − 1 que interpola
f em x1 , . . . , xn . Pode-se representar pn−1 na forma pn−1 (x) = y1 `1 (x) + ... + yn `n (x),
onde os polinômios `k são de grau n − 1. Para cada i, a condição pn−1 (xi ) = yi deve ser
satisfeita, ou seja
pn−1 (xi ) = y1 `1 (xi ) + ... + yn `n (xi ) = yi .
A forma mais simples de se satisfazer esta condição é impor
(
0 se k =
6 i
1 se k = i,
`k (xi ) =
e assim define-se `k (x) por
`k (x) =
n
Y
x − xj
xk − xj
j=1
j6=k
que satisfaz a condição acima. Como o numerador de `k (x) é um produto de n − 1 fatores,
então `k é um polinômio de grau n − 1 e além disso, para x = xi com i = 1, . . . , n tem-se
pn−1 (xi ) =
n
X
yk `k (xi ) = yi `i (xi ) = yi .
k=1
Então, a forma de Lagrange para o polinômio interpolador é
pn−1 (x) =
n
X
k=1
yk `k (x).
(1.7)
10
n
Y
x − xj
onde yk = f (xk ) e `k (x) =
.
xk − xj
j=1
j6=k
1.2.2
Discretização do problema
O objetivo aqui é discretizar o problema de controle ótimo (1.2), e para isto
utilizam-se os pontos de colocação LGR, que são pontos definidos no domı́nio [−1, 1],
como visto na Seção 1.2.1. Note que o problema (1.2) está definido em um intervalo [t0 , tf ],
o qual pode ser facilmente transformado no intervalo [−1, 1], através da transformação
afim
t0 + tf
tf − t0
τ+
,
(1.8)
t=
2
2
para t ∈ [t0 , tf ] e τ ∈ [−1, 1]. Derivando a igualdade (1.8) tem-se que
tf − t0
dt
=
,
dτ
2
e pela regra da cadeia,
dx
dx dτ
2 dx
=
=
.
dt
dτ dt
tf − t0 dτ
(1.9)
De (1.8) e (1.9), o problema (1.2) pode ser reescrito em função da nova variável da seguinte
forma
R1
minimizar −1 r(x(τ ), u(τ ))dτ
dx
tf − t0
sujeito a
=
f (x(τ ), u(τ ))
(1.10)
dτ
2
x(−1) = x0
x(1) = xf .
Discretização da condição diferencial
O intervalo [−1, 1] é discretizado considerando N pontos de colocação LGR,
τ1 , τ2 , · · · , τN ∈ [−1, 1], com τ1 = −1 e τN < 1, vistos na Seção 1.2.1.
Utilizando (1.7), a j-ésima componente de estado é aproximada por uma soma
da forma:
N
X
xj (τ ) ≈
xij `i (τ )
(1.11)
i=1
N
Y
τ − τm
, para i = 1, · · · , N, são polinômios de Lagrange. Derivando a
onde `i (τ ) =
τi − τm
m=1
j6=i
aproximação em relação a τ tem-se que
N
X d`i
dxj
(τ ) ≈
xij (τ ).
dτ
dτ
i=1
(1.12)
11
Avaliando (1.12) em τk e denotando `˙i (τk ) = Dki , tem-se
ẋj (τk ) ≈
N
X
Dki xij .
(1.13)
i=1
A matriz DN ×N = [Dki ] cujo elemento (k, i) é dado por
Dki = `˙i (τk )
(1.14)
é chamada de Matriz de Diferenciação.
Agora seja XN ×n a matriz formada pelos coeficientes xij de (1.11). Multiplicando
a matriz D por X, tem-se uma matriz [DX]N ×n . Por (1.13) o elemento (i, j) dessa matriz
pode ser visto como
[DX]ij ≈ ẋj (τi ).
(1.15)
Seja UN ×m = [uij ] uma matriz cujo elemento (i, j) denota a aproximação discreta
para a j-ésima componente de controle avaliada no i-ésimo ponto de colocação, ou seja,
uij ≈ uj (τi ).
A seguir um lema que permitirá relacionar a linha da matriz X com x(τ ).
Lema 1.3 Para todo i = 1, . . . , N , a i-ésima linha Xi da matriz X contém as componentes da aproximação discreta x(τi )T .
N
Y
τ − τm
tem-se que,
Demonstração. Lembrando que `i (τ ) =
τi − τm
m=1
j6=i
(
`i (τk ) =
0 se i 6= k
1 se i = k
e por (1.13) conclui-se que a j-ésima componente de x(τi )T é xij , que é exatamente a
j-ésima componente de Xi .
Considere agora a matriz
F (X, U )N ×n = [Fij (X, U )] = [fj (Xi , Ui )],
(1.16)
onde fj é a j-ésima componente da restrição do problema (1.10). Pelo Lema 1.3, (1.10) e
1.15 conclui-se que
tf − t0
DX =
F (X, U ).
(1.17)
2
Discretização da função custo
A função custo do problema (1.2) envolve uma integral. Recorre-se então às
técnicas de integração numérica. Nesta seção apresenta-se a regra da quadratura, que
pode ser vista com detalhes em [9, Cap.4].
12
A ideia básica da quadratura consiste em escrever uma aproximação da integral de
uma função, geralmente estabelecida como um somatório com pesos dos valores assumidos
pela função em pontos especı́ficos dentro do domı́nio de integração.
Uma regra de quadratura de N pontos é construı́da para produzir um resultado
exato para polinômios de grau 2N − 1 ou menor para uma escolha adequada dos pesos
wi para i = 1, ..., N associado a cada ponto. O domı́nio de integração de tal regra é
por convenção tomado como [−1, 1]. Sejam wi , com 1 ≤ i ≤ N , os pesos da quadratura
associados com os pontos LGR. Esses pesos têm a seguinte propriedade
Z
1
P(τ )dτ =
−1
N
X
wi P(τi )
(1.18)
i=1
para qualquer polinômio P de grau no máximo 2N − 2. Por [1], os pesos associados a
cada valor de P (τi ) são calculados por
Z
wi =
N 1 Y
−1
k=1
k6=i
τ − τk
τi − τk
dτ.
(1.19)
Assim, usando (1.17), o problema (1.10) é escrito na forma discretizada como
minimizar
N
X
wi r(Xi , Ui ))
i=1
sujeito a
DX =
tf − t0
F (X, U )
2
(1.20)
X 1 = x0
XN +1 = xf
onde XN +1 refere-se à variável de estado no ponto τN +1 = 1.
1.2.3
Condições de Karush-Kuhn-Tucker
Como em [22], considere o problema na forma
minimizar Φ(x(1))
sujeito a dx
= f (x(τ ), u(τ )
dτ
x(−1) = x0 ,
(1.21)
minimizar Φ(XN +1 )
sujeito a DX = F (X, U )
X 1 = x0 .
(1.22)
e em sua forma discretizada
13
Nesta seção são desenvolvidas as condições de KKT (ver Apêndice A.3.2) para o problema
(1.22) de uma maneira distinta de [22]. Considere Λ ∈ IRN ×n a matriz composta pelos
multiplicadores de Lagrange associados às restrições do problema (1.22) e seja o vetor
linha µ ∈ IRn composto pelos multiplicadores de Lagrange associados à condição inicial
X1 = x0 . Assim, tem-se
• Gradiente da função objetivo com relação a X.
∇X Φ(XN +1 ) = eN +1 ⊗ ∇Φ(XN +1 )T
(N +1).n×1
.
• Gradiente da função objetivo com relação a U
∇U Φ(XN +1 ) = 0.
• Produto do multiplicador de Lagrange Λ ∈ IRN ×n pelo gradiente da restrição
F (X, U ) − DX = 0.
– Gradiente de DX em relação a X.
T
(∇D(X)) Λ =
N X
N
X
Djk Ek ΛTj ,
j=1 k=1
onde Ek = ek ⊗ In .
– Gradiente de DX em relação a U : nulo.
– Gradiente de F (X, U ) em relação a X
(∇X F (X, U ))T Λ =
N
X
ei ⊗ ∇X f (Xi , Ui )ΛTi .
i=1
– Gradiente de F (X, U ) em relação a U .
T
(∇U F (X, U )) Λ =
N
X
ei ⊗ ∇U f (Xi , Ui )ΛTi .
i=1
• Produto do multiplicador µ ∈ IRn pelo gradiente de x0 − X1 = 0.
(∇X X1 )T µ = e1 µ.
14
Com todas as parcelas apresentadas, pode-se expressar as condições de KKT do problema
(1.22):
N
X
Dj1 Λj = Λ1 ∇X f (X1 , U1 )T − µ;
(1.23)
j=1
N
X
Djk Λj = Λk ∇X f (Xk , Uk )T ,
2 ≤ k ≤ N;
(1.24)
j=1
T
∇φ(XN +1 ) = DN
Λ;
(1.25)
Λk ∇U f (Xk , Uk )T = 0,
1 ≤ k ≤ N.
(1.26)
Mas as igualdades (1.23) e (1.24) podem ser reescritas de forma conjunta como
T
D1:N
Λ = ∇X hΛ, F (X, U )i − e1 µ.
(1.27)
Seja Dj:k a submatriz de D formada pelas colunas j até k e seja Xj:k a submatriz
de X formada pelas linhas de j até k. Utilizando essa forma, as restrições do problema
(1.22) podem ser escritas como
D2:N X2:N = F (X, U ) − D1 x0 .
(1.28)
O próximo resultado garante que a matriz D2:N , obtida pela omissão da primeira
coluna matriz D tem inversa.
Proposição 1.4 A matriz D2:N obtida deletando a primeira coluna de D é invertı́vel.
Demonstração. Tome p0 ∈ IRN −1 não nulo e considere p = (0, p0 ) ∈ IRN . Suponha agora
que Dp = 0. Mostra-se que D2:N p0 = 0 admite apenas solução trivial e assim que D2:N é
não-singular.
Seja P um polinômio de grau N tal que P(τk ) = pk para 1 ≤ k ≤ N , onde pk é o
N
X
k-ésimo elemento de p, ou seja, o polinômio escolhido deve ter a forma P(τ ) =
pk `(τ ).
k=1
Note que para i = 1, . . . , N
(Dp)i =
N
X
k=1
Dik pk =
N
X
pk `˙k (τi ) = Ṗ(τi ),
k=1
ou seja, cada componente de Dp é a derivada de P avaliada nos pontos de colocação. Por
hipótese Dp = 0, e assim (Dp)i = 0 para todo i = 1, . . . , N , logo
Ṗ(τi ) = 0.
Por Ṗ ser um polinômio de grau N −1 e se anular em N pontos segue que Ṗ é identicamente
nulo e portanto P é um polinômio constante. Como P(τN ) = pN = 0 segue que P é um
15
polinômio identicamente nulo. Ou seja, se Dp = 0, com a primeira coordenada de p
nula, que é equivalente a ter D2:N p0 = 0 isto implica que p = 0, ou seja, p0 = 0 e assim
D2:N p0 = 0 admite apenas a solução trivial e desta forma D2:N é não-singular.
1.2.4
Sistema Adjunto Transformado
Agora reformula-se as condições de KKT do problema (1.22), utilizando os pesos
da discretização, de modo que se tornem condições transformadas para o problema (1.21).
Desta forma, tem-se as condições de KKT para o problema contı́nuo e para o problema
discreto.
Seja W ∈ RN ×N matriz diagonal cujos elementos são wi . Seja λ ∈ IRN ×n definido
por
λ = W −1 Λ.
(1.29)
A fim de relacionar as equações discretas às equações contı́nuas, utiliza-se uma matriz
D+ ∈ IRN ×N , uma versão modificada de D definida como:
+
D11
= −D11 −
1
w1
+
Dij
=−
e
wj
Dji .
wi
(1.30)
Usando (1.24), (1.29), (1.30), tem-se para i = 2, . . . , N ,
Λi ∇X f (Xi , Ui ) =
N
X
Dji Λj =
j=1
N
X
−
j=1
N
X
wi +
+
Dij Λj = −
wi Dij
λj .
wj
j=1
Pela igualdade acima e (1.29), tem-se
N
X
j=1
+
Dij
λj = −
Λi
∇X f (Xi , Ui ) = −λi ∇X f (Xi , Ui ).
wi
Por outro lado, usando (1.23), (1.29) e (1.30), obtém-se:
Λ1 ∇X f (X1 , U1 ) − µ =
N
X
Dj1 Λj .
j=1
= D11 Λ1 +
N
X
Dj1 Λj
j=2
N
X
1
w1 +
+
Λ1 +
− D1j
Λj
= −D11 −
w1
w
j
j=2
=
+
−D11
Λ1
− λ1 −
N
X
j=2
+
D1j
w 1 λj .
(1.31)
16
Dividindo ambos os membros da igualdade por w1 e usando (1.29) tem-se
N
+
λ1 −
−D11
λ1 X +
µ
−
,
D1j λj = λ1 ∇X f (X1 , U1 ) −
w1 j=2
w1
donde segue que
N
X
+
D1j
λj = −λ1 ∇X f (X1 , U1 ) +
j=1
1
(µ − λ1 ),
w1
(1.32)
que é análoga a (1.23).
Para cada i = 1, . . . , N , dividindo a igualdade (1.26) por wi e usando (1.29),
resulta que
λi ∇U f (Xi , Ui ) = 0.
(1.33)
Agora discute-se a igualdade (1.25). Tome um polinômio P tal que P(τi ) = 1,
para 1 ≤ i ≤ N . Pela definição dos polinômios de Lagrange discutidos na Seção 1.2.1,
tem-se que P(τ ) = 1 para todo τ , e assim Ṗ(τ ) = 0. Considere v ∈ IRN um vetor de
componentes unitárias e (Dv)k a k-ésima componente do produto Dv. Assim
(Dv)k =
N
X
Dki vi =
i=1
Consequentemente 0 = Dv =
N
X
Dki =
i=1
N
X
Dj =
j=1
N
−1
X
N
X
`˙i (τk ) = Ṗ(τk ) = 0.
i=1
Dj + DN . Logo
j=1
DN = −
N
−1
X
Dj .
(1.34)
j=1
Utilizando (1.34) tem-se
T
DN
Λ
=
N
X
Λi Di,N = −
i=1
N X
N
X
Λi Dij .
i=1 j=1
Com (1.30) e fazendo mudança de ı́ndices vem que
−
N X
N
X
i=1 j=1
N
Λi Dij =
N
N
N
Λ1 X X
Λ1 X X
+ wj
+ wi
+
Λi Dji
=
+
Λj Dij
.
w1 i=1 j=1
wi
w1 i=1 j=1
wj
17
Utiliza-se (1.29) e se isola λ1 de (1.32) daı́
N
N
Λ1 X X
+ wi
+
Λj Dij
w1 i=1 j=1
wj
= λ1 +
N X
N
X
+
wi λj Dij
i=1 j=1
=
−w1
N
X
!
+
D1j
λj
− λ1 w1 ∇X f (X1 , U1 ) + µ
+
j=1
N X
N
X
+
wi λj Dij
.
i=1 j=1
Finalmente, com (1.31) e reorganizando as contas segue que
−w1
N
X
!
+
D1j
λj − λ1 w1 ∇X f (X1 , U1 ) + µ
+
j=1
N X
N
X
+
wi λj Dij
= −λ1 w1 ∇X f (X1 , U1 ) + µ
i=1 j=1
+
N
X
(−λi wi ∇X F (Xi , Ui ))
i=2
= µ−
N
X
λi wi ∇X f (X1 , Ui ).
i=1
Tem-se, finalmente, as condições transformadas de KKT:
µ = ∇Φ(XN +1 ) +
N
X
wi λi ∇X f (Xi , Ui )
i=1
D+ λ = −∇X hλ, F (X, U )i +
1
e1 (µ − λ1 )
w1
∇U hλ, F (X, U )i = 0.
Considere agora o seguinte resultado.
Teorema 1.5 [22, Teo.1] Considere P um polinômio de grau no máximo N − 1, com
N ≥ 1, e p ∈ IRN um vetor cuja i-ésima componente é dada por pi = P(τi ). Se D+
satisfaz, para todo i = 1, . . . , N ,
(D+ p)i = Ṗ(τi ),
então D+ é a matriz de diferenciação para o espaço de polinômios de grau N − 1 definida
em (1.30).
Demonstração. Sejam P um polinômio de grau no máximo N com P(1) = 0 e Q um
polinômio de grau no máximo N − 1, com N ≥ 1. Usando integração por partes, vale a
seguinte igualdade
Z
1
Z
1
Ṗ(τ )Q(τ )dτ = −P(−1)Q(−1) −
−1
P(τ )Q̇(τ )dτ.
(1.35)
−1
Note que, ṖQ e P Q̇ são polinômios de grau no máximo 2N − 2. Assim, pela Seção
18
1.2.2, a quadratura de Gauss é exata e consequentemente as integrais em (1.35) podem
ser substituı́das por suas quadraturas equivalentes, ou seja,
N
X
wj ṗj qj = −p1 q1 −
j=1
N
X
wj pj q˙j ,
j=1
onde pj = P(τj ) e p˙j = Ṗ(τj ). De forma compacta, isto pode ser reescrito como
(W ṗ)T q = −p1 q1 − (W p)T q̇.
Substituindo ṗ = D1:N p e q̇ = D+ q,
T
W q + p1 q 1 + pT W D + q = 0
pT D1:N
e assim,
T
pT D1:N
W + W D+ + e1 eT1 q = 0.
Como p e q foram tomados arbitrariamente, ou seja, essa igualdade deve ser satisfeita
para quaisquer p e q segue que
T
D1:N
W + W D+ + e1 eT1 = 0,
que implica (1.30).
1.2.5
Formulação Integral
Nesta seção mostra-se que a discretização pseudoespectral da equação de estado,
ou seja, da restrição do problema (1.22), tem uma formulação equivalente através de
integrais.
Por (1.34) tem-se que D1 + D2 + · · · + DN = 0 então, se v é um vetor de componentes unitárias vale que
N
X
D1 = −
Dj = −D2:N v.
(1.36)
j=2
Pela Proposição 1.4 a matriz D2:N é invertı́vel então
−1
D2:N
D1 = −v.
(1.37)
Seja P um polinômio qualquer de grau no máximo N . Por D ser a matriz de
diferenciação dos polinômios de grau N tem-se que Dp = ṗ onde pi = P(τi ) e ṗi = Ṗ(τi )
19
para 1 ≤ i ≤ N . Então,
ṗ = Dp =
N
X
Di pi = D1 p1 + D2:N p2:N ,
i=1
−1
multiplicando por D2:N
tem-se
−1
−1
D2:N
ṗ = D2:N
D1 p1 + p2:N .
Utilizando (1.37), para i = 2, . . . , N vem que
−1
pi = p1 + (D2:N
ṗ)i .
(1.38)
Agora obtém-se uma expressão diferente para p1 − pi baseado na integração da
interpolação da derivada. Seja `+
j , para j = 1, . . . , N o polinômio de Lagrange interpolador
associado aos pontos de colocação:
`+
j
N
Y
τ − τm
.
=
τj − τm
m=1
m6=j
Dado um polinômio P de grau no máximo N , sua derivada Ṗ é um polinômio de
grau no máximo N − 1. Assim Ṗ pode ser interpolado exatamente pelos polinômios de
Lagrange `+
j :
N
X
Ṗ(τ ) =
ṗj `+
j .
j=1
Integrando essa igualdade de −1 a τi tem-se
Z
τi
Ṗ(τ )dτ =
−1
N
X
j=1
Z
τi
ṗj
`+
j (τ )dτ ,
−1
Rτ
pelo teorema fundamental do cálculo e denotando −1i `+
j (τ )dτ = Aij , para i = 2, . . . , N
vem que
N
X
P(τi ) − P(−1) =
ṗj Aij
(1.39)
j=1
ou seja,
pi − p1 = (Aṗ)i .
(1.40)
As relações (1.38) e (1.40) são satisfeitas para qualquer polinômio de grau no
máximo N . Escolha um polinômio P tal que P(1) = 0, ou seja, p1 = 0. Daı́ por (1.38)
20
−1
tem-se que pi = (D2:N
ṗ)i e por (1.40) tem-se pi = (Aṗ)i e assim segue que
−1
D2:N
ṗ = Aṗ.
Tomando ṗ como a i-ésima coluna da matriz identidade na igualdade acima, conclui-se
−1
que, para todo i = 1, . . . , N − 1, a i-ésima coluna de D2:N
é igual a i-ésima coluna da
matriz A, ou seja,
−1
A = D2:N
.
Sabendo isso, multiplicando a equação (1.28) por A, e usando (1.37), para i = 2, . . . , N ,
se obtém
Xi = x0 + Ai F (X, U )
(1.41)
onde Ai é a i-ésima linha de A.
Assim, a forma diferencial da equação de estado DX = F (X, U ) é equivalente a
forma integrada (1.41), onde os elementos de A são integrais do polinômio interpolador
de Lagrange `+
j , enquanto os elementos de D são as derivadas do polinômio de Lagrange
`i .
Para resumir, o que se tem em (1.41) é uma equação que está na forma de um
método de integração global implı́cito, enquanto a aproximação DX = F (X, U ) está na
forma de um método pseudoespectral.
O fato de que a integral ou a forma diferencial poder ser usada, mostra que o
método de colocação Radau pode ser visto como um método de integração global implı́cito
ou um método pseudoespectral. Em particular, usando a forma pseudoespectral dos
pontos de colocação LGR, resulta num sistema de equações que não tem qualquer perda
de informação quando se passa para a forma integral.
1.3
Método de Euler
Esta seção, que tem [2, Sec. 3.1] como principal referência, apresenta o método
de Euler para obtenção de uma solução numérica do problema (1.2). O método de Euler
é baseado no Teorema de Taylor [26].
O intervalo de tempo [t0 , tf ] é discretizado em (N − 1) subintervalos, de modo
que:
t0 ≡ t1 < t2 < · · · < tN ≡ tf .
Definindo as amplitudes de cada subintervalo i = 1, · · · , N −1 por hi = ti+1 −ti , a variável
de estado x(t) ∈ IRn é expandida, segundo Taylor, como
x(ti+1 ) = x(ti + hi ) = x(ti ) + hi
h2 d2 x
dx
(ti ) + i 2 (ςi ),
dt
2 dt
para algum ςi ∈ [ti , ti+1 ]. Assim, para valores suficientemente pequenos de hi , tem-se a
21
seguinte aproximação
x(ti+1 ) − x(ti )
dx
(ti ) ≈
.
dt
hi
Como o estado x satisfaz a equação diferencial do problema (1.2) tem-se que
x(ti+1 ) − x(ti )
= f (x(ti ), u(ti )),
hi
para hi suficientemente pequeno.
Tomando-se amplitude h > 0 constante suficientemente pequena para todos os
subintervalos e denotando x(tk ) por xk e u(tk ) por uk , a condição diferencial acima é
escrita da seguinte forma,
xk+1 − xk
,
(1.42)
f (xk , uk ) =
h
para todo k = 1, · · · , N − 1. Analogamente, segundo [2], a discretização da função custo
do problema (1.2) é dada por
N
−1
X
r(xk , uk )h.
k=0
Assim o problema (1.2) é discretizado, segundo o método de Euler, como
minimizar
N
−1
X
r(xk , uk )h
k=1
sujeito a
f (xk , uk ) =
xk+1 − xk
parak = 1, · · · , N − 1
h
(1.43)
x(t1 ) = x1
x(tN ) = xN .
A resolução deste problema de otimização leva a uma solução numérica do problema
original. No próximo capı́tulo, veremos um exemplo particular.
1.4
Outros métodos
Dois métodos de colocação LGR são apresentados em [14] e [15]. O método de
Kameswaran e Biegler em [15] concentra-se na colocação local usando pontos LGR. O
método de Fahroo e Ross em [14] descreve um método global para resolver problemas
de horizonte infinito. Nesta seção, um breve comentário sobre a forma como o método
apresentado neste trabalho refere-se a estes trabalhos.
1.4.1
Comparação com o método de Kameswaran e Biegler
O método pseudoespectral abordado neste trabalho tem semelhanças com o método
de Kameswaran e Biegler ([15]). A aproximação para a variável de estado usa também
os polinômios de Lagrange. É observado, no entanto, que o método de Kameswaran e
22
Biegler usa colocação local, utilizando vários subintervalos. O grau dos polinômios em
cada subintervalo é fixo e a convergência é conseguida através do aumento do número de
subintervalos. O método aqui tratado é um método de colocação global, em que há um
único intervalo e a convergência é alcançada através do aumento do grau de polinômios,
ou seja, no aumento do N , dos pontos de colocação, como visto pela Seção 1.2.1. O
método de Kameswaran e Biegler é implementado de uma forma semelhante ao método
de Euler tratado na Seção 1.3 (devido ao fato de que o intervalo de tempo é dividido em
subintervalos), enquanto que o método do presente trabalho é implementado na forma
de um método pseudoespectral. Nota-se que ambas as abordagens são válidas, mas a
abordagem atual, segundo [22], é usada com mais frequência na literatura de controle.
1.4.2
Comparação com o método de Fahroo e Ross
Na abordagem pseudoespectral Lobatto como descrito em [21], a variável de estado é aproximada por polinômios de grau N − 1 e a dinâmica do sistema é discretizado
com N pontos de quadratura Lobatto. Para o problema de controle do horizonte infinito
estudado em [14], Fahroo e Ross propõem utilizar uma mudança de variáveis para transformar o intervalo de tempo infinito para o intervalo [−1, +1). Esta mudança de variáveis
leva a uma singularidade na dinâmica no ponto τ = +1. Desta forma, não é possı́vel
utilizar τ = +1 como um ponto de colocação. Para lidar com essa singularidade, Fahroo
e Ross propõem discretizar nos pontos de quadratura Radau para τ = N < 1.
A diferença fundamental entre o método pseudoespectral em [14] e o método previsto neste trabalho é que, em [14], a variável de estado é aproximada por polinômios
de grau N − 1, enquanto que neste trabalho, a variável de estado é aproximada usando
polinômios de grau N . Esta mudança no grau dos polinômios leva a diferenças fundamentais entre os dois esquemas. Por exemplo, uma vez que os polinômios de Lagrange são
de diferentes graus, as matrizes de diferenciação são completamente diferentes. A matriz
utilizada na diferenciação em [14] é singular, enquanto que a matrize D2:N , segundo a Proposição 1.4, é invertı́vel. Se o controle e o estado inicial x0 são dados, então a dinâmica
discretizada do problema [14] é um sistema de N equações e de N − 1 incógnitas, X2:N .
Em contraste, 1.28 é um sistema de N − 1 equações com N − 1 incógnitas, X2:N , onde a
matriz de coeficientes D2:N é invertı́vel.
Na abordagem de [14], XN +1 , a estimativa da variável de estado em τ = 1, é
removido do problema usando polinômios de grau N − 1 em vez de polinômios de grau N .
Na abordagem aqui apresentada, a variável de estado é aproximada em τi , 1 ≤ i ≤ N + 1.
Assim, XN +1 , a estimativa do estado, é uma variável incluı́da no esquema pseudoespectral.
Avaliar o estado em τ = +1 é útil quando a função objetivo depende do estado no
momento final, ou quando há uma restrição de ponto final, como era o caso do problema
abordado neste trabalho.
23
1.5
Problema de Bolza
No próximo capı́tulo resolve-se um problema que é chamado de problema de
Bolza. Para mais detalhes sobre esse tipo de problema consultar [5]. O problema de
Bolza pode ser formulado de diversas maneiras, cada uma das quais tem as suas vantagens
peculiares e desvantagens. Uma das formulações mais úteis pode ser descrita brevemente
como segue:
Determinar o estado x(τ ) ∈ IRn , o controle u(τ ) ∈ IRm , o tempo incial t0 e tempo
final tf que encontre um mı́nimo local do seguinte problema
tf − t0 R 1
minimizar J = Φ(x(−1), t0 , x(1), tf ) +
g(x(τ ), u(τ ), τ )dτ
−1
2
dx
t −t
= f 2 0 f (x(τ ), u(τ ), τ ) ∈ IRn
sujeito a
dτ
φ(x(−1), x(1)) = 0 ∈ IRq
C(x(τ ), u(τ )) ≤ 0 ∈ IRc .
(1.44)
Quando Φ = 0 o problema é o chamado problema de Lagrange e quando g = 0
tem-se o problema geral de Mayer como formulado por Bliss em [5]. Estas três versões,
ou seja, o problema completo, o problema com Φ = 0 e o problema com g = 0, são
equivalentes no sentido de que cada um pode ser transformado em qualquer um dos
outros dois tipos.
Destas três versões, o problema de Bolza formulado acima parece ser o mais
conveniente, pois possui todos os termos de forma explı́cita. Para o presente trabalho
formula-se o problema utilizando uma aproximação pseudoespectral LGR. E assim, o
problema de Bolza toma a seguinte forma:
N
tf − t0 X
wk g(Xk , Uk , τk )
minimizar Φ(X1 , t0 , XN +1 , tf ) +
2 k=1
tf − t0
F (X, U )
sujeito a DX =
2
φ(X1 , XN +1 ) = 0
C(Xk , Uk ) ≤ 0 1 ≤ k ≤ N,
onde os wk0 s são dados por (1.19).
Capı́tulo 2
Exemplos
Neste capı́tulo consideram-se alguns problemas de controle ótimo particulares que
são resolvidos pelo método pseudoespectral utilizando pontos LGR discutido no capı́tulo
anterior. Inicialmente, discute-se um problema de Bolza sem restrições [2, 22] dito problema do regulador linear quadrático, conhecido pela abreviação LQR, do inglês linear
quadratic regulator. Discute-se sua solução exata e soluções numéricas utilizando o método
de Euler visto na Seção 1.3 e o método pseudoespectral visto na Seção 1.2. Em seguida,
são discutidas as soluções numéricas de dois problemas de controle ótimo com restrições
não lineares.
2.1
Exemplo 1
O primeiro exemplo é um problema do regulador linear quadrático, conhecido
pela abreviação LQR, do inglês linear quadratic regulator que consiste em minimizar uma
função custo quadrática com tempos iniciais e finais fixos [2, pág. 126]. O funcional é
dado por
Z
1 tf
1
T
x(t)T Qx(t) + u(t)T Ru(t) dt,
J = x(tf ) Sx(tf ) +
2
2 t0
sujeito a um sistema linear dinâmico
dx
= Ax + Bu,
dt
e as condições
x(t0 ) = x0 ,
x(tf ) = xf .
O número de estados é n, x(t) ∈ IRn , o número de controles é m, u(t) ∈ IRm , tais que
S ∈ IRn×n , Q ∈ IRn×n , R ∈ IRm×m , A ∈ IRn×n e B ∈ IRn×m .
A solução exata do problema [2] pode ser encontrada utilizando o Princı́pio do
Máximo de Pontryagin, que faz recair no seguinte sistema
24
Exemplos
25
ẋ(t)
ṗ(t)
!
=
A −BR−1 B T
−Q
−AT
!
x(t)
p(t)
!
,
onde p é a variável de co-estado.
O controle ótimo é definido por
u(t) = −R−1 B T p(t).
O caso especı́fico considerado aqui tem um único estado e um único controle de
modo que n = m = 1 e S, Q, R, A e B são escalares. Em particular, tome S = 0 e
√
Q = R = A = B = 1. Além disso, considere as condições de contorno: inicial x(t0 ) = 2
e a condição final x(tf ) = 1, com t0 = 0 e tf = 5. Assim, o problema considerado é dado
por
R5
maximizar − 0 (x2 (t) + u2 (t)) dt
sujeito a ẋ(t) = x(t) + u(t)
√
(2.1)
x(0) = 2
x(5) = 1.
Aplicam-se as técnicas discutidas no capı́tulo anterior para obtenção da solução
exata e de soluções aproximadas para este problema.
2.1.1
Solução Exata
A solução exata do problema é obtida através da aplicação do Princı́pio do
Máximo de Pontryagin, como visto no Teorema 1.1.
Identificam-se os elementos do problema (2.1) com os elementos do problema de
controle ótimo dado em (1.2) e com os elementos do Teorema 1.1. Para não carregar a
notação o argumento t é omitido, ou seja, escreve-se, por exemplo, x ao invés de x(t), e
assim para todas as variáveis que dependem de t. Assim, desta identificação, tem-se
f (x, u)
= x + u,
r(x, u)
= −x2 − u2 ,
H(x, p, u) = f (x, u)p + r(x, u).
Desta forma,
ẋ = ∇p H(x, p, u) = f (x, u),
∂r
∂f
= −p + 2x,
ṗ = −∇x H(x, p, u) = − p −
∂y
∂y
∂f
∂r
Hu (x, p, u) = 0 =
p+
= p − 2u.
∂u
∂u
(2.2)
(2.3)
(2.4)
Exemplos
26
Das igualdades acima, tem-se o seguinte sistema
(
ẋ = x + p2
ṗ = 2x − p
que pode ser escrito na forma matricial
ẋ
ṗ
!
!
1 12
=
2 −1
|
{z
}
!
x
p
.
M
A solução deste sistema de equações diferenciais, como discutido na Seção A.2, é
x
p
!
x0
p0
= eM t
!
.
(2.5)
Então precisa-se calcular eM t e encontrar p0 , e assim x e p estarão bem definidos. A
matriz M é uma matriz diagonalizável, ou seja, como visto na Seção A.1.2, existe uma
matriz S tal que M = SDS −1 com D diagonal. Neste caso,
S=
1
−1
√
√
2 2−2 2 2+2
!
√
2
0
√
; S −1 =
0 − 2
!
;D =
√
2+2
√4
2−2
4
1
√
4 2
1
√
4 2
Pela Proposição A.6, eM t = SeDt S −1 , onde
√
e
eDt =
2t
!
0
√
e−
0
.
2t
Desta forma,
eM t =
1
−1
√
√
2 2−2 2 2+2
!
√
e
2t
0
√
0
!
e−
2t
 √
2+2

 √ 4
 2−2
4

1
√
4 2 
.
1 
√
4 2
Fazendo a multiplicação das matrizes tem-se
√
√
 √

√
2 + 2 √2t 2 − 2 −√2t
e 2t − e− 2t
√
e +
e


Mt
4
4

.
4
2 √
√
√
√
e =
2 √2t
2 −√2t
2 − 2 √2t 2 + 2 −√2t 
e −
e
e +
e
2
2
4
4
√
Usando as condições iniciais x0 = x(0) = 2 e x(5) = 1 em (2.5) tem-se que
1
p(5)
!
5M
=e
√ !
2
.
p0
!
.
Exemplos
27
Denotando
e
5M
=
tem-se que
1=
e assim, como B12 6= 0,
B11 B12
B21 B22
√
!
,
2B11 + p0 B12 ,
√
1 − B11 2
p0 =
.
B12
Substituindo os valores de B11 e B12 e fazendo algumas manipulações algébricas conclui-se
que
√
√
√
√
√
4 2 − (2 2 + 4)e5 2 + (2 2 − 4)e−5 2
√
√
p0 = p(0) =
.
(2.6)
e5 2 − e−5 2
√
Voltando em (2.5) e usando a condição inicial x0 = 2, tem-se que
x(t)
p(t)
√
!
Mt
=e
!
2
p(0)
ou seja
x(t) =
e
p(t) =
√
√
2
√
2
!
√
√
2 + 2 √2t 2 − 2 −√2t
e +
e
+
4
4
2
e
2
√
√
2t
−
√
− 2t
2
e
2
√
!
+
√
e
2t
√
− e−
√
4 2
2t
!
p(0)
(2.7)
!
√
√
2 − 2 2t 2 + 2 − 2t
e +
e
p(0),
4
4
√
com p(0) dado em (2.6). Da igualdade (2.4) segue que
u(t) =
p(t)
.
2
Assim a solução do problema (2.1) é

√ √2+2 √2t 2−√2 −√2t e√2t −e−√2t 
√
x(t)
=
2
e + 4 e
+
p(0)

4

4 2
!
!
√
√
√
√
√
√
−5 2
5 2
√
√
(2
2
−
4)e
+
2
2
−
2
−(2
2
+
4)e
+
2
2
+
2
 u(t) =
√
√
√
√
e 2t +
e− 2t


2e5 2 − 2e−5 2
2e5 2 − 2e−5 2
(2.8)
A Figura 2.1 exibe graficamente o controle u e a variável de estado y = x2 .
Exemplos
28
2
y(t)
u(t)
1
Solução
0
−1
−2
−3
−4
0
0.5
1
1.5
2
2.5
t
3
3.5
4
4.5
5
Figura 2.1: Solução exata do problema.
2.1.2
Solução aproximada pelo método pseudoespectral
Nesta seção discute-se a solução numérica pelo método pseudoespectral discutido
na Seção 1.2 do problema (2.1) que escrito na forma de minimização é dado por,
R5
minimizar 21 0 (x2 (t) + u(t)2 ) dt
sujeito a ẋ(t) = x(t) + u(t)
√
x(0) = 2
x(5) = 1.
(2.9)
Inicialmente, considera-se a mudança de variável (1.8) de t ∈ [−1, 1] para τ ∈ [0, 5],
5
t = (τ + 1).
2
Assim,
dτ
2
dx
dx dτ
2 dx
=
e
ẋ =
=
=
dt
5
dt
dτ dt
5 dτ
e a restrição do problema (2.14) se escreve como
2 dx
= x(τ ) + u(τ ).
5 dτ
Sejam N pontos de colocação LGR, −1 = τ1 < τ2 · · · < τN < 1, obtidos como raı́zes
da soma PN −1 (τ ) + PN (τ ) dos polinômios de Legendre, como discutido na Seção ??.
Considere D ∈ IRN ×N a matriz de diferenciação definida em (1.14). Por (1.15), tem-se
dx
que DX ≈
. Assim a restrição se reescreve como
dτ
2
DX = X + U,
5
Exemplos
29
com X, U ∈ IRN . Tendo calculado o vetor de pesos w ∈ IRN associados aos pontos de
colocação por (1.19), o problema (2.14) discretizado é dado por
N
1X 2
minimizar
(x + u2k )wk
2 k=1 k
2
DX =
5
√
sujeito a
(2.10)
X +U
x1 = 2
xN +1 = 1.
Os pontos de colocação e o vetor w ∈ IRn foram calculados utilizando a rotina
pontos lgr w em Matlab descrita no Apêndice B. Este programa consiste numa adaptação
para cálculo dos pontos de colocação LGR [23] do código lglnodes.m escrito por Winckel
[32] que tem como referência [7]. O resultado obtido pelo programa para diferentes valores
de N foi comparado com os valores fornecidos em [13]. A matriz de diferenciação D ∈
IRN ×N foi calculada pela rotina matriz dif.
Tendo o vetor w ∈ IRN de pesos da quadratura associados com os N pontos de
colocação LGR e a matriz D de diferenciação, o problema (2.10) pode ser visto como um
problema de minimização de uma função quadrática com restrições de igualdade lineares
e condição de caixa, na variável (X, U ) ∈ IR2N , com uma variável adicional que deve
satisfazer a condição xN +1 = 1. Os problemas, para diferentes valores de N e soluções
iniciais randômicas, foram resolvidos utilizando-se a rotina quadprog do Matlab. A Figura
2.2 apresenta o gráfico da solução exata e uma solução numérica obtida adotando-se
N = 60 pontos de colocação. As linhas cheias representam a solução exata no intervalo
[−1, 1]. Os sı́mbolos triangulares representam a solução aproximada para a variável de
estado y = x2 e o sı́mbolo asterisco é usado para representar a variável de controle u.
2
1
0
−1
−2
yexato
−3
uexato
yaprox
uaprox
−4
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
τ
Figura 2.2: Solução exata e solução obtida pelo método pseudoespectral.
Exemplos
30
Análise de erros.
Foram consideradas 30 instâncias do problema (2.10) para cada valor de N entre
10 e 100. Cada instância difere na solução inicial que é tomada arbitrária. Para cada
instância foram calculadas a norma da diferença entre a solução exata e a solução numérica
tanto para a variável de estado y = x2 e a variável de controle u, ou seja, foram calculados
os erros:
erro y = kyexata − yaprox k∞
erro u = kuexata − uaprox k∞ ,
onde (yexata , uexata ) representa a solução exata e (yaprox , uaprox ) representa a solução aproximada. Para cada valor de N foi calculada a mediana dos erros calculados para as 30
instâncias. A Figura 2.3 mostra os gráficos da variação deste erro quando varia-se o valor
de N . O gráfico da esquerda mostra o erro na variável de estado, enquanto o gráfico da
direita mostra o gráfico do erro para a variável de controle. O eixo vertical de ambos
os gráficos está na escala logarı́tmica. As curvas em linha contı́nua referem-se às curvas
de regressão linear e quadrática na escala logarı́tmica, cujos parâmetros foram obtidos
através do comando polyfit do Matlab. Note que os erros descrescem mais lentamente na
variável de controle u.
erroy
errou
4.25N−1.44
−1
0.0832N−0.165
−1.2
10
0.0979N0.691 + (−0.292 ln(N))
log(erroy)
log(errou)
10
0.465N−1.14
+ (0.133 ln(N))
−1.3
10
−2
10
−1.4
10
10
20
30
40
50
60
70
80
90
100
10
20
30
40
50
N
60
70
80
90
100
N
Figura 2.3: Variação em função de N do erro na variável de estado (esquerda) e na variável
de controle (direita).
2.1.3
Solução aproximada pelo método de Euler
Nesta seção será aplicado o método de Euler estudado na Seção 1.3 para resolver
o problema (2.1). O intervalo de tempo [0, 5] é inicialmente transformado no intervalo
[−1, 1], utilizando a mudança dada em (1.8) e este é discretizado em N subintervalos de
2
amplitude . Adotando-se t0 = −1 e tN = 1, tem-se que o (k + 1)-ésimo subintervalo
N
é [tk , tk+1 ] para k = 0, . . . , N − 1. Denota-se x(tk ) por xk e u(tk ) por uk e estima-se a
Exemplos
31
xk+1 − xk
derivada ẋ por
em cada intervalo. Assim, a restrição principal do problema
h
(2.1) se reescreve como k restrições da forma:
xk+1 − xk =
5
(xk + uk ),
N
(2.11)
com k = 0, . . . , N − 1.
A função objetivo dada por uma integral é discretizada através do somatório
N −1
1X 2
xk + u2k h,
2 k=0
e o problema (2.1) se reescreve na forma discretizada como
minimizar
1
2
N
−1
X
(x2k + u2k )h
k=0
sujeito a
5
xk+1 − xk = (xk + uk ), k = 0, . . . , N − 1
N
√
x0 = 2
xN = 1.
A condição de contorno no tempo final foi incorporada ao problema como uma
penalização à função objetivo, ou seja, fixando-se um valor M suficientemente grande, o
problema anterior é transformado em
minimizar
1
2
N
−1
X
(x2k + u2k )h + M (xN − 1)2
k=0
sujeito a
5
xk+1 − xk = (xk + uk ),
N
√
x0 = 2.
k = 0, . . . , N − 1
(2.12)
Para as implementações, foi tomado M = 105 .
O lema a seguir, relaciona cada variável de estado xk com a posição inicial x0 e
com as variáveis de controle uj com j = 0, · · · , k − 1.
Lema 2.1 Para todo k = 1, . . . , N , vale a relação
k−1
X
xk = (1 + h) x0 + h
(1 + h)k−j−1 uj .
k
j=0
Demonstração. A prova é feita por indução. Primeiramente verifica-se que vale para k = 1.
Note que por (2.11) tem-se
x1 − x0 = h(x0 + u0 ),
Exemplos
32
ou seja,
x1 = (1 + h)x0 + hu0 ,
mostrando assim que vale para k = 1. Assume-se que a proposição vale para algum k,
com 1 ≤ k ≤ N − 1, ou seja,
k−1
X
xk = (1 + h) x0 + h
(1 + h)k−j−1 uj .
k
j=0
Prova-se então que vale para k + 1. Utilizando novamente (2.11) tem-se que
xk+1 = xk + h(xk + uk ) = (1 + h)xk + huk .
Usando a hipótese de indução, a igualdade acima se torna
"
xk+1 = (1 + h) (1 + h)k x0 + h
k−1
X
#
(1 + h)k−j−1 uj + huk .
j=0
Fazendo as multiplicações e agrupando os termos tem-se
xk+1 = (1 + h)k+1 x0 + h
k−1
X
(1 + h)k−j uj + h(1 + h)0 uk
j=0
= (1 + h)k+1 x0 + h
k−1
X
(1 + h)(k+1)−j−1 uj + h(1 + h)(k+1)−k−1 uk
j=0
k+1
= (1 + h)
x0 + h
k
X
(1 + h)(k+1)−j−1 uj .
j=0
Provando assim que, para qualquer k = 1, . . . , N , vale a relação
k−1
X
xk = (1 + h) x0 + h
(1 + h)k−j−1 uj .
k
(2.13)
j=0
Cabe ressaltar que as restrições do problema (2.12) válida para k = 0, . . . , N − 1
foram usadas fortemente na prova do Lema 2.1. O resultado provado será usado para
escrever a função objetivo do problema (2.12) apenas em função das variáveis de controle
√
uk e de x0 que pela condição inicial é fixado em 2.
Usando (2.13) a função objetivo do problema (2.12) se escreve como
Exemplos
33
N −1
1X 2
J =
(xk + u2k )h + M (xN − 1)2
2 k=0
N −1
1 2
1X 2
2
=
(x + u0 )h +
(x + u2k )h + M (xN − 1)2
2 0
2 k=1 k
=
1 2
(x0 + u20 )h
2
N −1
k−1
X
1X
2k 2
k
+
(1 + h) x0 + 2hx0 (1 + h)
(1 + h)k−j−1 uj +
2 k=1
j=0
!
k−1 X
k−1
X
(1 + h)2k−j−m−2 uj um + u2k h
+h2
j=0 m=0
N
2
N
((1 + h) x0 − 1) + 2h((1 + h) x0 − 1)
+M
N
−1
X
(1 + h)N −j−1 uj +
j=0
+h2
!
N
−1 N
−1
X
X
(1 + h)2N −j−m−2 uj um
,
j=0 m=0
que pode ser reescrita como
N −1
N −1
k
XX
1 2X
J =
hx0
(1 + h)2k + M (x0 (1 + h)N −1 − 1)2 + h2 x0
(1 + h)2k−j−2 uj
2
k=0
k=1 j=0
+ 2M h(x0 (1 + h)N −1 − 1)
N
−2
X
(1 + h)N −j−2 uj +
j=0
2
+ hM
N
−2 N
−2
X
X
2N −j−m−2
(1 + h)
j=0 m=0
k
N −1 k
h3 X X X
(1 + h)2k−j−m−2 uj um
2 k=1 j=0 m=0
N −1
hX 2
uj um +
u ,
2 k=0 k
√
que é uma função quadrática na variável de controle u, visto que x0 = 2.
Assim (2.12) recai no problema de minimização da função quadrática J, sem
restrições, que pode ser resolvido pelo Algoritmo A.1 do método de gradientes conjugados.
Tendo obtido o vetor u das variáveis de controle, obtém-se o vetor x através da expressão
(2.13), o que permite determinar o vetor y das variáveis de estado através da igualdade
y = x2 .
Exemplos
34
A listagem referente à implementação necessária para resolução do problema (2.1)
pelo método de Euler descrito nesta seção é apresentada no Apêndice B.
A Figura 2.4 apresenta a solução obtida adotando-se N = 60
2
1
0
−1
−2
yexato
uexato
yaprox
−3
uaprox
yEuler
uEuler
−4
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
τ
Figura 2.4: Solução exata e soluções numéricas.
Análise de erros. Como para o caso da solução numérica obtida pelo método pseudoespectral, foram consideradas 30 instâncias do problema (2.10) para cada valor de N
entre 10 e 100. Cada instância difere na solução inicial que é tomada arbitrária. Para
cada instância foram calculadas a norma da diferença entre a solução exata e a solução
numérica tanto para a variável de estado y = x2 e a variável de controle u, ou seja, foram
calculados os erros:
erro y = kyexata − yEuler k∞
erro u = kuexata − uEuler k∞ ,
onde (yexata , uexata ) representa a solução exata e (yEuler , uEuler ) representa a solução aproximada obtida pelo método de Euler. Para cada valor de N foi calculada a mediana dos
erros obtidos para as 30 instâncias. A Figura 2.5 mostra os gráficos da variação deste erro
quando varia-se o valor de N . O gráfico da esquerda mostra o erro na variável de estado,
enquanto o gráfico da direita mostra o gráfico do erro para a variável de controle. O eixo
vertical de ambos os gráficos está na escala logarı́tmica. A linha cheia representa a curva
da regressão linear na escala logarı́tmica. Os coeficientes da regressão foram fornecidos
pelo comando polyfit do Matlab.
O erro na variável de estado é da ordem de 10−1 , enquanto para o método pseudoespectral o erro foi da ordem de 10−2 . Os erros para o método de Euler foram maiores
que para o método pseudoespectral.
Exemplos
35
erroy
erro
−0.1
u
10
−0.485
−0.539
0.713N
2.91N
−0.2
log(errou)
log(erroy)
10
−1
10
−0.3
10
−0.4
10
−0.5
10
−0.6
10
10
20
30
40
50
60
70
80
90
100
10
20
30
40
N
50
60
70
80
90
100
N
Figura 2.5: Variação em função de N do erro na variável de estado (esquerda) e na variável
de controle (direita).
2.2
Exemplo 2
Considere o problema de controle ótimo, discutido em [31, pág. 347], dado por:
R1
minimizar 0 (u2 (t) − y(t)3 ) dt
sujeito a
ẏ(t) = y(t)u(t)
y(0) = 1
y(1) = 1
−1 ≤ u(t) ≤ 0,
(2.14)
ˆ 1] e y ∈ C 1 [0, 1], ou seja, u : [0, 1] → IR é uma função contı́nua por partes e
onde u ∈ C[0,
y : [0, 1] → IR é uma função continuamente diferenciável. A solução deste problema é
(
y(t) ≡ 1,
u(t) ≡ 0.
(2.15)
A seguir discute-se a resolução numérica pelo método estudado na Seção 1.2.
2.2.1
Solução aproximada pelo método pseudoespectral
De maneira análoga ao exemplo anterior, se faz a mudança de variável de t ∈ [0, 1]
para τ ∈ [−1, 1]. Por (1.8) tem-se que:
1
1
t= τ+ .
2
2
Assim,
dτ
=2
dt
e
ẏ =
dy
dy dτ
dy
=
=2
dt
dτ dt
dτ
Exemplos
36
e a restrição do problema (2.14) se escreve como
dy
1
= y(τ )u(τ ).
dτ
2
Sejam N pontos de colocação LGR, −1 = τ1 < τ2 < ... < τN < 1, obtidos como raı́zes
da soma dos polinômios de Legendre PN −1 (τ ) + PN (τ ). Considere D ∈ IRN ×N a matriz
dy
e a restrição se
de diferenciação definida em (1.14). Por (1.15) tem-se que DY ≈
dτ
reescreve como
1
DY = Y U,
2
onde Y, U ∈ IRN .
Tendo os pontos de colocação, e sabendo que os pesos wi0 s, com i = 1, . . . , N ,
para a discretização do problema, é dado, segundo [1], por
Z
w(i) =
N
1 Y
−1
j=1
j6=i
τ − τj
dτ,
τi − τj
pode-se discretizar o problema (2.14), que toma a forma
minimizar
N
X
(u2k − yk3 )wk
k=1
sujeito a
2DY = Y U
y1 = 1
yN +1 = 1.
(2.16)
Os procedimentos utilizados para resolver este problema são análogos aos que
foram utilizados para resolver o exemplo anterior. O problema foi resolvido numericamente em Matlab. O vetor w ∈ IRN de pesos da quadratura associados com os N pontos
de colocação LGR foram obtidos pela rotina pontos lgr w. A matriz de diferenciação
D ∈ IRN ×N foi calculada pela rotina matriz dif. O problema 2.16 que consiste na minimização de uma função não linear, não quadrática, sujeita a restrições de igualdade
não lineares e condições de contorno na variável (y, u) ∈ IR2N , foi resolvido pela função
fmincon disponı́vel em Matlab. As rotinas utilizadas estão disponı́veis no Apêndice B.
A Figura 2.6 apresenta uma solução do problema tomando-se N = 60. O sı́mbolo
triangular representa a solução aproximada para a variável de estado y e o sı́mbolo asterisco é usado para representar a variável de controle u associadas com cada um dos 60
pontos de colocação.
Exemplos
37
1.2
1
0.8
0.6
y
u
0.4
0.2
0
−0.2
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
τ
Figura 2.6: Solução obtida pelo método pseudoespectral.
Análise de erros. Adotando-se soluções iniciais arbitrárias, foram resolvidas 30 instâncias
do problema (2.16) para cada valor de N entre 2 e 100. Para cada uma destas instâncias,
foi calculada a norma infinito do vetor diferença entre a solução exata e a solução numérica
para a variável de estado y e para a variável de controle u. Ou seja, foram calculados os
erros dados por
erroy = kyexata − yaprox k∞
e
errou = kuexata − uaprox k∞ .
onde (yexata , uexata ) é dado em (2.15) e (yaprox , uaprox ) é a solução numérica fornecida
pela rotina fmincon. Para cada um dos valores de N considerados, foi tomada a mediana
dos erros obtidos nas 30 instâncias. Os gráficos da Figura 2.7 mostram a variação do erro
na escala logarı́tmica para a solução aproximada do estado e de controle, respectivamente,
em relação ao número de pontos de colocação N entre 2 e 100. Note que os erros são
da ordem de 10−8 e que neste caso, diferentemente do caso anterior, os erros aumentam
com o valor de N . As linhas cheias correspondem à curva de regressão linear na escala
logarı́tmica cujos coeficientes foram fornecidos pelo comando polyfit do Matlab.
2.3
Exemplo 3
O segundo problema consiste em determinar o estado y ∈ Cˆ1 e o controle u ∈ Cˆ
como solução do seguinte problema de Bolza:
R2
minimizar y 2 (2) + 0 y(t)2 dt
sujeito a ẏ(t) = u(t)
y(0) = 1
−1 ≤ u(t) ≤ 1,
(2.17)
Exemplos
38
−8
−5
10
10
erro
u
2.99
−6
1.41e−14N
10
−9
10
−7
10
−8
10
log(errou)
log(erroy)
−10
10
−11
10
−10
10
−11
erroy
−12
10
10
2.24
3.27e−14N
−12
10
−13
10
−9
10
0
−13
20
40
60
80
10
100
0
20
40
N
60
80
100
N
Figura 2.7: Variação do erro das variáveis y e u na escala logarı́tmica em relação a N .
cuja solução exata apresentada em [31, pag 348] é
(
y(t) =
2.3.1
(
1 − t se t ≤ 1,
0
se t > 1,
e
u(t) =
−1 se t ≤ 1,
0 se t > 1.
(2.18)
Solução aproximada pelo método pseudoespectral
Inicialmente considera-se a mudança de variável de t ∈ [0, 2] para τ ∈ [−1, 1], ou
seja,
t = τ + 1.
Assim,
dy
dy dτ
dy
dτ
=1
e
ẏ =
=
=
dt
dt
dτ dt
dτ
e a restrição do problema (2.17) se escreve como
dy
= u(τ ).
dτ
Calculam-se os N pontos de colocação LGR, −1 = τ1 < τ2 < ... < τN < 1, o vetor de
pesos w ∈ IRN e a matriz de diferenciação D ∈ IRN ×N como discutidos nos exemplos
anteriores. Como a função objetivo do problema (2.17) envolve o valor y(2), considera-se,
além das variáveis Y ∈ IRN e U ∈ IRN , uma variável adicional denotada por YN +1 . Assim
o problema (2.17) se escreve na forma discretizada como
minimizar YN2 +1 +
N
X
yk2 wk
k=1
sujeito a
DY = U
y1 = 1
−1 ≤ U ≤ 1.
(2.19)
Exemplos
39
Note que o problema acima consiste na minimização de uma função quadrática com
restrições de igualdade lineares e condições de contorno, na variável (Ȳ , U ) ∈ IR2N +1 ,
onde Ȳ = (Y, YN +1 ) ∈ IRN +1 e U ∈ IRN . Deste modo este problema pode ser resolvido
pela rotina quadprog disponı́vel no Matlab.
A Figura 2.8 apresenta a solução exata e a solução numérica, considerando-se 60
pontos de colocação e solução inicial arbitrária. A solução exata (2.18) que se escreve na
variável τ como
(
(
−τ se τ ≤ 0,
−1 se τ ≤ 0,
y(τ ) =
e
u(τ ) =
0 se τ > 0,
0 se τ > 0.
está representada por linhas cheias. O sı́mbolo triangular representa a solução aproximada
para a variável de estado y e o sı́mbolo asterisco é usado para representar a variável de
controle u.
1
0.8
0.6
0.4
0.2
0
−0.2
−0.4
−0.6
yexato
uexato
yaprox
−0.8
uaprox
−1
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
τ
Figura 2.8: Solução do problema 2.17.
Note que a variável de controle u é uma função descontı́nua. A solução aproximada assume erros maiores no ponto de descontinuidade e no extremo direito do intervalo.
No Apêndice B são apresentadas as listagens das rotinas em Matlab utilizadas.
Análise de erros. Adotando-se soluções iniciais arbitrárias, foram resolvidas 30 instâncias
do problema (2.19) para cada valor de N entre 10 e 100. Para cada uma destas instâncias,
foi calculada a norma infinito do vetor diferença entre a solução exata e a solução numérica
para a variável de estado y e para a variável de controle u. Ou seja, foram calculados os
erros dados por
erroy = kyexata − yaprox k∞
e
errou = kuexata − uaprox k∞ .
onde (yexata , uexata ) é dado em (2.18) e (yaprox , uaprox ) é a solução numérica fornecida
Exemplos
40
pela rotina quadprog. Para cada um dos valores de N considerados, foi tomada a mediana
dos erros obtidos nas 30 instâncias. Como já ressaltado, tendo em vista a descontinuidade
da variável de controle u, o erro da solução aproximada na região de descontinuidade
é grande e foi desconsiderado na análise de erro. Os gráficos da Figura 2.9 mostram a
variação do erro, na escala logarı́tmica para a solução aproximada do estado e de controle,
respectivamente, em relação ao número de pontos de colocação N entre 10 e 100. As linhas
cheias representam as curvas de regressão linear na escala logarı́tmica cujos coeficientes
foram fornecidos pelo comando polyfit do Matlab. Enquanto o erro na variável de estado
é da ordem de 10−3 , o erro na variável de controle é da ordem de 10−1 .
erroy
errou
0.048N−0.891
0.472N−0.648
−1
log(erroy)
log(errou)
10
−3
10
−2
10
20
30
40
50
60
N
70
80
90
100
10
10
20
30
40
50
60
70
80
90
100
N
Figura 2.9: Variação do erro das variáveis y e u na escala logarı́tmica em relação a N .
Conclusão
Discutiu-se neste trabalho o método de discretização pseudoespectral com pontos
de colocação LGR. Esta técnica é utilizada para encontrar soluções numéricas de problemas de controle ótimo sem restrições (problema de Bolza tipo LQR), como foi publicado
em [22]. Apresentação da técnica segue a sequência em que o método pseudoespectral
LGR é mostrado em [22], mas as demonstrações são próprias e estão dadas em notação
tensorial. Para medir diretamente a precisão do método pseudoespectral LGR, é necessário ter a solução exata do problema. A solução exata do problema de Bolza LQR
de controle ótimo foi encontrada utilizando o Princı́pio de Máximo de Pontryagin. Para
comparar (positivamente) o desempenho do método pseudoespectral LGR, o problema
LQR de Bolza é resolvido também aplicando uma discretização de Euler da equação de
estado é por uma quadratura tipo Euler do funcional. A discretização da equação de
estado fornece uma forma de exprimir as variáveis de estado em termos das variáveis
de controle. A substituição desta relação na quadratura permite utilizar um método de
otimização quadrática da variável de controle. O método pseudoespectral LGR é também
aplicado bem sucedidamente a problemas de controle ótimo com restrições nas variáveis
de estado e de controle (algo que não é tentado em [22]).
Todos os códigos MATLAB estão incluı́dos no Apêndice desta dissertação e serão
postados no site do Programa de Pós-graduação em Matemática Aplicada da Universidade
Federal do Paraná. Também no Apêndice encontra-se uma revisão de conceitos referentes
a este trabalho.
Apêndice A
Revisão de Conceitos
Neste capı́tulo apresentam-se algumas definições, propriedades e ressaltam-se alguns resultados que podem ser úteis para o entendimento deste trabalho. As principais
referências deste capı́tulo são [9, 10, 11, 12, 18, 25, 26, 27, 29].
A.1
Matriz
Nesta seção, que é baseada principalmente em [27], apresentam-se algumas definições e resultados essenciais de matrizes que foram utilizados no trabalho. Inicialmente
apresenta-se a definição de um tipo de matriz que é muito comum em problemas de
otimização.
Definição A.1 [25, pag. 260] Seja A ∈ IRn×n uma matriz simétrica. Diz-se que A é
definida positiva quando xT Ax > 0, para todo x ∈ IRn \{0}. Tal propriedade é denotada
por A > 0. Se xT Ax ≥ 0, para todo x ∈ IRn , A é dita semidefinida positiva, fato este
denotado por A ≥ 0.
A.1.1
Produto direto de Matrizes
Em várias demonstrações do Capı́tulo 1 usa-se produto direto de matrizes. Nesta
seção apresentam-se a definição de produto direto de matrizes, algumas propriedades deste
produto e um exemplo de como se faz este cálculo.
Definição A.2 Dadas as matrizes A ∈ IRm×n e B ∈ IRp×q define-se o produto direto de
A por B como a matriz C ∈ IRmp×nq de tal forma que

Cmp×nq


=A⊗B =


···
···
...
a1n B
a2n B
..
.
am1 B am2 B · · ·
amn B
a11 B
a21 B
..
.
42
a12 B
a22 B
..
.



.


Apêndice
43
Algumas propriedades interessantes do produto direto de matrizes:
(i) A ⊗ B 6= B ⊗ A;
(ii) Se u e v são vetores, então uT ⊗ v = v ⊗ uT = vuT ;
(iii) Se as dimensões são compatı́veis
(A ⊗ B)(C ⊗ D) = AC ⊗ BD.
Exemplo A.3 Calcule o produto direto de A por B, sendo
A=
1 2
1/2 4
!
1 2 4
6 8 10
eB=
!
.
Pela definição e sendo A ∈ IR2×2 e B ∈ IR2×3 o resultado será uma matriz
C ∈ IR4×6 . Para construı́-la, os seus elementos serão vistos como blocos, ou seja, Cij é o
bloco (i, j) de mesma dimensão de B. Assim,
C11 = a11 B = 1 ∗
C21 = a21 B = 1/2 ∗
1 2 4
6 8 10
1 2 4
6 8 10
!
C12 = a12 B = 2 ∗
,
!
,
C22 = a22 B = 4 ∗
1 2 4
6 8 10
1 2 4
6 8 10
!
,
!
.
E então,



C=


A.1.2
1
6
1/2
3

2 4 2 4 8

8 10 12 16 20 
.
1 2 4 8 16 

4 5 24 32 40
Exponencial de matriz
Considere a ∈ IR. Ao resolver a equação diferencial ordinária (EDO) escalar
ẋ(t) = ax,
obtém-se a seguinte fórmula,[10], para a solução do problema com condição inicial x(0) =
x0 ∈ IR:
x(t) = x0 eat ,
t ∈ IR.
Na próxima seção, será vista a equação análoga quando a é uma matriz n × n com
coeficentes reais e x : IR → IRn . Para isto, precisa-se saber como calcular a exponencial
de uma matriz. As referências sobre o assunto são [10, 11, 29].
Apêndice
44
Considera-se a função f : IR → IR+ tal que f (x) = ex . Essa função é chamada
de exponencial de x e tem a seguinte representação, [29], por séries de Taylor
ex =
∞
X
xk
k=0
k!
.
Desta forma parece ser natural a definição a seguir
Definição A.4 [11, pag.330] Seja A ∈ IRn×n . A matriz definida pela série
∞
X
Ak
k=0
k!
,
sendo
A0 = I
é denominada exponencial da matriz A. Para representá-la usa-se a notação eA ou ainda
exp(A).
Para os problemas estudados neste trabalho, é suficiente saber como calcular uma exponencial de matriz diagonalizável.
Definição A.5 [29, Def.3.1] Uma matriz A ∈ IRn×n é diagonalizável quando existem
uma matriz invertı́vel S, cujas colunas são os autovetores de A e uma matriz diagonal D
formada pelos autovalores de A tal que
D = S −1 AS.
Proposição A.6 [29, Prop. 3.2] Se A é uma matriz diagonalizável, D = S −1 AS, então
−1
eA = eSDS = SeD S −1 .
Demonstração. Multiplicando a igualdade D = S −1 AS pela esquerda por S e depois pela
direita por S −1 tem-se que
A = SDS −1 .
Além disso,
(SDS −1 )k = (SDS −1 )(SDS −1 ) · · · (SDS −1 ) = SDk S −1 .
|
{z
}
k vezes
Logo, para n ∈ IN as somas parciais são dadas por
Sn =
n
X
(SDS −1 )k
k=0
k!
=
n
X
SDk S −1
k!
k=0
=S
n
X
Dk
k=0
!
k!
S −1 .
Portanto,
"
SDS −1
eA = e
= lim Sn = lim S
n→∞
n→∞
n
X
Dk
k=0
k!
!
#
S −1 = S
lim
n→∞
n
X
Dk
k=0
k!
!
S −1 = SeD S −1 .
Apêndice
45
Teorema A.7 [29, Teo. 3.4] Seja D = diag(α1 , α2 , . . . , αn ), uma matriz diagonal n × n.
Então eD = diag(eα1 , eα2 , . . . , eαn ).
Demonstração. Seja D uma matriz diagonal com entradas αi (i = 1, 2, . . . , n). Assim
para todo k ∈ IN,
Dk = diag(α1k , . . . , αnk ).
Logo para cada n ∈ IN as somas parciais são dadas por
Sn =
n
X
Dk
k=0
k!
= diag
Assim
eD = lim Sn = lim
n→∞
A.2
n→∞
n
X
αk
1
k=0
n
X
Dk
k=0
k!
k!
,...,
n
X
αk
n
k=0
k!
!
.
!
= diag (eα1 , . . . , eαn ) .
Solução de um sistema de EDOs
O problema tratado no decorrer do trabalho está sujeito a uma equação diferencial. O objetivo é resolver esse problema, para isso deve-se lembrar como é a solução de
um sistema de EDOs de 1a e de 2a ordem.
Considere Ω ⊂ IRn e f : Ω → IRn uma aplicação contı́nua. Seja I um intervalo
não degenerado da reta, ou seja, um subconjunto conexo de IR não reduzido a um ponto.
Definição A.8 [30, pag 04.] Uma função diferenciável φ : I → IRn chama-se solução da
equação
dx
= f (x)
(A.1)
dt
no intervalo I se:
i) o gráfico de φ em I está contido em Ω e
ii)
dφ
(t) = f (φ(t)) para todo t ∈ I. Se t é um ponto extremo do intervalo, a derivada
dt
é a derivada lateral respectiva.
A equação (A.1) chama-se equação diferencial ordinária de primeira ordem e é
denotada abreviamente por
ẋ = f (x).
Sob hipóteses bem gerais sobre f , por exemplo se f e ∂f
são contı́nuas em Ω, existe uma
∂x
e só uma solução φ de (A.1) num intervalo que contém t0 e tal que φ(t0 ) = x0 . Uma tal φ
é chamada de solução do problema com dados iniciais (t0 , x0 ) para a equação (A.1). Este
Apêndice
46
problema pode ser denotado abreviadamente por
(
ẋ
= f (x)
x(t0 ) = x0 .
Para existência e unicidade de soluções de uma equação diferencial consultar [30, pag. 12]
e [10].
Lembra-se agora soluções de equações especı́ficas, que podem ser verificadas nos
Capı́tulos 3 e 10 de [10].
A solução do sistema de EDOs de primeira ordem
(
ẋ(t) = M x(t)
x(0) =
x0 ,
onde M ∈ IRn×n e x0 é o ponto inicial, é
x(t) = etM x0 .
A solução do sistema de EDOs de segunda ordem
(
ẍ(t) + bẋ(t) + cx(t) = 0
ẋ(tf ) = k1 , x(tf ) = k2
onde b, c ∈ IR e tf é o tempo final, é dada por
x(t) = c1 eλ1 t + c2 eλ2 t
quando a equação caracterı́stica, λ2 + bλ + c = 0, possui raı́zes reais distintas λ1 e λ2 . As
constantes c1 e c2 são encontradas de forma que as condições iniciais sejam satisfeitas.
A.3
Tópicos de otimização contı́nua
Nesta seção são introduzidos alguns tópicos de otimização contı́nua que serão
úteis para o desenvolvimento deste trabalho.
Inicia-se com algumas ideias básicas sobre minimização de uma função. Em
seguida é apresentado o método de gradiente conjugado para minimização de uma função
quadrática. E encerra-se esta seção com um teorema de otimalidade de primeira ordem
para problemas de otimização com restrições, o teorema de Karush-Kuhn-Tucker(KKT).
Para as demonstrações dos teoremas e maiores detalhes, consultar [12].
Pode-se dizer que otimização consiste em encontrar pontos de mı́nimos ou de
máximos de uma função real sobre um conjunto Ω ⊂ IRn . Isto pode ser representado pelo
Apêndice
47
seguinte problema
minimizar f (x)
sujeito a x ∈ Ω,
(A.2)
onde f : IRn → IR é uma função contı́nua dita função objetivo e Ω ⊂ IRn é um conjunto
chamado de conjunto viável. Quando Ω = IRn , o problema é dito irrestrito.
Definição A.9 [12, pag. 25] Considere f : IRn → IR e x∗ ∈ Ω ⊂ IRn . Diz-se que x∗
é um minimizador local de f em Ω quando existe δ > 0 tal que f (x∗ ) ≤ f (x) para todo
x ∈ B(x∗ , δ) ∩ Ω. Caso f (x∗ ) ≤ f (x) para todo x ∈ Ω, x∗ é dito minimizador global de f
em Ω.
Normalmente contenta-se com a obtenção de minimizadores locais do problema, onde esta
discussão será focada.
O teorema a seguir nos dá uma condição necessária para caracterizar um minimizador local de um problema irrestrito. Os pontos que satisfazem tal condição necessária
são ditos estacionários.
Teorema A.10 Seja f : IRn → IR diferenciável no ponto x∗ ∈ IRn . Se x∗ é um minimizador local de f em IRn então
∇f (x∗ ) = 0.
Demonstração. [12, Teo. 2.9].
Em um problema de otimização é difı́cil resolver, de forma direta, o sistema de
n equações e n incógnitas dado por ∇f (x) = 0. Normalmente uma solução é obtida por
meio de um processo iterativo. Considera-se então um algoritmo que a partir de um
ponto inicial x0 , gera uma sequência de pontos (xk ) desejando-se que os seus pontos de
acumulação sejam estacionários.
A.3.1
Método de gradientes conjugados
Apresenta-se nesta seção o método de gradientes conjugados [12, Sec.5.3] para
minimização de funções quadráticas.
Considere a função quadrática f : IRn → IR dada por
1
f (x) = xT Ax + bT x + c,
2
(A.3)
com A ∈ IRn×n definida positiva, b ∈ IRn e c ∈ IR.
Segundo [12], uma função f quadrática com Hessiana definida positiva tem um
único minimizador x∗ , que é global e satisfaz, pelo Teorema A.10, a seguinte condição
∇f (x∗ ) = Ax∗ + b = 0.
Apêndice
48
Para entender o algoritmo são necessários alguns conceitos.
Definição A.11 [12, pag. 64] Seja A ∈ IRn×n uma matriz definida positiva. Os vetores
d0 , d1 , ..., dk ∈ IRn \{0} são ditos A-conjugados se
(di )T Adj = 0,
para todos i, j = 0, 1, ..., k, com i 6= j.
Note que, no caso particular onde A é a matriz identidade, vetores A-conjugados
são ortogonais no sentido usual.
Sabe-se que um método de gradientes conjugados minimiza um função quadrática
em IRn em no máximo n iterações.
Dado um conjunto qualquer de direções A-conjugadas d0 , d1 , ..., dn−1 , define-se
uma sequência finita da seguinte maneira: dado x0 ∈ IRn arbitrário, define-se para
k = 0, 1, ..., n − 1,
xk+1 = xk + tk dk ,
(A.4)
onde tk = argmin{f (xk + tdk )}. O escalar tk é o comprimento do passo na direção dk a
t∈IR
partir do ponto corrente xk .
Como f é quadrática pode-se obter uma fórmula explı́cita para tk . Para isso,
define-se φ : IR → IR por φ(t) = f (xk + tdk ). Como, pela definição, tk é o minimizador
de f (xk + tdk ), tem-se que φ0 (tk ) = 0. Note que φ0 (tk ) = ∇f (xk + tk dk )T dk . Por f ser
quadrática
∇f (xk + tk dk ) = A(xk + tk dk ) + b = (Axk + b) + tk Adk = ∇f (xk ) + tk Adk .
Assim,
φ0 (tk ) = ∇f (xk )T + tk Adk dk = 0,
ou seja,
tk = −
∇f (xk )T dk
.
(dk )T Adk
Agora mostra-se como gerar as direções conjugadas.
Dado x0 ∈ IRn , defina d0 = −∇f (x0 ) e, para k = 0, 1, ..., n − 2,
dk+1 = −∇f (xk+1 ) + βk dk ,
onde xk+1 é dado por (A.4) e βk é tal que dk e dk+1 sejam A-conjugados, ou seja,
(dk )T A(−∇f (xk+1 ) + βk dk ) = (dk )T Adk+1 = 0.
Apêndice
49
Isolando βk da igualdade acima
βk =
(dk )T A∇f (xk+1 )
.
(dk )T Adk+1
Agora com todas as ferramentas necessárias, apresenta-se o algoritmo de gradientes conjugados.
Algoritmo A.1 Gradientes conjugados para funções quadráticas
Dado: x0 ∈ IRn , faça d0 = −∇f (x0 )
k=0
repita enquanto ∇f (xk ) 6= 0
∇f (xk )T dk
tk = − k T k
(d ) Ad
k+1
x
= xk + tk dk
(dk )T A∇f (xk+1 )
βk =
(dk )T Adk
k+1
d
= −∇f (xk+1 ) + βk dk
k =k+1
O algoritmo de gradientes conjugados neste formato é aplicado apenas para
funções quadráticas.
A.3.2
O Teorema de Karush-Kuhn-Tucker
O objetivo desta seção é apresentar as condições de otimalidade ou sejam, as
condições de KKT (Karush-Kuhn-Tucker), para o problema geral de otimização, que
consiste em
minimizar
f (x)
(A.5)
sujeito a g(x) ≤ 0
h(x) = 0,
onde f : IRn → IR, g : IRn → IRp e h : IRn → IRm são funções continuamente diferenciáveis.
O problema (A.5) é o problema (A.2) em que o conjunto viável é dado por
Ω = {x ∈ IRn | g(x) ≤ 0, h(x) = 0}.
Definição A.12 [12, pag. 97] Seja x ∈ Ω. Uma restrição de desigualdade gi é dita ativa
em x, se gi (x) = 0. Caso gi (x) < 0, diz-se que gi é inativa em x.
Denota-se por A(x) o conjunto de ı́ndices das restrições de desigualdade ativas em um
ponto viável x, isto é,
A(x) = {i | gi (x) = 0}.
Apêndice
50
Teorema A.13 (KKT) Seja x∗ ∈ Ω um minimizador local do problema (A.5) e suponha
que o conjunto dos gradientes das restrições de desigualdade ativas e das restrições de
igualdade são linearmente independentes, isto é, {∇gi (x∗ )}i∈A(x∗ ) ∪ {∇hj (x∗ )}j∈{1,...,m} é
LI. Então existem µ∗ ∈ IRp e λ∗ ∈ IRm tais que
∗
−∇f (x ) =
p
X
µ∗i ∇gi (x∗ )
i=1
+
m
X
λ∗j ∇hi (x∗ ),
j=1
µ∗i ≥ 0, i = 1, ..., p,
µ∗i gi (x∗ ) = 0, i = 1, ..., p.
Demonstração. [19, Teo. 12.1]
Os vetores λ∗ e µ∗ são chamados de multiplicadores de Lagrange.
Note que, o resultado do teorema diz que o oposto do gradiente da função objetivo
pode ser expresso pela combinação linear dos gradientes das restrições do problema.
Interpretação geométrica
Para representar geometricamente o que o teorema de KKT afirma, considere o
seguinte problema
minimizar f (x) = (x1 − 2)2 + (x2 − 1)2
sujeito a g1 (x) = x1 + x2 − 2 ≤ 0
g2 (x) = x21 − x2 ≤ 0
x1 ≥ 0
x2 ≥ 0,
onde f : IR2 → IR, g1 : IR2 → IR e g2 : IR2 → IR.
(A.6)
!
1
Primeiramente note que o ponto x∗ =
é solução global do problema.
1
Na figura abaixo, estão representados algumas curvas de nı́vel da função, o conjunto viável e a solução x∗ .
Apêndice
51
Figura A.1: Ilustração do problema (A.6).
1
1
! Na figura abaixo, estão representados os gradientes das restrições ativas no ponto
e o oposto do gradiente da função objetivo.
Figura A.2: Ilustração da relação dos gradientes do problema (A.6).
2
−1
Algebricamente tem-se que ∇f (x∗ ) =
!
−2
0
!
, ∇g1 (x∗ ) =
1
1
!
, ∇g2 (x∗ ) =
. Assim
2
2
−∇f (x∗ ) = ∇g1 (x∗ ) + ∇g2 (x∗ ),
3
3
ou seja, o oposto do gradiente da função objetivo no ponto x∗ é combinação linear, com
coeficientes µ = λ = 32 , dos gradientes das restrições no ponto x∗ .
Apêndice B
Códigos em Matlab
52
Cálculo dos Pontos de Colocação e pesos de Quadratura
function [x,w]=pontos_lgr_w(n)
%========================================================================
% Karla Arsie - 2012
% Calcula os n pontos LGR como raizes de P_{n-1}(x)+P_{n}(x).
% Polinomio de Legendre P_n = P(:,n+1)
%
% Foi baseado no programa disponivel em:
% http://www.mathworks.com/matlabcentral/fileexchange/4775-legende-gausslobatto-nodes-and-weights/content/lglnodes.m.
% conforme descricao abaixo e na referencia
%
F. B. Hildebrand , "Introduction to Numerical Analysis," Section 8.11
%
Dover 1987
%========================================================================
% lglnodes.m
%
% Computes the Legendre-Gauss-Lobatto nodes, weights and the LGL Vandermonde
% matrix. The LGL nodes are the zeros of (1-x^2)*P'_N(x). Useful for numerical
% integration and spectral methods.
%
% Reference on LGL nodes and weights:
%
C. Canuto, M. Y. Hussaini, A. Quarteroni, T. A. Tang, "Spectral Methods
%
in Fluid Dynamics," Section 2.3. Springer-Verlag 1987
%
% Written by Greg von Winckel - 04/17/2004
% Contact: [email protected]
%
% Truncation + 1
% N1=n;
% N=n-1;
N1=n;
N=n-1;
%Ponto inicial para pontos LGR
x=-cos(2*pi*(0:N)/(2*N+1))';
% Matriz de Vandermonde
P=zeros(N1,N1+1);
% Encontra P_(N), utilizando a relação de recorrencia
% Calcula suas derivadas de primeira e segunda ordem
% X: atualização usando o método de Newton-Raphson
xold=2;
free=2:N1;
while max(abs(x-xold))> eps
xold=x;
P(1,:)=(-1).^(0:N1);
P(free,1)=1;
P(free,2)=x(free);
53
Apêndice
54
for k=2:N1
P(free,k+1)=( (2*k-1)*x(free).*P(free,k)-(k-1)*P(free,k-1) )/k;
end
x(free)=xold(free)-((1-xold(free))/N1).*(P(free,N1)+P(free,N1+1))...
./(P(free,N1)-P(free,N1+1));
end
P=P(1:N1,1:N1);
% Calculo dos pesos
w=zeros(N1,1);
w(1)=2/N1^2;
w(free)=(1-x(free))./(N1*P(free,N1)).^2;
Apêndice
55
Matriz de Diferenciação
function D=matriz_dif(n,x)
%============================================================
% Karla, Miguel, Elizabeth
% 2012
% Fornece a matriz de diferenciacao
% Adaptacao do programa legsrddiff escrito por Wang Li-Lian disponivel em:
% http://www1.spms.ntu.edu.sg/~lilian/bookcodes/legen/legsrddiff.m
%=============================================================
% D=legsrddiff(n,x) returns the first-order differentiation matrix of size
% n by n, associated with the Legendre-Gauss-Radau points x, which may be
%computed by
% x=legsrd(n). Note: x(1)=-1.
% See Page 110 of the book: J. Shen, T. Tang and L. Wang, Spectral Methods:
% Algorithms, Analysis and Applications, Springer Series in Compuational
% Mathematics, 41, Springer, 2011.
% Use the function: lepoly()
% Last modified on August 31, 2011
%=============================================================
if n==0, D=[]; return; end;
xx=x; nx=size(x);
% Encontra L_{n-1}+L_n e sua derivada de primeira ordem
[dy1,y1]=lepoly(n-1,xx); [dy2,y2]=lepoly(n,xx); dy=dy1+dy2; y=y1+y2;
if nx(2)>nx(1), y=y'; dy=dy'; xx=x'; end; %% y é o vetor coluna de L_{n-1}(x_k)
D=(xx./dy)*dy'-(1./dy)*(xx.*dy)'; %% encontra dy(x_j) (x_k-x_j)/dy(x_k);
% 1/d_{kj} for k not= j (see (3.204))
D=D+eye(n);
% add a matriz identidade para que 1./D pode ser
% operada
D=1./D;
D=D-eye(n); xx=xx(2:end);
D=D+diag([-(n+1)*(n-1)/4; xx./(1-xx.^2)+ n*y1(2:end)./((1-xx.^2).*dy(2:end))]);
%atualiza as diagonais
return;
Apêndice
56
function [varargout]=lepoly(n,x)
% lepoly Legendre polynomial of degree n
% y=lepoly(n,x) is the Legendre polynomial
% The degree should be a nonnegative integer
% The argument x should be on the closed interval [-1,1];
% [dy,y]=lepoly(n,x) also returns the values of 1st-order
% derivative of the Legendre polynomial stored in dy
% Last modified on August 30, 2011
% Verified with the chart in http://keisan.casio.com/has10/SpecExec.cgi
if nargout==1,
if n==0, varargout{1}=ones(size(x)); return; end;
if n==1, varargout{1}=x; return; end;
polylst=ones(size(x)); poly=x;
% L_0(x)=1, L_1(x)=x
for k=2:n,
% Three-term recurrence relation:
polyn=((2*k-1)*x.*poly-(k-1)*polylst)/k;
% kL_k(x)=(2k-1)xL_{k-1}(x)-(k-1)L_{k-2}(x)
polylst=poly; poly=polyn;
end;
varargout{1}=polyn;
end;
if nargout==2,
if n==0, varargout{2}=ones(size(x)); varargout{1}=zeros(size(x));
return;
end;
if n==1, varargout{2}=x; varargout{1}=ones(size(x));
return;
end;
polylst=ones(size(x)); pderlst=zeros(size(x));poly=x; pder=ones(size(x));
% L_0=1, L_0'=0, L_1=x, L_1'=1
for k=2:n,
% Three-term recurrence relation:
polyn=((2*k-1)*x.*poly-(k-1)*polylst)/k;
% kL_k(x)=(2k-1)xL_{k-1}(x)-(k-1)L_{k-2}(x)
pdern=pderlst+(2*k-1)*poly; % L_k'(x)=L_{k-2}'(x)+(2k-1)L_{k-1}(x)
polylst=poly; poly=polyn;
pderlst=pder; pder=pdern;
end;
varargout{2}=polyn; varargout{1}=pdern;
end;
return
Apêndice
57
Solução Exata e pelo método Pseudoespectral do Problema do Exemplo 1
go_ex1
%=====================================================
% Dissertacao de Mestrado de Karla Arsie
% 17/08/2012
% Problema: maximizar -int_{0}^{5}(x^2(t)+u^2(t)) dt
%
sujeito dx/dt=x+u
%
x(0)=sqrt{2},x(5)=1
% Primeiro Exemplo do Capitulo 2 da dissertacao
%=====================================================
clear all
N=60; % Numero de pontos de colocacao
X1=sqrt(2); Xend=1; % Condicoes de contorno
% Solucao aproximada
[tau,VETORW]=pontos_lgr_w(N); % retorna os pontos de colocacao e os pesos da
discretizacao.
MATRIZD=matriz_dif(N,tau); %retorna matriz de diferenciacao
%ponto inicial
x0=X1*rand(N,1);
x0(1)=X1;
u0=rand(N,1);
xu0 = [x0;u0];
% Dados do problema para ser resolvido pelo quadprog nas variaveis
%(x1,..xN,u1,..uN)
xu0 = [x0;u0];
H=diag([VETORW;VETORW]);
f=zeros(2*N,1);
id=eye(N,N);
Aeq = [(2*MATRIZD/5-id) -id];
Beq =zeros(N,1);
% Limites apos varios testes ----------------LB = [X1;zeros(N-2,1);1;-inf*ones(N,1)];
UB = [X1;inf*ones(N-2,1);1;inf*ones(N,1)];
[xu,fval,EXITFLAG] = quadprog(H,f,[],[],Aeq,Beq,LB,UB,xu0);
x = [X1;xu(2:N);Xend];
u = xu(N+1:2*N);
Apêndice
58
% --------------------------------------------------------% Solucao exata
s=X1;
x0=s;
p0=(4*s-exp(5*s)*(2*s+4)-exp(-5*s)*(4-2*s))/(exp(5*s)-exp(-5*s));
x_exata=(exp(s*((5/2)*tau+5/2))*((1-exp(-5*s))/(exp(5*s)-exp(-5*s)))+ exp(s*((5/2)*tau+5/2))*(s-(1-exp(-5*s))/(exp(5*s)-exp(-5*s))))'; %no intervalo [-1,1]
y_exata=x_exata.^2;
p=(((s/2)*exp(s*((5/2)*tau+5/2))-(s/2)*exp(-s*((5/2)*tau+5/2)))*x0+(((2s)/(4))*exp(s*((5/2)*tau+5/2))+((2+s)/(4))*exp(-s*((5/2)*tau+5/2)))*p0)';
%no intervalo [-1,1]
u_exata=p/2;
% Graficos
%----------------------------------------------------------figure(1)
clf
axis([-1 5 -4 2])
%solucao exata
plot(tau,y_exata,'b-',tau,u_exata,'r-')
hold on
xlabel('\tau','fontsize',20)
% Solucao aproximada --------------------------------------plot([tau;1],x.*x,'^b')
plot(tau(1:N-1),u(1:N-1),'*r')
legend('y_{exato}','u_{exato}','y_{aprox}','u_{aprox}','Location','SouthEast')
%----------------------------------------------------------figure(2)
clf
axis([-1 5 -4 2])
%solucao exata
plot(tau,y_exata,'b-',tau,u_exata,'r-')
hold on
xlabel('\tau','fontsize',20)
% Solucao aproximada --------------------------------------plot([tau;1],x.*x,'^b')
plot(tau(1:N-1),u(1:N-1),'*r')
euler_ex1
legend('y_{exato}','u_{exato}','y_{aprox}','u_{aprox}','y_{Euler}',
'u_{Euler}','Location','SouthEast')
%-----------------------------------------------------------
% Erro na restricao
%ndifEx=norm(MATRIZD*y_exata-u_exata);
ndifAp=norm(2*MATRIZD/5*x(1:N)-x(1:N)-u);
fprintf(' %4d |
%7.3f | %2d \n',N,ndifAp,EXITFLAG)
Apêndice
59
Solução pelo método de Euler do Problema do Exemplo 1 - euler_ex1
%=======================================================
% Dissertacao de Mestrado de Karla Arsie
% 25/05/2012
% Problema: maximizar -int_{0}^{5}(x^2(t)+u^2(t)) dt
%
sujeito dx/dt=x+u
%
x(0)=sqrt{2},x(5)=1
% Primeiro Exemplo do Capitulo 2 da dissertacao
%resolvido pelo método de Euler
%=====================================================
n=N;
M=10^3;
h=5/(n-1);
[Q b c]=gra(n,X1);
% gera a quadratica a ser minimizada
% somando o termo M*(Xend-1)^2
beta=X1*(1+h)^(n-1)-Xend;
c=c+M*beta^2;
for i=1:n-1
b(i)=b(i)+2*M*beta*h*(1+h)^(n-i-1);
for j=1:n-1
Q(i,j)=Q(i,j)+2*M*h^2*(1+h)^(2*n-j-i-2);
end
end
u0=rand(n-1,1);
% Solucao aproximada Euler ---------------u_euler=GC(c,b,Q,u0); % usa Gradiente Conjugado para minimizacao
x_euler=zeros(n,1);
x_euler(1)=X1;
for k=2:n
x_euler(k)=(1+h)^(k-1)*X1;
for j=1:k-1
x_euler(k)=x_euler(k)+h*(1+h)^(k-j-1)*u_euler(j);
end
end
y_euler=x_euler.^2; % plotado y=x^2
t=-1:2/(N-1):1;t=t';
plot(t,y_euler,'og','linewidth',2)
plot(t(1:N-1),u_euler,'dk','linewidth',2)
Apêndice
Funções Auxiliares
function [Q b c]=gra(n,x1)
%Gera c,b e Q da função J=1/2sum(xk^2+uk^2)=c+b^Tu+u^TQu/2;
v=zeros(n,n-1);
for i=1:n-1
for j=i+1:n
v(j,i)=1;
end
end
%encontrar c
c=zeros(n-1,1);
h=1/(n-1);
h=5*h;
s=0;
x1=sqrt(2);
for k=1:n-1
s=s+(1+h)^(2*k-2)*x1^2;
end
c=h/2*s;
%encontrar b
z=zeros(n-1,n);
for k=2:n-1
for i=1:k-1
z(i,k)=h^2*(1+h)^(2*k-i-2)*x1;
end
end
for i=1:n-1
s=0;
for k=1:n
s=s+z(i,k)*v(k,i);
end
b(i)=s;
end
b=b';
%encontrar Q
w=zeros(n-1,n-1,n);
for k=2:n-1
for i=1:k-1
for j=1:k-1
w(i,j,k)=h^3*(1+h)^(2*k-i-j-2);
end
end
end
60
Apêndice
61
for i=1:n-1
for j=1:n-1
s=0;
if i==j
for k=1:n
s=s+w(i,i,k)*v(k,i);
end
s=s+h;
elseif i>j
for k=1:n
s=s+w(i,j,k)*v(k,i);
end
else
for k=1:n
s=s+w(i,j,k)*v(k,j);
end
end
Q(i,j)=s;
end
end
end
Apêndice
62
% Gradiente Conjugado
% função quadratica f(x)=c+bx+x'Qx/2
function x=GC(c,b,Q,x0);
x=x0;
n=length(x0)+1; % dimensao do problema.
gradfx=b+Q*x;
fx=c+b'*x+x'*Q*x/2;
d=-gradfx; % direcao d0
ngradf=norm(gradfx); % norma do grad
k=1;
kmax=3*n; %n;
epsilon=1e-6;
while (ngradf>=epsilon) & (k<=kmax)
Qd=Q*d;
dQd=d'*Qd;
alfa=-(d'*gradfx)/dQd;
x=x+alfa*d;
gradfx=b+Q*x;
ngradf=norm(gradfx);
fx=c+b'*x+x'*Q*x/2;
beta=(d'*Q*gradfx)/dQd;
d=-gradfx+beta*d;
if k>n
d=-gradfx;
end
k=k+1;
end
if ngradf>epsilon | k>=kmax
disp('GC - Nao resolveu')
fprintf('norma do gradiente:
pause(0.1)
end
%12f
\n',ngradf)
Apêndice
63
Solução pelo método Pseudoespectral do Problema do Exemplo 2 - go_ex2
%===========================================================
% Dissertacao de Mestrado de Karla Arsie
% 10/03/2013
% Problema: minimizar int_{0}^{1}(u^2(t)-y^3(t)) dt
%
sujeito dy/dt=yu
%
y(0)=1,y(1)=1
%
-1=<u(t)=<0
% Primeiro Exemplo Nao linear do Capitulo 2 da dissertacao
%==========================================================
clear all
global VETORW MATRIZD Y1 Yend
N=60; % numero de pontos de colocacao
Y1=1; Yend=1; % Condicoes de contorno
% Solucao aproximada
[tau,VETORW]=pontos_lgr_w(N); % pontos de colocacao e pesos da discretizacao
MATRIZD=matriz_dif(N,tau)/2; %retorna matriz de diferenciacao
%ponto inicial
y0=Y1*rand(N,1);
y0(1)=Y1;
u0=rand(N,1);
yu0 = [y0;u0];
% Dados do problema para ser resolvido pelo fmincon
A = [];
B = [];
Aeq = [];
Beq = [];
LB = [ones(N,1);-ones(N,1)];
UB = [Inf*ones(N,1);zeros(N,1)];
% Resolucao pelo fmincon
OPTIONS = OPTIMSET('Display','iter','GradObj','on');
[yu,fval,EXITFLAG] = FMINCON(@(yu0) funcao_ex2(yu0),yu0,A,B,Aeq,Beq,LB,UB,@(yu0)
nonlin_ex2(yu0),OPTIONS);
y = [Y1;yu(2:N);Yend];
u = yu(N+1:2*N);
%plota graficos da solucao aproximada
figure(3)
hold on
plot([tau;1],y,'^b')
plot(tau,u,'*r')
legend('y','u',4)
xlabel('\tau','fontsize',16)
Apêndice
64
function [J,grad_J]=my_functional_J(YU0)
%gera a funcao a ser minimziada
global VETORW MATRIZD Y1 Yend
n0 = (length(YU0))/2; % assumed to be n
Y0 = YU0(1:n0); % size n
U0 = YU0(n0+1:2*n0); % size n
J=VETORW'*(Y0.^3+U0.^2);
grad_J =[3*(Y0.^2).*VETORW;2*U0.*VETORW];
end
function [c,ceq]=nonlin(YU0) %gera as restricoes do problema
global VETORW MATRIZD Y1 Yend
% YU0 is [y(2:n-1),u]
c=[];
n0 = length(YU0)/2; % assumed to be n
Y0 = max(0,YU0(1:n0));
%evitar Y <0 % size n
%SY0 = diag(sqrt(Y0)); % size n x n
U0 = YU0(n0+1:2*n0); % size n
ceq = MATRIZD*Y0 - Y0.* U0; % size n
end
Apêndice
65
Solução pelo método Pseudoespectral do Problema do Exemplo 3 - go_ex3
%==========================================================================
% go_ex3
% Segundo Exemplo - Problema nao linear
% Referencia: J. L. Troutman. Variational Calculus and Optimal Control:
% Optimization with Elementary Convexity. Springer-Verlag, New York, 1996.
% Solucao exata com t in [0,2]: y(t) =1-t se t<=1, 0 c.c.
%
u(t)=1 se t<=1, 0 c.c.
% Solucao exata com tau in [-1,1]: y(tau) = -tau se tau <= 0, 0 c.c.
%
u(tau) = 1 se tau <= 0, 0 c.c.
% Dissertacao de Mestrado - Karla Arsie
% Marco/2013
%==========================================================================
clear all
N=60; % Numero de pontos de colocacao
Y1=1; Yend=0;% Condicoes de contorno
% Solucao aproximada
[tau,VETORW]=pontos_lgr_w(N); % retorna os pontos de colocacao
%e os pesos da discretizacao
MATRIZD=matriz_dif(N,tau); % retorna a matriz de diferenciacao
%ponto inicial
y0=[Y1*rand(N,1);Yend];
y0(1)=Y1;
u0=rand(N,1);
% Dados do problema para ser resolvido pelo quadprog nas variaveis
(y1,..yN,y{N+1},u1,..uN)
yu0 = [y0;u0];
H=2*diag([VETORW;1;zeros(N,1)]);
f=zeros(2*N+1,1);
Aeq = [MATRIZD zeros(N,1) -eye(N,N)];
Beq =zeros(N,1);
LB = [1;-inf*ones(N,1);-ones(N,1)];
UB = [1;inf*ones(N,1);ones(N,1)];
% Resolucao pelo quadprog
OPTIONS = OPTIMSET('Algorithm','interior-point-convex',
'Display','iter','GradObj','on');
yu = quadprog(H,f,[],[],Aeq,Beq,LB,UB,yu0,OPTIONS);
y = [Y1;yu(2:N);Yend];
u = yu(N+2:end);
Apêndice
%plota graficos para comparar solucao exata e solucao aproximada
figure(1);
clf
% Solucao Exata
plot([-1 0 1],[1 0 0],'b-','linewidth',2)
hold on
plot([-1 0],[-1 -1],'r-','linewidth',2)
plot([tau;1],y,'^b')
plot(tau,u,'*r')
axis([-1 1 -1 1])
xlabel('\tau','fontsize',24)
grid on
legend('y_{exato}','u_{exato}','y_{aprox}','u_{aprox}',4)
plot([0 1],[0 0],'r-')
plot([tau;1],y,'^b')
% Solucao exata nos pontos de colocacao para analise do erro
y_exata=-tau.*(tau<=0);
u_exata=-(tau<=0);
66
Referências Bibliográficas
[1] D. N. Arnold. A concise introduction to numerical analysis. School of Mathematics,
University of Minnesota, 1991.
[2] D. Benson. A gauss pseudospectral transcription for optimal control. Technical
report, Massachusetts Institute of Technology, 2005.
[3] J. T. Betts. Survey of numerical methods for trajectory optimization. Technical
report, Journal of Guidance, Control and Dynamics, Washington, Março-Abril 1998.
[4] J. T. Betts. Practical Methods for Optimal Control and Estimation Using Nonlinear
Programming. Society for Industrial & Applied Mathematics; 2nd edition, Washington, 2009.
[5] G.A. Bliss. The problem of Bolza in the calculus of variations. Annals of Mathematics(2), 33:261–274, 1932.
[6] M. L. Boas. Mathematical Methods in the Physical Sciences. John Wiley and Sons,
New York, 1983.
[7] C. Canuto, M. Y. Hussaini, A. Quarteroni, and T. A. Tang. Spectral Methods in
Fluid Dynamics. Springer-Verlag, 1987.
[8] D. Garg e A.V. Rao C.L. Darby. Costate estimation using multiple-interval pseudospectral methods. Journal of spacecraft and rockets, 48(5), 2011.
[9] P. J. Davis and P. Rabinowitz. Methods of Numerical Integration. Dover Publications,
INC, New York, 2a edition, 1984.
[10] C. I. Doering and A. O. Lopes. Equações Diferenciais Ordinárias. IMPA, Rio de
Janeiro, RJ, 2005.
[11] J. Baumeister e A. Leitão. Introdução à teoria de controle e programação dinâmica.
Instituto de Matemática Pura e Aplicada, Rio de Janeiro, Brasil, 1nd edition, 2008.
[12] A. A. Ribeiro e E. W. Karas. Um curso de Otimização. Cengage Learning, 2013. A
aparecer.
67
Referências Bibliográficas
68
[13] S. Islam e G. Saha. Applications of gauss-radau and gauss-lobatto numerical integrations over a four node quadrilateral finite element. Bangladesh J. Sci. Ind. Res.,
43(3):377–386, 2008.
[14] F. Fahroo e I. M. Ross. Pseudospectral methods for infinite-horizon nonlinear optimal
control problems. Journal of Guidance, Control, and Dynamics,, 31:927–936, 2008.
[15] S. Kameswaran e I. T. Biegler. Convergence rates for direct transcription of optimal
control problems using collocation at radau points. Computational Optimization and
Applications, 41:81–126, 2008.
[16] B. A. Finlayson e L. E. Scriven. The method of weighted residuals - a review. Applied
Mechanics Reviews, 19(9):735–748, 1966.
[17] O. Stryk e R. Bulirsch. Direct and indirect methods for trajectory optimization.
Annals of Operations Research, 37:357–373, 1992.
[18] N. Barron e R. Jensen. The pontryagin maximum principle from dynamic programming and viscosity solutions to first-order partial differential equations. Trans. Amer.
Math. Soc., 298:635–641, 1986.
[19] J. Nocedal e S. J. Wright. Numerical Optimization. Springer-Verlag, Springer Series
in Operations Research, USA, 2nd edition, 2006.
[20] F. Lewis e V. Syrmos. Optimal Control. John Wiley & Sons, INC, 3nd, New Jersey,
USA, 1995.
[21] M. Kazemi e M. Razzaghi G. Elnagar. The pseudospectral legendre method for
discretizing optimal control problems. IEEE Transactions on Automatic Control,
40:1793–1796, 1995.
[22] D. Garg, M. A. Patterson, C. Francolin, C. L. Darby, G. T. Huntington, W. W. Hager,
and A. V. Rao. Direct trajectory optimization and costate estimation of finite-horizon
and infinite-horizon optimal control problems using a Radau pseudospectral method.
Comput. Optim. Appl., 49:335–358, 2011.
[23] F. B. Hildebrand. Introduction to Numerical Analysis. Dover Publications, Dover,
2a edition, 1987.
[24] D. Kraft. On converting optimal control problems into nonlinear programming codes.
NATO ASI Series, Computational Mathematical Programming, ed. K. Schittkowski,
Springer, F15:261–280, 1985.
[25] S. J. Leon. Álgebra linear com Aplicações. Editora S.A., Rio de Janeiro, Brasil, 4nd
edition, 1998.
Referências Bibliográficas
69
[26] E. L. Lima. Curso de Análise volume 2. Instituto de Matemática Pura e Aplicada,
Rio de Janeiro, Brasil, 1981.
[27] A. Quarteroni, R. Sacco, and F. Saleri. Numerical Mathematics. Springer, New York,
2000.
[28] J. Stoer e K. H. Well (eds.) R. Bulirsch, A. Miele. Optimal control - calculus of
variations, optimal control theory and numerical methods. International Series of
Numerical Mathematics, 111:129–143, 1993.
[29] F. A. Silva. Sistemas de equações diferenciais e exponencial de matrizes. Cadernos
PET - Matemática, 1:169–195, 2007.
[30] J. Sotomayor. Lições de Equações Diferenciais. Projeto Euclides, IMPA, Rio de
Janeiro, Brasil, 1979.
[31] J. L. Troutman. Variational Calculus and Optimal Control: Optimization with Elementary Convexity. Springer-Verlag, New York, 1996.
[32] G.
V.
Winckel.
Código
em
Matlab.
Disponı́vel
http://www.mathworks.com/matlabcentral/fileexchange/4775-legende-gausslobatto-nodes-and-weights/content/lglnodes.m, consultado em junho de 2012.
em

Documentos relacionados