EP2 - Poisson com algoritmo de Thomas

EP2 - Poisson com algoritmo de Thomas

por Andreza Lukosiunas -
Número de respostas: 14

Olá Pessoal,

Qual a ordem de convergência do Alg de Thomas? 

Pensando SEM célula fantasma,

o Alg de Thomas diz que o u[n] = d'[n], onde u[n] é o valor "aprox." no final da minha barra e d'[n] é o termo de uma parte do algoritmo que calculo de um certo modo. Mas tenho que u[n] é o valor de contorno, usei-o e parece estar dando certo. Qual seria o ideal? Lembrando que Thomas calcula-se do fim para o início.

Em resposta à Andreza Lukosiunas

Re: EP2 - Poisson com algoritmo de Thomas

por Andreza Lukosiunas -

Pensando em célula fantasma,

Pelo que vi o alg de Thomas, na barra é tal que:

u[i] = d'[i] - c'[i]*u[i+1], i.e, vc tem que conhecer o fim para ir chegando no começo. Não vejo sentido em saber a célula fantasma u[-1], dom x ∈ [0, n], pois ela vem automáticamente, porém é muito intuitivo achar a u[n+1] fazendo o caminho inverso da igualdade acima.

Aguém pode dar uma dica?

Muito obrigada,

Em resposta à Andreza Lukosiunas

Re: EP2 - Poisson com algoritmo de Thomas

por Andreza Lukosiunas -

Oi pessoal,

Gostaria de saber para onde converge o alg de Thomas, pois mudando para células fantasmas e colocando na posição central mudou a conv? Muda tb qdo mudo a função. Será estabilidade?

Comparando os valores da exata com a aprox estão bem parecidas.

 

Obrigada,

Em resposta à Andreza Lukosiunas

Re: EP2 - Poisson com algoritmo de Thomas

por Andreza Lukosiunas -

FALHA! O alg de Thomas toma o lugar do Gauss-Seidel, logo não é ele quem converge, mas a diferenças finitas centradas, que para 2ª derivada é de ordem  2, logo aquela razão será 4.

Em resposta à Andreza Lukosiunas

Re: EP2 - Poisson com algoritmo de Thomas

por Priscila Calegari -

A ordem esperada é 2, (razão 4) já que estamos utilizando diferenças finitas de segunda ordem. Dependendo de como são calculadas, as células fantasmas podem afetar a ordem esperada. Isso pode acontecer se usarmos uma aproximação de ordem menor em seus cálculos. Verifique se a sua aproximação para as células fantasmas é de segunda ordem.

[]'s

Em resposta à Andreza Lukosiunas

Re: EP2 - Poisson com algoritmo de Thomas

por Priscila Calegari -

Oi Andreza,

as células fantasmas fazem o "papel" das condições de fronteira, modificando o sistema. Substitua o valor da célula fantasma u_0,

u_0 - 2u_1 + u_2 = b_1*h^2

e veja como fica a primeira linha do sistema.

[]'s

Em resposta à Priscila Calegari

Re: EP2 - Poisson com algoritmo de Thomas

por Andreza Lukosiunas -

Pri,

Fazendo o esquema com células fantasmas, com a funcao e dom que escolhi, convergiu para 2 e razão para 4. OK!

Porém ao mudar as posições de nodal para central, eis que surgiu o problema, está convergindo para 1, razão para 4. Será que pode acontecer? Lembrando que estamos na barra.

Em resposta à Andreza Lukosiunas

Re: EP2 - Poisson com algoritmo de Thomas

por Priscila Calegari -

Deixa eu ver se entendi.

Primeiro você resolveu nos nós (nodal) e obteve ordem 2. É isto? Se sim, porque usou células fantasmas? Pois a condição de fronteira está no nó, certo?

Como você aproxima a célula fantasma, quando resolve no centro?

[]'s

Em resposta à Priscila Calegari

Re: EP2 - Poisson com algoritmo de Thomas

por Andreza Lukosiunas -

Sim, resolvi nos nós, com cc em x[1] e x[n-1], depois "inventei" células fantasmas em x[0] e x[n], minhas células fantasmas tb estariam no nó, neste caso, e mesmo assim converge para 2.

No caso de posicionar no centro fiz um esquemão. O alg de Thomas tem uma cara assim:

u[i]  = d'[i] - c'[i]*u[i+1];

onde d'[i] e c'[i] dependem de dx.

para calcular os valores em torno da cc usei dx/2, depois voltei para dx.

E, claro, a sol exata tem os x's nos centros, não mais nos nós. talvez de problema com d'[i] e c'[i] quando volto para dx. Assim converge para 1.

Se vc puder indicar algum escrito sobre posicão no centro com fantasma eu agradeço. 

Em resposta à Andreza Lukosiunas

Re: EP2 - Poisson com algoritmo de Thomas

por Priscila Calegari -

O uso das células fantasmas é justamente para não ser necessário "alterar" o solver. Elas farão o papel das condições de fronteira, também estão localizadas no centro. Então nos valores próximos da fronteira você não deveria usar dx/2. 

Em resposta à Priscila Calegari

Re: EP2 - Poisson com algoritmo de Thomas

por Andreza Lukosiunas -

A ideia que tenho de cel fantasma é o seguinte: Imagine um quadrado de 1 m^2, no contorno dele tenho a cc, que é algo que conheço, uso um método para descobrir o que há no interior do quadrado, mas e o que está fora desse quadrado, próximo ao contorno? Aí entram as células fantasmas, pois no interior eu uso regra dos 5 pontos sendo o que quero descobrir é o ponto do meio, já a fantasma será outro ponto que não o do meio, ie, se eu estiver a oeste será o ponto à esquerda, ao norte o ponto de cima, etc. No caso nodal a cc está num ponto, soma dx e estarei no outro ponto, já no caso central a cc está num ponto (que não é centro e sim nó), somo dx/2 chego ao centro, a partir daí somo dx normalmente, até chegar na prox Cc, que terá um esqueminha. 

Talvez eu não tenha entendido corretamente essa ideia de cel fantasma e pontos no centro.

Em resposta à Andreza Lukosiunas

Re: EP2 - Poisson com algoritmo de Thomas

por Carla Reis -

Andreza,

Estive acompanhando suas discussões com a Priscila, e conosco, percebi que se confunde com a questão de se considerar o problema no caso nodal e no caso das células centradas, o que gera, como consequência, um não entendimento das células fantasmas.

Acredito que as células fantasmas surgem justamente por que vc está no caso de celulas centradas, o fato de estar neste caso tem como consequencia a celula fantasma. Se estivesse no nó, a condição de contorno também está no nó e, portanto, sua malha considera este ponto, não precisa de vc fazer estratégias matemáticas para considerar as c.c. em seu sistema linear.

Mas como estamos no caso de células centradas, e os estremos da barra ainda estão nos nós, não nos pontos centrados na célula, consequentemente não são pontos da malha. Portanto, pelo esquema numérico, as c.c. não aparecem no sistema linear e, como precisamos da condição de contorno para resolver o problema, utilizamos uma estratégia matemática (células fantasmas) apenas para dar um jeito de inserir as c.c. Como inserir c.c.?

Vc finge que sua célula fantasma é um ponto de malha (o que é mentira por ser apenas uma estratégia matemática e não algo físico do problema, por isso não poderá aparecer este ponto em seu sistema linear, apenas na discretização), chamamos a cel. fantasma de x_0.

A estratégia (por exemplo) é fazer a c.c. igual a média de x_0 e a primeira célula centrada x_1, assim temos uma relação entre a c.c. e a cel. fantasma:

g(A) = (x_0 + x_1)/2      (eq. 1)

isola o x_0:

x_0 = 2*g(A) - x_1         (eq. 2)

quando tiver a discretização e começar a substituir seus índices de 1 até N (da malha, por exemplo), aparecerá o x_0 e ai vc substitui-lo pela expressão (2) acima, e ai não haverá mais uma célula fantasma em seu problema, apenas pontos que são realmente de malha e as c.c., pronto, temos um sistema linear que sabemos resolver já por Gauss Seidel por exemplo, só chegar até esse sistema que foi diferente do EP anterior.

Ai vc aplica o método de Thomas, o que sei que já faz, então, se não converge, o problema, depois de feito o que está escrito acima, não está mais na celula fantasma, pois ela já sumiu, está no proprio programa ou sistema linear.

A convergência tem que ser de ordem 2 e razão 4, visto que sua discretização, para a equação d²u/dx² = f, tem erro de truncamento, ou local, de ordem 2 no espaço.

Desculpe se falei demais, queria ver se ficava claro, se não estiver certo, me corrijam, por favor.

 

                                                                                                                      

 

Em resposta à Carla Reis

Re: EP2 - Poisson com algoritmo de Thomas

por Alexandre Roma -

Carla-

suas colocações foram precisas. Vc entendeu perfeitamente o ponto levantado.

Acrescento algumas observações. É possível falarmos de convergência em vários contextos. O Algoritmo de Thomas é um método direto. Não iterações e para ele não se fala em convergência. Ele resolve o sistema que vc dá, e pronto - se não houvesse erros de artimética de ponto flutuante, ele devolveria a solução exata. No caso do G-S, a coisa é diferente. Há condições que levam sua sequencia de iteradas para a solução e outras que não. Podemos falar de convergência.

No caso da barra, qdo se faz a análise caso após caso, dobrando sempre o número de pontos onde ponho a incógnita, vc gera uma seq. numérica dada pelas razões de erros obtidos em casos com refinamento sucessivos. Como vc tem uma seq. numérica, tem sentido em falar com convergência desta seq. (q no caso deve ir para 4 - se vc usou diferenças centradas para aproximar a condição no contorno).

O Algoritmo de Thomas resolve especificamente um sistema tridiagonal:   a_i*u_{i-1} +b_i*u_i + c_i*u_{i+1} =d_i,   onde i representa no nosso caso os nós interiores (tanto faz se centrais ou nodais).

Comentei na última aula tanto vars. no centro qto o porquê se tem para um método de segunda ordem de precisão a razão dos erros indo a 4.

Atenciosamente

Alexandre