mathnetnumerics Discussions Rss Feedhttp://mathnetnumerics.codeplex.com/Thread/List.aspxmathnetnumerics Discussions Rss DescriptionNew Post: ILU0 using and sparse matrix operationshttp://mathnetnumerics.codeplex.com/discussions/655011<div style="line-height: normal;"><code>MILU0Preconditioner</code> is the only preconditioner optimized for sparse storage and though the only one that will improve performance.<br />
<br />
It implements both the standard and the modified ILU0 algorithm (default is the modified one). Have you tried both? Use the <code>UseModified</code> property or the constructor overload to choose between the two versions.<br />
<br />
What's the status of the iterator after solving the system (check the <code>monitor.Status</code> property)?<br />
<br />
<strong>EDIT</strong>: To have more control over the iteration process, you might want to setup the iterator by yourself:<br />
<pre><code>int iterationsLimit = 500;
double tolerance = 1e-8;
var iterator = new Iterator<double>(
new IterationCountStopCriterion<double>(iterationsLimit),
new ResidualStopCriterion<double>(tolerance),
new DivergenceStopCriterion<double>()
);
var solver = new BiCgStab();
var preconditioner = new MILU0Preconditioner(true);
preconditioner.Initialize(matrix);
solver.Solve(matrix, b, x, iterator, preconditioner);</code></pre>
</div>wo80Fri, 27 May 2016 17:38:01 GMTNew Post: ILU0 using and sparse matrix operations 20160527053801PNew Post: ILU0 using and sparse matrix operationshttp://mathnetnumerics.codeplex.com/discussions/655011<div style="line-height: normal;">Hello. I have some problems with solving system of linear equations. Really I have matrix about 20000*20000. I create Sparse Matrix A, Initialized it and created right hand side - vector B.
<br />
<br />
There is my code:<br />
<pre><code> var solver = new BiCgStab();
var preconditioner = new ILU0Preconditioner();
preconditioner.Initialize(A_sparse);
var X = A_sparse.SolveIterative(BB, solver,monitor, preconditioner).ToArray();
</code></pre>
But it work more than 30 minutes, I have never waited for it finish. When I use MILU0Preconditioner, solver do it very fast (5 -10 seconds) but the result is not that I need. I tryied in Matlab same algorithm and same matrix (I used bicg and LU preconditioner). Without preconditioner bicg in Matlab get similar result. But with LU preconditioner Matlab get very good results, unlike Math Net. I can't understand why, maybe somebody have experience with ILU0 preconditioner in Math Met Numerics<br />
</div>Dmitriy8992Fri, 27 May 2016 13:46:06 GMTNew Post: ILU0 using and sparse matrix operations 20160527014606PNew Post: Inversion c#http://mathnetnumerics.codeplex.com/discussions/647939<div style="line-height: normal;">How to use an inversion using Math.NET Numerics in C#?<br />
</div>cygnusConSun, 22 Nov 2015 21:41:17 GMTNew Post: Inversion c# 20151122094117PNew Post: Question regarding curve fittinghttp://mathnetnumerics.codeplex.com/discussions/640927<div style="line-height: normal;">Hi,
<br />
<br />
Until not very long ago this was indeed the place for questions, but I've started switching to <a href="http://discuss.mathdotnet.com/c/numerics" rel="nofollow">http://discuss.mathdotnet.com/c/numerics</a> instead recently. May I ask you to ask this question there instead?
<br />
<br />
Thanks,
<br />
Christoph<br />
</div>cdrnetSun, 05 Jul 2015 04:24:16 GMTNew Post: Question regarding curve fitting 20150705042416ANew Post: Question regarding curve fittinghttp://mathnetnumerics.codeplex.com/discussions/640927<div style="line-height: normal;">I am not sure whether this discussion list is also for questions regarding how to use the library in practice?
<br />
<br />
If not, where should I ask my question?
<br />
<br />
If so, here is the question. Is it possible and can you give an example on how to find the bezier control points for the smooth curve that passes through a given range of points (x, y coordinates)?
<br />
I need it for a closed and for a non-closed curve.<br />
</div>GHermansFri, 03 Jul 2015 22:57:42 GMTNew Post: Question regarding curve fitting 20150703105742PNew Post: boxcox-tranfsform to make data more normal distribution likehttp://mathnetnumerics.codeplex.com/discussions/640553<div style="line-height: normal;">Hi,
<br />
<br />
This would certainly be a welcome addition, and part of one of the focus areas we'd like to become stronger in. I'm not aware of anyone specifically working on this though, but I can help.
<br />
<br />
Thanks,
<br />
Christoph
<br />
<br />
PS: I'm about to finally replace this codeplex discussion site with <a href="http://discuss.mathdotnet.com/c/numerics" rel="nofollow">http://discuss.mathdotnet.com/c/numerics</a> - maybe we could move this discussion over there?<br />
</div>cdrnetMon, 29 Jun 2015 05:20:47 GMTNew Post: boxcox-tranfsform to make data more normal distribution like 20150629052047ANew Post: boxcox-tranfsform to make data more normal distribution likehttp://mathnetnumerics.codeplex.com/discussions/640553<div style="line-height: normal;">Hello,<br />
<br />
i am working on a statistical project using math.net.numerics. i would like to implement the boxcox-transform (also called power-tranform) to transform data of a specified distribution (e.g exponential) to a more normal-like distribution.<br />
<br />
To find the best transformation paramter "lambda", i would maximize the log-likelihood function. <br />
<br />
To see if its realy normal distributed data after the transform, i would calculate the confidence interval (e.g 95%) and if all the transformed data lies between the interval boundary, it is normal distributed data (at the moment i am using a normplot).<br />
<br />
Is someone working on such a problem? <br />
<br />
I have been using math.net for a while now and thougt maybe it is a functionality that would fit into the project. <br />
<br />
it is my first time i want to support a open source project, so i hope this is the right place and way to start.<br />
</div>m_t_kSun, 28 Jun 2015 13:04:28 GMTNew Post: boxcox-tranfsform to make data more normal distribution like 20150628010428PNew Post: Time Series Compression for Math.NET Numerics using DeltaCodechttp://mathnetnumerics.codeplex.com/discussions/639874<div style="line-height: normal;">I'm about to move this discussion board from Codeplex to <a href="http://discuss.mathdotnet.com/c/numerics" rel="nofollow">http://discuss.mathdotnet.com/c/numerics</a>.
<br />
May I ask to to post this there instead?
<br />
<br />
Thanks,
<br />
Christoph<br />
</div>cdrnetSun, 14 Jun 2015 16:06:38 GMTNew Post: Time Series Compression for Math.NET Numerics using DeltaCodec 20150614040638PNew Post: replacement for interp1 from matlabhttp://mathnetnumerics.codeplex.com/discussions/639780<div style="line-height: normal;">Hi Michael,
<br />
<br />
I'm about to move this discussion board from Codeplex to <a href="http://discuss.mathdotnet.com/c/numerics" rel="nofollow">http://discuss.mathdotnet.com/c/numerics</a>.
<br />
May I ask to to post this there instead?
<br />
<br />
Thanks,
<br />
Christoph<br />
</div>cdrnetSun, 14 Jun 2015 16:06:20 GMTNew Post: replacement for interp1 from matlab 20150614040620PNew Post: Time Series Compression for Math.NET Numerics using DeltaCodechttp://mathnetnumerics.codeplex.com/discussions/639874<div style="line-height: normal;">Hi,
<br />
I just wanted to let users know about a new time series compression library that might be very useful in conjunction with <strong>Math.NET</strong>: <a href="http://deltacodec.codeplex.com" rel="nofollow">DeltaCodec</a>.
<br />
<br />
This allows a developer to directly encode and decode lists or arrays of any intrinsic data type.
<br />
For example,<br />
<pre><code>var codec = DeflateDeltaCodec.Instance;
var bytes = codec.Encode(IList<T> list);
var listOut = codec.Decode<T>(bytes);</code></pre>
Custom codecs or codec methods can be added to handle arbitrarily complex data structures.
<br />
<br />
<strong>Differencing</strong> the time series improves the ratio significantly, and speed can be enhanced by encoding multiple blocks concurrently.
<br />
For example,<br />
<pre><code>var bytes = codec.Encode(list, numBlocks: 4, level: CompressionLevel.Fastest);</code></pre>
The ability to easily create new codecs that combine custom preprocessing transforms with a wide variety of general purpose "finishing" compressors is very powerful.
<br />
<br />
I Hope others will find this useful.
<br />
<br />
bstabile<br />
</div>bstabileFri, 12 Jun 2015 00:00:38 GMTNew Post: Time Series Compression for Math.NET Numerics using DeltaCodec 20150612120038ANew Post: replacement for interp1 from matlabhttp://mathnetnumerics.codeplex.com/discussions/639780<div style="line-height: normal;">Hello all,
<br />
<br />
i hope you can help me, i want to rewrite a matlab code sniplet.
<br />
In this sniplet i use the interp1 method of matlab to interpolate.
<br />
When i use now math.net in c#, i saw the interpolation possibilities,
<br />
but i am unsure how to use them.
<br />
The matlab call would be:
<br />
matric1(:,2)= interp1(matric2(:,1),-matric3(:,3),array,'linear','extrap'); (example)
<br />
and how can i now call this with LinearSpline for example?
<br />
<br />
Best regards,
<br />
Michael<br />
</div>devil69Wed, 10 Jun 2015 14:05:47 GMTNew Post: replacement for interp1 from matlab 20150610020547PNew Post: Error in sampling from Negative Binomialhttp://mathnetnumerics.codeplex.com/discussions/638995<div style="line-height: normal;">I'm using Math.Net to sample values from an overdispersed Poisson distribution. I'm doing this using the negative binomial link, as described here: <a href="https://stat.ethz.ch/pipermail/r-help/2002-June/022425.html" rel="nofollow">https://stat.ethz.ch/pipermail/r-help/2002-June/022425.html</a><br />
<br />
My code currently looks like this:<br />
<br />
<br />
private static double ODPoisson(double lambda, double dispersion)<br />
<pre><code>{
double p = 1 / (dispersion - 1);
double r = lambda * p;
if (dispersion == 1)
{
return Poisson.Sample(lambda);
}
else
{
return NegativeBinomial.Sample(r, p);
}
}
</code></pre>
What I've found is that this works well for low values of lambda. As soon as I try to sample with a lambda of 1000 and a dispersion parameter of 2, the code simply 'hangs', i.e. method keeps running but no value is returned. I've even looped through this method to test various combinations of input parameters (lambda from 1 to 1000, dispersion = 2), and the code 'hangs' at different combinations every time. Sometimes it'll sample for all combinations up to lambda = 750, other times up to lambda = 500. This happens by simply re-running the console app and making no code changes.<br />
<br />
I've included the 'IsValidParameterSet' check before every run, and even though the parameters are considered valid, the sample is still not generated. To further test whether the input parameters are valid, I've tested the same parameters with the NegativeBinomial.CDF method at the 50th percentile, and it returns a value every time.<br />
<br />
Is there an error in the NegativeBinomial.Sample method? If not, how do I fix this problem?<br />
</div>User4422Mon, 01 Jun 2015 09:06:30 GMTNew Post: Error in sampling from Negative Binomial 20150601090630ANew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples?http://mathnetnumerics.codeplex.com/discussions/622048<div style="line-height: normal;">@cuda, Great, I am checking that out, thanks<br />
</div>amiranonWed, 22 Apr 2015 06:11:43 GMTNew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples? 20150422061143ANew Post: UserEvd(Complex32 3x3) gives wrong eigenvectors?http://mathnetnumerics.codeplex.com/discussions/263117<div style="line-height: normal;">Hi guys,
<br />
<br />
I have stumbled into similar problem described in this discussion about eigenvectors mismatch between mathnet and matlab.
<br />
<br />
Has there been any update on this?
<br />
<br />
regards.<br />
</div>deepakdnathTue, 21 Apr 2015 09:26:12 GMTNew Post: UserEvd(Complex32 3x3) gives wrong eigenvectors? 20150421092612ANew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples?http://mathnetnumerics.codeplex.com/discussions/622048<div style="line-height: normal;">doh, there was a problem with my test. The accuracy isn't that bad. <br />
first take is at: <a href="https://github.com/cuda/mathnet-numerics/tree/moving_stats" rel="nofollow">https://github.com/cuda/mathnet-numerics/tree/moving_stats</a> . see the MovingStatistics class<br />
supports: mean, variance, min, and max. need to add skewness and kurtosis<br />
<br />
Lets move the discussion to github.<br />
</div>cudaMon, 20 Apr 2015 10:13:56 GMTNew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples? 20150420101356ANew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples?http://mathnetnumerics.codeplex.com/discussions/622048<div style="line-height: normal;">@amiranon, what I was suggesting was not the "Naïve algorithm," but "Computing shifted data" for each window. I'll push my poping/pushing branch to github tomorrow. It started to lose accuracy after the third update. But again, I don't think this is the way to go. Skewness and kurtosis are going to be even a bigger problem.<br />
</div>cudaMon, 20 Apr 2015 08:34:47 GMTNew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples? 20150420083447ANew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples?http://mathnetnumerics.codeplex.com/discussions/622048<div style="line-height: normal;">@cuda, thanks for your reply. according to this page - <a href="http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Na.C3.AFve_algorithm" rel="nofollow">http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Na.C3.AFve_algorithm</a> re-calculating is called the "Naïve algorithm".
<br />
<br />
and this method - <a href="http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Computing_shifted_data" rel="nofollow">http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Computing_shifted_data</a> should be pretty accurate.
<br />
<br />
the difference between this approach (Computing shifted data) and regular calculation of std. dev (Naïve algorithm) results should be around 0.000000000001.
<br />
<br />
the only thing need to be added to the library is the Pop() method (or Remove()) so we could use it like a queue for calculating the desired window<br />
</div>amiranonMon, 20 Apr 2015 08:13:42 GMTNew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples? 20150420081342ANew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples?http://mathnetnumerics.codeplex.com/discussions/622048<div style="line-height: normal;">There is a similar request up on GitHub - <a href="https://github.com/mathnet/mathnet-numerics/issues/264" rel="nofollow">https://github.com/mathnet/mathnet-numerics/issues/264</a> .
<br />
I tinkered around with this a bit and found that the std dev got inaccurate pretty quickly doing something similar to the links above (of course I could have screwed things up). My opinion is that we re-compute the statistics over each window. It will be slower, but more accurate. There is overlap with MathNet.Filtering and the question is how do we handle that. Perhaps we should move the discussion over to GitHub, and we can decided on the best approach. <br />
</div>cudaMon, 20 Apr 2015 05:46:20 GMTNew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples? 20150420054620ANew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples?http://mathnetnumerics.codeplex.com/discussions/622048<div style="line-height: normal;">@bdodson thanks for your reply, it is actually expensive if running this for each user, and window of 5 was just an example, it may be a window of 100.
<br />
<br />
moving standard deviation / rolling standard deviation / sliding window is well known term. I wish Math.Net will include this method in the library, also with tests so I won't need to implement on my own and leave it to the pros.
<br />
<br />
ref:
<br />
<a href="http://matlabtricks.com/post-20/calculate-standard-deviation-case-of-sliding-window" rel="nofollow">http://matlabtricks.com/post-20/calculate-standard-deviation-case-of-sliding-window</a>
<br />
<br />
<a href="http://jonisalonen.com/2014/efficient-and-accurate-rolling-standard-deviation/" rel="nofollow">http://jonisalonen.com/2014/efficient-and-accurate-rolling-standard-deviation/</a><br />
</div>amiranonSun, 19 Apr 2015 11:04:03 GMTNew Post: RunningStatistics: Is there a way to track only a window of the last 5 samples? 20150419110403ANew Post: Numerics FFT result interpretationhttp://mathnetnumerics.codeplex.com/discussions/631552<div style="line-height: normal;">You actually have two peaks of the same magnitude, one at index 100 and one at index 900, hence 200 Hz (100 * 2 Hz).
<br />
<br />
This is expected since for real-valued signals the FT will be real-even and imagniary-odd, so there is a symmetry between positive and negative frequencies. Indeed, you'll be only interested in the positive frequencies at indices 0-500, which represent the frequencies 0-1 kHz in steps of 2 Hz (fs/N) - which is all you can represent with a 2 kHz sampling rate.
<br />
<br />
Be aware that you need to look at the magnitude of the frequency space values, not only their real value. In fact your input sample signal is odd, so the frequency space is imaginary only (the real values are all zero).<br />
</div>cdrnetSun, 19 Apr 2015 06:20:43 GMTNew Post: Numerics FFT result interpretation 20150419062043A