Escolar Documentos
Profissional Documentos
Cultura Documentos
···
Apontamentos de aulas
···
José Matos
I Métodos Numéricos 5
1 Definições e Conceitos 7
1.1 Erros e Aproximações . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Cálculo Numérico . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Aproximação de Taylor . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Erros na representação de números reais . . . . . . . . . . . . . . 14
1.5 Erros: definições elementares . . . . . . . . . . . . . . . . . . . . 19
1.6 Problema fundamental da Teoria dos Erros . . . . . . . . . . . . . 20
1.6.1 Erro na avaliação de funções . . . . . . . . . . . . . . . . 21
1.6.2 Erro na avaliação de funções de duas ou mais variáveis . . 22
1.6.3 Problema Inverso da Teoria dos Erros . . . . . . . . . . . 23
2 Interpolação Polinomial 25
2.1 Fórmula Interpoladora de Newton . . . . . . . . . . . . . . . . . 26
2.2 Interpolação de Hermite . . . . . . . . . . . . . . . . . . . . . . 30
2.3 Interpolação Parcelar . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4 Interpolação com Splines . . . . . . . . . . . . . . . . . . . . . . 37
4 Resolução de Equações 51
4.1 Método das Bissecções Sucessivas . . . . . . . . . . . . . . . . . 53
4.2 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3 Eficiência dos métodos iterativos . . . . . . . . . . . . . . . . . . 57
4.4 Métodos da Secante, Falsa posição e Whittaker . . . . . . . . . . 59
3
4 CONTEÚDO
II Programação Linear 83
7 Formulação de problemas 85
7.1 Conceitos Fundamentais . . . . . . . . . . . . . . . . . . . . . . 85
7.2 Formulação de problemas . . . . . . . . . . . . . . . . . . . . . . 87
8 Programação Linear 91
8.1 Forma Canónica . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.2 Resolução Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . 94
8.3 Propriedades do conjunto de soluções admissíveis . . . . . . . . . 96
8.4 Algoritmo Simplex . . . . . . . . . . . . . . . . . . . . . . . . . 98
8.4.1 Teste de optimalidade . . . . . . . . . . . . . . . . . . . 98
8.4.2 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . 99
8.4.3 Determinação de uma sba inicial . . . . . . . . . . . . . . 102
8.5 Formulação Matricial do Simplex . . . . . . . . . . . . . . . . . 109
10 Dualidade 123
10.1 Definições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
10.2 Algoritmo Simplex Dual . . . . . . . . . . . . . . . . . . . . . . 126
Métodos Numéricos
5
Capítulo 1
Definições e Conceitos
7
8 CAPÍTULO 1. DEFINIÇÕES E CONCEITOS
cálculo automático, até há poucos anos praticamente insuspeita. Desta área pode
destacar-se, porque de utilização diária, as previsões meteorológicas e a utilização
de motores de busca na internet.
Uma grande vantagem do motor de busca Google, consiste na utilização de
uma ordenação dos apontadores com base numa medida da expectativa (ou da
probabilidade) de que cada uma das páginas respectivas seja do interesse do utili-
zador. Esta medida, designada pelos seus criadores (Larry Page e Sergey Brin, en-
quanto estudantes de doutoramento em Stanford, fundadores da Google em 1998)
por PageRank, é calculada com base na resolução de um sistema de equações
lineares, envolvendo uma matriz n × n que representa as hiperligações entre as
páginas da Web. Naturalmente, esta matriz não é fixa, variando no tempo com
o conteúdo da rede e variando a dimensão n com o crescimento do número de
página na Internet. A título de curiosidade refira-se que em Janeiro de 2005 esta
matriz tinha dimensão n ≈ 8 × 109 e em Agosto de 2009 já tinha crescido para
n ≈ 1011 .
Erros nos dados se os dados numéricos do problema são entidades físicas medi-
das, necessariamente aproximadas;
Erros nas fórmulas quando se tomam fórmulas aproximadas, por exemplo, quando
se toma um número finito de termos do desenvolvimento em série de uma
função;
Quanto aos erros nos dados numéricos de um problema, uma vez que as
questões relacionadas com a sua origem, existência, eventual redução e estima-
ção/medição, não são problemas da Análise Numérica, só nos resta estudar a sua
influência no resultados das operações numéricas a efectuar. Este problema, vul-
garmente designado por problema directo da Teoria dos Erros, será tratado na
secção seguinte.
1.3. APROXIMAÇÃO DE TAYLOR 9
Sendo n um inteiro tão grande quanto se queira, supondo que f (x) admite em
x0 derivadas de qualquer ordem, obtemos no limite o desenvolvimento em Série
de Taylor, da função f (x) com centro em x0 ,
∞
1
f (x) ∼ ∑ k! (x − x0 )k f (k) (x0 ).
k=0
f (x) ≈ Tn (x)
>> f =sin(x)
>> t5=taylor(f)
>> l=linspace(-4,4)
>> fl=subs(f,l)
>> tl=subs(t5,l)
>> plot(l,fl,’r’,l,tl,’--’)
>> grid on
>> legend(’f’, ’t5’)
>> title(’f=sen(x), t5=x-1/6*x^3+1/120*x^5’)
3 5
f=sen(x), t5=x−1/6*x +1/120*x
2
f
t5
1.5
0.5
−0.5
−1
−1.5
−2
−4 −3 −2 −1 0 1 2 3 4
Tal como foi referido, obtida uma aproximação para f (x), importa estudar o
erro com que Tn (x) aproxima o valor exacto f (x). O teorema seguinte fornece um
resultado que, em alguns casos, permite calcular majorantes deste erro.
12 CAPÍTULO 1. DEFINIÇÕES E CONCEITOS
Teorema 1 (Resto de Taylor) Seja f (x) uma função contínua e com pelo menos
n + 1 derivadas contínuas em I = [a, b], então para cada x0 ∈ I,
1
f (x) = Tn (x) + (x − x0 )n+1 f (n+1) (c), x ∈ I
(n + 1)!
1
f (x) − Tn (x) = (x − x0 )n+1 f (n+1) (c) ≡ ET (x)
(n + 1)!
com que a soma dos n+1 primeiros termos representa a soma da série, designa-se
por erro de truncatura
Uma vez que o teorema anterior não fornece qualquer forma de calcular o
valor c ∈ [x0 , x], o erro de truncatura também não pode ser calculado, pelo menos
de forma exacta. Nas aplicações práticas, dependendo da segurança pretendida no
cálculo do erro, geralmente associada à responsabilidade do exercício, podemos
proceder de diversas formas:
obtemos
Mn+1
| f (x) − Tn (x)| = |ET (x)| ≤ |x − x0 |n+1
(n + 1)!
>> d7f=diff(f,7)
>> x0=0
>> d7f0=subs(d7f,x0)
>> ErroAprox=(xx-x0)^7*d7f0/factorial(7)
ErroAprox =
1.6561e-005
Este resultado indica que T6 (−1) aproxima f (−1) com um erro de cerca de
2 × 10−5 , isto é neste caso, atendendo aos valores calculados, o resultado
da aproximação da função deve aproximar-se a 5 casas decimais, f (−1) ≈
1.16958
2. A função linspace permite discretizar o intervalo [x, x0] em abcissas igual-
mente espaçadas. Nas instruções seguintes, o valor M7 é aproximado com
base no máximo dos valores da função | f (7) (x)| em 102 , 103 e 104 abcissas
do intervalo
14 CAPÍTULO 1. DEFINIÇÕES E CONCEITOS
>> l=linspace(xx,x0)
>> M7=max(abs(subs(d7f,l)))
M7 =
0.09703173011019
>> l=linspace(xx,x0,10^3)
>> M7=max(abs(subs(d7f,l)))
M7 =
0.09703626151753
>> l=linspace(xx,x0,10^4)
>> M7=max(abs(subs(d7f,l)))
M7 =
0.09703627210133
pelo que podemos supor que o valor M7 . 0.097 e este valor pode utilizar-
se para calcular o majorante do erro
>> ErroMax=abs(xx-x0)^7*M7/factorial(7)
ErroMax =
1.9253e-005
Este resultado mostra que T6 (−1) aproxima f (−1) com um erro menor do
que 2 × 10−5 , isto é, podemos escrever
significando que
f (−1) ∈ [1.16956, 1.16960]
Generalizando
Exemplos
base representação dígitos
b=2 binária di ∈ {0, 1}
b = 10 decimal di ∈ {0, 1, . . ., 9}
b = 16 hexadecimal di ∈ {0, 1, . . ., 9, A, B,C, D, E, F}
x = ±m × bt
isto é
b−1 ≤ m ≤ (b − 1)(b−1 + b−2 + · · · + b−p )
Os dígitos da representação de um número em notação científica designam-se
por algarismos significativos, segundo a seguinte definição
Definição 6 Ao menor valor ε > 0 tal que 1 + ε > 1 chama-se epsilon da má-
quina.
verifica-se que
1 − b−p
m ≤ (b − 1)b−1(1 + b−1 + · · · + b−p+1 ) = (1 − b−1 ) = 1 − b−p
1 − b−1
Para os expoentes
obtemos
|t| ≤ (b − 1) + (b − 1) × b + (b − 1) × b2 + · · · + (b − 1) × bq−1 = bq − 1
com
1 ≤ d−1 ≤ 9, 0 ≤ d−2 , . . ., d−6 ≤ 9, 0 ≤ t1 ,t0 ≤ 9
isto é
10−1 ≤ m ≤ 1 − 10−6 = 0, 999999 e |t| ≤ 102 − 1 = 99
1.4. ERROS NA REPRESENTAÇÃO DE NÚMEROS REAIS 17
Este resultado pode traduzir-se, para base decimal, dizendo que o cálculo em dupla
precisão tem uma precisão relativa de 16 casas decimais ou uma precisão de 16
algarismos significativos.
Algumas versões do programa M ATLAB admitem aritmética de precisão sim-
ples, ou até outros tipos de aritmética, mas por defeito, a aritmética utilizada cor-
responde à dupla precisão da norma IEEE 754. O M ATLAB tem uma palavra
reservada para guardar a constante ε
>> eps
ans =
2.2204e-016
Este resultado, não deve confundir-se com o facto de o M ATLAB possuir diver-
sos formatos de representação dos resultados. Isto é, a representação dos números
e a precisão da aritmética é sempre em dupla precisão, apesar de a apresentação
do resultado poder assumir diversos formatos. Os comandos seguintes permitem
visualizar o mesmo resultado em formatos distintos.
Truncatura e Arredondamento
A tentativa de representar números reais com expoente superior a bq − 1 pro-
duz o resultado de "overflow"e expoentes inferiores a 1 − bq produz "underflow".
Números reais cuja mantissa tem mais do que p dígitos não são representáveis
de forma exacta e terão de representar-se de forma aproximada. Existem duas
formas de obter a representação aproximada de um número real
Truncatura desprezam-se os dígitos que não cabem na mantissa
Arredondamento o número real x é representado pelo número do sistema FP(b,
p, q) que lhe está mais próximo
Exemplos
Arredondamento
, 26735 , 2674
, 26765 , 2676
, 26765007 , 2677
Verificada a existência de erros nos resultados obtidos por métodos numéricos,
uma vez que não os podemos evitar, importa estudar formas de os medir, estimar,
interpretar, comparar e eventualmente controlar e minimizar. Este objectivo está
presente ao longo de todos os capítulos deste texto.
Resolvendo em ordem a x,
x0 − ∆ ≤ x ≤ x0 + ∆
ou
x ∈ [x0 − ∆, x0 + ∆]
Concluímos que conhecer um valor aproximado de x e um majorante do erro ab-
soluto equivale a conhecer um intervalo que contém o valor exacto. É vulgar
representar-se este resultado na forma
x = x0 ± ∆
|x| ≪ |y|
Definição 9 Ao número
x0 f ′ (x0 )
cond f (x0 ) = | |
f (x0 )
chama-se número de condição de f (x0 ). Se cond f (x0 ) é um número grande, a
função diz-se mal condicionada em x0 , se pelo contrário cond f (x0 ) é um número
pequeno, a função diz-se bem condicionada em x0 .
No exemplo anterior
>> condfx0=abs(x0*dfx0/f0)
condfx0 =
1.2869
>> deltax=Deltax/abs(x0)
deltax =
0.0035
>> deltay=condfx0*deltax
deltay =
0.0045
Desta definição resulta que se uma função é bem condicionada num ponto
então a pequenas perturbações no ponto correspondem pequenas perturbações no
valor da função. Se, pelo contrário, uma função é mal condicionada num ponto
então a pequenas perturbações no ponto correspondem grandes perturbações no
valor da função.
Esta noção de condicionamento, que mais tarde iremos generalizar a outros
problemas numéricos, constitui uma característica intrínseca do problema, neste
caso o da avaliação de uma dada função num ponto específico. Uma noção dis-
tinta, e que devido à analogia das definições, por vezes é confundida com esta, é a
da propagação dos erros introduzida pelo método numérico utilizado para resolver
o problema. A esta propagação dos erros, associamos a noção de estabilidade do
método, segundo a definição seguinte.
Definição 10 Um método numérico diz-se estável se a pequenos erros nos dados
correspondem pequenos erros no resultado calculado. Se, pelo contrário, a pe-
quenos erros nos dados correspondem grandes erros no resultado, diz-se que o
método é instável.
ao tomarmos
(0) (0)
y0 = f (x1 , . . ., xn )
para valor aproximado de
y = f (x1 , . . . , xn )
cometemos o erro ∆y = |y−y0 |. Se os valores ∆xi forem suficientemente pequenos
e se a função f for suficientemente regular, nomeadamente se existirem e forem
(0) (0) ∂f
contínuas em x0 = (x1 , . . . , xn ) as derivadas parciais ∂xi
então, da fórmula de
x0
Taylor para funções de n variáveis
(0) (0) (0) ∂f (0) ∂f
f (x1 , . . . , xn ) ≈ f (x1 , . . ., xn ) + (x1 − x1 ) + · · · + (xn − xn )
∂x1 x0 ∂xn x0
ou
n
∂f
y − y0 ≈ ∑ (xi − xi )
(0)
i=1 ∂xi x0
logo
n
∂f
|y − y0 | ≤ ∑ |xi − xi | × |
(0)
|
i=1 ∂xi x0
ou
n
∂f
∆y = ∑ ∆xi
i=1 ∂xi x0
Isto é, temos que resolver uma inequação com n incógnitas, o que constitui um
problema indeterminado. Diversas estratégias podem adoptar-se afim de se obter
um problema com solução única, sendo a mais geralmente aplicada em problemas
práticos a que consiste em impor que cada uma das n variáveis tenha a mesma
contribuição para o erro total, i.e., o designado
∂f ∂f
∆x1 = · · · = ∆xn
∂x1 x0 ∂xn x0
∂f
Logo, supondo que ∂xi x 6= 0, i = 1 : n, obtemos para o sistema de n inequações,
0
a solução
ε
∆xi ≤ , i=1:n
∂f
n ∂xi x
0
Capítulo 2
Interpolação Polinomial
F(xi ) = f (xi ), i = 0 : n
Pn (xi ) = yi , i = 0 : n
25
26 CAPÍTULO 2. INTERPOLAÇÃO POLINOMIAL
Polinomio Interpolador
3.5
2.5
1.5
0.5
−0.5
−1
Pn (x) = a0 +a1 (x−x0 ) +a2 (x−x0 )(x−x1 ) +· · ·+an (x−x0 )(x−x1 ) · · ·(x−xn−1 )
i.e.
f0 = a0
f1 = a0 + a1 (x1 − x0 )
f2 = a0 + a1 (x2 − x0 ) + a2 (x2 − x0 )(x2 − x1 )
..
.
f
n = a0 + a1 (xn − x0 ) + a2 (xn − x0 )(xn − x1 ) + · · · + an (xn − x0 )(xn − x1 ) · · · (xn − xn−1 )
Sistema triangular inferior, regular uma vez que sendo distintas as abcissas
então são não nulos os factores xi − x j , i 6= j.
Resolvido o sistema por substituição para a frente, obtemos
a0 = f 0
− f0
a1 = xf11 −x 0
então
a1 = f [x0 , x1 ]
e
f2 − a0 − a1 (x2 − x0 )
a2 =
(x2 − x0 )(x2 − x1 )
f2 − f1 + f1 − f0 f1 − f0
= −
(x2 − x0 )(x2 − x1 ) (x1 − x0 )(x2 − x1 )
1 f2 − f1 f1 − f0
= ( − )
x2 − x0 x2 − x1 x1 − x0
f [x1 , x2 ] − f [x0 , x1 ]
=
x2 − x0
Definindo Diferenças Divididas de ordem 2 como
então
a2 = f [x0 , x1 , x2 ]
Mais geralmente, definindo por recorrência Diferenças Divididas de ordem
k como
28 CAPÍTULO 2. INTERPOLAÇÃO POLINOMIAL
Pn (x) = f0 + (x − x0 )×
{ f [x0 , x1 ] + (x − x1 ) {· · · { f [x0 , . . ., xn−1 ] + (x − xn−1 ) f [x0 , . . . , xn ]} · · · }}
fórmula que permite calcular valores do polinómio minimizando o número de
operações aritméticas, ou
n
Pn (x) = f0 + ∑ f [x0 , . . ., xk ]Πk
k=1
com
k−1
Πk = ∏ (x − xi )
i=0
com Π0 = 1, e
Pk = Pk−1 + f [x0 , . . ., xk ]Πk = Pk−1 + f (1, k + 1)Πk , k ≥ 1
com P0 = f0 = f (1, 1)
30 CAPÍTULO 2. INTERPOLAÇÃO POLINOMIAL
Erro na Interpolação
Teorema 3 (Lagrange) Seja Pn (x) o polinómio interpolador de {(xi fi )}ni=0 e I =
[a, b] o intervalo mínimo que contém as abcissas xi , i = 0 : n. Se fi = f (xi ), i =
0 : n, com f (x) contínua e com pelo menos n + 1 derivadas contínuas em I, então
para x ∈ I
f (n+1) (c)
en (x) = f (x) − Pn (x) = Πn+1 (x), c ∈ I
(n + 1)!
Deste teorema resulta que, com a definição
Considerando em
f (xi+1 ) − f (xi )
f [xi , xi+1 ] =
xi+1 − xi
que xi+1 → xi , isto é, que as abcissas são confluentes, obtemos
f (xi+1 ) − f (xi )
lim f [xi , xi+1 ] = lim
xi+1 →xi xi+1 →xi xi+1 − xi
o que justifica a seguinte definição
Definição 11 Define-se diferença dividida confluente de primeira ordem, por
f [xi , xi ] = f ′ (xi )
de grau
n
k = ( j0 + 1) + · · · + ( jn + 1) − 1 = n + ∑ ji
i=0
aplicando à tabela de pontos
n o
(j ) (j )
(x0 , f0 ), (x0 , f0′ ), · · · , (x0 , f0 0 ), · · · , (xn , fn ), (xn , fn′ ), · · · , (xn , fn n )
Mk+1
| f (x) − Hk (x)| ≤ |Πk+1 (x)|
(k + 1)!
com
n
Mk+1 = max | f (k+1) (x)|, Πk+1 = ∏(x − xi ) ji +1
x∈I i=0
x
Exemplo 3 Sendo f (x) = 1+x2
Resolução:
xi fi f [, ] f [, , ]
−1 −0.5
0.5
0 0 0
0.5
1 0.5
xi fi f [, ] f [, , ] f [, , , ] f [, , , , ] f [, , , , , ]
−1 −0.5
0.1471
−.6 −0.4412 0.5939
0.6222 −0.0283
−.2 −0.1923 0.5656 −0.4638
0.9615 −0.7240 0.3620
0 0 −0.2308 −0.2602
0.8 −0.3077
0.5 0.4 −0.6000
0.2
1 0.5
xi fi f [, ] f [, , ] f [, , , ] f [, , , , ] f [, , , , , ]
−1 −0.5
0
−1 −0.5 0.5
0.5 0
0 0 0.5 −0.5
1 −0.5 0.25
0 0 0 0
1 −0.5
0 0 −0.5
0.5
1 0.5
P2 P5
0.5 0.5
0 0
−0.5 −0.5
−1 −0.5 0 0.5 1 −1 −0.5 0 0.5 1
H5 T5
0.5 1
0.5
0 0
−0.5
−0.5 −1
−1 −0.5 0 0.5 1 −1 −0.5 0 0.5 1
0.4 0.02
0
0.2
−0.02
0 −0.04
−0.06
−0.2 −0.08
−0.1
−0.4
EH5 ET5
0.05 0.7
0 0.6
−0.05 0.5
−0.1 0.4
−0.15 0.3
−0.2 0.2
−0.25 0.1
−0.3 0
−1 −0.5 0 0.5 1 −1 −0.5 0 0.5 1
x x
tal que
Pi (xi−1 ) = yi−1 Pi′ (xi−1 ) = y′i−1
i=1:n
Pi (xi ) = yi Pi′ (xi ) = y′i
xi yi f [, ] f [, , ] f [, , , ]
x0 y0
y′0
f [x0 ,x1 ]−y′0
x0 y0 x1 −x0
y′0 +y′1 −2 f [x0 ,x1 ]
f [x0 , x1 ] (x1 −x0 )2
y′1 − f [x0 ,x1 ]
x1 y1 x1 −x0
y′1
x1 y1
resulta
mi − y′i−1
Pi (x) = yi−1 + (x − xi−1 )y′i−1 + (x − xi−1 )2
hi
y′ + y′ − 2mi
+ i−1 2i (x − xi−1 )2 (x − xi )
hi
x
Exemplo 4 Retomando a função f (x) = 1+x 2 do exemplo anterior, construir a
função osculadora cúbica nas abcissas x0 = −1, x1 = 0 e x2 = 1
Resolução:
Neste caso, n = 2, h1 = h2 = 1, e porque f ([−1, 0, 1]) = [−0.5, 0, 0.5] temos
m1 = m2 = 0.5. Estes valores, juntamente com os valores f ′ ([−1, 0, 1]) = [0, 1, 0]
substituídos na fórmula para Pi (x), resulta em
P1 (x) = −0.5 + 0.5(x + 1)2, x ∈ [−1, 0]
P(x) =
P2 (x) = x − 0.5x2 , x ∈ [0, 1]
Na figura 2.4 representa-se a função f (x), juntamente com a função osculató-
ria P(x), bem como o majorante
M4 2 2
| f (x) − P(x)| ≤ 4! (x + 1) x , x ∈ [−1, 0]
.
M4 2 2
4! x (x − 1) , x ∈ [0, 1]
P(x) f(x)−P(x)
0.5 0.06
0.4
0.05
0.3
0.2
0.04
0.1
0 0.03
−0.1
0.02
−0.2
−0.3
0.01
−0.4
−0.5 0
−1 −0.5 0 0.5 1 −1 −0.5 0 0.5 1
S(xi ) = f (xi ), i = 0 : n
Isto é, uma vez que neste caso não se impõem condições de continuidade, o spline
interpolador de grau 0 coincide com o polinómio interpolador parcelar de grau 0.
Este facto é suficiente para demonstrar o seguinte resultado.
2.4. INTERPOLAÇÃO COM SPLINES 39
Spline de grau 1
Spline de grau 0
x0 x x x0 x x x
1 2 x 1 2 3
3
Para spline interpolador de grau 1, definindo S(x) : S(x) = Si (x), x ∈ [xi , xi+1 ], i =
0 : n − 1, a definição impõem que
Si (xi ) = f (xi ), Cond. interpol.
Si (xi+1 ) = Si+1 (xi+1 ) = f (xi+1 ), Continuidade
Logo, Si (x) constitui o polinómio interpolador de f (x) nos nós xi , xi+1 , ou seja
f (x0 ) + (x − x0 ) f [x0 , x1 ], x ∈ [x0 , x1 [
f (x1 ) + (x − x1 ) f [x1 , x2 ], x ∈ [x1 , x2 [
S(x) =
···
f (xn−1 ) + (x − xn−1 ) f [xn−1 , xn ], x ∈ [xn−1 , xn [
Spline cúbico interpolador Para estabelecer este spline, uma vez que cada Si (x)
é um polinómio de grau ≤ 3, temos de determinar 4 coeficientes Si (x) = ai,0 +
ai,1 x + ai,2 x2 + ai,3 x3 para cada uma das n parcelas i = 0 : n − 1, num total de 4n
incógnitas.
S
i
S S
i+1
i−1
xi−1 xi x xi+2
i+1
num total de 4n − 2 equações. Este facto faz com que a definição de spline cú-
bica não seja única, havendo de facto muitas possibilidades de completar este
deficite, escolhendo duas condições suplementares. De entre essas possibilidades,
destacam-se, por serem as mais frequentes nas aplicações:
5
|E3 (x)| = | f (x) − S(x)| ≤ M4 h 4 , M4 = max | f IV (x)|
384 x0 ≤x≤xn
42 CAPÍTULO 2. INTERPOLAÇÃO POLINOMIAL
Capítulo 3
1 (n)
f [x0 , . . . , xn ] = f (c), c ∈ [x0 , xn ]
n!
43
44 CAPÍTULO 3. DERIVAÇÃO E INTEGRAÇÃO NUMÉRICA
Como temos dois coeficientes livres, podemos impor que esta fórmula de aproxi-
mação seja exacta para polinómios de grau ≤ 1. Esta condição significa que temos
duas equações d
Dh 1 = dx 1
d
Dh x = dx x
para determinar as duas incógnitas. Neste caso
a1 + a2 = 0 a1 = −a2
a1 x + a2 (x + h) = 1 a2 = 1/h
ou seja
f (x + h) − f (x)
f ′ (x) ≈ Dh f (x) =
h
que constitui a fórmula da Diferença Progressiva
De forma análoga, supondo que dispomos dos valores f (x) e f (x − h) para
algum valor h > 0, se obtém a fórmula da Diferença Regressiva
f (x) − f (x − h)
f ′ (x) ≈ Dh f (x) =
h
Para analisar o erro, utilizando a fórmula de Taylor
1
f (x + h) = f (x) + h f ′ (x) + h2 f ′′ (c), c ∈ [x, x + h]
2
3.1. DERIVAÇÃO NUMÉRICA 45
logo
1
f ′ (x) = Dh f (x) − h f ′′ (c)
|2 {z }
Erro
Concluímos que o erro, sendo directamente proporcional ao passo h, decresce
linearmente com h. Diz-se que o erro, nestas condições, é da ordem de h.
Podemos progredir, obtendo fórmulas mais exactas, se podermos dispor de
mais dados da função. Suponhamos que dispomos dos valores f (x − h), f (x) e
f (x + h), com h > 0, pelo que, podendo impor três condições, podemos dispor de
três coeficientes livres a1 , a2 e a3 tais que
f ′ (x) ≈ Dh f (x) = a1 f (x − h) + a2 f (x) + a3 f (x + h)
e d
Dh 1 = dx 1
d
D x= x
h 2 dxd 2
Dh x = dx x
ou
a1 + a2 + a3 = 0 a1 = −1/2h
a1 (x − h) + a2 x + a3 (x + h) = 1 a2 = 0
a1 (x − h)2 + a2 x2 + a3 (x + h)2 = 2x a3 = 1/2h
ou seja
f (x + h) − f (x − h)
f ′ (x) ≈ Dh f (x) =
2h
que constitui a fórmula da Diferença Central
Pode verificar-se que
1
f ′ (x) − Dh f (x) = − h2 f ′′′ (c), c ∈ [x − h, x + h]
6
isto é, o erro é de ordem h2 .
Analogamente, para se obter uma aproximação de f ′′ (x), seja
f ′′ (x) ≈ D2h f (x) = a1 f (x − h) + a2 f (x) + a3 f (x + h)
e
2 d2
Dh 1 = dx2 1
d2
D2h x = dx2x
2 2 d2 2
Dh x = dx2 x
ou
a1 + a2 + a3 = 0 a1 = 1/h2
a1 (x − h) + a2 x + a3 (x + h) = 0 a = −2/h2
2
a1 (x − h)2 + a2 x2 + a3 (x + h)2 = 2 a3 = 1/h2
46 CAPÍTULO 3. DERIVAÇÃO E INTEGRAÇÃO NUMÉRICA
ou seja
f (x + h) − 2 f (x) + f (x − h)
f ′′ (x) ≈ D2h f (x) =
h2
que constitui a fórmula da Diferença Central de Ordem 2
Relativamente ao erro,
1 2 IV
f ′′ (x) − D2h f (x) = − h f (c), c ∈ [x − h, x + h]
12
logo de ordem h2 .
Exercício:
2. Para cada uma das regras anteriores, determine o maior valor de n tal que,
para f (x) = xn se tem Dh f (x) = f ′ (x)
impondo que esta fórmula seja exacta para polinómios de grau ≤ 1, isto é
( R
Ia,b 1 = ab dx
R
Ia,b x = ab x dx
3.2. INTEGRAÇÃO NUMÉRICA 47
ou seja
Z b
b−a
f (x)dx ≈ Ia,b f (x) = ( f (a) + f (b))
a 2
que constitui a Regra do Trapézio. Consistindo, esta regra, uma regra exacta para
polinómios de grau 1, pode dizer-se que resulta de interpolar a função f (x) pelo
seu polinómio interpolador P1 (x) nos pontos de abcissas a e b, e integrar este po-
linómio. Tal como se ilustra na figura 3.1, este processo é equivalente a aproximar
a área da figura definida pela curva y = f (x), pela área do trapézio, o que justifica
o nome da regra.
3.5
I≈ Ia,b y=f(x)
y=P1(x)
2.5
1.5
0.5
0
−1 −0.5 0 0.5 1 1.5 2 2.5 3
impondo que esta fórmula seja exacta para polinómios de grau ≤ 2, isto é
Rb
Ia,b 1 = R a dx
Ia,b x = ab xdx
I x2 = R b x2 dx
a,b a
Neste caso
p1 + p2 + p3 = b − a p1 = p3
p1 a + p2 c + p3 b = 12 (b2 − a2 ) p2 = 4p3
p1 a2 + p2 c2 + p3 b2 = 31 (b3 − a3 ) p3 = 16 (b − a)
3.5 y=f(x)
3 y=P2(x)
2.5
1.5
0.5
0
−1 −0.5 0 0.5 1 1.5 2 2.5 3
|b − a|3
|ET | ≤ M2 , M2 = max | f ′′ (x)|
12 x∈[a,b]
e
| b−a
2 |
5
|ES | ≤ M4 , M4 = max | f IV (x)|
90 x∈[a,b]
Zb n−1
h
f (x)dx ≈ ( f0 + 2 ∑ fi + fn )
2 i=1
a
Regra do Trapézio composta a n intervalos
Para a regra de Simpson
Z xi+1
xi+1 − xi−1
f (x)dx ≈ ( f (xi−1 ) + 4 f (xi ) + f (xi+1 ))
xi−1 6
h
= [ fi−1 + 4 fi + fi+1 ]
3
sendo n um número par
Z b Z x2 Z x4 Z xn
f (x)dx = f (x)dx + f (x)dx + · · · + f (x)dx
a x0 x2 xn−2
obtemos
50 CAPÍTULO 3. DERIVAÇÃO E INTEGRAÇÃO NUMÉRICA
Zb
h
f (x)dx ≈ ( f0 + 4 f1 + 2 f2 + 4 f3 + · · · + 2 fn−2 + 4 fn−1 + fn )
3
a
Regra de Simpson composta a n intervalos
4 4
3.5 3.5
3 3
2.5 2.5
2 2
1.5 1.5
1 1
0.5 0.5
0 0
−1 0 1 2 3 −1 0 1 2 3
h2
|ET (h)| ≤ (b − a)M2
12
h4
|ES (h)| ≤ (b − a)M4
180
Capítulo 4
Resolução de Equações
Seja F(x) = 0 uma equação a resolver e F uma função real de variável real.
Os valores α ∈ D F : F(α) = 0 dizem-se raízes da equação ou zeros de F(x).
Graficamente, os zeros reais são as abcissas dos pontos onde a curva y = F(x)
intersecta o eixo dos xx.
y=f(x)
10
−5
−10
−15
0 α1 2 α2 4 6α 8 α 10 12 α 14
3 4 5
y
Figura 4.1: Os zeros reais são as abcissas dos pontos onde a curva y = F(x) inter-
secta o eixo dos xx
51
52 CAPÍTULO 4. RESOLUÇÃO DE EQUAÇÕES
g1(x)=g2(x)
15
10
−5
−10
−15
−2 0 2 4 6 8 10 12 14
Figura 4.2: Os zeros constituem as abcissas dos pontos onde as curvas y = g1 (x)
e y = g2 (x) se intersectam
y=F(x)
F(2)>0
F(0)<0
0 2 0 2
x
F(2)>0
F(0)<0
0 1 2
x
F(2)>0
F(1)<0
F(0)<0
0 1 1.5 2
x
a+b b−a
α= ±
2 } | {z
| {z 2 }
c ∆
y=F(x)
0
α
Figura 4.6: xi+1 constitui a abcissa do ponto onde a recta tangente no ponto xi
intersecta o eixo dos xx
56 CAPÍTULO 4. RESOLUÇÃO DE EQUAÇÕES
F(xn )
xn+1 = xn − , n = 0, 1, . . .
F ′ (xn )
y=F(x)
0
α
a x x x x2 b
0 3 1
x
Teorema 10 Seja F(x) uma função contínua, com derivadas F ′ (x) e F ′′ (x) con-
tínuas em [a, b], se c
1. F(a)F(b) < 0
então
• A sucessão de Newton
F(xn )
xn+1 = xn − , n = 0, 1, . . .
F ′ (xn )
converge para α
•
M2
|α − xk | ≤ (xk − xk−1 )2
2m1
M2 = max |F ′′ (x)| e m1 = min |F ′ (x)|
x∈[a, b] x∈[a, b]
|α − xn | ≤ ∆n ≤ c × |α − xn−1 | p , n = 1, 2, . . .
MBS
Representando por In = [an , bn ] o intervalo que contem a raíz ao fim de n
iterações, como vimos
an + bn
cn =
2
representa a raíz com um majorante do erro absoluto
bn − an bn−1 − an−1 1
|α − cn | ≤ ∆n = = = ∆n−1
2 4 2
logo, o MBS tem convergência linear de razão 1/2.
MN
O MN baseia-se na aproximação
F(xn ) ′′
1 2 F (c)
0= + α − xn + (α − xn )
F ′ (xn ) 2 F ′ (xn )
4.4. MÉTODOS DA SECANTE, FALSA POSIÇÃO E WHITTAKER 59
logo
1 F ′′ (c)
α − xn+1 = − (α − xn )2 ′
2 F (xn )
e
M2
|α − xn+1 | ≤ |α − xn |2
2m1
M2
isto é, o MN tem convergência quadrática de razão 2m 1
.
O MN, sendo rapidamente convergente, tem no entanto a desvantagem de exi-
gir, em cada iteração, a avaliação de duas funções, F(x) e F ′ (x). Existem métodos
que, sendo quase tão rapidamente convergentes quanto o MN, não necessitam dos
valores F ′ (xn ).
C.S.C.
Teorema 11 É condição suficiente de convergência do MS
a)
b) como MN
c)
d) x0 , x1 ∈ [a, b] : F(x0 )F ′′ (x0 ) > 0 e F(x1 )F ′′ (x1 ) > 0
Ordem de convergência
√
r M2 r−1 1+ 5
|α − xn | ≤ c × |α − xn−1 | , c=( ) , r= ≈ 1.62
2m1 2
convergência supra-linear
60 CAPÍTULO 4. RESOLUÇÃO DE EQUAÇÕES
F(xn ) − F(a)
F ′ (xn ) ≈
xn − a
de forma análoga, obtemos
xn − a
xn+1 = xn − F(xn ), n = 1, 2, . . .
F(xn ) − F(a)
Método da Falsa Posição
C.S.C.
Ordem de convergência
M2
|α − xn | ≤ c × |α − xn−1 |, c = |b − a|
2m1
convergência linear
1
xn+1 = xn − F(xn ), n = 1, 2, . . .
k
2. O Método da Secante
Pelo que podemos concluir que o Método de Newton converge para as raízes
desta equação. As instruções seguintes, definem em Matlab as funções F(x)
e F ′ (x)
>> syms x
>> f=exp(x)-5*x+2
>> df=diff(f)
logo α2 ≈ 2.19374166784562.
Para o cálculo de α1 , pode tomar-se x0 = 0.4 e x1 = 0.5, uma vez que F(x) >
0 para estes dois valores e F ′′ (x) > 0 para todos os valores de x. Para o caso
de α2 , pode tomar-se x0 = 3 e x1 = 2.9, pelas mesmas razões. Estes valores,
juntamente com a relação de recorrência do Método da Secante, conduziram
às seguintes instruções Matlab
de Whittaker pode ser pelo menos quase tão eficiente quanto o método da Falsa
Posição, de convergência linear. Dependendo da escolha do valor k, este método,
em certos casos, pode ser particularmente mais lento que os outros métodos utili-
zados. k = F[a, b]
Capítulo 5
67
68 CAPÍTULO 5. SISTEMAS DE EQUAÇÕES LINEARES
um sistema a resolver. Para cada uma das n equações, comecemos por isolar no
primeiro membro o elemento diagonal
a11 x1 = b1 − a12 x2 − a13 x3 − · · · − a1n xn
a22 x2 = b2 − a21 x1 − a23 x3 − · · · − a2n xn
···
ann xn = bn − an1 x1 − an2 x2 − · · · − an,n−1 xn−1
n
⇔ aii xi = bi − ∑ ai j x j , i = 1 : n
i6= j=1
de que resulta
Ax = b ⇔ (D + B)x = b
⇔ Dx = b − Bx
70 CAPÍTULO 5. SISTEMAS DE EQUAÇÕES LINEARES
x = D−1 (b − Bx)
Exemplo 9 Sejam
n2 1 ··· 1 1
. .
1 n2 . . .. 2
A= .. .. .. , b = ..
. . . 1 .
1 · · · 1 n2 n
(1)
Tomando n = 9 e x(0) = (0, 0, . . ., 0), obtemos xi = i/n2 = i/81, i = 1 : 9 ou, com
os valores arredondados a 4 casas decimais
x(1) = (0.0123, 0.0247, 0.0370, 0.0494, 0.0617, 0.0741, 0.0864, 0.0988, 0.1111)
5.2. MÉTODOS ITERATIVOS 71
x(2) = (0.0056, 0.0181, 0.0306, 0.0431, 0.0556, 0.0681, 0.0806, 0.0931, 0.1056)
e repetindo, obtemos
x(3) = (0.0062, 0.0187, 0.0312, 0.0437, 0.0562, 0.0687, 0.0812, 0.0937, 0.1062)
Podemos observar, nos vectores calculados neste exemplo, que em cada uma
das componentes, as diferenças entre valores consecutivos vão diminuindo com
as iterações, aparentando convergir. Não conhecendo a solução exacta do sistema
de equações, podemos testar a solução calculada em termos do resíduo.
r = Ae
x−b
r(1) = Ax(1) − b ≈ (0.54, 0.53, 0.52, 0.51, 0.49, 0.48, 0.47, 0.46, 0.44)
r(2) = Ax(2) − b ≈ −10−1 (0.48, 0.48, 0.49, 0.49, . . . , 0.49)
r(3) = Ax(3) − b ≈ −0.48 × 10−3 (1, 1, . . . , 1)
o que permite supor que a sucessão de Jacobi, neste caso, é convergente para a
solução do sistema. O teorema seguinte, permite concluir que assim é.
Ax = b ⇔ (L + D +U )x = b
⇔ Lx + Dx = b −U x
⇔ x = D−1 (b −U x) − D−1 Lx
e o processo iterativo,
x(1) = (0.0123, 0.0245, 0.0366, 0.0485, 0.0602, 0.0718, 0.0833, 0.0946, 0.1058)
x(2) = (0.0059, 0.0184, 0.0310, 0.0436, 0.0561, 0.0687, 0.0812, 0.0937, 0.1062)
x(3) = (0.0062, 0.0187, 0.0312, 0.0437, 0.0562, 0.0687, 0.0812, 0.0937, 0.1062)
y′ (x) = f (x)
onde c representa uma constante que pode determinar-se, produzindo uma solução
particular, fixando o valor de y(x) num dado ponto. A condição
y(x0 ) = y0
75
76 CAPÍTULO 6. EQUAÇÕES DIFERENCIAIS ORDINÁRIAS
De uma forma geral, para os casos mais simples que envolvem apenas uma va-
riável independente x e apenas uma variável dependente y(x), a descrição do pro-
blema pode traduzir-se na forma de uma equação diferencial ordinária (EDO).
Neste estudo, ficaremos limitados às equações diferenciais ordinárias de primeira
ordem
y′ (x) = f (x, y(x))
A existência e unicidade de solução é assegurada nas condições do teorema se-
guinte.
Teorema 16 Se f (x, y) e ∂∂yf (x, y) são contínuas numa vizinhança de (x0 , y0 ), en-
tão o problema de encontrar y(x) tal que
′
y (x) = f (x, y(x))
y(x0 ) = y0
a que se chama Problema do Valor Inicial (PVI), tem solução única, y(x) para x
numa vizinhança de x0 .
y(x + h) − y(x)
≈ f (x, y(x))
h
6.1. MÉTODO DE EULER 77
yi+1 = yi + h fi , i = 0 : n − 1
xi yi fi
0 2 0
0, 1 2 0, 011
0, 2 2, 0011 0, 049
0, 3 2, 0060 0, 125
0, 4 2, 0185 0, 250
0, 5 2, 0435 0, 440
0, 6 2, 0875 0, 716
0, 7 2, 1591 1, 103
0, 8 2, 2694 1, 637
0, 9 2, 4331 2, 362
1, 0 2, 6693 3, 339
h2 ′′
y(x + h) ≈ y(x) + hy′ (x) + y (c), c ∈ [x, x + h]
2
de que resulta
y(x + h) − y(x) h
y′ (x) = − y′′ (c)
h | 2{z }
Erro de Truncatura
|ET | ≤ kh p
onde k é uma constante que não depende de h, podendo apenas variar com a
função f e as suas derivadas.
Uma conclusão imediata desta análise do erro, é que no ME devemos espe-
rar um erro proporcional a h. Em termos práticos, e para exercícios sem grande
responsabilidade, este facto significa que, sendo m a ordem de grandeza de h,
devemos efectuar os cálculos intermédios e apresentar os resultados do ME com
m + 1 ou m + 2 casas decimais. Na resolução de problemas de grande responsabi-
lidade, os cálculos devem efectuar-se com mais cautela e no ME temos de contar
ainda com o erro propagado, resultante de em cada passo utilizarmos o valor yi ,
já afectado de erro, para calcularmos o valor yi+1 .
Outra conclusão da análise do erro é que a necessidade de resultados mais
precisos conduz a um de dois caminhos:
• Reduzir o passo h, com o consequente aumento do volume de aritmética, e
eventualmente do erro propagado, o que faz com que nem sempre o resul-
tado seja o esperado.
h2 ′′
′ h p (p) h p+1 (p+1)
y(x+h) = y(x)+hy (x)+ y (x)+· · ·+ y (x)+ y (c), c ∈ [x, x+h]
2 p! (p + 1)!
Fazendo p = 1 obtemos o Método de Euler, para valores superiores de p, obtemos
métodos de ordem superior. Tomando p = 2, obtemos
h2 ′′ h3
y(x + h) = y(x) + hy′ (x) + y (x) + y′′′ (c), c ∈ [x, x + h]
2 6
de que resulta o Método de Taylor de ordem 2
h2 ′
yi+1 = yi + h fi + f
2 i
onde fi′ representa o valor y′′ (xi ) = dx
d
f (x, y(x))|x=xi .
Analisando o custo do cálculo deste valor
∂f ∂f
fi′ = (x, y(x))|x=xi + (x, y(x))|x=xi f (xi , yi )
∂x ∂y
No exemplo anterior f (x, y(x)) = (x + 1)(y(x) + x2 − 2),
f (xi+1 , yi + h fi ) − f (xi , yi )
fi′ ≈
h
Substituindo na fórmula de Taylor
h2 f (xi+1 , yi + h fi ) − f (xi , yi )
yi+1 = yi + h fi +
2 h
h
= yi + ( fi + f (xi+1 , yi + h fi ))
2
ou
F1 = f (xi , yi )
F2 = f (xi+1 , yi + hF1 )
yi+1 = yi + 2h (F1 + F2 )
|ET | ≤ kh2
Exemplo 13
Runge-Kutta ordem 2 Solução exacta y(x)
xi yi F1 F2 xi yi
0 2 0 0, 0110 0 2
0, 1 2, 0006 0, 0116 0, 0500 0, 1 2, 00037
0, 2 2, 0036 0, 0524 0, 1286 0, 2 2, 00325
0, 3 2, 0127 0, 1335 0, 2604 0, 3 2, 01209
0, 4 2, 0324 0, 2693 0, 4640 0, 4 2, 03161
0, 5 2, 0690 0, 4786 0, 7630 0, 5 2, 06818
0, 6 2, 1311 0, 7858 1, 1895 0, 6 2, 13033
0, 7 2, 2299 1, 2238 1, 7861 0, 7 2, 22945
0, 8 2, 3804 1, 8367 2, 6108 0, 8 2, 38079
0, 9 2, 6028 2, 6842 3, 7424 0, 9 2, 60479
1, 0 2, 9241 1, 0 2, 92901
Runge-Kutta ordem 4
xi yi F1 F2 F3 F4
0 2 0 0, 00262 0, 00276 0, 01130
0, 1 2, 00037 0, 01141 0, 02696 0, 02785 0, 05179
0, 2 2, 00325 0, 05190 0, 08543 0, 08753 0, 13260
0, 3 2, 01209 0, 13272 0, 19066 0, 19457 0, 26817
0, 4 2, 03161 0, 26825 0, 35891 0, 36548 0, 47724
0, 5 2, 06818 0, 47727 0, 61154 0, 62195 0, 78460
0, 6 2, 13033 0, 78453 0, 97689 0, 99276 1, 22333
0, 7 2, 22945 1, 22307 1, 49293 1, 51654 1, 83799
0, 8 2, 38078 1, 83740 2, 21103 2, 24559 2, 68914
0, 9 2, 60478 2, 68808 3, 20128 3, 25132 3, 85982
1, 0 2, 92900
82 CAPÍTULO 6. EQUAÇÕES DIFERENCIAIS ORDINÁRIAS
Parte II
Programação Linear
83
Capítulo 7
Formulação de problemas
85
86 CAPÍTULO 7. FORMULAÇÃO DE PROBLEMAS
Problemas da IO
Consideram-se problemas no âmbito da IO:
• Modelos de previsão
• Metodologias de simulação
• Teoria de jogos
satisfazendo
g1 (x1 , . . ., xN ) = 0
..
.
gM (x1 , . . ., xN ) = 0
A1 80
466
75 P1 523
645
876
A 65
2
325
461
125 P2 609
719
A 70
3
959 628
388
100 P3
658
A4 85
e as restrições
x11 + x12 + x13 + x14 = 75
x21 + x22 + x23 + x24 = 125
x31 + x32 + x33 + x34 = 100
x11 + x21 + x31 = 80
x12 + x22 + x32 = 65
x13 + x23 + x33 = 70
x14 + x24 + x34 = 85
xi j ≥ 0
Ingrediente
1 2 3 4 5
vitamina A 3 4 5 0 5
B 5 1 9 9 5
C 9 8 0 8 0
Custo 4 5 7 8 5
Formulação do problema:
s. a.
3x1 + 4x2 + 5x3 + 5x5 ≥ 30
5x1 + x2 + 9x3 + 9x4 + 5x5 ≥ 40
9x1 + 8x2 + 8x4 ≥ 20
xi ≥ 0
Capítulo 8
Programação Linear
Max (Min) F = c1 x1 + c2 x2 + · · · + cN xN
a11 x1 + a12 x2 + · · · + a1N xN = b1
a21 x1 + a22 x2 + · · · + a2N xN = b2
···
aM1 x1 + aM2 x2 + · · · + aMN xN = bM
xi ≥ 0, i = 1, 2, . . ., N
com
x j variável de decisão j
F função objectivo
bi disponibilidade do recurso i
91
92 CAPÍTULO 8. PROGRAMAÇÃO LINEAR
Max F=−Min(−F)
Max
M
0
y
−M
Min
ou
5x1 + 2x2 − 6x3 + x4 = 0
x1 , x2 , x3 , x4 ≥ 0
• As condições de não negatividade xi ≥ 0 explicam-se pelo facto de, na ge-
neralidade dos problemas, as variáveis de decisão xi representarem quanti-
dades não negativas. Por exemplo: um salário, o tempo de execução de uma
determinada tarefa, um consumo de energia. No caso de surgir uma variável
que só pode assumir valores não positivos
xi ≤ 0
bastará substitui-la pelo seu simétrico xi = −xi , logo
xi ≥ 0
o que implica trocar os sinais nos coeficientes ci e a ji , j = 1, . . ., M. Por
exemplo
Min F = 8x1 − 3x2 + 6x3
s.a. x1 + x2 = 6
2x1 − 7x2 + 5x3 = −8
x1 , x2 ≥ 0, x3 ≤ 0
equivale a
Min F = 8x1 − 3x2 − 6x3
s.a. x1 + x2 = 6
2x1 − 7x2 − 5x3 = −8
x1 , x2 , x3 ≥ 0
No caso de uma variável do problema poder assumir valores positivos, ne-
gativos ou nulo, pode substituir-se pela diferença de duas outras variáveis
não negativas
xi = r − s, r, s ≥ 0, xi ∈ R
Exemplo
Min F = 8x1 − 3x2 + 6x3
s.a. x1 + x2 = 6
2x1 − 7x2 + 5x3 = −8
x1 , x2 ≥ 0, x3 ∈ R
fazendo
x3 = x4 − x5
obtemos
Min F = 8x1 − 3x2 + 6x4 − 6x5
s.a. x1 + x2 = 6
2x1 − 7x2 + 5x4 − 5x5 = −8
x1 , x2 , x4 , x5 ≥ 0
94 CAPÍTULO 8. PROGRAMAÇÃO LINEAR
xc
L crescente
0.3xc+0.5xr=16 5xc+6xr=L
X*
S 0.6xc+0.5xr=22
0.5xc+0.3xr=120
(restrição redundante)
0
0 xr
5xc+6xr=L*
L=0
Definição 23
⋅
r2
⋅
V1
V
2 r1
⋅ V3
S
⋅ V5
Convexo
⋅ V4
Não−convexo
r3
A, B ∈ S ⇒ A + t ∗ (B − A) ∈ S ∀t ∈ [0, 1]
8.3. PROPRIEDADES DO CONJUNTO DE SOLUÇÕES ADMISSÍVEIS 97
Definição 26 Designa-se por solução básica admissível (sba) uma solução ad-
missível em que as vnb tomam o valor nulo.
Com base nestes resultados, podemos concluir que para encontrar o óptimo de
um problema de PL, de entre todas as soluções admissíveis (em número infinito)
é suficiente procurar entre as sba (em número finito).
98 CAPÍTULO 8. PROGRAMAÇÃO LINEAR
Assim, passar de uma sba para uma sba adjacente melhor, consiste em pro-
curar uma vnb que ao passar a básica permita melhorar a função objectivo. A vb
que passa a vnb é aquela que corresponde a passar para o vértice adjacente com
uma taxa de variação maior da função objectivo. Para fazer a identificação desta
variável, é necessário ter a função objectivo escrita em função das vnb.
a que corresponde anular x2 que passa a vnb. O problema passa a tomar a forma
8.4.2 Algoritmo
Inicialização Identificar uma sba inicial
Nova vb Escrever a f.o. F como função das vnb e determinar aquela que
corresponde à maior taxa de variação (positiva para um problema de
Max e negativa para um problema de Min), isto é aquela que tem maior
(menor) coeficiente.
100 CAPÍTULO 8. PROGRAMAÇÃO LINEAR
vb xc xr x1 x2 x3 bi
x1 0.5 0.3 1 0 0 120
x2 0.6 0.5 0 1 0 22
x3 0.3 0.5 0 0 1 16
−L 5 6 0 0 0 0
−L + 5xc + 6xr = 0
Os coeficientes das vnb na f.o., designados por custos marginais, medem a varia-
ção da f.o. por cada unidade de cada uma das vnb. As restantes linhas representam
os coeficientes das variáveis e os segundos membros das equações das restrições.
A identificação de uma sba pode fazer-se pela localização de uma sub-matriz
identidade neste quadro. Neste exemplo (xc , xr , x1 , x2 , x3 ) = (0, 0, 120, 22, 16)
é a sba inicial.
Para um problema de Max (Min), a existência de uma sba adjacente, melhor do
que a solução actual, é revelada pela existência de, pelo menos, um custo marginal
positivo (negativo). A vnb a seleccionar para incorporar na base identifica-se pela
que tem maior (menor) custo marginal. Neste caso, xr é a vnb a transitar para vb.
A identificação da vb a passar para vnb faz-se pelo teste do quociente mínimo,
identificando a linha, e a única vb x j que nela figura, a que corresponde o menor
quociente bi /ci j .
vb xc xr x1 x2 x3 bi Quocientes
x1 0.5 0.3 1 0 0 120 120
0.3 = 400
22
x2 0.6 0.5 0 1 0 22 0.5 = 44
16
← x3 0.3 0.5 0 0 1 16 0.5 = 32 ←
−L 5 6 0 0 0 0
↓
8.4. ALGORITMO SIMPLEX 101
Esta linha vai utilizar-se para actualizar o quadro simplex, funcionando o coe-
ficiente da vnb a passar a vb nesta linha como ’pivot’, juntamente com o processo
de eliminação de Gauss. Isto é, fazendo a posição pivot passar a unitária, dividindo
todos os elementos da linha pelo pivot, e fazendo nulos todos os outros elementos
da coluna pivot, subtraindo elemento a elemento a linha pivot multiplicada pelo
coeficiente actual.
Neste caso, este processo produz
vb xc xr x1 x2 x3 bi Quocientes
x1 0.32 0 1 0 -0.6 110.4 110.4
0.32 = 345
6
← x2 0.3 0 0 1 -1 6 0.3 = 20 ←
32
xr 0.6 1 0 0 2 32 0.6 = 53.33
−L 1.4 0 0 0 -12 -192
↓
Repetindo, obtemos
vb xc xr x1 x2 x3 bi
x1 0 0 1 -1.067 0.467 104
xc 1 0 0 3.333 -3.333 20
xr 0 1 0 -2 4 20
−L 0 0 0 -4.667 -7.333 -220
quadro este, que apresenta a solução óptima, uma vez que todos os custos margi-
nais são negativos.
Os passos do algoritmo podem resumir-se no seguinte:
3. A variável a entrar na base é a que tem maior custo marginal, num problema
de Max. Idem, mas negativo para Min.
≤ ≥ =
r r r
1 1
1
r r r
3 3
3
S r2
S r
2
S
r
2
r
4
r4
3x1 + 2x2 − f1 + a1 = 7, x1 , x2 , f1 , a1 ≥ 0
Método das duas fases Consiste este método em começar (Fase I) por resolver
um problema de minimização com a função objectivo substituída pela soma das
va e com as restrições acrescidas das va. Para um problema com r va, a f.o. é
Min S = a1 + · · · + ar
Devido à não negatividade das va, o mínimo da f.o. obtém-se quando todas as va
forem nulas. Nesse caso, as outras variáveis constituem uma sba inicial para o
problema dado. Se não for possível encontrar uma solução deste problema, com
as va todas nulas, então o problema original não tem solução.
A Fase II consiste na resolução do problema inicial, a partir do quadro final da
Fase I, eliminadas as va.
Exemplo 20 Uma refinaria de petróleo pode misturar 3 tipos de crude para pro-
duzir gasolina normal e super. Existem disponíveis duas unidades de mistura.
Para cada ciclo de produção, a unidade mais antiga usa 5 barris de crude A,
7 barris de crude B e 2 barris de crude C para produzir 9 tanques de gasolina
normal e 7 de gasolina super. A unidade de mistura mais recente usa 3 barris de
crude A, 9 de B e 4 de C para produzir 5 tanques de gasolina normal e 9 de super.
Devido a contratos já assinados, a refinaria tem de produzir, pelo menos, 500
tanques de normal e 300 tanques de super. Existem disponíveis 1500 barris de
crude A, 1900 de crude B e 1000 de C. Por cada tanque de gasolina normal pro-
duzida, a refinaria ganha 6000 euros, enquanto que, por tanque de super, ganha
9000 euros.
O problema consiste em determinar como devem ser utilizadas as reservas
de crude e as unidades misturadoras, de forma a, respeitando os compromissos
assumidos, maximizar o lucro da refinaria.
Formulação:
v.d. xa , xr - Número de Ciclos de produção de gasolina, a utilizar a unidade
misturadora antiga e recente, respectivamente.
Os dados do problema podem resumir-se na tabela
104 CAPÍTULO 8. PROGRAMAÇÃO LINEAR
Crude Produção
A B C N S
Misturadora A 5 7 2 9 7
R 3 9 4 5 9
Prod. Mínima 500 300
Dispon. 1500 1900 1000
Lucro 6000 9000
O lucro esperado, em milhares de euros, traduz-se na f.o.
L = 6(9xa + 5xr ) + 9(7xa + 9xr ) = 117xa + 111xr
Logo, o problema pode formular-se como
Max L = 117xa + 111xr
s.a 9xa + 5xr ≥ 500 Prod. Min. Normal
7xa + 9xr ≥ 300 Prod. Min. Super
5xa + 3xr ≤ 1500 Disp. Crude A
7xa + 9xr ≤ 1900 Disp. Crude B
2xa + 4xr ≤ 1000 Disp. Crude C
xa , xr ≥ 0
Relativamente às restrições de domínio das variáveis de decisão, pode pôr-se a
questão, cuja resposta não está explícita no enunciado, de saber se as unidades de
mistura têm ou não de funcionar em pleno. Em caso afirmativo, teremos de con-
siderar as variáveis de decisão como inteiras não negativas, isto é xa , xr ∈ N. Esta
questão não é aprofundada no contexto deste exercício, mas serve para destacar
que uma prévia descrição completa do problema, é essencial para uma formulação
fiel, que permita encontrar uma solução que efectivamente possa resolver o pro-
blema. Este problema será resolvido mais tarde, no âmbito do capítulo dedicado
à programação linear inteira, com a restrição de variáveis inteiras. Por enquanto,
o problema pode resolver-se, utilizando o método simplex, apenas com as restri-
ções de não negatividade das variáveis de decisão. Na forma canónica, o problema
traduz-se por
Max L = 117xa + 111xr
s.a 9xa + 5xr − f1 = 500
7xa + 9xr − f2 = 300
5xa + 3xr + f3 = 1500
7xa + 9xr + f4 = 1900
2xa + 4xr + f5 = 1000
xa , xr , fi ≥ 0, i = 1, . . ., 5
A existência de variáveis de folga com sinal negativo nas restrições, impede a
sua utilização como variáveis básicas de uma sba inicial (porque estas variáveis
8.4. ALGORITMO SIMPLEX 105
Min S = a1 + a2
s.a 9xa + 5xr − f1 + a1 = 500
7xa + 9xr − f2 + a2 = 300
5xa + 3xr + f3 = 1500
7xa + 9xr + f4 = 1900
2xa + 4xr + f5 = 1000
xa , xr , a1 , a2 , fi ≥ 0, i = 1, . . . , 5
Fase I - Quadro II
vb xa xr f1 f2 f 3 f 4 f 5 a1 a2 bi Q
a1 0 -6,57 -1 1,29 0 0 0 1 -1,29 114,29 88,89
xa 1 1,29 0 -0,14 0 0 0 0 0,14 42,86
f3 0 -3,43 0 0,71 1 0 0 0 -0,71 1285,71 1800
f4 0 0 0 1 0 1 0 0 -1 1600 1600
f5 0 1,43 0 0,29 0 0 1 0 -0,29 914,29 3200
−S 0 6,57 1 -1,29 0 0 0 0 2,29 -114,29
A existência de um coeficiente negativo na última linha, revela que a variável
f2 deve entrar na base e o teste do quociente, que consiste na determinação do
menor dos valores dos quocientes dos termos independentes bi pelos coeficientes
positivos da variável f2 , revela que deve ser a variável a1 a sair da base.
Fase I - Quadro III
vb xa xr f1 f2 f3 f4 f5 a1 a2 bi Q
f2 0 -5,11 -0,78 1 0 0 0 0,78 -1 88,89
xa 1 0,56 -0,11 0 0 0 0 0,11 0 55,56
f3 0 0,22 0,56 0 1 0 0 -0,56 0 1222,22
f4 0 5,11 0,78 0 0 1 0 -0,78 0 1511,11
f5 0 2,89 0,22 0 0 0 1 -0,22 0 888,89
−S 0 0 0 0 0 0 0 1 1 0
O teste de optimalidade, aplicado ao último quadro, onde na última linha
não existe qualquer coeficiente negativo, revela que a solução correspondente,
constitui a solução óptima do problema da fase I. Uma vez que nesta solução
a∗1 = a∗2 = S∗ = 0, podemos iniciar a fase II com a solução básica obtida, umam
vez que esta constitui uma solução admissível para o problema dado. O quadro
inicial da fase II obtém-se retirando ao último quadro as colunas correspondentes
às variáveis artificiais e substituindo a linha correspondente à função objectivo
pela do problema original. Também aqui é necessário anular os coeficientes das
variáveis básicas na função objectivo, afim de poder efectuar o teste de optimali-
dade.
Fase II - Quadro Inicial
vb xa xr f1 f2 f3 f4 f5 bi Q
f2 0 -5,11 -0,78 1 0 0 0 88,89
xa 1 0,56 -0,11 0 0 0 0 55,56 100
f3 0 0,22 0,56 0 1 0 0 1222,22 5500
f4 0 5,11 0,78 0 0 1 0 1511,11 295,65
f5 0 2,89 0,22 0 0 0 1 888,89 307,69
−L 117 111 0 0 0 0 0 0
−L 0 46 13 0 0 0 0 -6500
8.4. ALGORITMO SIMPLEX 107
Fase II - Quadro II
vb xa xr f1 f2 f3 f4 f5 bi Q
f2 9,2 0 -1,8 1 0 0 0 600
xr 1,8 1 -0,2 0 0 0 0 100
f3 -0,4 0 0,6 0 1 0 0 1200 2000
f4 -9,2 0 1,8 0 0 1 0 1000 555,56
f5 -5,2 0 0,8 0 0 0 1 600 750
−L -82,8 0 22,2 0 0 0 0 -11100
antiga em 271 ciclos de produção completos e mais um ciclo com cerca de 43%
da capacidade da máquina. Este plano, esgota a disponibilidade de crude B e deixa
142,86 barris de crude A e 457,14 de crude C como excedentes. Relativamente
aos compromissos de produção de gasolina, este plano produz 1942,86 tanques
de gasolina normal e 1600 tanques de gasolina super a mais do que os mínimos
estabelecidos por contrato.
Outra conclusão imediata destes resultados constitui o facto de que a aquisição
de mais crude do tipo B, resultaria num aumento de lucro, pelo menos até a um
nível correspondente ao esgotamento de um dos outros dois tipos de crude.
Exemplo 21 Resolver o seguinte problema
Min C = 4x1 + 8x2 + 3x3
s.a x1 + x2 ≥ 2
2x1 + x3 ≥ 5
xi ≥ 0, i = 1, 2, 3
A fase I consiste em resolver o problema
Min S = a1 + a2
s.a x1 + x2 − f1 + a1 = 2
2x1 + x3 − f2 + a2 = 5
xi , fi , ai ≥ 0
que conduz aos seguintes quadros Simplex
Fase I - Quadro Inicial
vb x1 x2 x3 f1 f2 a1 a2 bi Q
a1 1 1 0 -1 0 1 0 2 2
a2 2 0 1 0 -1 0 1 5 25
−S 0 0 0 0 0 1 1 0
−S -3 -1 -1 1 1 0 0 -7
Fase I - Quadro II
vb x1 x2 x3 f1 f2 a1 a2 bi Q
x1 1 1 0 -1 0 1 0 2
a2 0 -2 1 2 -1 -2 1 1 0,5
−S 0 2 -1 -2 1 3 0 -1
Uma vez que na solução encontrada, as variáveis artificiais são nulas, a∗1 =
a∗2= 0, esta solução fornece uma sba inicial para o problema dado. A fase II con-
siste em aplicar o algoritmo simplex a partir do último quadro da Fase I, depois
de retiradas as colunas correspondentes às variáveis artificiais e de substituir os
custos marginais pelos coeficientes da função objectivo do problema dado. Sendo
os custos reduzidos, por definição, os coeficientes das vnb na f.o., pode ser ne-
cessário anular coeficientes de vb na última linha deste quadro inicial, antes de
efectuar o teste de optimalidade.
Tratando-se de um problema de Min e uma vez que neste quadro não há custos
marginais negativos, a solução obtida é óptima, isto é
Max F = c1 x1 + c2 x2 + · · · + cN xN
s.a a11 x1 + a12 x2 + · · · + a1N xN = b1
a21 x1 + a22 x2 + · · · + a2N xN = b2
···
aM1 x1 + aM2 x2 + · · · + aMN xN = bM
xi ≥ 0, i = 1, 2, . . ., N
xB = B−1 b
F = cTB B−1 (b − DxD ) + cTD xD = cTB B−1 b + (cTD − cTB B−1 D)xD
logo
F − cTB B−1 b = rxD ,
onde r = cTD −cTB B−1 D é o vector dos custos marginais. O teste de optimalidade e a
escolha da variável a entrar na base xe , pode fazer-se por análise dos coeficientes
deste vector r. A variável a sair da base xs , será a que corresponde ao menor
coeficiente positivo Qi = B−1 bi /B−1 ai,e onde ai,e são os coeficientes de xe na
matriz D. O processo de entrada e saída da base, das variáveis xe e xs , pode fazer-
se simplesmente pela troca dos respectivos elementos dos vectores e das colunas
das matrizes. No quadro seguinte, este processo é representado por uma ’ nas
respectivas designações.
Quadro Inicial
xTD xTB bi
xB D B b
−F cTD cTB 0
8.5. FORMULAÇÃO MATRICIAL DO SIMPLEX 111
Iterações
x′D T x′B T bi Qi
B′ −1 b
xB B′ −1 D I B′ −1 b B′ −1 ai,e
7. voltar a 2.
112 CAPÍTULO 8. PROGRAMAÇÃO LINEAR
logo Q = [110.4/0.32, 6/0.3, 32/0.6] = [345, 20, 53.33] tem o elemento positivo
mínimo correspondente a xs = f2 . Logo, em B e em D, as colunas f2 e xc devem
permutar.
xB = [ f1 , xc , xr ]T , xD = [ f2 , f3 ]T
1 0.5 0.3 0 0
B = 0 0.6 0.5 , D = 1 0 ,
0 0.3 0.5 0 1
cTD = [0, 0], cTB = [0, 5, 6]
Invertendo B, obtemos
1 −1.067 0.467
B−1 = 0 3.333 −3.333
0 −2 4
Logo,
0 0
r = [0, 0] − [0, 5, 6]B−1 1 0 = [−4.667, −7.333]
0 1
O teste de optimalidade permite verificar que esta se trata da solução óptima,
logo ∗
f1 104
x∗B = x∗c = B−1 b = 20
x∗r 20
e f2∗ = f3∗ = 0, produzindo um lucro máximo L∗ = cTB B−1 b = 220
Análise de Pós-Optimização
9.1 Objectivos
Utilizado o AS para resolver um problema de PL, para além da interpretação
da solução, pode pôr-se a questão de saber até que ponto é que esta permanece
como solução se algum dos parâmetros do problema for alterado. Ou pode pôr-
se a questão de saber quais os parâmetros do problema que mais influenciam o
resultado óptimo obtido. Esta questão pode ser particularmente pertinente, por
exemplo, relativamente aos termos independentes nas restrições bi , quando estes
representam limites de determinados recursos, acerca dos quais foram tomadas
decisões, e que poderão ser objecto de investimento, se da alteração de tais va-
lores resultar uma solução óptima do problema com vantagem significativa. A
introdução de novas variáveis ou de novas restrições, pode também pôr a ques-
tão de saber se a solução se mantém. Estas questões designam-se por análise de
sensibilidade ou análise de pós-optimização.
De entre as alterações possíveis num modelo de PL, avultam pela sua frequên-
cia:
• As alterações nos termos independentes das restrições, traduzindo altera-
ções de recursos disponíveis
• As alterações nos coeficientes da f.o., traduzindo alterações de preços
• As alterações nos coeficientes das restrições, traduzindo alterações do pro-
cesso produtivo
• A introdução de novas restrições, traduzindo novos constrangimentos
O quadro do algoritmo simplex permite, sem necessidade de refazer os cálcu-
los, verificar as alterações na solução em face de uma destas alterações no pro-
blema.
115
116 CAPÍTULO 9. ANÁLISE DE PÓS-OPTIMIZAÇÃO
xc
0.3xc+0.5xr=16
X* 0.5xc+0.3xr=120
S 0.6xc+0.5xr=23
0.6xc+0.5xr=22
0
0 x
r
5xc+6xr=L*
vb xc xr f1 f2 f3 bi
f1 0 0 1 -1.067 0.467 104
xc 1 0 0 3.333 -3.333 20
xr 0 1 0 -2 4 20
−L 0 0 0 -4.667 -7.333 -220
i.e.
1 −1.067 0.467
B−1 = 0 3.333 −3.333
0 −2 4
118 CAPÍTULO 9. ANÁLISE DE PÓS-OPTIMIZAÇÃO
x
c
X* 0.5xc+0.3xr=120
0
0 x
r
5xc+6xr=L*
Coeficientes de vnb x
x 2 Coeficientes de vb
B
X*
*
X
xD x
1
Coeficientes das vnb Uma vez que são alterados elementos da matriz D, a solu-
ção mantém-se óptima sse satisfaz o teste de optimalidade, i.e. com a nova
matriz D′
r = cD T − cB T B−1 D′ ≥ 0
Caso contrário, continuar o Simplex a partir do último quadro.
Coeficientes das vb Neste caso são alterados elementos da matriz B logo, para
além do teste de optimalidade, a solução deve manter-se admissível. Com a
nova matriz B′ , estas condições traduzem-se por
−1
r = cD T − cB T B′ D≥0
e
−1
B′ b≥0
Caso contrário, recuar até uma solução possível e continuar o Simplex.
9.5. INTRODUÇÃO DE NOVAS VARIÁVEIS E DE NOVAS RESTRIÇÕES121
se mantém óptima. Neste caso, apenas é alterado o lucro óptimo, que baixa para
CB ∗ xB = L∗ = 208.33, bem como os preços sombra, que passam para y∗2 = 5.833
e y∗3 = 5.
Para uma maior alteração deste coeficiente, seja 0.7 o novo coeficiente, obte-
mos r = [−7.778, −1.111] e xB = [111.111, −2.222, 33.333] logo não admis-
sível. Recuando no quadro Simplex para este exemplo, na iteração anterior a
solução básica é xB = [ f1 , f2 , xr ] = [110.4, 6, 32], a que correspondem as matri-
zes
1 0 0.3 0.5 0
B = 0 1 0.7 , D = 0.6 0
0 0 0.5 0.3 1
obtemos xB = B−1 b = [110.4, −0.4, 32], pelo que teremos de recuar até à primeira
iteração e refazer as iterações.
Dualidade
10.1 Definições
No problema Dual os preços sombra assumem o papel de variáveis de decisão.
De forma análoga, as variáveis de decisão do Problema Primal, constituem os
preços sombra do Dual.
Por definição, os preços sombra constituem os coeficientes das variáveis de
folga na função objectivo. Já vimos que o preço sombra yi traduz o incremento na
função objectivo, por unidade de aumento do recurso i. Este valor pode interpretar-
se como o custo pela não utilização de unidades adicionais do respectivo recurso,
ou o preço pago pela limitação do recurso em causa.
No caso do problema da Padaria Madrugada
123
124 CAPÍTULO 10. DUALIDADE
Max Z(x) = c1 x1 + c2 x2 + · · · + cn xn
s.a a11 x1 + a12 x2 + · · · + a1n xn ≤ b1
Max Z(x) = cx
a21 x1 + a22 x2 + · · · + a2n xn ≤ b2
⇔ s.a Ax ≤ b
···
x≥0
am1 x1 + am2 x2 + · · · + amn xn ≤ bm
x j ≥ 0, j = 1, 2, . . ., n
Min W (x) = b1 y1 + b2 y2 + · · · + bm ym
s.a a11 y1 + a21 y2 + · · · + am1 ym ≥ c1
Min W (y) = by
a12 y1 + a22 y2 + · · · + am2 ym ≥ c2
⇔ s.a yA ≥ c
···
y≥0
a1n y1 + a2n y2 + · · · + amn ym ≥ cn
yi ≥ 0, i = 1, 2, . . ., m
10.1. DEFINIÇÕES 125
Exemplo 24
Min Z(x) = cx
s.a Ax ≥ b
x≥0
Max W (y) = by
s.a yA ≤ c
y≥0
Desta forma, sendo simétrica esta definição, verifica-se que o problema Dual
de um problema Dual é o primal. Isto é, cada um dos dois problemas é simulta-
neamente Primal e Dual um relativamente ao outro.
Outra consequência desta definição é que os parâmetros dos dois problemas,
Primal e Dual são os mesmos. Em particular, os coeficientes de uma restrição no
Primal, constituem os coeficientes de uma variável no Dual e vice-versa. Assim
como os coeficientes da f.o. num dos problemas, constituem os termos indepen-
dentes das restrições do outro problema.
Correspondência entre parâmetros
Primal Dual
restrição i ↔ variável i
f. obj. ↔ termos ind.
Com esta correspondência de parâmetros, é natural esperar encontrar uma re-
lação entre as soluções do Primal e do Dual. Das restrições dos dois problemas
Ax ≤ b
yA ≥ c
126 CAPÍTULO 10. DUALIDADE
Z(x∗ ) = W (y∗ )
logo
Z(x) = W (y) ⇐⇒ cB B−1 b = yb
Para mostrar que a solução desta equação y = cB B−1 é a s.o. do Dual, é suficiente
verificar o critério de admissibilidade.
Resolução
• O cálculo de
xB = B−1 b = (6, −4, 3)
permite verificar que esta solução óptima é não admissível. Para diminuir
o grau de não admissibilidade desta solução, devemos tomar a linha f2
como pivot. A determinação do menor dos quocientes positivos c j /ai, j ,
onde ai, j são os coeficientes negativos da linha pivot e c j os da linha da
f.o., determina que f3 corresponde à coluna pivot. A eliminação de Gauss
permite obter o seguinte quadro
128 CAPÍTULO 10. DUALIDADE
vb x1 x2 x3 f1 f2f3 bi
x2 3 1 0 .5 0 .5 6
f2 0 0 0 3 1 -2 -4
x3 1 0 1 -.5 0 .5 3
−Z -8 0 0 -.5 0
-1.5 -15
Qi .75
x2 3 1 0 1.25 0.25 0 5
f3 0 0 0 -1.5 -.5 1 2
x3 1 0 1 .25 .25 0 2
−Z -8 0 0 -2.75 -0.75 0 -12
vb x1 x2 x3 f1 f2 f3 f4 bi
x2 3 1 0 .5 0 .5 0 4
f2 0 0 0 3 1 -2 0 0
x3 1 0 1 -.5 0 .5 0 2
f4 1 1 2 0 0 0 1 6
f4 -4 0 0 .5 0 -1.5 1 -2
−Z -8 0 0 -.5 0 -1.5 -10
Qi 2 1
x2 1.67 1 0 0.67 0 0 .33 3.33
f2 5.33 0 0 2.33 1 0 1.33 2.67
x3 -.33 0 1 -.33 0 0 -.5 1.33
f3 2.67 0 0 -.33 0 1 -.67 1.33
−Z -4 0 0 -1 0 0 -1 -8
• Regressar a 1.
130 CAPÍTULO 10. DUALIDADE
Capítulo 11
Programação Inteira
11.1 Definições
Em muitos problemas de Programação Matemática, o significado das variá-
veis de decisão impõem que os seus valores só fazem sentido se forem números
inteiros. São exemplos desta natureza casos em que as variáveis de decisão repre-
sentam o número de pessoas, de máquinas ou de veículos a atribuir a determinada
actividade. Se a formulação de um problema conduz a um problema de Progra-
mação Linear, excepto que as variáveis são restritas a valores inteiros, diz-se que
se trata de um problema de Programação Inteira (PI). Se apenas algumas das va-
riáveis de decisão devem obedecer à restrição de tomar valores inteiros, diz-se que
se trata de um problema de Programação Inteira Mista (PIM). O caso mais restrito
da PI em que os valores admissíveis das variáveis são apenas 0 e 1, valores fre-
quentemente utilizados como significando ’sim’ e ’não’ ou ’verdadeiro’ e ’falso’,
designa-se por Programação Inteira Binária (PIB).
Em qualquer dos casos, i.e. PI, PIM e PIB, embora com ligeiras diferenças
na implementação, ao problema pode aplicar-se um algoritmo de «Branch-and-
Bound». Esta metodologia baseia-se nos conceitos seguintes:
131
132 CAPÍTULO 11. PROGRAMAÇÃO INTEIRA
Exemplo 26
Iteração 1
Relaxar este problema, eliminando as restrições que dificultam a sua resolu-
ção, neste caso, consiste em eliminar as restrições de variáveis inteiras, relaxando-
as para restrições de não negatividade, o que conduz ao
P2 x1 ≤ 1
ր
P1 Inicio
(1.25, 1.5, 1.75, 0) ց
Z = 14.25 P3 x1 ≥ 2
No caso geral, sendo x∗i ∈]k, k+1[ a variável de ramificação, com k = ⌊xi ⌋ ∈ N,
as restrições xi ≤ k e xi ≥ k + 1 conduzem a dois sub-problemas cuja solução óp-
tima tem um valor xi necessariamente distinto do valor x∗i não inteiro do problema
de partida.
O passo seguinte consiste em calcular limites superiores para os valores ópti-
mos das soluções destes dois problemas. Estes valores são obtidos relaxando as
restrições da mesma forma que para o Probl.1. Resolvidos os problemas relaxados
obteve-se
Problema 2 relaxado: (x1 , x2 , x3 , x4 ) = (1, 1.2, 1.8, 0), Z = 14.2
Problema 3 relaxado: Não existem soluções admissíveis.
P2 x1 ≤ 1
(1, 1.2, 1.8, 0)
Z = 14.2
ր
P1 Inicio
(1.25, 1.5, 1.75, 0) ց
Z = 14.25 P3 x1 ≥ 2
S = 0/
Iteração 2
Uma vez que para o Probl.3 não existem soluções admissíveis, a iteração 2
consiste em aplicar a mesma metodologia da iteração 1, ao problema 2.
Variável de ramificação: x2 = 1.2 ∈ [1, 2].
Ramificação:
134 CAPÍTULO 11. PROGRAMAÇÃO INTEIRA
P4 x2 ≤ 1
ր
P2 x1 ≤ 1
(1, 1.2, 1.8, 0) ց
ր Z = 14.2 P5 x2 ≥ 2
P1 Inicio
(1.25, 1.5, 1.75, 0) ց
Z = 14.25 P3 x1 ≥ 2
S = 0/
Limite superior:
P4 x2 ≤ 1
ր (0.83, 1, 1.83, 0)
P2 x1 ≤ 1 Z = 14.17
(1, 1.2, 1.8, 0) ց
ր Z = 14.2 P5 x2 ≥ 2
P1 Inicio (0.83, 2, 1.83, 0)
(1.25, 1.5, 1.75, 0) ց Z = 12.17
Z = 14.25 P3 x1 ≥ 2
S = 0/
Iteração 3
Ramificar Probl.4: Variável de ramificação: x1 = 0.83 ∈ [0, 1]
Limite superior:
11.2. ALGORITMO BRANCH-AND-BOUND 135
Problema 6 relaxado:
P6 x1 = 0
(0, 0, 2, 0.5)
ր Z = 13.5
P4 x2 ≤ 1
(0.83, 1, 1.83, 0)ց
ր Z = 14.17 P7 x1 = 1
P2 x1 ≤ 1 S = 0/
(1, 1.2, 1.8, 0)ց
ր Z = 14.2 P5 x2 ≥ 2
P1 Inicio (0.83, 2, 1.83, 0)
(1.25, 1.5, 1.75, 0)ց Z = 12.17
Z = 14.25 P3 x1 ≥ 2
S = 0/
Iteração 4
Ramificar Probl.6: Variável de ramificação: x4 = 0.5 ∈ [0, 1]
Problema 8: Probl.6 + restrição x4 ≤ 0 ⇒ x4 = 0
136 CAPÍTULO 11. PROGRAMAÇÃO INTEIRA
P8 x4 = 0
(0, 0, 1, 0)
ր Z=7
P6 x1 = 0
(0, 0, 2, 0.5)ց
րZ = 13.5 P9 x4 ≥ 1
P4 x2 ≤ 1 (0, 0, 2, 1)
(0.83, 1, 1.83, 0)ց Z = 13
ր Z = 14.17 P7 x1 = 1
P2 x1 ≤ 1 S = 0/
(1, 1.2, 1.8, 0)ց
ր Z = 14.2 P5 x2 ≥ 2
P1 Inicio (0.83, 2, 1.83, 0)
(1.25, 1.5, 1.75, 0)ց Z = 12.17
Z = 14.25 P3 x1 ≥ 2
S = 0/
11.2. ALGORITMO BRANCH-AND-BOUND 137
Uma vez que os problemas 8 e 9 relaxados têm soluções óptimas que são ad-
missíveis para os problemas 8 e 9 completos, estas soluções constituem soluções
admissíveis para o problema original. Logo, a iteração 4 termina com a escolha do
óptimo provisório Z ∗ = 13 correspondente ao problema 9, por ser o valor máximo
dos dois.
Encontrada uma solução admissível inteira, o passo seguinte do algoritmo con-
siste em pesquisar a árvore para trás, em busca de outro sub-problema que possa
ramificar-se e produzir um valor óptimo superior ao valor provisório Z ∗ já encon-
trado.
Neste caso, uma vez que apenas o problema 5 estaria em condições de ser
ramificado e que a este problema corresponde um máximo da função objectivo que
é inferior ao valor provisório, obtido com o problema 9, nenhum sub-problema
do problema 5 poderá produzir uma solução com função objectivo maior. logo, a
resolução do problema termina com a solução óptima (x∗1 , x∗2 , x∗3 , x∗4 ) = (0, 0, 2, 1)
e Z ∗ = 13.
Algoritmo Branch-and-Bound
P6 : Max. Z = 7 − x2 − 3x4
s.a 2x2 + 5x4 ≥ 4
x2 + 4x4 ≥ 3
x2 , x4 ∈ {0, 1}
e
P7 : Max. Z = 11 − x2 − 3x4
s.a 2x2 + 5x4 ≥ 8
x2 + 4x4 ≥ 5
x2 , x4 ∈ {0, 1}
É imediato verificar, até por tentativas, que o problema P6 só tem duas soluções
admissíveis (x2 , x4 ) = (0, 1) e (x2 , x4 ) = (1, 1), a que correspondem os valores
Z = 4 e Z = 3, logo valores inferiores a Ẑ. Quanto a P7 , verifica-se que não tem
soluções admissíveis. Descartados estes dois problemas, concluímos o algoritmo
com a solução óptima x1 = x2 = 0, x3 = x4 = x5 = 1 e Z = 6.