Escolar Documentos
Profissional Documentos
Cultura Documentos
Notas de Aula
Joilson B. A. Rêgo
“O espírito do homem pode descobrir
até o infinito, apenas sua preguiça impõe
limites à sua sabedoria e suas descober-
tas”. —Bossuet.
Conteúdo
0.1 Prefácio 11
I Background
0.2 O Espaço Vetorial normado Rn 15
0.2.1 Norma no Rn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
0.2.2 Produto interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
0.2.3 Projeção Ortogonal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
0.3 Matrizes 21
0.3.1 Norma Matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
II Unidade I
1 Conceitos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.1 Modelagem Matemática e Resolução de Problemas 27
1.2 Aproximação 28
1.3 Exercícios 30
1.3.1 Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6 Ajuste de Curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.1 Regressão por Mínimos Quadrados 91
6.1.1 Caso Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.1.2 Ajuste não linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2 Ajuste trigonométrico 102
6.3 Exercícios Propostos 107
7 Interpolação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1 Polinômios interpoladores de Lagrange 112
7.2 Polinômios interpoladores por Diferenças Divididas de Newton 117
7.3 Exercícios Propostos 119
IV Unidade III
8 Integração Numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.1 Regra do trapézio 124
8.2 As Regras de Simpson 127
8.2.1 Regra 1/3 de Simpson generalizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.2.2 Regra 3/8 ou segunda regra de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.3 Quadratura de Gauss 131
8.4 Exercícios Propostos 134
V Laboratórios
10 Laboratórios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
10.0.1 Python e Pacotes necessários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
10.1 Laboratório 01 : Expansão em Séries de Taylor 156
10.1.1 Aproximação utilizando séries de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . 156
10.1.2 Erros de truncamento nas séries de Taylor . . . . . . . . . . . . . . . . . . . . . . . . 157
10.1.3 Exercícios Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.2 Laboratório 02 : Solução de Equações não lineares 160
10.2.1 Acuracidade da solução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
10.2.2 Método da Bissecção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
10.2.3 Método da Falsa Posição ou Regula Falsi . . . . . . . . . . . . . . . . . . . . . . . . . 164
10.2.4 Método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
10.2.5 Método da Secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
10.2.6 Exercícios Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
10.3 Laboratório 03 : Sistemas de Equações Lineares - SEL 169
10.3.1 Método de Eliminação de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
10.3.2 Decomposição LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
10.3.3 Método Iterativo de Gauss - Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
10.3.4 Exercícios Propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.4 Ajuste de Curvas 176
10.5 Interpolação 184
10.6 Resolução Numérica de EDO’s 188
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
0.1 Prefácio
Este trabalho é fruto de uma coletânea das minhas notas de aulas na disciplina de CN -
Computação Numérica ministrada nos últimos anos na Escola de Ciência e Tecnologia
da Universidade Federal do Rio Grande do Norte (ECT - UFRN). Esta coletânea, não
substitui os livros textos e têm como objetivo secundário auxiliar no encaminhamento dos
estudos e atividades durante o desenvolvimento da disciplina.
O principal objetivo ao apresentar ao longo do texto, os principais conceitos da computação
numérica, é auxiliar o aluno na resolução de problemas da engenharia por meio de métodos
numéricos e posterior implementação computacional para aferição dos resultados obtidos e
conclusões. Portanto, para um bom aproveitamento do curso é recomendável ao estudante
conhecimentos básicos em Álgebra Linear, Cálculo Diferencial e Integral e Linguagem de
Programação. Na seguinte tabela segue algumas dicas de técnicas de estudo que podem
ser implementadas pelo aluno ao longo do curso. É apenas uma referência e em nenhum
momento tende a substituir técnicas ou métodos adotados individualmente por cada um.
Joilson B. A. Rêgo
Junho, 2021
I
Background
0.2.1 Norma no Rn
Definição 0.2.2 — Norma. Seja V ⊆ Rn um espaço vetorial. Uma função k.k : V 7→ R
é denominada norma se ∀ x, y ∈ V e λ ∈ R, temos:
Considere x = (x1 x2 · · · xn )T ∈ Rn
!1
n p
p
kxk p = ∑ |xi| ; p ≥ 1 → norma p
i=1
n
kxk1 = ∑ |xi | = |x1 | + |x2 | + · · · + |xn | → norma um ou da soma
i=1
!1
n 2 p
kxk2 = ∑ |xi|2 = x1 2 + x2 2 + · · · xn 2 → norma Euclidiana
i=1
n
hx, yi = xT y = x1 .y1 + x2 .y2 + · · · + xn .yn = ∑ xk .yk
k=1
hx, yi = 0.
||x||2 = ||y||2 = 1.
um vetor no Rn pode ser escrito como uma combinação linear de uma base ortonormal, ou
seja,
x = x1 e1 + x2 e2 + · · · + xn en = hx, e1 i e1 + · · · + hx, en i en
0.2 O Espaço Vetorial normado Rn 17
onde,
e1 = (1, 0, · · · , 0, 0)T
T
e2 = (0, 1, 0, · · · , 0)
..
.
e = (0, 0, · · · , 0, 1)T
n
Exemplo 0.2 Seja, E um espaço vetorial de funções polinomiais no intervalo [0; 1].
Para cada n ∈ N, seja En o subespaço de funções polinomiais de grau ≤ n. Se En possui
dimensão n + 1. Então, {p0 , p1 , · · · , pn } representa uma base do En e um polinômio
arbitrário de grau n pode ser escrito como uma combinação linear
p = a0 + a1 p1 + a2 p2 + · · · + an pn = a0 + a1 x + a2 x2 + · · · + an xn .
R nos exercícios para não sobrecarregar a notação, iremos considerar ||.||2 = ||.||
hx + y, x − yi = (x + y)T (x − y) = xT x − xT y + yT x − yT y
→ hx + y, x + yi = hx − y, x − yi
→ hx, yi = 0 → x ⊥ y.
Exercício 0.2 Suponha ||x|| = 3, ||x + y|| = 5 e ||x − y|| = 7. Calcule ||y||
(
kx + yk2 = hx + y, x + yi = kxk2 + 2 hx, yi + kxk2 = 25
2 2 2 → 2(kxk2 + kyk2 ) = 74.
kx − yk = hx − y, x − yi = kxk − 2 hx, yi + kxk = 49
√
||y||2 = 28 → ||y|| = 2 7
0.2 O Espaço Vetorial normado Rn 19
Exercício 0.3 Considerando o espaço de funções C ([0 ; 2π] ⊂ R, com produto interno,
Z 2π
h f (x), g(x)i = f (x)g(x)dx.
0
Mostre que o conjunto S = {1, cos(x), cos(2x), · · · , cos(nx), sen(x), sen(2x), · · · , sen(nx)},
é ortogonal.
Z 2π 2π
1
h1, cos(nx)i = cos(nx)dx = sen(nx) = 0
0 n 0
Z 2π 2π
1
h1, sen(nx)i = sen(nx)dx = − cos(nx) = 0
0 n 0
Z 2π
hsen(mx), cos(nx)i = sen(mx)cos(nx)dx = 0.
0
Se m 6= n, então o produto das funções trigonométricas, pode ser reescrito como uma
soma, ou seja,
sen((m + n)x) = sen(mx)cos(nx) + sen(nx)cos(mx)
sen((m − n)x) = sen(mx)cos(nx) − sen(nx)cos(mx)
sen((m + n)x) + sen((m − n)x) = 2sen(mx)cos(nx)
(9)
cos((m + n)x) = cos(mx)cos(nx) − sen(mx)sen(nx)
cos((m − n)x) = cos(mx)cos(nx) + sen(mx)sen(nx)
cos((m − n)x) + cos((m + n)x) = 2sen(mx)sen(nx)
Z 2π
1
hsen(mx), cos(nx)i = sen((m + n)x) + sen((m − n)x)dx
2 0
1 2 2π
hsen(mx), cos(nx)i = sen (mx) 0 = 0
2m
Z 2π
1
hsen(mx), sen(nx)i = cos((m − n)x) + cos((m + n)x)dx = 0, m 6= n.
2 0
Z 2π
1
hcos(mx), cos(nx)i = cos((m + n)x) + cos((m − n)x)dx = 0, m 6= n.
2 0
Note que o conjunto S forma uma base ortogonal no espaço C ([0 ; 2π]). Podemos
20
os k, l - ésimos termos complexos de uma função de base. Mostrar que tais funções são
ortogonais e, a partir das mesmas, crie um conjunto ortonormal.
ortogonalidade:
1 − e2πi(k−l)
= (k−l)
→ Sk ⊥ Sl , k 6= l.
1 − e2πi N
Norma,
N−1 (k−k) √
hSk , Sk i = ∑ e2πi N = N → kSk k = N.
n=0
Portanto,
nk
Sk (n) e2πi N
S̃k (n) = = √
kSk k N
constitui um conjunto ortonormal. Pois,
(
1 se k = l
S̃k , S̃l =
0 se k 6= l
0.3 Matrizes 21
Proposição 0.2.1. Se {v1 , v2 , · · · , vn } formam uma base ortonormal num espaço com
produto interno V, então um vetor w ∈ V, pode ser representado com relação a base por,
0.3 Matrizes
A análise de algoritmos matriciais requer o uso de normas matriciais. Por exemplo, a
qualidade de uma solução em sistemas lineares pode não ser a ideal se a matriz dos
coeficientes não for adequada. Para isso, precisamos de um quantificador, uma métrica
(por exemplo, distância) no espaço matricial. Normas matriciais podem ser usadas para
fornecer essa métrica ou quantificador.
det(A − λ I) = 0
22
(A − λ I)x = 0
Exemplo 0.3 !
2 −3
A= → det(A) = 2.2 − (−3).4 = 16.
4 2
e ! !
1 3
1 2 3
A−1 = = 8 16
16 −4 2 − 14 1
8
R
AA−1 = A−1 A = I
Exemplo 0.4 ! ! !
1 3
2 −3 1 0
AA−1 = 8 16 =
4 2 − 41 1
8 0 1
! ! !
1 3
2 −3 1 0
A−1 A = 8 16 = .
− 41 1
8 4 2 0 1
Para matrizes n × n, iremos abordar outros conceitos, tais como menores e co fato-
res.
0.5 Determinante e Matriz Inversa 23
Definição 0.5.2 Seja An×n , o menor Mi j do elemento ai j é o determinante da matriz
obtida, eliminando-se a iésima linha a a jésima coluna de A. O co fator Ci j é dado por:
Ci j = (−1)i+ j Mi j .
de modo que,
c11 c12 · · · c1n
c21 c22 · · · c2n
C=
..
.
cn1 cn2 · · · cnn
corresponde a matriz de co fatores de A. A transposta dessa matriz é denominada
a matriz adjunta da matriz A e é denotada por ad j(A). O determinante pode ser
calculado utilizando,
n
det(A) = ∑ ai jCi j = a11C11 + a12C12 + · · · + a1nC1n
j=1
1
A−1 = ad j(A)
det(A)
Exemplo 0.5
0 2 1
A = 3 1 2
5 1 0
1 2 3 2 3 1
M11 = = −2; M = = −10; M13 = = −2
12
1 0 5 0 5 1
2 1 0 1 0 2
M21 = = −1; M22 = = −5; M23 = = −10
1 0 5 0 5 1
2 1 0 1 0 2
M31 = = 3; M32 = = −3; M33 = = −6
1 2 3 2 3 1
C11 = (−1)1+1 M11 = −2; C12 = (−1)1+2 M12 = 10; C13 = (−1)1+3 M13 = −2;
C21 = (−1)2+1 M21 = 1; C22 = (−1)2+2 M22 = −5; C23 = (−1)2+3 M23 = 10;
C31 = (−1)3+1 M31 = 3; C32 = (−1)3+2 M32 = 3; C33 = (−1)3+3 M33 = −6.
24
Assim,
det(A) = 0.C11 + 2.C12 + 1.C13 = 18;
ou
det(A) = 3.C21 + 1.C22 + 2.C23 = 18;
ou
det(A) = 5.C31 + 1.C32 + 0.C33 = 18.
De mdo que,
−2 1 3
1
A−1 = 10 −5 3
18
−2 10 −6
Ou seja,
lim xk = x
k→∞
caso contrário, a sequência é dita divergente.
No caso matricial,
Definição 0.6.2 Uma sequência (Ak )k∈N no Rm×n converge, se existe uma matrix
A ∈ Rm×n tal que,
lim kAk − Ak = 0
k→∞
Proposição 0.6.1. Um sequência (xk )k∈N no Rn é dita limitada, se existe M > 0 em R tal
que,
kxk k ≤ M, ∀k ∈ N.
II
Unidade I
1 Conceitos Básicos . . . . . . . . . . . . . . . 27
1.1 Modelagem Matemática e Resolução de Pro-
blemas
1.2 Aproximação
1.3 Exercícios
• Definição do problema;
• Modelagem Matemática ou formulação do problema;
• Resultados numéricos ou gráficos;
• Implementação computacional;
• Análise e interpretação dos resultados obtidos.
dv dv c dv
∑ F = m.a = m. dt → Fd − Fv = m. → g− v =
dt m dt
28 Capítulo 1. Conceitos Básicos
dv c
= g − v. (1.1)
dt m
Cuja solução analítica é obtida por meio de um dos métodos de resolução matemática de
Equações Diferenciais Ordinárias (EDO’s) de primeira ordem. No caso, utilizaremos fator
integrante.
dv c dv c c c m
Z
+ v = g → e( /m)t +v e( /m)t = ge( /m)t → v.e( /m)t = g e( /m)t dt → v(t) = g +C.e( /m)t
c c c c
dt m dt m c
m −(c/m)t
v(t) = g 1−e (1.2)
c
1.2 Aproximação
O Principal objetivo é determinar por meio de aproximações, uma função v(t) que satisfaça
a EDO, isto é, v0 (t) = f (t, v) com v(t0 ) = v0 como condição inicial. Assim sendo, iremos
aproximar a derivada (reta tangente) pela reta secante num dado intervalo finito fechado.
Ou seja,
dv ∆v v(ti+1 ) − v(ti )
≈ = (1.3)
dt ∆t ti+1 − ti
de posse destas informações podemos seguir à próxima etapa que trata da obtenção
de resultados numéricos e gráficos para análise dos resultados obtidos através de uma
implementação computacional.
1.2 Aproximação 29
Figura 1.1: O uso de uma diferença finita para aproximar a primeira derivada de v com
relação a t
50
45
40
35
30
velocidade (m/s)
25
20
15
10
5 Solução exata
Solução aproximada
0
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
tempo(s)
1.3 Exercícios
Para fixação do conteúdo apresentado, iremos apresentar alguns exercícios resolvidos e
alguns propostos.
0.7
0.6
0.5
0.4
0.3
Nível (m)
0.2
0.1
−0.1
−0.2
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
tempo (s)
Figura 1.3: Tanque e uma simulação da dinâmica dada pela equação do exercício
dy 1
= 3sen2 (t) − Q → y(ti+1 ) = y(ti ) + 3sen2 (ti ) − Q (ti+1 − ti )
A
dt A
1
y(ti ) + 3sen2 (ti ) − 500 .(0, 5)
=
1200
1.3.1 Propostos
Exercício 1.2 Considere a EDO de primeira ordem:
dy
= y.x − x3
dx
dT
= −k(T − Ta )
dt
Exercício 1.4 Algumas células crescem exponencialmente, levando 25 horas para do-
brar quando têm um suprimento ilimitado de nutrientes. Entretanto, conforme as células
começam a formar uma estrutura esférica e sólida, se houver o corte no suprimento
de sangue, o crescimento no centro da estrutura se torna limitado e, eventualmente, as
células começam a morrer.
• O crescimento exponencial do número de células N pode ser expresso como
mostrado, onde α é a taxa de crescimento das células. Encontre o valor de α.
dN
= αN
dt
Exercício 1.5 Mostre que a função y(x) = x.sen(x) é solução das seguintes EDO’s:
• y + x2 cos(x) = xy0
• y00 = 2cos(x) − y
• x(y00 + y) = 2y0 − 2sen(x)
2.1 Erros
Os erros numéricos geralmente são provenientes do cálculo utilizando aproximações na
representação de quantidades exatas matematicamente. Ou seja,
Sa = Sn + e → e = Sa − Sn (2.1)
geralmente não possuem valores exatos. Sendo assim, a solução analítica nem sempre
é possível, neste caso fazemos uso de critérios de convergência para sequências (desde
que convergentes) na medição do erro e critério de parada (abordaremos esta técnica mais
adiante).
√ n
Ex: Sa = n! e Sn = 2πn ne conforme pode ser visto na tabela (2.1).
n Sa Sn erro
1 1 0,9221 0,0779
2 2 1,9190 0,0810
3 6 5,8362 0,1638
4 24 23,5062 0,4938
5 120 118,0192 1,9808
Tabela 2.1: Tabela comparativa entre a solução analítica (Sa ) × solução numérica (Sn ) e o
erro apresentado (Sa − Sn ).
Ea = |Sa − Sn | (2.2)
e o erro relativo
Ea |Sa − Sn |
Er = = (×100%) , Sa 6= 0 (2.3)
|Sa | |Sa |
Atualmente, em inúmeros problemas aplicados, existem muitas fontes de erro: tais como,
erros simples, de medição, modelagem, etc. No entanto, iremos focar apenas nos erros
computacionais, geralmente denominados erros de arredondamento ou truncamento. Para
entender estes erros, se faz necessário um estudo preliminar de sistemas numéricos e suas
representações computacionais.
a = qb + r (2.5)
Exercício 2.2 Converter os seguintes números inteiros na base apresentada para a base
solicitada:
• 27410 =?3
274 = 91.3 + 1
91 = 30.3 + 1
30 = 10.3 + 0
⇒ 27410 = 1010113 .
10 = 3.3 + 1
3 = 1.3 + 0
1 = 0.3 + 1
• 5310 =?2
53 = 26.2 + 1
26 = 13.2 + 0
13 = 6.2 + 1
⇒ 5310 = 1101012
6 = 3.2 + 0
3 = 1.2 + 1
1 = 0.2 + 1
• 5310 =?3
53 = 17.3 + 2
17 = 5.3 + 2
⇒ 5310 = 12223
5 = 1.3 + 2
1 = 0.3 + 1
Uma dúvida natural é, como proceder quando trabalharmos com bases que não é necessari-
amente a base decimal? Por exemplo: 235 =?4 uma maneira prática é utilizarmos a base
10 como ponte, ou seja, proceder da seguinte forma:
(
13 = 3.4 + 1
235 = 2.51 + 3.50 = 1310 ⇒ 235 = 314
3 = 0.4 + 3
parte fracionária
Na parte fracionária utilizaremos um método de multiplicação sucessiva pela base.
2.2 Sistemas numéricos 37
• 0, 710 =?3
0, 7.3 = 0, 1 + 2
0, 1.3 = 0, 3 + 0
0, 3.3 = 0, 9 + 0
0, 9.3 = 0, 7 + 2 ⇒ 0, 710 = 0, 2002200220 · · ·3 .
0, 7.3 = 0, 1 + 2
0, 1.3 = 0, 3 + 0
..
.
• 0, 710 =?2
0, 7.2 = 0, 4 + 1
0, 4.2 = 0, 8 + 0
0, 8.2 = 0, 6 + 1
0, 6.2 = 0, 2 + 1
⇒ 0, 710 = 0, 101100110 · · ·2
0, 2.2 = 0, 4 + 0
0, 4.2 = 0, 8 + 0
0, 8.2 = 0, 6 + 1
..
.
• 0, 5310 =?4
0, 53.4 = 0, 12 + 2
0, 12.4 = 0, 48 + 0
0, 48.4 = 0, 92 + 1
0, 92.4 = 0, 68 + 3
0, 68.4 = 0, 72 + 2
0, 72.4 = 0, 88 + 2
0, 88.4 = 0, 52 + 3 ⇒ 0, 5310 = 0, 201322320110 · · ·4
0, 52.4 = 0, 08 + 2
0, 08.4 = 0, 32 + 0
0, 32.4 = 0, 28 + 1
0, 28.4 = 0, 12 + 1
0, 12.4 = 0, 48 + 0
..
.
38 Capítulo 2. Representação em ponto flutuante
25 − 24 x = 10112 → 24 (2 − 1) x = 1.23 + 0.22 + 1.21 + 1.20
24 .2−4 (2 − 1) x = (1.23 +0.22 +1.21 +1.20 ).2−4 → x = 2−1 +2−3 +2−4 → x = 0, 687510
0, 6875.2 = 0, 375 + 1
0, 3750.2 = 0, 750 + 0
⇒ x = 0, 687510 = 0, 10112
0, 7500.2 = 0, 500 + 1
0, 5000.2 = 0, 000 + 1
onde:
• k, n ∈ Z
• 0 ≤ xi < β
• k≤0en>0
Exemplo: 11012
em que,
• b representa a base;
• p a precisão da máquina, ou seja o número de bits da mantissa;
• m ≤ e ≤ M é o expoente, onde m representa o menor e M o maior expoente;
• obrigatoriamente d1 6= 0
O menor número real positivo que pode ser representado no sistema F(b, p, m, M) é,
Exemplo 2.3 Considere o sistema F(2, 3, −1, 2). Quantos números podem ser represen-
tados neste sistema?
0, 100.2 −1 0, 100.20 0, 100.21 0, 100.22
0, 101.2−1
0, 101.20
0, 101.21
0, 101.22
0, 110.2−1
0, 110.20
0, 110.21
0, 110.22
0, 111.2−1 0, 111.20 0, 111.21 0, 111.22
Exemplo 2.4 Qual o menor e o maior número real positivo representado no sistema
F(2, 3, −3, 3)?
(−3−1) −4 1
xm = 2 =2 =
16 10
1, 012 = 0, 101.21
x = b1 b2 · · · bd bd+1 · · · bi ∈ {0, 1}
Trunca-se x na posição d : x0 = b1 b2 · · · bd
• se bd+1 = 0 → x0
• se bd+1 = 1 → x0 = b1 b2 · · · (bd + 1)
Exemplo 2.6 Represente o número 1, 4510 no sistema F(2, 3, −3, 3) utilizando trunca-
mento, arredondamento e calcule o erro relativo associado.
0, 45.2 = 0, 9 + 0
0, 90.2 = 0, 8 + 1
0, 80.2 = 0, 6 + 1
0, 60.2 = 0, 2 + 1 → 0, 4510 = 0, 011100110 · · ·2
0, 20.2 = 0, 4 + 0
0, 40.2 = 0, 8 + 0
..
.
e erro relativo,
|1, 45 − 1, 25|
Er = = 0, 1379 = 13, 79%
1, 45
com arredondamento temos,
(
0, 101
= 0, 110 = (1.2−1 + 1.2−2 )21 = 20 + 2−1 = 1, 510
+ 1
e erro relativo,
|1, 45 − 1, 5|
Er = = 0, 0344 = 3, 44%
1, 45
Exercício 2.4 Liste todos os números em ponto flutuante que são expressos na forma:
Exercício 2.5 Considere o sistema em ponto flutuante F(2, 3, −2, 2). Para esse sistema,
• qual o menor número positivo representável na base 10?
• qual o maior número positivo representável na base 10?
f (x + h) − f (x)
f 0 (x) ≈
h
no sistema F(2, 4, −3, 3).
Exercício 2.9 A derivada, f 0 (x) de uma função f (x) pode ser aproximada pela relação
f (x + h) − f (x)
f 0 (x) ≈
h
se f (x) = 0, 7e0,5x e h = 0, 3. Calcule
• o valor aproximado de f 0 (2)
• o erro relativo.
3. Expansão em Séries de Taylor
∆ f = a1 ∆x + O(∆x), ∆x → 0,
p1 (x) = a0 + a1 (x − x0 ) (3.1)
De maneira geral, supondo que a função f possui n derivadas no ponto x0 . Existe então,
um polinômio pn (x) de grau menor ou igual a n, tal que
e,
pn (x0 ) = f (x0 )
p0 (x0 ) = f 0 (x0 )
n
.. (3.3)
.
(n)
pn (x0 ) = f (n) (x0 ).
Por analogia, a partir da idéia apresentada na equação (3.1), podemos escrever o polinômio
de grau n, da seguinte maneira
valorando o polinômio no ponto x0 temos que a1 = p0n (x0 ) = f 0 (x0 ). A derivada segunda
de pn (x) com relação a x, é,
De maneira geral,
f (k) (x0 )
ak = , k = 0, 1, · · · , n
k!
Assim, podemos escrever o polinômio pn (x) como,
f (n+1) (ξ )
Er (x) = f (x) − pn (x) = O((x − x0 )n+1 ) ≈ (x − x0 )n+1 , x0 ≤ ξ ≤ x. (3.6)
(n + 1)!
• ordem zero: f (x) = 3x5 − 2x4 + 15x3 + 13x2 − 12x − 5 → f (2) = 207
• ordem um: f 0 (x) = 15x4 − 8x3 + 45x2 + 26x − 12 → f 0 (2) = 396
• ordem dois: f 00 (x) = 60x3 − 24x2 + 90x + 26 → f 00 (2) = 590
• ordem três: f 000 (x) = 180x2 − 48x + 90 → f 000 (2) = 714
• ordem quatro: f (4) (x) = 360x − 48 → f (4) (2) = 672
• ordem cinco: f (5) (x) = 360 → f (5) (2) = 360
• ordem superior: f (k) (x) = 0 → f (k) (2) = 0.
Portanto, para k ≥ 6, temos:
46 Capítulo 3. Expansão em Séries de Taylor
1 200
f(x)
ordem 0
1 000
ordem1
ordem 2
800 ordem 3
ordem 4
600 ordem 5
400
200
−200
−400
−600
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
Figura 3.1: Aproximação utilizando série de Taylor da função f (x) = 3x5 − 2x4 + 15x3 +
13x2 − 12x − 5, com 0 ≤ x ≤ 3, em torno do ponto x0 = 2. Com os gráficos da ordem zero
a cinco.
f 00 (x0 )
Se considerarmos a0 = f (x0 ), a1 = f 0 (x0 ), a2 = · · · Temos que a série de Taylor
2!
corresponde ao polinômio pn (x) definido em (3.5), quando n → ∞. Ou seja, Supondo
que a função f (x) definida num intervalo (a, b) é infinitamente diferenciável num ponto
x0 ∈ (a, b). Então, quando x → x0 .
∞
f (k) (x0 )
f (x) = ∑ (x − x0 )k . (3.7)
k=0 k!
f (x) = ex → f (0) = 1
f 0 (x) = ex → f 0 (0) = 1
..
.
f (n) (x) = ex → f (n) (0) = 1
..
.
Assim,
x
x2 xn ∞
xk
e = 1+x+ +···+ +··· = ∑ k! . (3.8)
2! n! k=0
n
xk eξ
ex ≈ ∑ k! (n + 1)! xn+1.
+ (3.9)
k=0
Exemplo 3.3 Obtenha a série de Taylor da função f (x) = cos(x) em torno do ponto
x0 = 0.
x2 x4 x6 ∞
x2k
cos(x) = 1 − + − + · · · = ∑ (−1)k . (3.10)
2! 4! 6! k=0 (2k)!
1
Exemplo 3.4 Obtenha a série de Taylor da função f (x) = em torno do ponto
1−x
x0 = 0, com |x| < 1.
1 x2 x3 x4 x5 ∞
= 1 + x + 2 + 6 + 24 + 120 + · · · = 1 + x + x2 + x3 + x4 + · · · = ∑ xk .
1−x 2! 3! 4! 5! k=0
(3.11)
∂f ∂f
f (x0 + h, y0 + k) = f (x0 , y0 ) + h (x0 , y0 ) + k (x0 , y0 )
∂x ∂y
1
2 ∂2 f 2
2∂ f 2∂ f
+ h (x0 , y0 ) + h.k (x0 , y0 ) + k (x0 , y0 )
2! ∂ x2 ∂ x∂ y ∂ y2
1 3∂3 f 2 ∂3 f 3
2 ∂ f
+ (h (x ,
0 0y ) + h .k (x ,
0 0y ) + h.k (x0 , y0 )
3! ∂ x3 ∂ x2 ∂ y ∂ x∂ y2
3.3 Exercícios 49
∂3 f
+k3 (x0 , y0 )) + · · ·
∂ y3
que pode ser simplificada por meio de,
∂ f (x0 , y0 ) n
∞
1 ∂ f (x0 , y0 )
f (x0 + h, y0 + k) = ∑ x+ y
n=0 n! ∂x ∂y
Exemplo 3.5 Calcular f (x, y) = sen(x.y), onde x = 0, 1 rad e y = 0, 2 rad. Use serie de
Taylor em 2 variáveis.
3.3 Exercícios
3.3.1 Resolvido
Exercício 3.1 Utilizando a série de Maclaurin calcule o valor da função f (x) = cos(x),
no ponto x1 = π
4 a partir do ponto x0 = π
12 .Com erro relativo ≤ 10−3 .
π π π
∆x = x1 − x0 = − =
4 12 6
f (k) (x0 )
f (x + ∆x) = f (x0 ) + f 0 (x0 ).∆x + · · · + .(∆x)k + · · ·
k!
π
• ordem zero: f (x) = cos(x) → f ( 12 ) = 0, 9659
π
Ord1 (x) ≈ f (x0 ) + f 0 (x0 ).∆x = 0, 9659 − 0, 2588. = 0, 8304
6
0, 9659 π 2
Ord2 (x) ≈ Ord1 (x) − . = 0, 6980
2 6
no caso como estamos utilizando uma sequência numérica, o erro relatico é dado por,
| f (xi+1 ) − f (xi )|
Er =
| f (xi+1 )|
. Ou seja,
|0, 6980 − 0, 8304|
Er = = 0, 1897 > 10−3
|0, 6980|
50 Capítulo 3. Expansão em Séries de Taylor
como o erro está diminuindo, significa que a sequência está covergindo para a solução
desejada.
Uma maneira mais rápida de resolução do exercício, é fazer uso da expansão obtida em
(3.10):
∞
x2k
cos(x) = ∑ (−1)k
k=0 (2k)!
• ordem zero:
π 0
π
4
cos ≈ =1
4 0!
• ordem um:
π 0 π 2
π
4 4
cos ≈ − = 0, 6916
4 0! 2!
3.3 Exercícios 51
• ordem dois:
π 0 π 2 π 4
π
4 4 4
cos ≈ − + = 0, 7074
4 0! 2! 4!
|0, 7074 − 0, 5230|
Er = = 0, 0224 > 10−3
|0, 7074|
• ordem três:
π 0 π 2 π 4 π 6
π
4 4 4 4
cos ≈ − + − = 0, 7078
4 0! 2! 4! 6!
0.95
0.9
0.85
0.8
0.75 função
valor exato
Ord_0
0.7 Ord_1
Ord_2
Ord_3
0.65
0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8
Figura 3.2: Aproximação utilizando série de Taylor da função f (x) = cos(x), com 0, 2 ≤
x ≤ 0, 8, para determinar o cos(π/4). Com as aproximações da ordem zero a três.
52 Capítulo 3. Expansão em Séries de Taylor
Mostre que as séries de Taylor (MacLaurin) das mesmas são dadas por,
∞
1 ∞
x2k
sen(x) = ∑ (−1)k (2k + 1)! x2k+1, cos(x) = ∑ (−1)k (2k)!
k=0 k=0
Sabemos que,
∞
xk x2 x3 x4
ex = ∑ k! = 1 + x + 2! + 3! + 4! + · · ·
k=0
∞
(ix)k x2 x3 x4 x5 x6 x7
eix = ∑ (ix)! = 1 + ix − 2! − i 3! + 4! + i 5! − 6! − i 7! + · · ·
k=0
x2 x4 x6 x3 x5 x7
ix
e = 1− + − +··· +i x− + − +···
2! 4! 6! 3! 5! 7!
! !
∞
x 2k ∞
x 2k+1
eix = ∑ (−1)k + i ∑ (−1)k (3.12)
k=0 (2k)! k=0 (2k + 1)!
e, temos que
∞
xk x2 x3 x4 x5
e−x = ∑ (−1)k = 1−x+ − + − +···
k=0 k! 2! 3! 4! 5!
∞
(ix)k x2 x3 x4 x5
e−ix = ∑ (−1)k (ix)! = 1 − ix − 2! + i 3! + 4! − i 5! + · · ·
k=0
x2 x4 x6 x3 x5 x7
−ix
e = 1− + − +··· −i x− + − +···
2! 4! 6! 3! 5! 7!
! !
∞
x 2k ∞
x 2k+1
e−ix = ∑ (−1)k − i ∑ (−1)k (3.13)
k=0 (2k)! k=0 (2k + 1)!
somando as equações 3.12 e 3.13, temos que
!
x2k
∞ ∞
x2k eix + e−ix
eix + e−ix = 2 ∑ (−1)k → ∑ (−1)k =
k=0 (2k)! k=0 (2k)! 2
3.3 Exercícios 53
e subtraindo-as, obteremos
!
ix −ix
∞
k x2k+1 ∞
kx2k+1 eix − e−ix
e −e = 2i ∑ (−1) → ∑ (−1) =
k=0 (2k + 1)! k=0 (2k + 1)! 2i
3.3.2 Propostos
Exercício 3.3 Obtenha a série de Taylor da função f (x) = sen(x) em torno do ponto
x0 = 0.
Exercício 3.5 Sabemos do cálculo diferencial que a função tan : (−π/2, π/2) → R é
uma bijeção em C∞ com derivada positiva, e sua inversa tan−1 : R → (−π/2, π/2) possui
derivada igual a 1/(1 + x2 ), ∀x ∈ R. A partir das informações apresentadas obtenha a série
de Taylor da função tan−1 (x).
f (x) = x − 1 − 0, 5sen(x)
Z
cos(x)dx = sen(x) +C.
Exercício 3.10 Encontre via série de Taylor, um polinômio com coeficientes reais e
grau ≤ 5, de modo que Z π
|sen(x) − pn (x)|2 dx → 0.
−π
ex − e−x ex + e−x
senh(x) = , cosh(x) = .
2 2
∞
1 ∞
x2k
sen(x) = ∑ (−1)k (2k + 1)! x2k+1, cos(x) = ∑ (−1)k (2k)!
k=0 k=0
——————————————————————————–
4. Solução de Equações não lineares
Este capítulo é devotado aos problemas de determinar raízes (ou zeros) de equações. Eis
um problema que ocorre frequentemente em trabalhos científicos e/ou voltados a resolver
alguns casos na Engenharia. Por exemplo, A área S da superfície lateral de um cone é dada
por: p
S = πr r2 + h2
onde r representa o raio da base e h a altura. Para determinar o raio do cone, uma forma é
resumir o problema a encontrar um valor de r > 0, que satisfaça a equação
f (r) = 0. (4.1)
√
No caso, f (r) = S − πr r2 + h2 = 0.
Em resumo, o principal objetivo é escrever o problema como uma função f : R → R, de
modo a encontrar os valores de x, que satisfaçam a relação f (x) = 0 (no caso unidimensio-
nal).
Antes de apresentar alguns métodos numéricos de resolução para tais problemas, eis um
teorema de extrema importância a ser aplicado em alguns casos para isolar a raiz num
determinado intervalo fechado em R.
56 Capítulo 4. Solução de Equações não lineares
então
40
30
20
10
raiz 01 raiz 02 raiz 03
f(x)
−10
−20
−30
−40
−4 −3 −2 −1 0 1 2 3 4
x
Um vez que vimos como isolar uma raiz, o próximo passo consiste em refinar a busca
no intervalo, de modo a obtermos a solução (raiz) desejada. Ou seja, encontrar soluções
para a equação não linear univariável f (x) = 0 contínua em f : [a; b] ⊂ R 7→ R.Para isso,
iremos apresentar alguns métodos de resolução de tais equações.
4.1 Método da Bissecção 57
a+b
xr =
2
6 b
5
4
3
f(x)
2
Raiz aproximadamente em 0.688
1
m2
0
mm
m3m5
4
6
−1 a m1
−2
−2 −1 0 1 2
x
Figura 4.2: Visualização gráfica do método da bissecção para encontrar a raiz da função
f (x) = ex − 2 no intervalo de [−2 , 2].
58 Capítulo 4. Solução de Equações não lineares
Uma estimativa do número de passos necessários ao cálculo da raiz pode ser obtida
por meio da seguinte expressão,
1 b−a
n≥ log
log(2) tol
|xi+1 − xi |
Er = ≤ tol
|xi+1 |
Exemplo 4.2 Utilizando o algoritmo da bissecção. Quantos passos são necessários para
calcular a raiz de uma função f numa máquina de mantissa p = 32 com uma tolerância de
tol = 2101002 ? Considere a = 100002 e b = 100012 .
−101002 = 2−2010
2
1
17 − 16
1
a = 100002 = 1610 ⇒ n ≥ log −20
= (20.log(2)) = 20 → n ≥ 20.
log(2) 2 log(2)
b = 100012 = 1710
x2 = −ln(x)
n a b xr f (xr ) erro
0 0,5 1,00 0,75 0,2748 —
1 0,5 0,75 0,625 -0,0794 0,2000
2 0,625 0,75 0,6875 0,0980 0,0909
3 0,625 0,6875 0,6562 0,0093 0,0476
4 0,625 0,6562 0,6406 -0,0035 0,0244
5 0,6406 0,6562 0,6484 -0,0128 0,0120
Tabela 4.1: Solução do exercício 4.1.
4.2 Método da Falsa Posição 59
c = dI +V
se,
b f (a) a f (b)
c= −
f (a) − f (b) f (a) − f (b)
60 Capítulo 4. Solução de Equações não lineares
b f (a) a f (b)
c = b+ −b−
f (a) − f (b) f (a) − f (b)
b f (a) a f (b)
c = b+ −b−
f (a) − f (b) f (a) − f (b)
b f (a) f (a) − f (b) a f (b)
c−b = −b −
f (a) − f (b) f (a) − f (b) f (a) − f (b)
b f (a) − b f (a) + b f (b) − a f (a)
c−b =
f (a) − f (b)
f (b)(a − b)
c = b−
f (a) − f (b)
representada iterativamente por,
f (xi )(xi−1 − xi )
xi+1 = xi − (4.6)
f (xi−1 ) − f (xi )
que pode ser vista como uma aproximação da equação (4.8) referente ao método da secante.
.
Algorithm 2: Método de Newton
Passo 1: Escolha a condição inicial x0 tal que,
Defina tol
Passo 2: para i = 0, 1, 2, · · · , faça:
f (xi )
xi+1 = xi −
f 0 (xi )
if Er ≤ tol then
xi+1 é a solução.
2
Raiz aproximadamente em 0.693
1
0
x3 x2 x1 x0
−1
−2
−1 0 1 2
Figura 4.4: Visualização gráfica do método de Newton para encontrar a raiz da função
f (x) = ex − 2 no intervalo de [−1 , 2].
62 Capítulo 4. Solução de Equações não lineares
Exemplo 4.3 Use o método de Newton para fazer uma estimativa da raiz de f (x) =
e−x − x, com tol ≤ 10−2 .
√
Exercício 4.4 Calcular α com α > 0, utilizando o método de Newton.
Fazendo, (
√ f (x) = x2 − α
x = α → x2 = α →
f 0 (x) = 2x
(xi2 − α)
1 α
xi+1 = xi − → xi+1 = xi +
2xi 2 xi
Quando o método de Newton converge, geralmente o faz muito rapidamente, que ca-
racteriza uma vantagem em relação à bissecção. No entanto, no método de Newton é
necessário conhecer f 0 (x) explicitamente. Em alguns casos isso não é possível. O próximo
4.4 Método da Secante 63
f (xi ) − f (xi−1 )
f 0(x) ≈
xi − xi−1
No cálculo de xi+1 , necessitamos dos valores iniciais de xi e xi−1 . No entanto, cada novo
xi+1 requer apenas uma nova avaliação do valor de f (xi ).
A interpretação gráfica do método da secante é similar ao de Newton. Ou seja, a reta
tangente é substituida pela reta secante.
if Er ≤ tol then
xi+1 é a solução.
Exemplo 4.5 Utilize o método da secante para fazer uma estimativa da raiz de f (x) =
x3 − senh(x) + 4x2 + 6x + 9. Comece com as estimativas iniciais de x0 = 7 e x1 = 8.
Exemplo 4.6 Um objeto é arremessado para cima com velocidade inicial v0 = 30m.s−1
a partir de uma altura h0 = 5m, em um local onde a aceleração da gravidade é g =
−9, 81m.s−2 . Sabendo que
gt 2
h(t) = h0 + v0t +
2
qual será o tempo gasto para o objeto tocar o solo, considerando o atrito desprezível?
g
h0 + v0ti + ti2 = 0 → f (ti ) = 5 + 30ti − 4, 905ti2
2
f (xi )
φ (xi ) = xi − .
f 0 (xi )
A expressão (4.9) pode ser utilizada para gerar sequências que podem não convergir. No
entanto, estamos interessados em casos onde limi→∞ xi existe. Supondo que,
lim xi = α.
i→∞
Se φ é contínua, então
φ (α) = φ lim xi = lim φ (xi ) = lim xi+1 = γ ⇒ φ (α) = γ.
i→∞ i→∞ i→∞
4.5 Iteração funcional e ponto fixo 65
Onde γ é um ponto fixo da função φ . Intuitivamente, pensar num ponto fixo, é denominar
um ponto onde a função “trava” no processo iterativo. Freqüentemente, um problema
matemático pode ser reduzido a um problema de encontrar um ponto fixo de uma função.
Aplicações interessantes podem ser vistas em equações diferenciais, teoria da otimização e
outras áreas.
Teorema 4.5.1 Seja φ (x) contínua e diferenciável no intervalo [a; b] tal que φ ([a; b]) ⊂
[a, b], e que
λ = max φ 0 (x) < 1.
a≤x≤b
Então,
• x = φ (x) possui uma única solução α ∈ [a; b];
• para alguma escolha de x0 ∈ [a; b], com xi+1 = Φ(xi ),i ≥ 0
lim xi = α
i→∞
•
λi
|α − xi | ≤ λ i |α − x0 | ≤ |x1 − x0 |
1−λ
α − xi+1
lim = φ 0 (α).
i→∞ α − xi
Ou seja, como condição suficiente, temos que se |φ 0 (x)| < 1, para todo x ∈ [a; b], então a
sequência (xi )i∈N gerada pela expressão (4.9) converge para a raíz.
i xi xi+1 erro
0 0,5000 0,8775 —
1 0,8775 0,6390 0,3733
2 0,6390 0,8027 0,2039
3 0,8027 0,6947 0,1553
4 0,6947 0,7682 0,0955
5 0,7682 0,7191 0,0681
6 0,7191 0,7523 0,0441
7 0,7523 0,7301 0,0305
8 0,7301 0,7451 0,0201
9 0,7451 0,7350 0,0137
10 0,7350 0,7418 0,0091
Tabela 4.6: Solução do exemplo 4.6.
x3 + x − 1 = 0
x3 + x − 1 = 0 → x3 + x − x − 1 = 0 − x → x = 1 − x3 → φ (x) = 1 − x3
ou
√ √
x3 + x − 1 = 0 → x3 − x3 + x − 1 = 0 − x3 → x = 3
1 − x → φ (x) = 3 1 − x
ou
1 + 2x2 1 + 2x2
x3 +x−1 = 0 → x3 +2x3 +x = 1+2x3 → x(3x2 +1) = 1+2x2 → x = → φ (x) =
1 + 3x2 1 + 3x2
Exemplo 4.10 — Aplicação. Cada vez que um GPS é usado, o sistema de equações
não lineares
(x − a1 )2 + (y − b1 )2 + (z − ci )2 = [(C(t1 − D)]2
(x − a )2 + (y − b )2 + (z − c )2 = [(C(t − D)]2
2 2 i 2
(4.15)
(x − a3 ) + (y − b3 ) + (z − ci ) = [(C(t3 − D)]2
2 2 2
(x − a )2 + (y − b )2 + (z − c )2 = [(C(t − D)]2
4 4 i 4
é resolvido para as coordenadas (x, y, z) do receptor. Para cada satélite i as localizações são
(ai , bi , ci ), e ti é o tempo de sincronização da transmissão a partir do satélite. Além disso,
temos a constante de velocidade da luz C e, D que representa a diferença entre o tempo de
sincronização do satélite e do receptor.
68 Capítulo 4. Solução de Equações não lineares
2rsen(θ )
x̄ = .
3θ
onde r é o raio da base e h a altura. Determine o raio de um cone que tenha uma área
superficial de 1200 m2 e uma altura de 20 m, calculando cinco iterações com o método
da iteração de ponto fixo. Comece com r0 = 17 m.
Exercício 4.9 Usando o método de Newton determine x ∈ R, com Ea ≤ 10−2 , tal que
a matriz:
0.5 0.2 x
0.4 x 0.5
x 0.5 0.2
seja singular.
4.7 Exercícios Propostos 69
sen2 (x)
3 2 x
f (x) = x − 9x + 25x 1 + + − 24
25 sec2 (x)
Exercício 4.11 Num estudo de coleta em energia solar localizado num campo de
espelhos planos, com um coletor central, um pesquisador obteve a seguinte expressão
para o fator de concentração geométrico G:
π(h/cos(θ ))2 F
G=
0, 5πD2 (1 + sen(θ ) − 0, 5cos(θ ))
Exercício 4.12 A equação de Kepler para determinar órbitas de satélites, é dada por
M = x − E.sen(x).
Exercício 4.13 A velocidade ascendente de um foguete pode ser calculada pela se-
guinte equação:
m0
v = u.ln − g.t
m0 − q.t
onde v representa a velocidade de subida, u é a velocidade na qual o combustível é
repelido com relação ao foguete, m0 é a massa inicial (t = 0s), q é a taxa de consumo
de combustível, e g a aceleração da gravidade para baixo g ≈ 9, 81m/s2 . Se u = 2000m/s,
m0 = 150.000kg, e q = 2700kg/s. Calcule o instante no qual a velocidade é igual a
750m/s com 10 ≤ t ≤ 50s. Considere uma tolerância de 10−2 .
III
Unidade II
6 Ajuste de Curvas . . . . . . . . . . . . . . . . . 91
6.1 Regressão por Mínimos Quadrados
6.2 Ajuste trigonométrico
6.3 Exercícios Propostos
7 Interpolação . . . . . . . . . . . . . . . . . . . . 111
7.1 Polinômios interpoladores de Lagrange
7.2 Polinômios interpoladores por Diferenças Divi-
didas de Newton
7.3 Exercícios Propostos
5. Sistemas de Equações Lineares - SEL
Em muitas aplicações práticas nas ciências e nas engenharias, os dados são frequentemente
organizadas em linhas e colunas formando um sistema de equações lineares e para extrair
informações relevantes, geralmente temos que resolver tais sistemas. O objetivo principal
deste capítulo é o estudo de técnicas de resolução dos sistemas de equações lineares - SEL.
Como exemplo,
a11 x1 + a12 x2 + · · · + a1n xn = b1
a21 x1 + a22 x2 + · · · + a2n xn = b2
..
.
an1 x1 + an2 x2 + · · · + ann xn = bn .
Ax = b
onde,
• A → representa a matriz dos coeficientes;
• x → o vetor de parâmetros desconhecidos e;
• b → o vetor de parâmetros conhecidos ou vetor solução.
74 Capítulo 5. Sistemas de Equações Lineares - SEL
Seja o SEL:
a11 a12 a13 · · · a1n x1 b1
a23 · · · a2n x2 b2
a21 a22
a a
31 32 a33 · · · a3n
x3 b3
.. ... = ...
.
ai1 ai2 ai3 · · · ain xi bi
.. . .
. .
. . .
an1 an2 an3 · · · ann xn bn
que pode ser escrito na forma de matriz aumentada, em que a matriz de coeficientes A é
concatenada com o vetor solução b:
a11 a12 a13 · · · a1n b1
a23 · · · a2n b2
a21 a22
a a
31 32 a33 · · · a3n b3
.. .
.
. .
ai1 ai2 ai3 · · · ain bi
.. .
.
. .
an1 an2 an3 · · · ann bn
[A|b] .
0 0 a033 | b03
Exemplo 5.2 Use o método de eliminação de Gauss para resolver o seguinte SEL:
2x1 + 3x2 − x3 = 5
4x1 + 4x2 − 3x3 = 3
2x1 − 3x2 + x3 = −1.
2 −3 1 |−1
Etapa 02 - Operações elementares sobre as linhas da matriz aumentada até obter uma
matriz triangular superior (ou inferior).
2 3 −1 |5
0 −2 −1 |−7
0 0 5 |15
15
x3 = =3
3
−7 + 3
x2 = =2
2
5 − 3.2 + 3
x1 = =1
2
76 Capítulo 5. Sistemas de Equações Lineares - SEL
Também podem surgir problemas quando um coeficiente está muito próximo de zero.
A técnica de pivotamento foi desenvolvida para evitar parcialmente esses problemas.
• Erros de arredondamento : O problema de erros de arredondamento pode tornar-se
particularmente importante quando se resolve um número grande de equações, por
causa do fato de que cada resultado depende dos resultados anteriores. Conseqüente-
mente, um erro nas etapas iniciais tende a se propagar — isto é, irá causar erros nas
etapas subseqüentes
• Sistemas mal condicionados : são aqueles para os quais pequenas mudanças nos
coeficientes resultam em grandes mudanças nas soluções.
Técnicas para melhorar a solução
• Uso de mais variáveis significativas
• Pivotamento parcial: determinar o maior coeficiente disponível na coluna abaixo do
elemento pivô. As linhas podem ser trocadas de modo que o maior coeficiente seja o
elemento pivô.
AX = I → X = A−1
0 1 1
−4 4 9
78 Capítulo 5. Sistemas de Equações Lineares - SEL
5.2.2 Decomposição LU
Dado um sistema A.X = b com A ∈ Rn×n , o método de decomposição LU consiste em
fatorar a matriz A como um produto de duas matrizes, A = L.U, de modo que uma
seja triangular inferior, L e a outra triangular superior, U. O sistema resultante a ser
resolvido se resume a,
Ax = b → L.U = b → L|{z}
U.x = b. (5.1)
y
Ou seja, O nosso objetivo é decompor a matriz A em duas matrizes, uma triangular inferior
(L) e uma triangular superior (U).
a11 a12 · · · a1n
· · · a2n
a21 a22
.
. .. .. . =
. . . ..
an1 an2 · · · ann
1 0 · · · 0 u11 u12 · · · u1n
· · · 0 0 u22 · · · u2n
l21 1
. .. . . .. .. .. .. ..
. . . . . .
. . .
ln1 ln2 ··· 1 0 0 · · · unn
A = L.U
Ly = b
Exemplo da decomposição LU
a11 a12 a13
a21 a22 a23 =
e,
a31
a31 = l31 u11 → l31 =
u11
(a32 − l31 u12 )
a32 = l31 u12 + l32 u22 → l32 =
u22
a33 = l31 u13 + l32 u23 + u33 → u33 = (a33 − l31 u13 ) − l32 u23
Exemplo 5.6
10 −7 0
A = −3 2 6
5 −1 5
Sabendo que:
A.A−1 = A−1 .A = I
Podemos concluir que a inversa pode ser calculada coluna a coluna, gerando soluções para
vetores unitários.
0 00
1 0 0 d1 d1 d1 1 0 0
0 00
l21 1 0 . d2 , d2 , d2 = 0 , 1 , 0
de modo a obter de maneira direta e conjunta a solução do SEL, para isso iremos mostrar o
processo por meio do seguinte exemplo. Considerando,
a11 a12 a13 a14 b1
a21 a22 a23 a24 b2
Aa =
a
31 a32 a33 a34 b3
a41 a42 a43 a44 b4
1 a a 1 a a 1 a a 1 a b
(1) 11 12 (1) 11 13 (1) 11 14 (1) 11 1
a22 = , a23 = , a24 = , b2 =
p1 a21 a22 p1 a21 a23 p1 a21 a24 p1 a21 b2
1 a a 1 a a 1 a a 1 a b
(1) 11 12 (1) 11 13 (1) 11 14 (1) 11 2
a32 = , a33 = , a34 = , b3 =
p1 a31 a32 p1 a31 a33 p1 a31 a34 p1 a31 b3
(1) 1 a11 a12 (1) 1 a11 a13 (1) 1 a11 a14 (1) 1 a11 b3
a42 = , a = , a = , b =
p1 a41 a42 43 p1 a41 a43 44 p1 a41 a44 4
p1 a31 b4
(1)
(1) a32
escolhendo-se um novo pivô p2 = a22 6= 0 e calculando os multiplicadores m4 = p2 e
(1)
a42
m5 = , correspondendo ao elementos l32 e l42 da matriz L e, calculando-se os seguintes
p2
termos,
(1) (1) (1) (1) (1) (1)
(2) 1 a22 a23 (2) 1 a22 a24 (1) 1 a22 b2
a33 = (1) , a34 = p (1) (1) , b3 = p (1)
p2 a(1) (1)
31 a33 2 a31 a34 2 a31 b3
5.2 Métodos de Decomposição 81
(1) (1) (1) (1) (1) (1)
(2) 1 a22 a23 (2) 1 a22 a24 (1) 1 a22 b3
a43 = (1) , a44 = p (1) (1) , b4 = p (1)
p2 a(1) (1)
42 a43 2 a42 a44 2 a31 b4
(2)
(2) a43
e, finalmente escolhendo p3 = a33 6= 0 e m6 = p3 = l43 , temos:
(2) (2) (1) (2)
(3) 1 a33 a34 (3) 1 a33 b3
a44 = (2) , b4 = p (1)
p3 a(2) (2)
43 a44 3 a43 b4
ou seja,
a11 a12 a13 a14 b1
(1) (1) (1) (1)
(3)
0 a22 a23 a24 b2
Aa =
0 (2) (2) (2)
0 a33 a34 b3
(3) (3)
0 0 0 a44 b4
que corresponde a matriz da eliminação de Gauss e de maneira similar, temos que
a11 a12 a13 a14 1 0 0 0
(1) (1) (1)
0 a22 a23 a24 m 1 1 0 0
U= (2) (2) ,
L=
0
0 a33 a34
m m
2 4 1 0
(3)
0 0 0 a44 m3 m5 m6 1
• Passo 01: Considere o seguinte conjunto, com m = 29, onde m representa a quanti-
dade de letras e caracteres:
A = 1, B = 2, C = 3, D = 4, E = 5 F = 6 G = 7, H = 8, I = 9 J = 10, K = 11, L = 12,
M = 13, N = 14, O = 15, P = 16, Q = 17, R = 18, S = 19, T = 20, U = 21, V = 22,
W = 23, X = 24, Y = 25, Z = 26, Espaço = 27, # = 28 e @ = 0.
Para o texto escolhido temos que:
Resolver sistema = 18, 5, 19, 15, 12, 22, 5, 18, 27, 19, 9, 19, 20, 5, 13, 1 que escrito na
82 Capítulo 5. Sistemas de Equações Lineares - SEL
1 0 0 0 19 22 17 24 19 22 17 24
−2 1 0 0 11 11 19 9 = −27 −33 −15 −39
X =
3 −3 1
0 17 0 6 18 41
33 0 63
−4 6 −4 1 7 26 0 22 −71 4 22 −99 mod 29
19 22 17 24 S V Q X
2 25 14 19 B Y N S
=
12 4 0 5 = L
=⇒ SV QXBY NSLD@EPDV X.
D @ E
16 4 22 24 P D V X
Portanto, SV QXBY NSLD@EPDV X corresponde efetivamente ao texto criptogra-
fado.
Antes de explicar o processo de decriptografia, se faz necessário o entendimento da
inversa de uma matriz modular.
Exemplo 5.8 – Calcular o determinante da matriz K:
n
det(K) = ∏ uii
i=1
Como temos que det(K) = 288 → 288.x ≡ 1(mod 29). onde x corresponde ao
inverso multiplicativo modular de 288, então
x = 1 → 288 = 1 × 29 + 259
x = 2 → 288.2 = 976 = 33 × 29 + 19
x = 3 → 288.3 = 864 = 29 × 29 + 23
x = 4 → 288.4 = 1152 = 39 × 29 + 21
..
.
x = 14 → 288.14 = 4032 = 139 × 29 + 1.
x(k+1) = Cxk + d, k = 0, 1, · · ·
lim xk = x̄
k→∞
seja o SEL:
a11 x1 + a12 x2 + · · · + a1n xn = b1
a12 x1 + a22 x2 + · · · + a2n xn = b2
..
.
an1 x1 + an2 x2 + · · · + ann xn = bn
x1 = a111 (b1 − (a12 x2 + a13 x3 + · · · + a1n xn ))
x2 = 1 (b2 − (a21 x1 + a23 x3 + · · · + a2n xn ))
a22
..
.
1
xn = ann (bn − (an1 x1 + an2 x2 + · · · + ann−1 xn−1 ))
e
bi
di j = i, j = 1, 2, · · · , n
aii
Dessa forma podemos escrever o método iterativo de Jacobi - Richardson:
x(k+1) = Cx(k) + d k = 0, 1, · · ·
86 Capítulo 5. Sistemas de Equações Lineares - SEL
ou seja,
(k+1) 1 (k) (k) (k)
x1 = a11 b1 − (a12 x2 + a13 x3 + · · · + a1n xn )
x(k+1) = (k) (k) (k)
1
b2 − (a21 x1 + a23 x3 + · · · + a2n xn )
2 a22
.. .
.
xn(k+1) = 1 (k) (k) (k)
bn − (an1 x1 + an2 x2 + · · · + ann−1 xn−1 )
ann
convergência
Sejam uma norma matricial consistente e x(0) ∈ Rn a solução inicial. Se kCk < 1, então a
sequência de soluções será tal que x(k+1) = Cxk + d, k = 0, 1, · · · converge para a solução
x̄ do sistema Ax = b.
Uma possível condição de parada:
(k+1) (k)
x − x
Er =
∞ ≤ε
x(k+1)
∞
Se Er ≤ tol, então
x = x(k+1)
Senão, se k = max, então
não houve convergência
Exemplo 5.9 Usando o método de Jacobi - Richardson, determine uma solução aproxi-
mada para o seguinte SEL, com aproximação inicial x(0) = [0 0 0]T e precisão de ε = 0, 01.
10x1 + 2x2 + x3 = 14
x1 + 5x2 + x3 = 11
2x1 + 3x2 + 10x3 = 8
5.3 Métodos Iterativos 87
Exemplo 5.10 Usando o método de Jacobi - Richardson, determine uma solução aproxi-
mada para o seguinte SEL, com aproximação inicial x(0) = [0, 7 − 1, 6 0, 6]T e precisão de
ε = 10−2 .
x1 + 5x2 + x3 = −8
10x1 + 2x2 + x3 = 7
2x1 + 3x2 + 10x3 = 6
Esse método difere do processo de Jacobi por utilizar para o cálculo de uma componente
de x(k+1) o valor mais recente das demais componentes.
Forma geral:
" !#
i−1 n
(k+1) 1 (k+1) (k)
xi = bi − ∑ ai j x j + ∑ ai j x j , i = 1, 2, · · · , n
aii j=1 j=i+1
Testes de convergência
onde
ai j
a∗i j =
aii
• Ou a matriz é Extritamente Diagonalmente predominante:
n
∑ ai j < |aii | , i = 1, 2, · · · , n
j=1; j6=i
β = max βi < 1
1≤i≤n
88 Capítulo 5. Sistemas de Equações Lineares - SEL
Critério de Sassenfeld:
β = max βi < 1
1≤i≤n
onde
n
∑ a∗1 j
β1 =
j=2
e
i−1 n
∑ a∗i j β j +
∗
βi = ∑ ai j , i = 2, · · · , n.
j=1 j=i+1
Se β < 1, a sequência x(k) , gerada pelo método iterativo de Gauss - Seidel, converge para
o solução do sistema.
Exemplo 5.11
5x1 + x2 + x3 = 5
3x1 + 4x2 + x3 = 6
3x1 + 3x2 + 6x3 = 0
Métodos Iterativos
Bastante vatajosos para sistemas de grande porte cuja matriz de coeficiente seja esparsa.
No entanto, é necessário verificar as condições de convergência.
5.4 Exercícios Propostos 89
5 2 1 x3 4
Exercício 5.5 Resolva o SEL pelo método iterativo de Gauss - Seidel, de modo que o
erro relativo sejam menor que 10−2 ,
90 Capítulo 5. Sistemas de Equações Lineares - SEL
x1 + x2 − 5x3 = 4
x1 − 10x2 − x3 = 2
5x1 + x2 + x3 = 1
25
20
15
10
0
1 2 3 4 5 6 7 8 9 10
matemático apresentados na figura (6.3), qual o que “melhor” se ajusta ao sistema? Baseado
em qual métrica? Como escolher o “melhor” modelo?
Pela tendência dos dados, claramente vemos que uma hipótese razoavel seria um modelo
matemático, tal como:
ŷ(ui ) = f (wi ; ui ) = w0 + w1 ui
com isso, nosso problema se resume a encontrar os valores w0 e w1 que melhor ajustam o
modelo. Mas, ainda resta uma dúvida. qual a métrica utilizada para medir a qualidade do
ajuste?. Ou seja, dado o conjunto de dados de entrada e saída do modelo (desconhecido),
como identificá-lo ou representá-lo pelo método de regressão? Para isso iremos utilizar
um funcional de custo, definido como:
1 m
J= ∑ (Ei )2 (6.1)
2 i=1
6.1 Regressão por Mínimos Quadrados 93
25
20
15
10
0
1 2 3 4 5 6 7 8 9 10
1 m 1 m
J= ∑ (yi − ŷ(ui ))2 ⇒ J = ∑ (yi − (w0 + w1 ui ))2 .
2 i=1 2 i=1
Para minimizar o erro precisamos encontrar os valores de w0 e w1 que nos dão o ponto de
mínimo na superfície quadrática dada pelo funcional de custo.
Para isso, utilizaremos o conceito do vetor gradiente, iremos operar da seguinte forma:
∂J ∂J
=0 e =0
∂ w0 ∂ w1
94 Capítulo 6. Ajuste de Curvas
" # !
m m
∂J
∂ w1
= ∑ (yi − (w0 + w1ui)) − ∑ xi =0
i=1 i=1
0 1 2 3 4
0,98 -3,01 -6,99 -11,01 -15
Tabela 6.1: Dados do exemplo 6.1.
! ! ! ! !
5 10 w0 −35, 03 w0 0, 986
= → =
10 30 w1 −110, 02 w1 −3, 996
ŷ = 0, 986. 1 − 3, 996.u
2
Dados reais
0 aproximação
-2
-4
-6
-8
-10
-12
-14
-16
0 0.5 1 1.5 2 2.5 3 3.5 4
Exemplo 6.2 Seja φi (x) = xi , i = 1, · · · , n uma classe de funções que constituem uma
base {1, x, x2 , · · · , xn } no espaço n dimensional de funções polinomiais. De modo que
qualquer função neste espaço pode ser escrito como uma combinação linear de funções da
base palinomial. Ou seja,
n
f (x) = ∑ wi xi = w0 + w1 x + w2 x2 + · · · + wn xn
i=0
Para resolver um problema com funções de base polinomiais, em que dado o conjunto
de pares ordenados (xi ; f (xi ))m
i=0 , obter os valores dos parâmetros desconhecidos, se
resume a resolver o seguinte sistema de equações lineares,
w0 + w1 x0 + w2 x02 + · · · + wn x0n = f (x0 )
2 n
w0 + w1 x1 + w2 x1 + · · · + wn x1 = f (x1 )
w0 + w1 x2 + w2 x22 + · · · + wn x2n = f (x2 )
..
.
w + w x + w x2 + · · · + w xn = f (x )
0 1 m 2 m n m m
1 1 1
kf − Xwk2 = (f − Xw)T (f − Xw) = fT f − fT Xw − wT XT f + wT XT Xw
J=
2 2 2
fazendo,
∂J
=0
∂w
96 Capítulo 6. Ajuste de Curvas
obteremos:
−XT f + XT Xw = 0
XT Xw = XT f (6.4)
que representa as equações normais que fornecem o vetor de parâmetros w0 s que minimi-
zam o erro quadrático. Assim,
−1
w = XT X XT f (6.5)
f (x) = w0 + w1 x + w2 x2
xi -2 -1 1 2 3
yi 13,86 4,935 5,79 15,99 32,48
1 −2 4 13, 86
1 −1 1 w0 04, 93
w1 = 05, 79
1 1 1
1 2 4 w2 15, 99
1 3 9 32, 48
XT Xw = XT f
5 3 19 w0 3, 05
3 19 27 w1 = 102, 56
19 27 115 w2 422, 44
w0 2, 1541
→ w1 = 0, 5154
w2 3, 1965
60
Dados reais
aproximação
50
40
30
20
10
0
-2 -1 0 1 2 3 4
Para medir a qualidade do ajuste iremos utilizar como referência o vetor erro residual,
ou seja
r = f − Aw
Iremos adotar 2 (duas) formas para expressar um quantitativo para o residual. A norma
euclidiana, q
||r||2 = r12 + r22 + · · · + rn2
√ ||r||2
RMSE = m (6.6)
m
0, 01129
98 Capítulo 6. Ajuste de Curvas
na forma matricial,
φ0 (x0 ) φ1 (x0 ) φ2 (x0 ) · · · φn (x0 ) w0 f (x0 )
φ0 (x1 ) φ1 (x1 ) φ2 (x1 ) · · · φn (x1 ) w1 f (x1 )
. = .
. .. ..
...
.
. . ··· . .. ..
φ0 (xn ) φ1 (xn ) φ2 (xn ) · · · φn (xn ) wn f (xn )
onde !2
n
1 1
J = (Ei )2 = f (xi ) − ∑ w j φ j (xi )
2 2 j=0
e, fazendo
∂ Ei
=0
∂wj j=0,··· ,n
temos, !! !
n n
∂ Ei
= f (xi ) − ∑ w j φ j (xi) − ∑ φi (xi ) =0
∂wj j=0 i=1
!
n n n
⇒ − ∑ f (xi )φi (xi ) + ∑ ∑ w j φ j (xi)φi(xi) =0
i=1 i=0 j=0
n
∑ wj φ j (x), φi (x) = h f (x), φi (x)i , i = 0, 1, · · · , n
j=0
6.1 Regressão por Mínimos Quadrados 99
xi 0 1 2 3
yi 3,18 3,9 6,5 17,82
3
hφ0 , φ0 i = ∑ cos2 (xi ) = cos2 (0) + cos2 (1) + cos2 (2) + cos2 (3) = 2, 4452
i=0
3
hφ0 , φ1 i = ∑ cos(xi )exi = cos(0)e0 + cos(1)e1 + cos(2)e2 + cos(3)e3 = −20, 4907
i=0
3
hφ1 , φ1 i = ∑ e2x = e0 + e2 + e4 + e9 = 466, 4160
i=0
3
hy, φ0 i = ∑ yi cos(xi ) = y0 cos(x0 ) + y1 cos(x1 ) + y2 cos(x2 ) + y3 cos(x3 ) = −15, 0594
i=0
3
hy, φ1 i = ∑ yi exi = y0 ex0 + y1 ex1 + y2 ex2 + y3 ex3 = 419, 7344
i=0
cuja solução é
! !−1 ! !
w0 2, 4452 −20, 4907 −15, 0594 2, 1880
= =
w1 −20, 4907 466, 4160 419, 7344 0, 9960
que caracteriza um bom ajuste conforme pode ser conferido no gráfico da seguinte figura,
18
dados reais
16 aproximação
14
12
10
2
0 0.5 1 1.5 2 2.5 3
Exemplo 6.5
y = α1 eβ1 x
f (x) = ln(y)
φ =1
0
ln(y) = ln(α1 ) + β1 x ⇒ φ1 = x
w0 = ln(α1 ) → α1 = ew0
w = β
1 1
Exemplo 6.6
y = α2 xβ2
f (x) = log(y)
φ =1
0
log(y) = log(α2 ) + β2 log(x) ⇒ φ1 = log(x)
w0 = log(α2 ) → α2 = 10w0
w = β
1 2
6.1 Regressão por Mínimos Quadrados 101
Exemplo 6.7
x
y = α3
β3 + x
1
f (x) =
y
1
φ0 =
x
1 β3 1
= + ⇒ φ1 = 1
y α3 x α3
β3
w0 =
α3
1
w1 =
α3
Podemos de certa forma “linearizar” estas funções de forma a usar a regressão linear
por mínimos quadrados definida na equação (6.2).
xi -2 -1 0 1 2 3
yi 0,05 0,15 0,4 1,1 2,3 7,1
Tabela 6.2: Tabela do exemplo 6.8.
com
f (x) = αeβ x = 0, 3782 e0,9708x
e, √
6
RMSE = 0, 3786 = 0, 1545
6
8
dados reais
7 aproximação
0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
a0
f (x) = +a1 cos(x)+a2 cos(2x)+· · ·+cos(nx)+b1 sen(x)+b2 sen(2x)+· · ·+bn sen(nx).
2
(6.8)
Num subespaço do C ([0 ; 2π]) com funções de base,
que são ortogonais, tal como mostrado no exercício 0.3 na página 16. No entanto, no
mesmo exercício, vimos que normalizando cada função da base ℘, podemos obter uma
base ortonormal,
B = {v0 , v1 , · · · , vn , vn+1 , · · · , v2n }
1 1 1 1 1
= √ , √ cos(x), · · · , √ cos(nx), √ sen(x), · · · , √ sen(nx) .
2π π π π π
6.2 Ajuste trigonométrico 103
Pela proposição (0.2.1), equação (12) na página 17, podemos então, escrever cada função
nesse subespaço como,
f (x) = h f , v0 i v0 + h f , v1 i v0 + · · · + h f , vn i vn . (6.9)
Z 2π Z 2π
cos(x) cos(x) 1
a1 cos(x) = h f , v1 i v1 → a1 cos(x) = √ f (x) √ dx → a1 = f (x)cos(x)dx
π 0 π π 0
..
.
Z 2π
1
an cos(nx) = h f , vn i vn → an = f (x)cos(nx)dx
π 0
1 2π
Z
b1 sen(x) = h f , vn+1 i vn+1 → b1 = f (x)sen(x)dx
π 0
..
.
1 2π
Z
bn sen(nx) = h f , v2n i v2n → bn = f (x)sen(nx)dx.
π 0
A função f (x) é a aproximação trigonométrica de Fourier no intervalo [0 ; 2π]. Com
coeficientes
1 2π
Z
a0 = f (x)dx
π 0
1 2π
Z
ak = f (x)cos(kx)dx, k = 1, 2, · · · , n (6.10)
π 0
1 2π
Z
bk = f (x)sen(kx)dx, k = 1, 2, · · · , n
π 0
n
a0
f (x) = + ∑ (ak cos(kx) + bk sen(kx))
2 k=1
2π
x2 4π 2
Z 2π
1
a0 = x dx = = = 2π
π 0 2 0 2π
Z 2π Z 2π
1 1
(xsen(kx)|2π −
ak = x cos(kx) dx = 0 sen(kx)dx=0
π 0 kπ |
{z } |0
0
{z }
0
104 Capítulo 6. Ajuste de Curvas
Z 2π Z 2π
1 1
(xcos(kx)|2π − = −2
bk = x sen(kx) dx = − 0 cos(kx)dx
π 0 kπ | {z } |0 k
2π
{z }
0
2
função
aproximação
1
-1
0 1 2 3 4 5 6 7
Se a função dada for uma função par e como sen(x) é uma função ímpar, temos:
Z 2π
f (x)sen(x)dx = 0, (6.11)
0
portanto,
n
a0
f (x) ≈ + ∑ ak cos(kx). (6.12)
2 k=1
Caso contrário, ou seja, f (x) for ímpar, temos:
n
f (x) ≈ ∑ bk sen(kx).
k=1
6.2 Ajuste trigonométrico 105
Como a função f (x) = |x| é uma função par, a aproximação será dada pela expressão
(6.12), com π
2 π 2 x2
Z
a0 = x dx = =π
π 0 π 2 0
π
2 π 2 x sen(kx) 1 π
Z Z
ak = x cos(kx)dx = − + sen(kx)dx
π 0 π k 0 k 0
| {z }
0
2 4
= [cos(kx)]π0 = −
k2 π k2 π
π 4 n cos((2k − 1)x)
f (x) ≈ − ∑
2 π k=1 (2k − 1)2
Uma outra forma, geralmente a mais conveniente, pode ser obtida por meio das
fórmulas de Euler,
ikx + e−ikx
e
cos(kx) =
2
e (6.13)
ikx −ikx
sen(kx) = e − e
2i
onde i2 = −1 é a unidade imaginária. Substituindo as equações (6.2) na expressão (6.8).
Obtemos, !
eikx + e−ikx eikx − e−ikx
n
a0
f (x) = + ∑ ak + bk
2 k=1 2 2i
" #
n h
1 ikx −ikx
ikx −ikx
i
f (x) = a0 + ∑ ak e + e − ibk e − e
2 k=1
" #
n h
1 i
f (x) = a0 + ∑ (ak − ibk )eikx + (ak + ibk )e−ikx
2 k=1
a0 ak −ibk ak +ibk
fazendo, c0 = 2 , ck = 2 e ck = 2 , podemos reescrever a expressão anterior como,
n
f (x) = ∑ ck eikx (6.14)
k=−n
106 Capítulo 6. Ajuste de Curvas
no entanto, 2π
i(n−m)x
e
= 0 se k 6= m
Z 2π
i(k−m)x
e dx = i(n − m) 0
0
2π
x|0 = 2π se k = m
onde,
1 2π
Z
cm = f (x)e−imx dx, (6.15)
2π 0
que é válida se a série descrita em (6.14) for convergente.
Definição 6.2.1 Se f possui período 2π e é integrável no intervalo de [−π ; π], a série
∞
∑ cn eint
n=−∞
Geralmente, se a função f (t) possui período T , a série de Fourier pode ser escrita como,
∞ nt
∑ cn e2πi T ,
n=−∞
e os coeficientes de Fourier,
T
1
Z
2 nt
cn = f (t)e−2πi T dt.
T − T2
6.3 Exercícios Propostos 107
No entanto, a maioria das funções de uso na engenharia, são representadas por meio de um
conjunto finito de valores discretos. Quando não, os dados são coletados ou convertidos
do contínuo para o discreto por meio de conversores. Neste caso, representamos a função
discreta como,
N−1 nk
Fk (n) = ∑ f (n)e−2πi N , k = 0, 1, · · · , N − 1.
n=0
1 N−1 nk
f (n) = ∑ Fk (n)e2πi N , n = 0, 1, · · · , N − 1.
N k=0
O subscrito n é usado para designar os instantes discretos nos quais as medidas foram
tomadas. Logo, f (n) designa o valor da função definida no contínuo f (t) no instante tn .
1 n
J= ∑ (yi − f (xi ))2
2 i=1
t(h) 0 2 4 5 7 9 12 15 20 22 24
pH 7,6 7,2 7 6,5 7,5 7,2 8,9 9,1 8,9 7,9 7
Exercício 6.3 Após serem efetuadas medições num gerador elétrico, foram obtidos os
seguintes valores,
I(A) 1, 58 2, 15 4, 8 4, 9 3, 12 3, 01
V (v) 210 180 150 120 60 30
Exercício 6.4 É conhecido que a queda de voltagem através de um indutor segue a lei
de Faraday,
di
VL = L.
dt
onde VL é a queda de tensão no indutor (em volts), L é a indutância (em henrys) e i
a corrente (em ampères). Use os seguintes dados para fazer uma estimativa do valor da
indutância,
di A
dt , s 1 2 4 6 8 10
VL ,V 5,5 12,5 17,5 32 38 49
encontre a função
(
−1, −π ≤ x < 0
f (x) = n=6
3, 0 ≤ x < π
x
f (x) = , x ∈ [−π, π], n = ∞
2
x
f (x) = , x ∈ [−π, π[, n = 5
2
(
1, 0 ≤ x < π
f (x) = n=6
0, π ≤ x < 2π
1, −π ≤ x < π
f (x) = 0, π ≤ x < 2π n = 4.
0, −2π ≤ x < −π
7. Interpolação
assim, como num problema de ajuste de curvas, {w j }nj=0 são os parâmetros desconhecidos
do modelo e {φ j (x)}nj=0 funções de base pré-definidas. Neste curso, iremos considerar a
interpolação polinomial.
Teorema 7.0.1 — Existência do polinômio interpolador. Sejam x0 , x1 , · · · , xn pon-
tos distintos, então para os valores y0 , y1 , · · · , yn , existe um único polinômio p de grau
menor ou igual a n tal que p(xi ) = yi para 0 ≤ i ≤ n.
112 Capítulo 7. Interpolação
p2 (x) = w0 + w1 x + w2 x2 . (7.1)
Iremos construir o polinômio (7.1) tal que os pontos x0 , x1 , x2 possuam imagem na função
quadrática original. Ou seja,
p (x ) = y0
2 0
p2 (x1 ) = y1
p2 (x2 ) = y2 .
Mas,
1
L0 (x0 ) = A(x0 − x1 )(x0 − x2 ) = 1 → A = .
(x0 − x1 )(x0 − x2 )
Substituindo na equação (7.2), obtendo:
(x − x1 )(x − x2 )
L0 (x) = .
(x0 − x1 )(x0 − x2 )
(x − x0 )(x − x2 )
L1 (x) =
(x1 − x0 )(x1 − x2 )
(x − x0 )(x − x1 )
L2 (x) = .
(x2 − x0 )(x2 − x1 )
Portanto o polinômio desejado é dado pela seguinte expressão:
(x − x0 )(x − x2 ) (x − 0)(x − π) 4
p2 (x) = y1 L1 (x) = = π π = 2 x(π − x).
(x1 − x0 )(x1 − x2 ) ( 2 − 0)( 2 − π) π
0.9
0.8
0.7
0.6
0.3
0.2
0.1
0
0 0.5 1 1.5 2 2.5 3 3.5
pn (xi ) = yi , i = 0, 1, · · · , n.
Ou de forma simplificada
n
pi (x) = ∏ (x − x j ), i = 0, 1, · · · , n
j=0
j6=i
e, são conhecidos como polinômios de Lagrange. Como o polinômio p(x) que desejamos
encontrar é de grau n e contém os pontos {(xi , yi )}ni=0 , podemos escrevê-lo como uma
7.1 Polinômios interpoladores de Lagrange 115
ou
n
pn (x) = ∑ wi pi (x)
i=0
seja
n
pn (xm ) = ∑ wi pi (xm ) = w0 p0 (xm ) + w1 p1 (xm ) + · · · + wm pm (xm ) + · · · + wn pn (xm )
i=0
daí temos
pn (xm )
wm =
pm (xm )
como consideramos inicialmente que pn (xi ) = yi , vale a relação:
yi
wi =
pi (xi )
Concluindo, temos:
n
yi
pn (x) = ∑ pi (x)
i=0 pi (xi )
ou
n
pi (x)
pn (x) = ∑ yi
i=0 pi (xi )
com isso teremos o polinômio interpolador de Lagrange:
n n (x − x j )
pn (x) = ∑ yi ∏
i=0 j=0 (xi − x j )
j6=i
i 0 1 2 3
xi 0 0, 2 0, 4 0, 5
yi 0 2, 0 4, 06 5, 12
116 Capítulo 7. Interpolação
x(x − 0, 4)(x − 0, 5) 250
L1 (x) = = x(x − 0, 4)(x − 0, 5)
0, 2(0, 2 − 0, 4)(0, 2 − 0, 5) 3
x(x − 0, 2)(x − 0, 5)
L2 (x) = = −125x(x − 0, 2)(x − 0, 5)
0, 4(0, 4 − 0, 2)(0, 4 − 0, 5)
x(x − 0, 2)(x − 0, 4) 200
L3 (x) = = x(x − 0, 2)(x − 0, 4)
0, 5(0, 5 − 0, 2)(0, 5 − 0, 4) 3
de modo que o polinômio interpolador é dado por:
6
função original
função interpoladora
5
0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
Teorema 7.1.1 — Erro de truncamento E(x). Seja f (x) uma função definida e (n + 1)
vezes diferenciável num intervalo [a; b]. Sejam x0 , x1 , · · · , xn , (n + 1) pontos distintos no
intervalo. Se p(x) interpola f (x) nestes pontos, então o erro cometido E(x) é dado por,
|ψ(x)|
E(x) = f (x) − p(x) ≤ M
(n + 1)!
n
ψ(x) = ∏(x − xi )
i=0
Teorema 7.1.2 — Erro de truncamento E(x) para pontos equidistantes. Seja f (x)
uma função definida e (n + 1) vezes diferenciável num intervalo [a; b].
7.2 Polinômios interpoladores por Diferenças Divididas de Newton 117
xi 0, 2 0, 4 0, 6
yi 0, 9801 0, 9211 0, 8253
Definimos diferença dividida de ordem n de uma função uma função f (x) definida
nos pontos xi , i = 0, 1, · · · , n por:
1
f (x) =
x
Teorema 7.2.1 — Diferenças divididas. Seja f (x) uma função contínua (n + 1) vezes
diferenciável num intervalo [a; b]. Sejam x0 , x1 , · · · , xn , (n + 1) pontos distintos no
118 Capítulo 7. Interpolação
f [x] − f [x0 ]
f [x0 , x] = , x 6= x0
(x − x0 )
portanto,
f (x) = f (x0 ) + (x − x0 ) f [x0 , x]
f [x0 , x] − f [x0 , x1 ]
f [x0 , x1 , x] = , x 6= x1
(x − x1 )
Logo, temos,
· · · + (x − x0 )(x − x1 ) · · · (x − xn ) f [x0 , x1 , · · · , xn , x]
em que,
· · · + (x − x0 )(x − x1 ) · · · (x − xn ) f [x0 , x1 , · · · , xn , x]
Teorema 7.2.2 — Polinômio Interpolador de Newton. seja f (x) uma função con-
tínua e definida em x0 , x1 , · · · , xn , (n + 1) pontos distintos de um intervalo [a; b]. O
polinômio de grau ≤ n baseado nas diferenças divididas e dado por,
n i−1
P(x) = f [x0 ] + ∑ ∏ (x − x j ) f [x0 , x1 , · · · xi ]
i=1 j=0
f n+1 (ε)
f [x0 , x1 , · · · xi ] = , ε ∈ [a; b]
(n + 1)!
ou
M = | f [x0 , x1 , · · · xi ]| , x ∈ [x0 , xn ]
xi 0 0, 5 1, 0
yi 1 2, 1281 3, 5598
t(s) 1 3 5 7 20
v( cm
s ) 800 2310 3090 3940 8000
t(s) 0 10 15 20 22, 5 30
v( ms ) 0 22, 04 362, 78 517, 35 602, 97 901, 67
Temperatura 22 42 52 82 100
Calor específico 4181 4179 4186 4199 4217
A existência da integral definida de uma função f não negativa num intervalo fechado
[a ; b] é baseada na interpretação da integral como o cálculo da área sob o gráfico de uma
função no intervalo. A integral definida pode ser definida pelo conceito de integral de
Riemann. Para isso, vamos particionar o intervalo [a ; b] de modo que a partição P seja
dada por,
P = {a = x0 < x1 < x2 < · · · < xn−1 < xn = b}
e
Mi = sup{ f (x); x ∈ [xi−1 ; xi ]}
o ínfimo e o supremo da função f
[xi−1 ; xi ]
n
L( f ; P) = ∑ mi (xi − xi−1 )
i=1
124 Capítulo 8. Integração Numérica
a
f (x)dx = lim
n→∞
∑ f (xi)(ti−1 − ti) (8.1)
i=1
Portanto, pela soma de Riemann, podemos aproximar a integral definida de uma função no
intervalo [a ; b] por meio da seguinte expressão. Ou seja,
Z b n
f (x)dx ≈ ∑ wi f (xi ) (8.2)
a i=0
x−b x−a
L0 (x) = e L1 (x) = . (8.4)
a−b b−a
Assim, Z b Zb Z b
x−b 1
w0 = L0 (x)dx = dx = b dx − x dx
a a−b b−a a a
b
x2
2
2b − 2ba − b2 + a2 (b − a)2
1 1 1 b−a
w0 = bx − = = =
b−a 2 a b−a 2 b−a 2 2
de maneira semelhante obtemos,
b−a
w1 =
2
Ou seja,
Z b
f (x)dx ≈ w0 f (a) + w1 f (b)
a
Z b
b−a
f (x)dx ≈ ( f (a) + f (b)) (8.5)
a 2
que é conhecida como regra do trapézio.
Seja,
− f 00 (ε)h3
Et =
12
o erro de truncamento com, h = (b − a) e ε como o valor que maximiza | f 00 (x)|. De
maneira que podemos definir o limitante superior para o erro por,
h3
max f 00 (x)
|Et | ≤
12
π
−0 2
π π
I1 = sen(0) + sen =
2 2 4
π
1 − 4 π 4−π
4
Er = = − = = 0, 2149
1 4 4 4
126 Capítulo 8. Integração Numérica
− f 00 (ε)h3 sen π2 π
3
Et = = − 0 = 0, 3230
12 12 2
que corresponde ao erro máximo.
Pelo exemplo, ficou claro que quando o intervalo é grande a regra do trapézio não se
mostra eficiente, sendo necessário uma aprimoramento. Para isso, iremos abordar a regra
do trapézio composto.
Erro de truncamento
b − a 00
Et ∼
=− f (ε)h2
12
O erro é aproximado pois ε varia para cada segmento. Sendo assim podemos definir o
limitante superior para o erro como sendo,
h2 00
|Et | ≤ (b − a) max f (ε)
12
Exemplo 8.3 Calcule numericamente a seguinte integral utilizando a regra dos trapézios
composta com n = 3.
Z 1
I= x2 dx
0
e, calcule numericamente a seguinte integral com o limitante superior do erro,
Z 1
cos(x)
dx
0 1+x
Considere uma função f (x) definida em três pontos distintos e igualmente espaçados
x0 , x1 e x2 num intervalo [a; b], de modo que possamos aproximar a função por um polinô-
mio interpolador (Lagrange) de grau 2 (conforme visto na seguinte figura). Escrito da
128 Capítulo 8. Integração Numérica
seguinte forma,
a+b
f (x) ≈ p2 (x) = f (a)L0 (x) + f L1 (x) + f (b)L2 (x)
2
tal que
2 x−xj
Li (x) = ∏ , i = 0, 1, 2.
j=0 xi − x j
j6=i
onde, Z x2
p2 (x)dx =
x0
Z x2 Z x2 Z x2
f (x0 ) f (x1 ) f (x2 )
(x−x1 )(x−x2 )dx− 2 (x−x0 )(x−x2 )dx+ (x−x0 )(x−x1 )dx.
2h2 x0 h x0 2h2 x0
8.2 As Regras de Simpson 129
De modo que,
Z x2 Z x2
h
f (x)dx ≈ p2 (x)dx = ( f (x0 ) + 4 f (x1 ) + f (x2 ))
x0 x0 3
ou, Z b
h a+b
f (x)dx ≈ f (a) + 4 f + f (b)
a 3 2
que é denominada de primeira regra de Simpson ou regra do 1/3. Onde h = (b−a)/2.
h h
[ f (x0 ) + 4 f (x1 ) + f (x2 )] + [ f (x2 ) + 4 f (x3 ) + f (x4 )] + · · · +
3 3
h
[ f (xn−2 ) + 4 f (xn−1 ) + f (xn )]
3
Z b
f (x)dx ≈
a
h h
[ f (x0 ) + 4 f (x1 ) + f (x2 )] + [ f (x2 ) + 4 f (x3 ) + f (x4 )] + · · · +
3 3
h
[ f (xn−2 ) + 4 f (xn−1 ) + f (xn )]
3
Z b
f (x)dx ≈
a
h n
∑ [ f (x2i) + 4 f (x2i+1) + f (x2i+2)]
3 i=0
(b − a)
h=
n
Limitante superior para o erro
h4
(xn − x0 )max f 4 (ε)
|Et | ≤
180
130 Capítulo 8. Integração Numérica
Exemplo 8.5 Calcular o trabalho realizado por um gás sendo aquecido segundo a tabela,
onde,
(b − a)
h= .
n
O erro de truncamento é:
3 f (4) (ε)h5
Et = −
80
Considere a divisão do intervalo [a, b] num número múltiplo de 3 (3n) subintervalos de
tamanho h = (b−a)
n .
Neste caso, teremos a seguinte aproximação:
Z b Z xn
f (x)dx = f (x)dx
a x0
3h
≈ [ f (x0 ) + 3 f (x1 ) + 3 f (x2 ) + f (x3 )]
8
8.3 Quadratura de Gauss 131
3h
+[ f (x3 ) + 3 f (x4 ) + 3 f (x5 ) + f (x6 )] + · · ·
8
3h
+ [ f (xn−3 ) + 3 f (xn−2 ) + 3 f (xn−1 ) + f (xn )]
8
se f (x) = pm (x),
Z b n
pm (x)dx ≈ ∑ wi pm (xi )
a i=0
Ideia principal
Os pontos a = x0 < x1 < · · · < xn = b não são necessariamente equidistantes,
Z b
f (x)dx ∼
= w0 f (x0 ) + w1 f (x1 ) + · · · + wn f (xn ), f ε p
a
1 dn 2
Pn (x) = n n
[(x − 1)n ].
2 n! dx
Os polinômios de Legendre são ortogonais com relação ao produto interno definido por,
Z 1
h f , gi = f (x)g(x)dx
−1
1 3
p0 (x) = 1, p1 (x) = x, p2 (x) = x2 − , p3 (x) = x3 − x.
3 5
132 Capítulo 8. Integração Numérica
f (x) ≈ p1 (x) = a0 + a1 x
(b2 − a2 )
Z b b
2 b
(a0 + a1 x)dx = a0 x + a1 x2 = a0 (b − a) + a1 (8.7)
a a a 2
e,
w0 f (x0 ) = w0 (a0 + a1 x0 ) = a0 w0 + a1 w0 x0 (8.8)
8.3 Quadratura de Gauss 133
b+a
w0 = b − a e x0 =
2
de modo que,
Z b
b+a b−a
f (x)dx ∼
= (b − a) f ⇐⇒ ( f (a) + f (b))
a 2 2
f (x) ≈ p2 (x) = a0 + a1 x + a2 x2
Z b b
2 b 3 b
(a0 + a1 x + a2 x2 )dx = a0 x + a1 x2 + a2 x3 =
a a a a
(b2 − a2 ) (b3 − a3 )
a0 (b − a) + a1 + a2
2 3
se considerarmos, Z b Z 1
f (x)dx = f (x)dx
a −1
após algumas manipulações matemáticas, obtemos:
Z 1
∼ 1 1
f (x)dx = f − √ + f √
−1 3 3
uma integral
Z b
f (x)dx, [a, b]
a
e, Z b Z 1
b−a b−a b+a
f (t)dt = f x+ dx.
a 2 −1 2 2
Exemplo 8.6 Calcular
Z 1
ex cos(x)dx, n = 3
−1
Z 1,5
2
e−x dx, n = 3
1
Z 2
1 x2
√ e− 2 dx, n = 2
2π 0
dv
mv =F
dx
Exercício 8.4 Para estimar a área superficial de uma bola de futebol americano, mede-
se o seu diâmetro em diferentes pontos. A área superficial S e o volume V podem ser
determinados usando:
Z L
S= rdz
0
e Z L
V= r2 dz
0
Use o método de Simpson 1/3 composto com os dados abaixo para determinar o
volume e a área superficial da bola.
z(cm) 0 2,5 5,1 7,6 10,2 12,7 15,2 17,8 20,3 22,9 25,4 30,5
d(cm) 0 6,6 8,1 12,2 14,2 15,2 15,7 15,2 14,2 12,2 8,1 0
9. Resolução Numérica de EDO’s
Uma EDO (Equação Diferencial Ordinária) é uma equação regida por uma ou mais
derivadas de uma função. São geralmente utilizadas para modelar e descrever a dinâmica
em inúmeros modelos nas Ciências e na Engenharia.
Em alguns casos, tais equações não apresentam uma solução exata, sendo necessário a
utilização de algum método numérico de modo a apresentar uma solução aproximada ao
problema, que dentro de uma certa margem de erro, pode ser bastante útil na análise e
solução de tais problemas. Se definirmos um valor inicial na análise de tais euqações,
teremos então um problema de PVI (Problema de Valor Inicial) que irá nos auxiliar na
resolução da EDO, que consiste em encontrar uma função y(t) que satisfaz,
dy(t)
y0 = = f (t, y(t)) (9.1)
dt
com tamanho de passo h = ti+1 − ti , e o erro controlado por uma tolerância definida.
138 Capítulo 9. Resolução Numérica de EDO’s
A equação diferencial ordinária (9.1) sem uma condição inicial geralmente possui uma
família de soluções. Ao especificar uma condição inicial, podemos identificar qual função
dentre as apresentadas na famílias estamos interessados. Um PVI para uma equação
diferencial ordinária de primeira ordem é a equação juntamente com uma condição inicial
em um intervalo específico a ≤ t ≤ b, em que,
onde y0 define a inclinação da reta tangente a uma curva y(t) num ponto (t, y).
Podemos usar essa informação para conhecer a evolução ou a forma da solução y(t). Por
exemplo, a equação
y0 = y
nos diz que a inclinação da reta tangente num ponto (t, y) é igual a sua coordenada y.
Podemos também pensar a solução de uma equação diferencial como um campo vetorial
de isóclinas, como pode ser vista na seguinte figura, e a equação (9.1) pode ser vista como
uma inclinação para quaisquer valores atuais de (t, y). Se usarmos um vetor para plotar a
inclinação em cada ponto do plano, obtemos o campo de inclinação ou o campo direcional,
da equação diferencial.
Figura 9.1: Exemplo ilustrativo de uma família de soluções e PVI com aproximação.
A geometria da figura (9.1) sugere uma abordagem alternativa para ”resolver” computacio-
nalmente a equação diferencial por meio de vetores. Começando de uma condição inicial
(t0 , y0 ) e seguindo iterativamente na direção especificada. Uma vez efetuado o cálculo,
reavalia-se a inclinação no novo ponto (t1 , y1 ) e assim sucessivamente, de modo a obtermos
uma boa aproximação à solução do problema do valor inicial.
9.1 Método de Euler 139
ti = t0 ± ih, i = 1, 2, · · ·
h2 00 hn hn+1 (n+1)
y(t + h) = y(t) + hy0 (t) + y (t) + · · · + y(n) (t) + y (ε)
2! n! (n + 1)!
h2 00
y(t + h) = y(t) + hy0 (t) + y (ε)
2!
h2 00
y(t + h) = y(t) + h f (t, y(t)) + y (ε)
2!
(ti+1 − ti )2 00
y(ti + ti+1 − ti ) = y(ti ) + (ti+1 − ti ) f (ti , y(ti )) + y (ε)
2!
0≤t ≤1
h = 0, 2.
i ti ¨y(ti ) y(ti+1 )
0 0,0 0,5 0,8
1 0,2 0,8 1,152
2 0,4 1,152 1,5504
3 0,6 1,5504 1,9885
4 0,8 1,9885 2,4582
5 1,0 2,4582 2,9498
Iremos utilizar a expansão em Série de Taylor para obtermos uma estimativa do erro obtido
na aproximação utilizando o método de Euler. Ou seja,
n
f (k) (tk , yk ) (k+1)
Et = ∑ h
k=1 (k + 1)!
f 0 (tk , yk ) 2
Et = h
2
9.1 Método de Euler 141
ti+1 − ti
y(ti+1 ) − y(ti ) = ( f (ti , y(ti )) + f (ti+1 , y(ti+1 )))
2
h
y(ti+1 ) = y(ti ) + ( f (ti , y(ti )) + f (ti+1 ), y(ti+1 )))
2
h
= y(ti ) + ( f (ti , y(ti )) + f ((ti + h), y(ti ) + h. f (ti , y(ti ))))
2
considerando as variáveis auxiliares k1 e k2 . Tais que,
Definição 9.1.2
k1 = f (ti , y(ti ))
k2 = f (ti + h, y(ti ) + h.k1 ) (9.3)
y(ti+1 ) = y(ti ) + h (k1 + k2 )
2
corresponde ao método de Euler modificado.
Exemplo 9.2 Usando o método de Euler modificado, calcule uma aproximação para o
PVI,
y0 = x − y + 2
y(0) = 2
x ∈ [0; 1], h = 0, 2
i xi k1 k2 y(xi+1 )
0 0,0 0,0 0,2 2,02
1 0,2 0,18 0,344 2,0724
2 0,4 0,3276 0,4621 2,1514
3 0,6 0,4486 0,5588 2,2521
4 0,8 0,5478 0,6382 2,3708
Tabela 9.1: Tabela solução do exemplo 9.2.
Para i = 0,
k1 = f (xi , yi ) = f (x0 , y0 ) = x0 − y0 + 2 = 0 − 2 + 2 = 0
k1 = f (xi , yi ) = f (x1 , y1 ) = x1 − y1 + 2 = 0, 2 − 2, 02 + 2 = 0, 18
k2 = f (xi +h, yi +h.k1 ) = (x1 +h)−(y1 +h.k1 )+2 = 0, 4−(2, 02+0, 2.0, 18)+2 = 0, 344
h 0, 2
y(ti+1 ) = y(ti ) + (k1 + k2 ) = 2, 02 + (0, 18 + 0, 344) = 2, 0724.
2 2
Para i = 2,
k2 = f (xi +h, yi +h.k1 ) = (x2 +h)−(y2 +h.k1 )+2 = 0, 6−(2, 0724+0, 2.0, 3276)+2 = 0, 4621
h 0, 2
y(ti+1 ) = y(ti ) + (k1 + k2 ) = 2, 0724 + (0, 3276 + 0, 4621) = 2, 1514.
2 2
Para i = 3,
k2 = f (xi +h, yi +h.k1 ) = (x3 +h)−(y3 +h.k1 )+2 = 0, 8−(2, 1514+0, 2.0, 4486)+2 = 0, 5588
h 0, 2
y(ti+1 ) = y(ti ) + (k1 + k2 ) = 2, 1514 + (0, 4486 + 0, 5588) = 2, 2521.
2 2
Como a Equação (9.3) foi obtida direteamente da regra do trapézio, o erro de trunca-
mento local é dado por por,
f 00 (ξ ) 3
Et = − h .
12
em que xi ≤ ξ ≤ xi+1 .Além disso, os erros local e global são O(h3 ) e O(h2 ), respec-
tivamente. Portanto, a diminuição do tamanho do passo h faz o erro decrescer mais
rapidamente que no método de Euler.
Os métodos de Runge–Kutta são uma família de métodos de solução de EDO’s que incluem
os métodos de Euler e o Euler modificado, bem como outros métodos sofisticados de ordem
superior. Existem inúmeras variações na literatura, mas todas podem ser escritas por meio
9.2 Métodos de Runge - Kutta 143
da forma geral:
y(t ) = y(ti ) + h.ϕ(ti , y(ti ), h)
i+1
ϕ(ti , y(ti ), h) = α1 k1 + α2 k2 + · · · + αn kn
α1 k1 + α2 k2 + · · · + αn kn = 1
com,
k = f (ti , y(ti ))
1
k2 = f (ti + p1 h , y(ti ) + h(q11 k1 ))
k3 = f (ti + p2 h , y(ti ) + h(q21 k1 + q22 k2 ))
k4 = f (ti + p3 h , y(ti ) + h(q31 k1 + q32 k2 + q33 k3 ))
..
.
kn = f (ti + pn h , y(ti ) + h(qn−1,1 k1 + · · · + qn−1,n−1 kn−1 ))
com
α + α2 = 1
1
k1 = f (ti , y(ti ))
k2 = f (ti + p1 h , y(ti ) + h(q11 k1 )) p1 = q11
f 0 (ti , y(ti )) 2
y(ti+1 ) = y(ti ) + f (ti , y(ti ))h + h (9.5)
2
como a expansão da série de Taylor de uma função em duas variáveis, é dada por:
f (ti + h, y(ti ) + k) =
1
fxx (ti , y(ti ))h2 + 2 fxy (ti , y(ti ))hk + fyy (ti , y(ti ))k2 +· · ·
f (ti , y(ti ))+( fx (ti , y(ti ))h + fy (ti , y(ti ))k)+
2
e k2 expandida via série de Taylor é dada por,
k2 = f (ti + p1 h , y(ti ) + q11 k1 h) = f (ti , y(ti )) + p1 h fx (ti , y(ti )) + q11 k1 h + O(h2 ) (9.8)
y(ti+1 ) = y(ti ) + [α1 f (ti , y(ti )) + α2 f (ti , y(ti )] h + [α2 p1 fx + α2 q11 fx f (ti , y(ti ))] h2 + O(h3 )
(9.9)
comparando termo a termo nas equações (9.9) com (9.7), podemos tirar a seguinte relação:
α1 + α2 = 1
1
α2 p1 =
2
α2 q11 = 1
2
com o sistema de equações apresenta mais equações que incógnitas, podemos obter
inúmeras soluções, dentre elas podemos escolher,
1
α2 = 1 → α1 = 0 e p1 = q11 = .
2
Obtendo,
Definição 9.2.2
y(ti+1 ) = y(ti ) + hk2 (9.10)
com
k1 = f (ti , y(ti ))
h h
(9.11)
k2 = f ti + , y(ti ) + k1
2 2
corresponde ao método do ponto médio.
considerando,
2 1 3
α2 = → α1 = e p1 = q11 = .
3 3 4
Teremos, então:
9.2 Métodos de Runge - Kutta 145
Definição 9.2.3
h
y(ti+1 ) = y(ti ) + (k1 + 2 k2 ) (9.12)
3
com
k1 = f (ti , y(ti ))
3 3
(9.13)
k2 = f ti + h , y(ti ) + h k1
4 4
corresponde ao método de Ralston.
Exemplo 9.3 Usando o método do ponto médio e o de Ralston resolva o seguinte PVI,
y0 = x − y + 2
y(0) = 2
t ∈ [0; 1], h = 0, 2
i xi k1 k2 y(xi+1 )
0 0,0 0,0 0,15 2,02
1 0,2 0,18 0,303 2,0724
2 0,4 0,3276 0,4285 2,1514
3 0,6 0,4486 0,5313 2,2521
4 0,8 0,5478 0,6157 2,3707
Tabela 9.2: Tabela solução do método de Ralston.
i xi k1 k2 y(xi+1 )
0 0,0 0,0 0,1 2,02
1 0,2 0,18 0,262 2,0724
2 0,4 0,3276 0,3948 2,1514
3 0,6 0,4486 0,5037 2,2521
4 0,8 0,5478 0,5931 2,3707
Tabela 9.3: Tabela solução do método do ponto médio.
2.4
Solução exata
Solução aprox.
2.35
2.3
2.25
2.2
2.15
2.1
2.05
2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
146 Capítulo 9. Resolução Numérica de EDO’s
com
α1 + α2 + α3 = 1
k1 = f (ti , y(ti ))
k2 = f (ti + p1 h , y(ti ) + h(q11 k1 )) p1 = q11
k3 = f (ti + p2 h , y(ti ) + h(q21 k1 + q22 k2 )) p2 = q21 = q22
e
Definição 9.2.6
h
y(ti+1 ) = y(t1 ) + (k1 + 2k2 + 2k3 + k4 ) (9.16)
6
com
k1 = f (ti , y(ti ))
h h
k2 = f ti + 2 , y(ti ) + 2 k1
h h
k3 = f ti + , y(ti ) + hk2
2 2
k4 = f (ti + h, y(ti ) + hk3 )
ti 0, 0 1, 0 2, 0 3, 0 4, 0
Ano 1980 1991 2000 2007 2010
População 9204 11620 16197 18687 19825
Assim, o modelo ajustado corresponde a P(t) = 9703, 19 e0,2t e a EDO inicial pode ser re
escrita como:
dP(t)
= 0, 2.P(t), P0 = 9703, 19.
dt
Para resolver numericamente, primeiro iremos utilizar o método de Euler. Considerando
t = 0, 1, 2, 3. Obtemos:
Obtemos:
k1 = 0, 2.P(t0 ) = 1940, 64
t =0 k2 = 0, 2.(P(t0 ) + h.k1 ) = 2328, 76
P(t1 ) = P(t0 ) + h2 (k1 + k2 ) = 11837, 89
k1 = 0, 2.P(t1 ) = 2367, 58
t =1 k2 = 0, 2.(P(t1 ) + h.k1 ) = 2841, 09
P(t2 ) = P(t1 ) + 2h (k1 + k2 ) = 14442, 22
k1 = 0, 2.P(t2 ) = 2888, 44
t =2 k2 = 0, 2.(P(t2 ) + h.k1 ) = 3466, 13
P(t3 ) = P(t2 ) + 2h (k1 + k2 ) = 17619, 52
k1 = 0, 2.P(t3 ) = 3523, 90
t =3 k2 = 0, 2.(P(t2 ) + h.k1 ) = 4228, 68
P(t4 ) = P(t3 ) + 2h (k1 + k2 ) = 21495, 81
Para finalizar apresentaremos uma tabela de valores obtidos utilizando diferentes métodos
de solução numérica para EDO’s:
9.3 EDO’s de ordem superior 149
de modo que a EDO original pode ser decomposta como um sistema de n equações
diferenciais de primeira ordem. Ou seja,
y01 = f1 (t, y1 , y2 , · · · , yn )
y02 = f2 (t, y1 , y2 , · · · , yn )
..
.
y0 = f (t, y , y , · · · , y )
n n 1 2 n
em que
y1 = y
y2 = y0
..
.
y = y(n−1)
n
(n−1)
y1 (t0 ) = y0 , y2 (t0 ) = y00 , · · · , yn (t0 ) = y0
que pode ser escrito na forma matricial e facilmente ser resolvido por qualquer método
numérico de resolução de EDO’s de primeira ordem.
Por exemplo, o método de Euler pode ser escrito vetorialmente da seguinte forma:
Yi+1 = Yi + hF(ti , Yi )
d2 θ g
+ sen(θ ) = 0
dt 2 l
π
y1 (0) = , y2 (0) = 0.
2
dy
= yx − x3
dx
dx
= x+y
dt
dy
= y−x
dt
com 0 ≤ t ≤ 2, x(0) = 1 e y(0) = 3.
• Resolva manualmente utilizando o método de Euler e o RK4 com h = 0, 5.
• A solução analítica do sistema é x(t) = et (3sen(t) + cos(t)) e y(t) = et (3cos(t) −
sen(t)). Calcule em cada passo o erro absoluto entre a solução exata e a solução
numérica.
dI V0 R
= − I
dt L L
d2x dx
m + c + kx = 0
dt 2 dt
Exercício 9.6 Encontre a equação diferencial que modela o sistema físico do pêndulo
(com e sem atrito) e,
• resolva a EDO computacionalmente através dos métodos de Euler e RK4;
• apresente gráficos da velocidade e posição em relação ao tempo para diferentes
valores de massa e do comprimento da haste;
• apresente os gráficos do diagrama de fase para os diferentes cenários simulados;
• apresente conclusões coerentes dos resultados obtidos.
V
Laboratórios
10 Laboratórios . . . . . . . . . . . . . . . . . . . . . 155
10.1 Laboratório 01 : Expansão em Séries de Taylor
10.2 Laboratório 02 : Solução de Equações não
lineares
10.3 Laboratório 03 : Sistemas de Equações Linea-
res - SEL
10.4 Ajuste de Curvas
10.5 Interpolação
10.6 Resolução Numérica de EDO’s
Bibliografia . . . . . . . . . . . . . . . . . . . . . . 189
∞
f (k) (c)(x − c)k
f (x) = ∑ ,
k=0 k!
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn-poster')
y = np.zeros(len(x))
plt.figure(figsize = (10,8))
for n, label in zip(range(4), labels):
y = y + ((-1)**n * (x)**(2*n+1)) / np.math.factorial(2*n+1)
plt.plot(x,y, label = label)
x = np.pi/2
y = 0
for n in range(4):
y = y + ((-1)**n * (x)**(2*n+1)) / np.math.factorial(2*n+1)
print(y)
2 22 23
e ≈ 1 + 2 + + = 6, 3333.
2! 3!
Quanto mais termos usarmos, mais próxima será a aproximação do valor exato. Vamos
usar o Python para calcular o exemplo acima.
import numpy as np
exp = 0
x = 2
for k in range(10):
exp = exp + ((x**k)/np.math.factorial(k))
print(f'Usando {k}-termos, {exp}')
Teorema 10.1.1 Se a função f (x) possui n + 1 derivadas para todo x num dado intervalo
I contendo c, então para cada x ∈ I existe um x ≤ a ≤ c tal que
M |x − c|n+1
|Et (x)| ≤ .
(n + 1)!
Isso nos fornece um limitante superior para o erro de truncamento usando este teorema.
Exemplo 10.5 Estime o limitante superior para o erro de truncamento a partir da
aproximação utilizando a expansão em séries de Taylor para e2 com n = 9.
Considerando c = 0, o erro estimado para x = 2 é,
32 210
|Et (x)| ≤ = 0, 00254.
10!
abs(7.3887125220458545-np.exp(2))
sen(x)
Exercício 10.2 Use a expansão em série de Taylor para mostrar que x ≈ 1 com um
valor pequeno em x.
160 Capítulo 10. Laboratórios
2
Exercício 10.3 Escreva a expansão da série de Taylor para ex em torno da origem.
2
Escreva uma função exp− dupla(x, n), para calcular uma aproximação de ex usando os
primeiros n termos da expansão da série de Taylor. Adapte a função para receber como
parâmetro de entrada um vetor.
Exercício 10.4 Escreva uma função aprox− cosh(x, n), onde a saída será a aproximação
via série de Taylor do cosh(x) em torno da origem. Assuma que o parâmetro de entrada
x é um vetor e n a ordem da série. Lembre-se que,
ex + e−x
cosh(x) = .
2
2x2 − 5x + 3 = 0
2x2 + 3
x=
5
ou r
5x − 3
x=
2
Se o valor calculado é diferente do valor anterior, atribua a variável o novo valor. Ou seja,
x1 = 0.6 e repita o passo 3 e 4 até o valor calculado seja igual ao anterior.
10.2 Laboratório 02 : Solução de Equações não lineares 161
x = 0
for i in range(1,101):
x_novo = (2*x**2 + 3)/5
print(i,x)
if x_novo == x:
break
x = x_novo
print(i,x_novo)
x = 0
for i in range(1,101):
x_novo = (2*x**2 + 3)/5
print(i,x)
if abs(x_novo - x) < 0.000001:
break
x = x_novo
print(i,x_novo)
ou,
x = 0
for i in range(1,101):
x_novo = (2*x**2 + 3)/5
print(i,x)
if abs(x_novo - x) < 0.000001:
break
x = x_novo
print('O valor calculado : %.5f' %x_novo)
print('O total de iterações : %d' %i)
Um exemplo de uma condição em que a série é divergente no caso anterior pode ser obtida
considerando a condição inicial igual a 2. Considerando agora, a segunda equação, vemos
que x = 2 como condição inicial, converge. Ou seja:
162 Capítulo 10. Laboratórios
import numpy as np
import matplotlib.pyplot as plt
x = 0
for i in range(1,50):
x_novo = fn(x)
#gráfico
plt.plot(itrlist, xlist,'b-o',itrlist,xnewlist,'r-*')
plt.legend(['x','x_novo'],loc = 'lower right')
plt.xlabel('iterações')
plt.ylabel('x')
plt.grid()
plt.show()
Exemplo 10.6 Refaça o código fonte acima, substituindo a estrutura de repetição for
pelo while.
import numpy as np
# a recebe m
return met_bisseccao(f, m, b, tol)
elif np.sign(f(b)) == np.sign(f(m)):
# caso em que m é um refinamento para a.
# b recebe m
return met_bisseccao(f, a, m, tol)
√
Exemplo 10.7 Utilizando o método da bissecção calcule o valor de 2 com uma
tolerância de 0, 1 e 0, 01.
f = lambda x: x**2 - 2
r1 = met_bisseccao(f, 0, 2, 0.1)
print("r1 =", r1)
r01 = met_bisseccao(f, 0, 2, 0.01)
print("r01 =", r01)
import numpy as np
f = lambda x: x**2 - 2
f_prime = lambda x: 2*x
x1 = x2
x2 = xnovo
else:
print("Atenção: Atingiu o número máximo de iterações!")
return xnovo, i
Exercício 10.7 A frequência natural de uma certa viga uniforme possui uma relação
com as raízes da αi da equação f (α) = cosh(α)cos(α) + 1 = 0, onde
mL3
αi4 = (2π fi )2
EI
onde
• u = 2510 m/s é a velocidade de exaustão relativa ao foguete;
• M0 = 2, 8 × 106 kg é a massa da foguete na decolagem;
• ṁ = 13, 3 × 103 kg/s é a taxa de consumo do combustível;
• g = 9, 81 m/s2 a aceleração da gravidade;
• t o tempo medido desde a decolagem.
Determine o momento em que o foguete atinge a velocidade do som ≈ 335 m/s.
B Dsen(φ )
q
= (1 + Dcos(φ ))2 + (Dsen(φ ))2 e tan(θ ) = .
A 1 + Dcos(φ )
(ω/p)2 2ζ ω/p
D = rh e tan(φ ) =
2
i2
2 1 − (ω/p)2
1 − ( /p) + ( /p)
ω 2ζ ω
p
com p = k/m sendo a frequência natural do sistema e ζ = c/2mp o fator de amorteci-
mento. Considerando, m = 0, 2 kg, k = 2880 N/m, e ω = 96 rad/s. Determine o menor
valor de c (coeficiente de amortecimento) de modo que a relação B/A seja menor ou
igual a 1, 5.
√
n
Exercício 10.10 Escreva uma função raiz− enesima(x, n, tol) para calcular r = x,
por meio do método de Newton-Raphson.
Um teste:
...
an1 x1 + an2 x2 + · · · + ann xn = bn
3 4 1 −2 1 x5 4
# Fase de eliminação
for k in range(n-1):
for i in range(k+1, n):
pivo = A[k, k] / A[i, k]
b[i] = b[k] - pivo*b[i]
for j in range(k, n):
A[i, j] = A[k, j] - pivo*A[i, j]
termos = 0
for j in range(i+1, n):
termos += A[i, j] * x[j]
x[i] = (b[i] - termos) / A[i, i]
10.3.2 Decomposição LU
Mostraremos que qualquer a matriz quadrada (A) pode ser expressa como o produto de
duas matrizes, uma triangular inferior (L) e uma triangular superior (U):
A = L.U
Ly = b
Ux = y → x
x = LUsolve(A,b)
Fase da solução : Resolve [L][U]{x} = {b}
'''
import numpy as np
def LUdecomp(A):
n = len(A)
for k in range(0,n-1):
for i in range(k+1,n):
if A[i,k] != 0.0:
pivo = A[i,k]/A[k,k]
A[i,k+1:n] = a[i,k+1:n] - pivo*A[k,k+1:n]
A[i,k] = pivo
return A
def LUsolve(A,b):
n = len(A)
for k in range(1,n):
b[k] = b[k] - np.dot(A[k,0:k],b[0:k])
b[n-1] = b[n-1]/A[n-1,n-1]
for k in range(n-2,-1,-1):
b[k] = (b[k] - np.dot(A[k,k+1:n],b[k+1:n]))/A[k,k]
return b
import numpy as np
A = LUdecomp(A)
10.3 Laboratório 03 : Sistemas de Equações Lineares - SEL 173
for i in range(len(b)):
x = LUsolve(A,b[i])
print("x",i+1,"=",x)
input("\nPress return para sair")
'''
Um simples exemplo de funcionamento do método de Gauss-Seidel,
no caso um sistema (3,3)
'''
n = len(A)
# inicialização
n = 3
A = []
b = []
174 Capítulo 10. Laboratórios
# Initial setup
x0 = 0
y0 = 0
z0 = 0
cont = 1
# definindo a tolerância
e = float(input('Entre com o erro tolerável : '))
condition = True
while condition:
x1 = f1(x0,y0,z0)
y1 = f2(x1,y0,z0)
z1 = f3(x1,y1,z0)
10.3 Laboratório 03 : Sistemas de Equações Lineares - SEL 175
cont += 1
x0 = x1
y0 = y1
z0 = z1
O ajuste de uma curva se resume a encontrar uma equação que melhor se ajusta a um
conjunto de pontos fornecidos, com o menor desvio possível, baseado numa métrica.
Geralmente, a técnica utilizada para encontrar tal equação é conhecida como o método
dos mínimos quadrados, onde os quadrados das diferenças entre determinados pontos e
valores de função de curva de ajuste são minimizados.
Regressão Linear
f (x) = a + bx
10.4 Ajuste de Curvas 177
onde os coeficientes a e b podem ser calculados por meio das seguintes expressões:
ȳ ∑ xi2 − x̄ ∑ xi yi
a= (10.1)
∑ xi2 − nx̄2
∑ xi yi − x̄ ∑ yi
b= . (10.2)
∑ xi2 − nx̄2
Sendo,
1 n 1 n
x̄ = ∑ i x e ȳ = ∑ yi
n i=1 n i=1
representando os valores médios, respectivamente.
Exemplo 10.13 Encontre a reta que melhor ajusta o seguinte conjunto de pontos:
xi 3 4 5 6 7 8
yi 0 7 17 26 35 45
x = [3, 4, 5, 6, 7, 8]
y = [0, 7, 17, 26, 35, 45]
n = len(x) # tamanho dos vetores x e y
sumx = sumx2 = sumxy = sumy = 0 # inicialização dos somatórios
for i in range(n):
sumx += x[i] # Somatório em x
sumx2 += x[i]**2 # Somatório em x^2
sumxy += x[i]*y[i] # Somatório x.y
sumy += y[i] # Somatório em y
import numpy as np
from scipy import optimize
import matplotlib.pyplot as plt
plt.style.use('seaborn-poster')
# gerando as dados x e f
x = np.linspace(0, 1, 101)
f = 1 + x + x * np.random.random(len(x))
# Construção da matriz X
X = np.vstack([x, np.ones(len(x))]).T
# Resolução direta
w = np.dot((np.dot(np.linalg.inv(np.dot(X.T,X)),X.T)),f)
print(w)
Exemplo 10.15 Adapte o código fonte anterior para ajustar o seguinte conjunto de
pontos
xi -2 -1 1 2 3
yi 13,86 4,93 5,79 15,99 32,48
a função f (x) = w0 + w1 x + w2 x2 .
import numpy as np
from scipy import optimize
import matplotlib.pyplot as plt
plt.style.use('seaborn-poster')
plt.figure(figsize = (10,8))
plt.plot(x, y, 'b.')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
Considere o modelo de ajuste linear que prediz uma saída y como uma combinação linear
nas variáveis de entrada x1 , x2 , · · · , xn como,
1
x1
T
y = w x = w0 + w1 x1 + w2 x2 + · · · + wn xn = [w0 w1 · · · wn ] x2 (10.3)
.
..
xn
N−1 N−1
2
J(w) = ∑ (yn − tn) = ∑ ((w0 + w1x1 + w2x2 + · · · + wnxn) − tn)2 .
n=0 n=0
Como estudado no capítulo 06, a solução desta equação se dá por meio da equação normal:
−1
w = XT X XT t (10.4)
Embora a equação (10.4) forneça uma fórmula fechada para o problema de ajuste via
mínimos quadrados ou filtragem desejada, as vezes não é computacionalmente viável.
Para contornar esse problema, podemos recorrer ao método do gradiente para refinar
iterativamente o cálculo dos parâmetros w, na direção do mínimo na função custo via
gradiente descendente. Ou seja, para minimizar o funcional de custo, derivando-o e
igualando a zero, obtemos:
1 N−1 T
xn w − tn xn = x xT w − t .
∇J(w) = ∑ (10.5)
2 n=0
10.4 Ajuste de Curvas 181
w p+1 = w p + µ xTp w p − t p x p
(10.7)
mu = 0.05
plt.figure(figsize=(12,5))
plt.title('Janela do filtro')
plt.plot(h,"r")
plt.show()
182 Capítulo 10. Laboratórios
plt.figure(figsize=(12,5))
plt.title('Saída do Filtro')
plt.plot(y,"--b")
plt.show()
Exercício 10.15 Escreva uma função ajuste− exponencial(x, y) onde x e y são vetores
coluna de mesma dimensão e contendo os dados experimentais, e a função irá retornar
os valores de α e β da estimação y(x) = α eβ x . Teste com o seguinte conjunto de dados:
x = np.linspace(0, 1, 1000)
y = 2*np.exp(-0.5*x) + 0.25*np.random.random(len(x))
alpha, beta = ajuste_exponencial(x, y)
Exercício 10.16 Escreva a função ajuste− geral(φ , x, y) onde φ representa uma função
de base, x e y os vetores contendo os dados acrescidos de ruído. Assuma x e y de mesma
dimensão. Sendo ŷ = ∑nk=1 wk φk (x) a função que ajusta os dados via uma combinação
linear de funções de base. Teste no seguinte conjunto de dados:
10.4 Ajuste de Curvas 183
y = φ wT x .
Tomando este modelo como referência, podemos utilizar o algoritmo LMS estudado
para calcular os pesos sinápticos de um neurônio. Tomando, o seguinte exemplo
como referência, adapte o modelo a um neurônio de forma a criar um filtro adaptativo
classificador de padrões (DICA: Escolha como função de ativação a função tangente
hiperbólica).
import numpy as np
import matplotlib.pylab as plt
import padasip as pa
# criando os dados
N = 500
t = np.linspace(start=[-np.pi, -np.pi/2, -2*np.pi, 0],
stop=[np.pi, np.pi/2, 2*np.pi, 2*np.pi], num = N)
x = np.sin(t) + np.cos(2*t)
#x = np.sin(np.random.normal(0, 1, (N, 4))) # sinal de entrada
v = np.random.normal(0, 0.03, N) # ruído
d = 2*x[:,0] + 0.1*x[:,1] - 4*x[:,2] + 0.5*x[:,3]+ v#desejado+ruído
# Parâmetros do filtro
#f = pa.filters.FilterLMS(n = 4, mu = 0.1, w = "random")
184 Capítulo 10. Laboratórios
# Resultados obtidos
plt.figure(figsize=(12,9))
plt.subplot(211);plt.title("Adaptação");plt.xlabel("amostras - N")
plt.plot(d,"b.", label="d - sinal ruidoso")
plt.plot(y,"--r", label="y - sinal filtrado");plt.legend()
plt.subplot(212);plt.title("Erro da adaptação")
plt.xlabel("amostras - N")
plt.plot((e**2)/N,"--r", label="erro médio quadrático");plt.legend()
#plt.plot(10*np.log10(e**2),"r", label="e - erro [dB]");plt.legend()
plt.tight_layout()
plt.show()
10.5 Interpolação
Assumindo um conjunto de dados consistindo dos pares ordenados {xi , yi }ni=1 . Na interpo-
lação o objetivo é estimar uma função P(x) tal que P(xi ) = yi para todo ponto no conjunto
de dados. No nosso caso, abordaremos duas formas de interpolação: Lagrange e Newton.
n (x − x j )
Li (x) = ∏ ,
j=0
(xi − x j )
j6=i
e
n
P(x) = ∑ yi Li (x).
i=0
import numpy as np
import numpy.polynomial.polynomial as poly
import matplotlib.pyplot as plt
x = [0, 1, 2]
y = [1, 3, 2]
P1_coeff = [1,-1.5,.5]
P2_coeff = [0, 2,-1]
P3_coeff = [0,-.5,.5]
# Funções Polinomiais
P1 = poly.Polynomial(P1_coeff)
P2 = poly.Polynomial(P2_coeff)
P3 = poly.Polynomial(P3_coeff)
f = lagrange(x, y)
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
'''
n = len(y)
10.5 Interpolação 187
for j in range(1,n):
for i in range(n-j):
coef[i][j] = \
(coef[i+1][j-1] - coef[i][j-1]) / (x[i+j]-x[i])
return coef
E
Método de Eliminação de Gauss . . . . . . 74
Método de Gauss - Jordan . . . . . . . . . . . . 76 EDO’s de ordem superior . . . . . . . . . . . 149
Erro absoluto × erro relativo . . . . . . . . . 34
Erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
A
Erros em soluções numéricas . . . . . . . . . 39
Ajuste de Curvas . . . . . . . . . . . . . . . . . . . 176 Exercícios . . . . . . . . . . . . . . . . . . . . . . . 30, 49
Ajuste não linear . . . . . . . . . . . . . . . . . . . 100 Exercícios Propostos 41, 68, 89, 107, 119,
Ajuste trigonométrico . . . . . . . . . . . . . . . 102 134, 150
Aproximação . . . . . . . . . . . . . . . . . . . . . . . 28 Expansão em Séries de Taylor . . . . . . . 156
As Regras de Simpson . . . . . . . . . . . . . . 127
I
C
Interpolação . . . . . . . . . . . . . . . . . . . . . . . 184
Caso Geral . . . . . . . . . . . . . . . . . . . . . . . . . 95 Iteração funcional e ponto fixo . . . . . . . . 64
Conversão de base . . . . . . . . . . . . . . . . . . . 35
M
D
Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Decomposição Cholesky . . . . . . . . . . . . . 77 Modelagem Matemática e Resolução de
Decomposição LU. . . . . . . . . . . . . . . . . . .78 Problemas . . . . . . . . . . . . . . . . . . . 27
192 ÍNDICE
P
Polinômios interpoladores de Lagrange112
Polinômios interpoladores por Diferenças
Divididas de Newton . . . . . . . . 117
Produto Interno . . . . . . . . . . . . . . . . . . . . . 16
Projeção Ortogonal . . . . . . . . . . . . . . . . . . 17
Propostos . . . . . . . . . . . . . . . . . . . . . . . 31, 53
R
1
Regra 3 de Simpson generalizada . . . . 129