Re: Problems with NSolve
- To: mathgroup at smc.vnet.net
- Subject: [mg88214] Re: Problems with NSolve
- From: "Kshitij Wagh" <kgwagh at gmail.com>
- Date: Mon, 28 Apr 2008 04:41:01 -0400 (EDT)
- References: <fuumfl$8dr$1@smc.vnet.net> <48131E36.1090106@gmail.com>
Hi Sorry for the "fuzziness" :) chpoly was found by using Det[A - x*IdentityMatrix[dim]] (where A is a matrix function of u with \alpha etc. being some random parameters). \Alpha etc are random real numbers between -1 and 1 with working precision 30. Also please find attached a notebook of a working sample. [contact the sender to get this attachment - moderator] So I think the problem seems here, that instead of getting polynomials, I am getting rational functions. The thread Carl sent mentions some alternatives - I will try them out. Thanks, Kshitij On Sat, Apr 26, 2008 at 8:21 AM, Jean-Marc Gulliet < jeanmarc.gulliet at gmail.com> wrote: > kgwagh at gmail.com wrote: > >> Hi all >> >> I am trying to find the number of eigenvalue crossings for a matrix as >> a function of the parameter 'u', on which the elements of the >> (symmetric) matrix depend on linearly. The matrix elements also >> involve randomly chosen constants. The plan is to find the >> distribution of the crossings of these type of matrices as I scan over >> the random numbers. >> >> So far I have been using the following : >> >> NSolve[{chpoly[u, dim, \[Alpha], \[Gamma], \[Epsilon], x] == 0, >> D[chpoly[u, dim, \[Alpha], \[Gamma], \[Epsilon], x], x] == 0}, {x, >> u}, WorkingPrecision -> prec] >> >> where chpoly is the characteristic polynomial of the matrix (with the >> eigenvalue variable being x) and \alpha, \gamma and \epsilon are >> constant parameter arrays of random numbers. For a double (or higher) >> degeneracy of the eigenvalues both the characteristic equation and its >> derivative should be zero. This approach has worked successfully only >> upto 12*12 matrices (where one such computation takes 40 secs on my >> laptop). For 13*13 my laptop takes 4000 sec. This seems to be somewhat >> surprising, because these polynomials are of the order 'n' (where n >> is dimension of the matrix) in both u and x - and n=13 does not sound >> very computationally unreasonable. So I was wondering if there was a >> faster approach I could take. >> >> Also, the problem essentially entails me to know the number (not the >> values) of the real solutions to this system of polynomials. >> CountRoots seemed ideal but it does not work for more than one >> equation. So is there any alternative along this route? >> >> Any other alternatives are also welcome. >> Thanks, >> Kshitij. >> >> > Could you post, please, a *fully working* example of what you are doing? It > is really hard to optimize fuzzy functions (fuzzy not as in fuzzy logic but > as in fuzzy definitions or concepts :-) > > Regards, > -- Jean-Marc > >
- Follow-Ups:
- Re: Re: Problems with NSolve
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: Re: Problems with NSolve