Eu estou querendo saber se o algoritmo Thomas é a maneira mais rápida (provàvelmente?) De resolver um sistema tridiagonal esparso com dominação diagonal simétrica em termos de complexidade algorítmica (sem procurar pacotes de implementação como LAPACK etc.). Eu sei que o algoritmo Thomas e o multigrid são de complexidade , mas talvez o fator constante para o multigrid seja menor? Não me parece que o multigrid possa ser mais rápido, mas não sou positivo.
Nota: Estou considerando o caso em que as matrizes são muito grandes. Métodos diretos ou iterativos são aceitáveis.
A resposta curta é que o algoritmo Thomas será mais rápido do que qualquer esquema iterativo para quase todos os casos. A exceção talvez seja a aplicação de uma única iteração de um esquema iterativo muito simples, como Gauss-Seidel, mas é altamente improvável que isso dê uma solução aceitável. Além disso, isso está ignorando as preocupações de processamento paralelo.
fonte
Os loops multigrid mesmo no núcleo único são vetorizáveis pelo otimizador. Portanto, embora a contagem de operações possa ajudar, não devemos esquecer que, mesmo no mundo serial, os processadores possuem paralelismo de vetores e, portanto, o tempo de solução pode não ser exatamente o que previmos na análise de custos.
fonte