Path: news.mathworks.com!not-for-mail
From: "Hua Wang" <ehwang@163.com>
Newsgroups: comp.soft-sys.matlab
Subject: Re: how to deal with the inversion problem of a huge sparse covariance matrix
Date: Sun, 27 Sep 2009 16:50:18 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 23
Message-ID: <h9o54a$pnq$1@fred.mathworks.com>
References: <h9llp6$mho$1@fred.mathworks.com>
Reply-To: "Hua Wang" <ehwang@163.com>
NNTP-Posting-Host: webapp-05-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1254070218 26362 172.30.248.35 (27 Sep 2009 16:50:18 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Sun, 27 Sep 2009 16:50:18 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 2007239
Xref: news.mathworks.com comp.soft-sys.matlab:573227



Thank you all so much for the prompt reply!!!

For Rune Allnor & Bruno Luong,

I am dealing with a huge dataset from satellite radar images. I will combine the data from a couple of images. In each image, the data are correlated in spatial domain with a wavelength of about 20 km. That's to see, there should be a full covariance matrix for each 20km, and they are zeros for the covariance of the pixels far away from 20 km. The pixels are uncorrelated in different images, so that the covariance is also zero. In my study, each image covers about 800 km by 100 km. That's why there is a huge sparse matrix.

It is also not as easy as copy covariance of the pixels for every 20 km by 20 km. You know the covaraiance of pixel x,y can be expressed as C(x,y)=sigma(x)*sigma(y)*corr_coef(x,y). In my case, if the distances for any two pixels are the same, the correlation coefficients are the same. But the variance of each pixel is different. Therefore, covariance is different for each 20km by 20 km patch.

I am not sure whether it is clear enough for the explanation of the covariance matrix. Sorry that my english is not good enough.

For Tim Davis & Brian Borchers,

I am using matlab R2007a. When I use backslash for A\b, it is very slow and almost impossible for my data. Is it possible for do 
F=factorize(C);
x=(A'*(F\A))\(A'*(F\b)) ; 

By the way, I can not find fractorize function with my matlab. I think the signal processing toolbox was not installed by the computer administrator. But I can use qr function. Could you give me more suggestions? It is better if you could tell me some functions about solve the system function: A*x=b, with giving sparse covariance matrix C?

Thank you all again!!

Cheers,
Hua