| | | |

Matemática numérica II

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

5.2 Método de Elementos Finitos

Consideramos o seguinte problema linear de valor de contorno (PVC)

−u′′=f⁢(x),a<x<b, (5.43)
u⁢(a)=0, (5.44)
u⁢(b)=0. (5.45)

onde a incógnita é u=u⁢(x) com dada fonte f=f⁢(x).

A solução pelo Método de Elementos Finitos (FEM) de (5.4)-(5.6) surge da aproximação do problema em um espaço de dimensão finita de funções. São três passos fundamentais: 1. escrever a formulação fraca do problema111Por convenção, (5.4)-(5.6) é chamado de formulação forte do problema., 2. escrever a formulação de elementos finitos e 3. resolver o problema de elementos finitos.

1. Formulação Fraca

Para obter a formulação fraca do PVC (5.105)-(5.45), multiplicamos (5.105) por uma arbitrária função teste v=v⁢(x)

−u′′⁢v=f⁢v (5.46)

e integramos no domínio a≤x≤b, i.e.

−∫abu′′⁢v⁢𝑑x=∫abf⁢v⁢𝑑x. (5.47)

Então, aplicando integração por partes no primeiro termo do lado esquerdo, obtemos

∫abu′⁢v′⁢𝑑x−[u′⁢v]x=ab=∫abf⁢v⁢𝑑x. (5.48)

Vamos denotar o produto interno em L2⁢([a,b])222u∈L2⁢([a,b])⇔∫ab|u|2⁢𝑑x<∞. por

(u,v)2:=∫abu⁢v⁢𝑑x (5.49)

e nos contornos

⟨u,v⟩:=u⁢(b)⁢v⁢(b)−u⁢(a)⁢v⁢(a). (5.50)

Com isso, definimos a formulação fraca como o seguinte problema: encontrar u∈V:=H01⁢([a,b])333H01⁢([a,b]):={u=u⁢(x);u,u′∈L2⁢([a,b]),u⁢(a)=u⁢(b)=0}. tal que

a⁢(u,v)=l⁢(v),∀v∈V, (5.51)

onde a forma bilinear é

a⁢(u,v):=(u′,v′)2 (5.52)

e a forma linear é

l⁢(v):=(f,v)2. (5.53)

2. Formulação de Elementos Finitos

A formulação de elementos finitos do problema (5.105)-(5.45) é obtida a partir de (5.51) pela substituição do espaço de funções V por um espaço de dimensão finita Vh. A ideia é que Vh→V, bem como a solução de elementos finitos uh→u∈V quando h→0.

Para construir o espaço de elementos finitos Vh, vamos considerar elementos do tipo

P1(I):={v=v(x);v(x)=c0+c1x,
x∈I,c0,c1∈ℝ}, (5.54)

onde I é um intervalo fechado.

Sobre o domínio, assumimos uma malha uniforme

M⁢([a,b]):={x1,x2,…,xn+1} (5.55)

com h=(b−a)/n, xi=a+(i−1)⁢h, i=1,2,…,n+1. Nesta, definimos o espaço de funções

Vh⁢,0:={v=v(x);v∈C0[a,b],v(a)=v(b)=0,
v|[xi,xi+1]∈P1([xi,xi+1]),i=1,2,…,n}. (5.56)

Pode-se mostrar que Vh=span{ϕi}i=1n−1, com base nodal

ϕj⁢(xi)={1,i=j,0,i≠j (5.57)

para i,j=2,…,n e ϕ1⁢(a)=0=ϕn⁢(b). Podemos verificar que

ϕi⁢(x)={(x−xi−1)/h,x∈[xi−1,xi],(xi+1−x)/h,x∈[xi,xi+1],0,noutros casos (5.58)

Com isso, definimos a formulação de elementos finitos sendo o seguinte problema: encontrar uh∈Vh⁢,0 tal que

a⁢(uh,vh)=l⁢(vh),∀vh∈Vh. (5.59)

Tendo em vista que Vh=span{ϕi}i=1n+1, este é equivalente a

a⁢(uh,ϕj)=l⁢(ϕj),∀1≤j≤n−1. (5.60)

3. Resolução do problema de elementos finitos

O problema de elementos finitos (5.60) consiste em um sistema linear A⁢𝒖=𝒃. De fato, a solução uh∈Vh⁢,0 pode ser escrita como a seguinte combinação linear

uh=∑j=1n−1uj⁢ϕj. (5.61)

Logo, temos que

a⁢(uh,ϕi)=(∑j=1n−1uj⁢ϕj,ϕi)2, (5.62)
=∑j=1n−1uj(ϕj,ϕi)2, (5.63)
=A𝒖, (5.64)

onde a matriz dos coeficientes é A=[ai,j:=(ϕj,ϕi)]i,j=1n−1 e o vetor das incógnitas é 𝒖=(uj)j=1n−1. Doutro lado, temos

l⁢(ϕi)=(f,ϕi)2, (5.65)

o que nos fornece o vetor dos termos constantes 𝒃=(bi:=(f,ϕi)2)i=1n−1.

O cálculo dos elementos de A fornece

ai,i=(ϕi′,ϕi′)2 (5.66)
=∫ab(ϕi′)2dx (5.67)
=∫xi−1xi+1(ϕi′)2dx (5.68)
=∫xi−1xi[(x−xi−1h)′]2dx (5.69)
+∫xixi+1[(xi+1−xh)′]2⁢𝑑x (5.70)
=2h,i=1,2,…,n−1, (5.71)
ai,i+1=(ϕi+1′,ϕi′)2 (5.72)
=∫abϕi+1′ϕi′dx (5.73)
=∫xixi+1(xi+1−xh)′(x−xi+1h)′dx (5.74)
=−1h,i=1,2,…,n−2, (5.75)
ai−1,i=(ϕi−1′,ϕi′)2 (5.76)
=∫abϕi−1ϕidx (5.77)
=∫xi−1xi(xi−xh)′(x−xih)′dx (5.78)
=−1h,i=2,…,n−1, (5.79)

observando que, noutros casos, ai,j=0.

Um cálculo aproximado dos elementos de 𝒃 fornece444Por simplicidade, usando a regra do ponto médio para aproximar as integrais.

bi=(f,ϕi)2 (5.80)
=∫abf(x)ϕi(x)dx (5.81)
=∫xi−1xif(x)(x−xi−1)hdx
+∫xixi+1f⁢(x)⁢(xi+1−x)h⁢𝑑x (5.82)
≈h2f(xi−1/2)+h2f(xi+1/2). (5.83)
Exemplo 5.2.1.

Consideramos o seguinte PVC

−u′′=π2⁢sen⁡(π⁢x)⁢, 0<x<1, (5.84)
u⁢(0)=0, (5.85)
u⁢(1)=0. (5.86)

A solução analítica deste problema é u⁢(x)=sen⁡(π⁢x).

Refer to caption
Figura 5.2: Resultado referente ao Exemplo 5.2.1.

Resolvendo este sistema com h=10−1 obtemos a solução numérica apresentada na Figura 5.2.

Código 17: pvc_mef.py
1import numpy as np
2
3# malha
4n = 10
5h = 1./n
6xx = np.linspace(0., 1., n+1)
7
8# fonte
9def f(x):
10 return np.pi**2*np.sin(np.pi*x)
11
12# prob discreto
13A = np.zeros((n-1, n-1))
14b = np.empty(n-1)
15
16# c.c. x = 0.
17A[0,0] = 2./h
18A[0,1] = -1./h
19b[0] = h/2 * (f(xx[1]-0.5*h) + f(xx[1]+0.5*h))
20
21# pts internos
22for i in range(1,n-2):
23 A[i,i-1] = -1./h
24 A[i,i] = 2./h
25 A[i,i+1] = -1./h
26 b[i] = h/2 * (f(xx[i+1]-0.5*h) + f(xx[i+1]+0.5*h))
27
28# c.c. x = 1.
29A[n-2,n-3] = -1./h
30A[n-2,n-2] = 2./h
31b[n-2] = h/2 * (f(xx[n-1]-0.5*h) + f(xx[n-1]+0.5*h))
32
33# resol
34u = npla.solve(A, b)
35## c.c. (dirichlet)
36u = np.concatenate(([0.],u,[0.]))

5.2.1 Exercícios

E. 5.2.1.

Considere o PVC

−u′′=π2⁢cos⁡(π⁢x)⁢, 0<x<1, (5.87)
u⁢(0)=1, (5.88)
u⁢(1)=−1. (5.89)

A solução analítica deste problema é u⁢(x)=cos⁡(π⁢x). Use o MEF para computar aproximações numéricas 𝒖~h com tamanhos de malha h=10−1⁢,10−2⁢,10−3⁢,10−4 e verifique o erro absoluto εabs:=‖𝒖~h−𝒖‖.

E. 5.2.2.

Considere o PVC

−u′′=2,−1<x<1, (5.90)
u⁢(−1)=0, (5.91)
u⁢(1)=0. (5.92)

A solução analítica deste problema é u⁢(x)=1−x2. Use o MEF com n=20 subintervalos na malha e verifique o erro absoluto εabs:=‖𝒖~h−𝒖‖. Por que o erro está próximo precisão de máquina? Justifique sua resposta.

E. 5.2.3.

Considere o seguinte PVC

−u′′+u′=f⁢(x),−1<x<1, (5.93)
u⁢(−1)=0, (5.94)
u′⁢(1)=0, (5.95)

onde

f⁢(x)={1,x≤00,x>0 (5.96)

Use uma aproximação adequada pelo MEF para obter o valor aproximado de u⁢(0) com precisão de 2 dígitos significativos.


7,2⁢e−1

E. 5.2.4.

Considere o PVC

−u′′=π2⁢cos⁡(π⁢x)⁢, 0<x<1, (5.97)
u⁢(0)=1, (5.98)
u′⁢(1)=0. (5.99)

A solução analítica deste problema é u⁢(x)=cos⁡(π⁢x). Aplique o MEF para computar uma aproximação numérica com erro absoluto de no máximo 10−3 na norma L2.


Envie seu comentário

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

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a política de uso de dados para mais informações.

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

Pedro H A Konzen
| | | |