grade uniforme vs. não uniforme

16

Provavelmente é uma questão de nível de estudante, mas não posso fazer isso exatamente para mim. Por que é mais preciso usar grades não uniformes nos métodos numéricos? Estou pensando no contexto de algum método de diferenças finitas para o PDE da forma . E suponha que eu esteja interessado em uma solução no ponto x . Portanto, posso ver que, se eu aproximar a segunda derivada, por exemplo, em uma grade uniforme usando aproximação de três pontos, o erro será de segunda ordem O ( h 2 )vocêt(x,t)=vocêxx(x,t)xO(h2). Então, eu posso construir uma grade não uniforme através de um mapeamento e encontrar coeficientes para os três pontos que são usados ​​para aproximar a derivada. Eu posso fazer as expansões de Taylor e obter novamente um limite para a derivada ser de segunda ordem , em que h é a distância em uma grade uniforme da qual obtive mapeamento para uma grade não uniforme. Ambas as estimativas contêm derivadas e não está claro para mim por que a solução seria mais precisa em uma grade não uniforme, pois depende da magnitude dos derivados correspondentes nas estimativas de erro? O(h2)h

Kamil
fonte

Respostas:

19

A justificativa para malhas não uniformes é a seguinte (todas as equações entendidas como qualitativas, isto é, geralmente verdadeiras, mas sem a pretensão de serem prováveis ​​em todas as circunstâncias e para todas as equações ou todas as discretizações possíveis):

Ao resolver uma equação com, digamos, linear elementos finitos, então você normalmente tem uma estimativa de erro do tipo ou , de forma equivalente, mas de uma forma mais adequada para o seguinte: u - u h 2 L 2 ( Ω )C h 4 max

__você-vocêh__eu2(Ω)Chmax2__2você__eu2(Ω),
No entanto, isso é uma superestimação. Na verdade, pode-se em muitos casos, mostram que o erro é, na verdade, de forma u - u h 2 L 2 ( Ω )C Σ K T h 4 K2 u 2 L 2 ( K ) . Aqui, K são as células da triangulação T
__você-vocêh__eu2(Ω)2Chmax4__2você__eu2(Ω)2.
__você-vocêh__eu2(Ω)2CKThK4__2você__eu2(K)2.
KT. Isso mostra que, para reduzir o erro, não é realmente necessário reduzir o tamanho máximo da malha . Em vez disso, a estratégia mais eficiente será para equilibrar a contribuições de erro cellwise h 4 K2 u 2 L 2 ( K ) - em outras palavras, você deve escolher h K α 2 u - 1 / 2 L 2 ( K ) . Em outras palavras, o tamanho da malha local hhmaxhK4__2você__eu2(K)2
hK__2você__eu2(K)-1 1/2.
deve ser pequeno onde a solução é áspera (tem grandes derivadas) e grande onde a solução é suave, e a fórmula acima fornece uma medida quantitativa para esse relacionamento.hK
Wolfgang Bangerth
fonte
11
Eu acrescentaria que a anisotropia é representada de maneira mais eficiente com um espaço anisotrópico ansatz (isto é, uma malha anisotrópica). Como a anisotropia pode não estar alinhada com alguma malha grossa inicial, um algoritmo de AMR isotrópico pode ser muito ineficiente. A anisotropia causa alguns problemas extras, porque muitos métodos não são uniformemente estáveis ​​em relação à proporção.
precisa
6

Prove para você mesmo com este exemplo. Qual é o erro máximo ao interpolar o sqrt (x) no intervalo [0,1] com interpolação linear por partes em uma malha uniforme?

Qual é o erro máximo ao interpolar em uma malha na qual o i-ésimo de n pontos é dado por (i / n) ^ s, e s é um parâmetro de classificação de malha cuidadosamente escolhido?

Rob Schreiber
fonte
hEuhEu
4

vocêt(x,t)=vocêxx(x,t)vocêt(x,t)=(D(x)vocêx(x,t))xD(x)D(x)

você(x,0 0)

Thomas Klimpel
fonte
você poderia especificar, quais são as outras técnicas que você usaria para ter uma "visão" mais detalhada das regiões de descontinuidades nos dados iniciais, por exemplo?
Kamil
@ Kamil Eu tenho duas coisas em mente aqui. A primeira coisa é calcular a projeção dos dados iniciais na "representação usada na grade" com precisão suficiente. (Isso geralmente inclui coisas como superamostragem ou cálculos analíticos simples em descontinuidades de salto.) Sei que esse é apenas um estilo bom e simples demais para mencioná-lo, mas, na minha experiência, geralmente é tudo o que é necessário para corrigir os problemas causados ​​por singularidades em os dados de entrada.
Thomas Klimpel
A outra coisa que estou pensando é modelar parte dos dados de entrada como condições de contorno. No entanto, a economia resultante disso geralmente é menor que o fator dois e as condições de contorno são notoriamente difíceis de acertar, pelo menos na minha experiência. Então, eu diria que isso geralmente não vale a pena o esforço para fazê-lo perfeitamente (ou apenas o esforço se a extensão correspondente do problema nessa direção for realmente pequena, ou se você realmente quiser alta precisão), e apenas selecionar aproximadamente a correta condição de contorno e colocar o limite suficientemente longe, geralmente funciona bem o suficiente.
Thomas Klimpel
4

Kamil, a resolução de equações diferenciais é global, a interpolação é local. Na interpolação polinomial por partes, a precisão longe da singularidade não será incomodada pela singularidade. Infelizmente, isso não é de todo válido para resolver uma equação elíptica, como um problema de valor de limite de dois pontos. A singularidade poluirá a aproximação globalmente.

Aqui está algo para tentar. Resolva D (sqrt (x) Du) em [0,1] com Dirichlet homogêneo bcs D é o operador de diferenciação. Use elementos finitos ou diferenças finitas em uma malha uniforme de n pontos. Compare com uma malha na qual o i-ésimo ponto é (1 / n) ^ 1,5. Observe que o pior erro para a malha uniforme está longe de ser singular e muito maior que para a malha graduada.

Rob Schreiber
fonte