-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fitting cross-correlators #11
Comments
If I may... Printing your array([[[2.12(15), 0.98(10)],
[0.98(10), 0.41(15)]],
...
[[1.03003166971607895696649848105153(21),
0.51501583485803947848324924052577(21)],
[0.51501583485803947848324924052577(21),
0.25750791742901973924162462026288(21)]]], dtype=object) The reason is that |
I changed
so that ymod doesn't get so absurdly small:
. But the issue nevertheless persists. It's past CET bed time, but I hope we can discuss further! |
I think the problem is that the covariance matrix for
It complains that the covariance matrix isn't positive definite:
This is true even with the different values for Once you solve that problem you may need to come up with some sort of reasonable starting point I am traveling through the end of next week and so you won't be hearing from me again until then. |
As I indicated in my previous note, the covariance matrix for To make sure
With these modifications I get the following fit with no error messages along the way:
The covariance matrix for your data doesn't look very realistic to me. If you want to play with matrix fits you might use the data that comes with the |
I am doing housecleaning and am closing this thread because I believe the problem is solved by modifications to your code (see above). |
I would like a fit a 2x2 cross-correlation matrix of data given by e.g.
where
tau = a*(0, 1, ... nt-1)
,n
in principle is an infinite sumz^{(n)}_i
are overlap factors labeled by the state in the sum and the operator labeli,j
which take (in this example) 2 values. Because i and j run over the same set of operators,C
is a Hermitian matrix at every tau. The parameters to fit are thez
s anddE
s.(Of course, I'd also like to allow for complex z, but that's perhaps a question for a different time / repo. I can split the real and imaginary parts of my data for
C
into another matrix dimension, and writez=zr+zi*1j
and work out the real and imaginary parts of the above spectral decomposition by hand. But this is an unneeded complication, and in fact also encounters the issue described below.)I would like to treat my data as error-free and to use marginalization. In the script below I make up synthetic data for values of dE and z and try to marginalize in order to fit.
However, calling
lsqfit.nonlinear_fit
(on lines 76-77) fails in lsqfit internals.This is (in some sense) a simultaneous with the same parameters to different data, which is supported in a more brute-force way. Is this sort of fitting supported? Is there something simple I can do to avoid this issue?
Does the problem arise from having
z
)?The text was updated successfully, but these errors were encountered: