Calculo Numerico
267 pág.

Calculo Numerico


DisciplinaCálculo Numérico15.858 materiais267.653 seguidores
Pré-visualização35 páginas
x1y3
a3 = x1y2 \u2212 x2y1
b1 = y2 \u2212 y3
b2 = y3 \u2212 y1
b3 = y1 \u2212 y2
c1 = x3 \u2212 x2
c2 = x1 \u2212 x3
c3 = x2 \u2212 x1
ou na forma matricial
2\u2206 =
\u2223\u2223\u2223\u2223\u2223\u2223\u2223
1 x1 y1
1 x2 y2
1 x3 y3
\u2223\u2223\u2223\u2223\u2223\u2223\u2223 , a1 = (\u22121)1+1
\u2223\u2223\u2223\u2223\u2223 x2 y2x3 y3
\u2223\u2223\u2223\u2223\u2223 ,
a2 = (\u22121)2+2
\u2223\u2223\u2223\u2223\u2223 1 y11 y3
\u2223\u2223\u2223\u2223\u2223 , a3 = (\u22121)3+3
\u2223\u2223\u2223\u2223\u2223 1 x11 x2
\u2223\u2223\u2223\u2223\u2223 .
Os outros coeficientes podem ser obtidos de forma semelhante.
c) Tetrae´drica
236 Cap´\u131tulo 9 - Int. ao me´todo de elementos finitos
Para o tetraedro representado na figura 9.1c, em tre\u2c6s dimenso\u2dces, obte´m-se o sistema
linear
1 = L1 + L2 + L3 + L4
x = L1x1 + L2x2 + L3x3 + L4x4
y = L1y1 + L2y2 + L3y3 + L4y4
z = L1z1 + L2z2 + L3z3 + L4z4
o que resulta em
Li =
1
6V
(ai + bix+ ciy + diz), i = 1, 2, 3, 4.
onde
6V =
\u2223\u2223\u2223\u2223\u2223\u2223\u2223\u2223\u2223\u2223
1 x1 y1 z1
1 x2 y2 z2
1 x3 y3 z3
1 x4 y4 z4
\u2223\u2223\u2223\u2223\u2223\u2223\u2223\u2223\u2223\u2223
e os coeficientes sa\u2dco obtidos conforme:
a1 =
\u2223\u2223\u2223\u2223\u2223\u2223\u2223
x2 y2 z2
x3 y3 z3
x4 y4 z4
\u2223\u2223\u2223\u2223\u2223\u2223\u2223 , b1 = \u2212
\u2223\u2223\u2223\u2223\u2223\u2223\u2223
1 y2 z2
1 y3 z3
1 y4 z4
\u2223\u2223\u2223\u2223\u2223\u2223\u2223 ,
c1 =
\u2223\u2223\u2223\u2223\u2223\u2223\u2223
x2 1 z2
x3 1 z3
x4 1 z4
\u2223\u2223\u2223\u2223\u2223\u2223\u2223 , d1 = \u2212
\u2223\u2223\u2223\u2223\u2223\u2223\u2223
x2 y2 1
x3 y3 1
x4 y4 1
\u2223\u2223\u2223\u2223\u2223\u2223\u2223 .
Fund. de Ca´lculo Nume´rico para Engenheiros 237
9.3 Aplicac¸a\u2dco a` equac¸a\u2dco do calor unidimensional
Para resolver a equac¸a\u2dco de conduc¸a\u2dco de calor unidimensional
\u3c9u\u2d9 =
\u2202
\u2202x
(
\u3ba
\u2202u
\u2202x
)
supondo \u3c9 = 1, e as mesmas condic¸o\u2dces do exemplo (8.1) faz-se u = L1u1 + L2u2
com L1 =
x\u2212x1
x2\u2212x1 e L2 =
x2\u2212x
x2\u2212x1 (uma interpolac¸a\u2dco linear).
Tem-se
kij =
\u222b x2
x1
\u3b1
\u2202Li
\u2202x
\u2202Lj
\u2202x
dx,
ou seja,
k11 =
\u222b x2
x1
\u3b1
(
1
x2 \u2212 x1
1
x2 \u2212 x1
)
dx =
\u3b1
x2 \u2212 x1
k22 =
\u222b x2
x1
\u3b1
(
1
(x2 \u2212 x1)2
)
dx =
\u3b1
x2 \u2212 x1
k12 = k21 = \u2212
\u222b x2
x1
\u3b1
(
1
(x2 \u2212 x1)2
)
dx = \u2212 \u3b1
x2 \u2212 x1
e para o termo temporal
\u3c9ij = \u3c9LiLjdx
\u3c911 =
\u222b x2
x1
\u3c9
(x\u2212 x1)2
(x2 \u2212 x1)2 dx
=
\u3c9
(x2 \u2212 x1)2
[
x3
3
\u2212 x1x2 + x21x
]x2
x1
=
\u3c9
(x2 \u2212 x1)2
[
x32
3
\u2212 x1x22 + x21x2 \u2212
x31
3
+ x31 \u2212 x31
]
=
\u3c9
3
(x2 \u2212 x1) = \u3c922
238 Cap´\u131tulo 9 - Int. ao me´todo de elementos finitos
pois (x2\u2212x1)
3
6 =
x32\u2212x31
6 +
1
2(x2x
2
1 \u2212 x22x1).
Segue que
\u3c912 = \u3c921 = Kt21 =
\u222b x2
x1
\u3c9L1L2dx =
\u3c9
6
(x2 \u2212 x1)
e
R1i =
\u222b x2
x1
fLidx =
\u222b
x1
x2 [f1L1 + f2L2]Lidx
de forma que
R11 =
\u222b
x1
x2
[
f1L
2
1 + f2L1L2
]
dx
=
f1
(x2 \u2212 x1)2
[
x3
3
\u2212 x2x1 + x21x
]x2
x1
+
f2
(x2 \u2212 x1)2
[\u2212x3
3
\u2212 x2x1x+ x
2
2
(x2 + x1)
]x2
x1
=
1
3
f1(x2 \u2212 x1) + 1
6
f2(x2 \u2212 x1)
Analogamente tem-se R12 = (x2 \u2212 x1)
(
1
6f1 +
1
3f2
)
.
Desta forma,
[\u3c9]{u\u2d9} = [\u3c9]{u}+ {R}
ou, finalmente
\u3c9(x2 \u2212 x1)
[
1
3
1
6
1
6
1
3
]{
u\u2d91
u\u2d92
}
=
K
x2 \u2212 x1
[
1 \u22121
\u22121 1
]{
u1
u2
}
\u2212(x2 \u2212 x1)
{
f1
1
3 + f2
1
3
f1
1
6 + f2
2
3
}
.
Fund. de Ca´lculo Nume´rico para Engenheiros 239
9.4 Exerc´\u131cios
1. Obter os sistemas matriciais em elementos finitos para a conduc¸a\u2dco de calor bidi-
mensional
\u3c9u =
\u2202
\u2202x
(
K
\u2202u
\u2202x
)
+
\u2202
\u2202y
(
K
\u2202u
\u2202y
)
+ f.
240 Cap´\u131tulo 10 - Algoritmos implementados em FORTRAN 90
10 ALGORITMOS IMPLEMENTADOS
EM FORTRAN 90
Para finalizar, introduz-se alguns algoritmos desenvolvidos em FORTRAN para a
soluc¸a\u2dco dos problemas indicados nos cap´\u131tulos anteriores. Escolheu-se a linguagem
FORTRAN por ser uma das mais u´teis, juntamente com a linguagem C na soluc¸a\u2dco
de problemas cient´\u131ficos. A linguagem C e´ bastante aplicada em softwares de visual-
izac¸a\u2dco gra´fica e o FORTRAN em problemas (softwares) para a soluc¸a\u2dco de problemas
de grande porte.
10.1 Introduc¸a\u2dco
Existe uma etapa importante entre a escolha do me´todo que sera´ utilizado na
soluc¸a\u2dco do problema e a forma de escrita das instruc¸o\u2dces no computador. Esta etapa e´
a representac¸a\u2dco gra´fica do processo que se pretende executar atrave´s de um diagrama
que descreva a sequ¨e\u2c6ncia de operac¸o\u2dces envolvidas. Isto e´ chamado de \u201dfluxograma\u201d
ou \u201ddiagrama de blocos\u201d. O fluxograma e´ um me´todo formal de representar um
programa, de tal modo que a sua lo´gica se apresente clara e fa´cil de analisar e os
testes sejam especificados. Isto e´ feito de forma padronizada por figuras geome´tricas.
As vantagens do fluxograma sa\u2dco basicamente:
\u2022 facilitar uma visa\u2dco global do problema;
\u2022 facilitar a descoberta de erros lo´gicos;
\u2022 facilitar a comunicac¸a\u2dco entre programadores;
\u2022 evitar a repetic¸a\u2dco do mesmo conjunto de instruc¸o\u2dces em diferentes partes do pro-
grama.
Fund. de Ca´lculo Nume´rico para Engenheiros 241
Os s´\u131mbolos utilizados sa\u2dco mostrados na figura 10.1 (a). Um exemplo de fluxo-
grama e´ exibido na Fig. 10.1 (b).
Figura 10.1: S´\u131mbolos utilizados e exemplo de um fluxograma simples
Diz-se que todo algoritmo pode ser melhorado. Estudos realizados indicam que
em cada 3 linhas de um co´digo computacional uma melhoria pode ser feita. Talvez
isto na\u2dco seja verdade, mas o importante num algoritmo sa\u2dco os seguintes aspectos:
\u2022 simplicidade;
\u2022 facilidade de uso e entendimento;
\u2022 baixo custo;
\u2022 resultados confia´veis.
E´ importante lembrar que algoritmos muito sofisticados na\u2dco possuem todas estas
caracter´\u131sticas. Estes, portanto, nem sempre sa\u2dco os mais eficientes. Algoritmos
muito sofisticados sa\u2dco geralmente caros e exigem ma\u2dco-de-obra especializada para a
sua preparac¸a\u2dco. Lembre-se, criar um algoritmo nem sempre e´ uma atividade fa´cil.
242 Cap´\u131tulo 10 - Algoritmos implementados em FORTRAN 90
Apresenta-se, a seguir, apenas os comandos ba´sicos para a implementac¸a\u2dco de al-
goritmos em linguagem FORTRAN 90. O manual do usua´rio ou um livro texto deve
ser consultado para maiores informac¸o\u2dces.
10.2 FORTRAN (Formula Translation)
A linguagem que o computador entende e´ inerente ao seu projeto lo´gico e varia
de acordo com o tipo de computador. A linguagem Fortran e´ orientada de maneira
a resolver principalmente problemas nos campos te´cnico e cient´\u131fico. A linguagem
C e´ mais utilizada para computac¸a\u2dco gra´fica. Existe, assim, um programa especial
chamado de compilador Fortran cuja finalidade e´ traduzir o programa escrito em
Fortran para a linguagem de ma´quina do computador utilizado.
10.2.1 Varia´veis, operac¸o\u2dces aritme´ticas e func¸o\u2dces ba´sicas
As varia´veis sa\u2dco representadas por identificadores que sa\u2dco cadeias de caracteres
alfanume´ricos comec¸ando com uma letra. O tipo de varia´vel esta´ associado ao tipo
de dado que ela representa:
\u2022 Varia´vel inteira: i, j, k, l, m, n;
\u2022 Varia´vel real1: a - h, o - z.
As expresso\u2dces aritme´ticas sa\u2dco constitu´\u131das por operadores e operandos aritme´ticos.
Os operadores aritme´ticos adotados na linguagem Fortran sa\u2dco:
1Uma varia´vel pode ser declarada como real (4 bytes), real*8 (8 bytes) e complex (varia´veis
complexas).
Fund. de Ca´lculo Nume´rico para Engenheiros 243
Operac¸a\u2dco aritme´tica Operac¸a\u2dco aritme´tico
adic¸a\u2dco +
subtrac¸a\u2dco -
multiplicac¸a\u2dco *
divisa\u2dco /
potenciac¸a\u2dco **
com a seguinte prioridade de execuc¸a\u2dco:
\u2022 1 exponenciac¸a\u2dco ;
\u2022 2 multiplicac¸a\u2dco e divisa\u2dco;
\u2022 3 adic¸a\u2dco e subtrac¸a\u2dco.
A linguagem Fortran permite o uso direto de func¸o\u2dces alge´bricas numa expressa\u2dco
aritme´tica. A tabela 10.1 apresenta algumas destas func¸o\u2dces.
10.2.2 Comandos Ba´sicos
Para a implementac¸a\u2dco de algoritmos em linguagem Fortran considere os seguintes
comandos ba´sicos:
ALLOCATE - Aloca espac¸o e da´ um formato definido a uma matriz.
ALLOCATABLE - Indica as matrizes que sera\u2dco alocadas no programa.
CONTINUE ou END DO- Indica continuac¸a\u2dco.
DEALLOCATE - Libera o espac¸o previamente reservado em um comando allo-
cate.
DIMENSION - Indica dimensa\u2dco de varia´veis: dimension:: v1(a), v2(a, b)
DO - Indica uma seque\u2c6ncia