This question is getting pretty deep into numerical analysis theory. The usual 
approach has already been mentioned... don't expect high accuracy in all 
problems. Your  specific problem could have a special technique somewhere, but 
don't be surprised if we are not experts in your specific problem as such 
tricks are not R-specific.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnew...@dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.

On February 18, 2015 1:13:39 PM PST, C W <tmrs...@gmail.com> wrote:
>Thanks Thierry for the pointer, that's explains the problem.
>
>Is there anything I can do about the matrix instability or numerical
>inaccuracy?
>
>Mike
>
>On Wed, Feb 18, 2015 at 11:57 AM, Thierry Onkelinx
><thierry.onkel...@inbo.be
>> wrote:
>
>> Have a look at FAQ 7.31
>>
>> ir. Thierry Onkelinx
>> Instituut voor natuur- en bosonderzoek / Research Institute for
>Nature and
>> Forest
>> team Biometrie & Kwaliteitszorg / team Biometrics & Quality Assurance
>> Kliniekstraat 25
>> 1070 Anderlecht
>> Belgium
>>
>> To call in the statistician after the experiment is done may be no
>more
>> than asking him to perform a post-mortem examination: he may be able
>to say
>> what the experiment died of. ~ Sir Ronald Aylmer Fisher
>> The plural of anecdote is not data. ~ Roger Brinner
>> The combination of some data and an aching desire for an answer does
>not
>> ensure that a reasonable answer can be extracted from a given body of
>data.
>> ~ John Tukey
>>
>> 2015-02-18 17:44 GMT+01:00 C W <tmrs...@gmail.com>:
>>
>>> Hi Ben and JS,
>>>
>>> Thanks for the reply.
>>>
>>> I tried using: hessian(func = h_x, x, method = "complex"), it gives
>zero,
>>> that's good.
>>>
>>> # R code
>>>
>>> > hess.h <- hessian(func = h_x, x, method = "complex")
>>>
>>> > mat <- h_x(x)*hess.h - grad(h_x, x) %o% grad(h_x, x)
>>>
>>> > mat
>>>
>>>         [,1]    [,2]     [,3]    [,4]
>>>
>>> [1,] 2060602       0        0       0
>>>
>>> [2,]       0 2060602        0       0
>>>
>>> [3,]       0       0 -4039596 -816080
>>>
>>> [4,]       0       0  -816080 4039596
>>>
>>>
>>> But later I do,
>>>
>>> > eigen(mat)
>>>
>>> $values
>>>
>>> [1] -4121204  4121204  2060602  2060602
>>>
>>> $vectors
>>>
>>>             [,1]        [,2] [,3] [,4]
>>>
>>> [1,]  0.00000000  0.00000000    1    0
>>>
>>> [2,]  0.00000000  0.00000000    0    1
>>>
>>> [3,] -0.99503719  0.09950372    0    0
>>>
>>> [4,] -0.09950372 -0.99503719    0    0
>>>
>>>
>>> And here is the problem,
>>>
>>> > eigen(mat)$values[2] == 4121204
>>>
>>> [1] FALSE
>>>
>>> > eigen(mat)$values[2] - 4121204
>>>
>>> [1] -5.494803e-08
>>>
>>> Why doesn't the second value equal to 412104?  How do I overcome
>that?
>>>
>>> Thanks,
>>>
>>> Mike
>>>
>>> On Wed, Feb 18, 2015 at 9:13 AM, JS Huang <js.hu...@protective.com>
>>> wrote:
>>>
>>> > Hi,
>>> >
>>> >   Since all entries in your hessian matrix and grad vector are
>>> integers, I
>>> > suggest you execute the following for mat assignment.
>>> >
>>> > > mat <- round(h_x(x),digits=0)*round(hess.h,digits=0) -
>round(grad(h_x,
>>> > > x),digits=0) %o% round(grad(h_x, x),digits=0)
>>> > > mat
>>> >          [,1]     [,2]     [,3]     [,4]
>>> > [1,]        0        0        0 -4080400
>>> > [2,]        0  7920000        0 -1600000
>>> > [3,]        0        0 12160400        0
>>> > [4,] -4080400 -1600000        0 -7920000
>>> >
>>> >
>>> >
>>> > --
>>> > View this message in context:
>>> >
>>>
>http://r.789695.n4.nabble.com/Numerical-stability-of-eigenvalue-and-hessian-matrix-in-R-tp4703443p4703456.html
>>> > Sent from the R help mailing list archive at Nabble.com.
>>> >
>>> > ______________________________________________
>>> > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> > https://stat.ethz.ch/mailman/listinfo/r-help
>>> > PLEASE do read the posting guide
>>> > http://www.R-project.org/posting-guide.html
>>> > and provide commented, minimal, self-contained, reproducible code.
>>> >
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>>
>
>       [[alternative HTML version deleted]]
>
>______________________________________________
>R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide
>http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to