Re: [ojAlgo-user] BigDecimal EVD?
Mathematics, linear algebra and optimisation
Brought to you by:
apete
From: Jacob M. <Jac...@cs...> - 2007-01-29 17:04:09
|
Actually, the problem isn't that the numbers are too large or too small. Rather, it is that gaps between the numbers aren't small enough. Specifically, I don't get enough decimal places represented when using doubles. Thanks anyway for trying to help. Jake On Monday 29 January 2007 16:59, Anders Peterson wrote: > I'm no expert in this area, but if the problem is that the matrix > generally has too large or too small elements (resulting in bad > numerical behaviour) it seems to me it should be fixable by using > equation 10, 11 and/or 12 on this page. > > http://mathworld.wolfram.com/Eigenvalue.html > > /Anders > > Jacob Martin wrote: > >>> Can't you just scale the matrix before you calculate the eigenvalues? > > > > Hmm. I'm not sure the best way to scale it? Won't this remove the > > accuracy I was looking for? > > > >>> I've never seen a BigDecimal eigenvalue or singular value > >>> decomposition algorithm. They require rather heavy calculations and > >>> using BigDecimal instead of double is MUCH slower. > >>> > >>> > >>> > >>> > >>> In the future ojAlgo may get code that works with any kind of > >>> numbers (like ArbitraryLU and ArbitraryQR) but this is currently > >>> not high priority - don't hold your breath. > >>> > >>> /Anders > >>> > >>> jac...@gm... wrote: > >>>> Hi Anders, > >>>> > >>>> I guess I'm just looking for a quick fix right now. I may get > >>>> the urge to implement it later when I have more time though, so > >>>> thanks for the information. > >>>> > >>>> I'm working with around 1000x1000 matrices. They could be > >>>> bigger. I have the time to wait for the right answer. LAPACK and > >>>> MTJ and others (Jama, JMSL, etc) are quick, but don't give me > >>>> satistfactory answers with very large numbers for some reason. > >>>> Maybe there is some tolerance or epsilon parameter somewhere that > >>>> will help the convergence (if I only knew where to look). > >>>> > >>>> Anyway, I haven't found a BigDecimal eigenvalue solver > >>>> implementation out there yet. Maybe they don't exist? > >>>> > >>>> Well, thanks for your kindness. It looks like you have the best > >>>> start towards this functionality in Java. > >>>> > >>>> Kind regards, > >>>> Jake > >>>> > >>>> On Saturday 27 January 2007 20:45, Anders Peterson wrote: > >>>>> As you've noticed ojAlgo does not contain a BigDecimal > >>>>> implementation > >>>>> of Eigenvalue or SingularValue. You'll have to build it yourself... > >>>>> > >>>>> If you look at PrimitiveEigenvalue you'll "see" the algorithm, and > >>>>> then study ArbitraryQR and ArbitraryLU for examples on how to use > >>>>> PhysicalStore to develop an implementation that works with any > >>>>> Number > >>>>> type. I've been planning to move (some of) the Householder code from > >>>>> ArbitraryQR to PhysicalStore or some utility class. That would > >>>>> probably be useful for you. > >>>>> > >>>>> What size matrices are you working with? If they are large a > >>>>> BigDecimal implementation will be very slow. > >>>>> > >>>>> /Anders > >>>>> > >>>>> On 27 jan 2007, at 19.11, jac...@gm... wrote: > >>>>>> Hi, > >>>>>> > >>>>>> I'm trying to figure out how/if I can do a BigDecimal EVD with > >>>>>> ojAlgo. I > >>>>>> would like all operations to be done with BigDecimal, so I can > >>>>>> avoid rounding > >>>>>> errors. > >>>>>> > >>>>>> Do all of the classes that implement the Eigenvalue interface round > >>>>>> down to > >>>>>> doubles? > >>>>>> > >>>>>> If so, is my only choice the BigQR, and then read off diagonal > >>>>>> of R? > >>>>>> > >>>>>> Many thanks for any help! > >>>>>> > >>>>>> Jacob Martin > >>>>>> ------------------------------------------------- > >>>>>> BasicMatrix tmpMatrix = BigMatrix.FACTORY.make(M); > >>>>>> Eigenvalue tmpDecomposition = new PrimitiveEigenvalue(); > >>>>>> tmpDecomposition.compute(tmpMatrix); > >>>>>> BasicArray ba =tmpDecomposition.getEigenvalues(); > >>>>>> > >>>>>> > >>>>>> ------------------------------------------------------------------- > >>>>>> --- > >>>>>> --- > >>>>>> Take Surveys. Earn Cash. Influence the Future of IT > >>>>>> Join SourceForge.net's Techsay panel and you'll get the chance to > >>>>>> share your > >>>>>> opinions on IT & business topics through brief surveys - and > >>>>>> earn cash > >>>>>> http://www.techsay.com/default.php? > >>>>>> page=join.php&p=sourceforge&CID=DEVDEV > >>>>>> _______________________________________________ > >>>>>> ojAlgo-user mailing list > >>>>>> ojA...@li... > >>>>>> https://lists.sourceforge.net/lists/listinfo/ojalgo-user > >>>> > >>>> --------------------------------------------------------------------- > >>>> ---- > >>>> Take Surveys. Earn Cash. Influence the Future of IT > >>>> Join SourceForge.net's Techsay panel and you'll get the chance to > >>>> share your > >>>> opinions on IT & business topics through brief surveys - and earn > >>>> cash > >>>> http://www.techsay.com/default.php? > >>>> page=join.php&p=sourceforge&CID=DEVDEV > >>>> _______________________________________________ > >>>> ojAlgo-user mailing list > >>>> ojA...@li... > >>>> https://lists.sourceforge.net/lists/listinfo/ojalgo-user > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share > > your opinions on IT & business topics through brief surveys - and earn > > cash > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > > ojAlgo-user mailing list > > ojA...@li... > > https://lists.sourceforge.net/lists/listinfo/ojalgo-user |