필터 지우기
필터 지우기

Calculating model error

조회 수: 4 (최근 30일)
Sam Falzone
Sam Falzone 2011년 4월 8일
답변: John D'Errico 2020년 10월 6일
I am trying to calculate model error by calculating the model covariance matrix.
My data consists of a time series measurement, and I am fitting the data to a multi-exponential decay function:
Sum(Mi*exp(-t/Ai)), where A is a predetermined range of values.
The way I have been trying to go about this is by calculating the matrix, G:
for i=1:length(A) for j=1:length(t) G(j,i) = exp(-t(j)/A(i)); end end
Then I calculate the with the variance of the data, dvar:
CovM = dvar^2*inv(G'*G);
Matlab doesn't like me using inv here, it tells me to use:
CovM = dvar^2/(G'*G);
What I get is a CovM that is very singular, and has a very small correlation coefficient.
What am I doing wrong here. I am pretty sure my data is not the issue, as device I used is brand new.
  댓글 수: 1
Andrew Newell
Andrew Newell 2011년 4월 10일
One way you can get singularity is by having too many terms in your fit. Try using just one or two first, and then add more terms.

댓글을 달려면 로그인하십시오.

답변 (1개)

John D'Errico
John D'Errico 2020년 10월 6일
Even though you may THINK your data is good, the problem surely lies in your model. That it is a new device is not even relevant here. Sums of exponential models are notoriously poorly conditioned when you have too many terms. Worse, if you choose poor starting values for the parameters, you will again have issues with the model, again resulting in a singular matrix.

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by