[Scilab-users] eigs calculation

Serge Steer Serge.Steer at inria.fr
Thu Jun 18 10:08:02 CEST 2015


Le 17/06/2015 22:18, Carrico, Paul a écrit :
> Dear All
>
> Thanks for the answers.
>
> To give more information's on what I'm doing (That's quite new I confess), I'm performing  a (basic) finite element calculation with beams using sparse matrix (stiffness matrix K and mass matrix M).
> [u,v] = eigs(K((ddl_elem+1):$,(ddl_elem+1):$),M((ddl_elem+1):$,(ddl_elem+1):$),n,"SM");
>
> Nota: ddl means dof
>
> I'm calculated first the natural frequencies using (K - omega^2.M).x=0 ... the pulse (or circular frequencies)  are no more and no less than the eigenvalues of the above system (u = omega^2).
>
> Just a "mechanical" remark: since the beam is clamped in one side (and free on the tip),  it is absolutely normal that you find twice the same natural frequency (1rst mode in one direction, the second one in a new direction at 90°) .... I've been really surprised to find it, but happy at the same time ...
>
> The origin of my question was: since it obvious that the results are strongly sensitive to the "units" (i.e. the numbers), I'm wondering if there is a way to control the accuracy of the eigenvalues calculation using eigs keywords ... 
There is no way to improve accurary with an option. In general the
numerical algorithms try to return the best solution.
But it should be possible to improve accuracy by a well suited
normalisation (unit change for example!)

The condition number of u gives a measure of the numerical difficulty to
solve the problem


Note that as stated the eigenvalue computation may be a ill conditionned
problem in particular when there are clusters of eigenvalues

Please find below a little script which illustrate a typicall case
A=zeros(10,10)+diag(ones(1,9),1);A(10,1)=%eps;
s=spec(A);
clf;plot(real(s),imag(s),'+');

Serge Steer
> In any way, thanks for the debate
>
> Paul




More information about the users mailing list