Como aproximar o número da condição de uma matriz grande?

9

Como aproximar o número de condição de uma matriz grande G , se G é uma combinação de transformadas de Fourier (não uniforme ou uniforme), diferenças finitas e matrizes diagonais ?FRS

As matrizes são muito grandes e não são armazenadas na memória e estão disponíveis apenas como funções.

Em particular, tenho a seguinte matriz:

Gμ=SHFHFS+μRHR

Quero investigar a relação entre e o número da condição .μk(Gμ)

Presumo que seja necessário algum tipo de abordagem iterativa? Idealmente, haveria algum código MATLAB disponível.

Stiefel
fonte
11
Que tal tentar com a definição do número da condição e usar a desigualdade e a submultiplicatividade do triângulo? Eu acho que você deve poder dizer algo sobre normas / condições de cada uma de suas matrizes. Dessa forma, você obtém uma estimativa do número da condição de . Gμ
Anke #

Respostas:

11

O MATLAB possui algumas funções "exatas" para isso conde rcond, com o último retornando um recíproco do número da condição. A função aproximada do Matlab condesté descrita mais detalhadamente abaixo.

Frequentemente, as estimativas do número da condição são geradas como subprodutos da solução de um sistema linear para a matriz; portanto, você pode pegar as estimativas do número da condição em outro trabalho que precisa fazer de qualquer maneira. Veja aqui uma breve descrição de como as estimativas são calculadas. Também documentação Sandia Labs AztecOO observações (ver Sec. 3.1) que as estimativas número de condição opcionais estão disponíveis a partir solucionadores iterativos (usando o gerado tridiagonal Lanczos matriz com Conjugado gradientes ou a matriz Hessenburg gerado com Reiniciado GMRES).

Como suas matrizes são "muito grandes" e "disponíveis apenas como funções", a abordagem lógica seria um método que faça o "piggyback" de um solucionador ou variante de gradiente conjugado.

Um artigo recente da arXiv.org As aproximações de autovalores extremas não estacionários em soluções iterativas de sistemas lineares e estimadores para erro relativo propõe essa abordagem e tem algumas citações na literatura anterior.

Agora que estou olhando, este fórum tem várias perguntas anteriores estreitamente relacionadas (nem todas com respostas, mas verifique os comentários):

Estimar valores próprios extremos com CG

Estimativa de números de condição para matrizes muito grandes

Algoritmo mais rápido para calcular o número de condição de uma matriz grande no Matlab / Octave


condest__UMA__1 1__UMA-1 1__1 1__UMA__1 1__UMA-1 1__1 1

Como sua matriz é aparentemente hermitiana e definida positivamente, talvez o número de condição com 2 normas seja de maior interesse. O problema então equivale a estimar a razão do maior para o menor autovalor (absoluto). O desafio é um tanto paralelo ao caso da norma 1, em que geralmente uma boa estimativa para o maior autovalor pode ser facilmente obtida, mas estimar o menor autovalor é mais difícil.

Embora vise casos não-SPD (e até não-quadrados), este artigo recente do arXiv.org, Estimativa de número de condição iterativa confiável , fornece uma boa visão geral do menor problema de estimativa de autovalores e uma linha de ataque promissora por um subespaço de Krylov (LSQR) que equivale a Conjugate Gradients no caso SPD.

hardmath
fonte
Obrigado pela sua resposta. Como obtenho o número da condição como produto secundário de um solucionador de gradiente conjugado?
Stiefel
@ Stiefel: Existe um artigo de 1992 sobre o cálculo aproximado de valores próprios extremos e o número de condição de matrizes não singulares de Lei Guang-yao. Deixe-me ver se consigo encontrar uma referência melhor (não atrás de um muro de pagamento).
precisa saber é o seguinte
@ Stiefel: Adicionado alguns links. Você também pode estar interessado em conferir no Google Livros (ou em uma biblioteca) os Métodos de Solução Iterativa de Owe Axelsson (1996), esp. Indivíduo. 13 A taxa de convergência do método do gradiente conjugado , embora a ênfase esteja em obter melhores estimativas do número de iterações necessárias para a convergência do que apenas o número da condição fornece.
hardmath
11
@Stiefel Com um nome como o seu você deve estar ensinando-nos sobre o método CG :) Veja en.wikipedia.org/wiki/Eduard_Stiefel
stali