[Scilab-users] eigs calculation

Carrico, Paul paul.carrico at esterline.com
Fri Jun 26 13:28:25 CEST 2015


U = eigenvalues -> matrix (nx1)
V = eigenvectors -> matrix (nxn)

NB: n = 12 since I'm foccusing of the n first natural frequencies ....

Paul

-----Message d'origine-----
De : users [mailto:users-bounces at lists.scilab.org] De la part de Antoine Monmayrant Envoyé : vendredi 26 juin 2015 12:26 À : International users mailing list for Scilab.
Objet : Re: [Scilab-users] eigs calculation

 
Le Vendredi 26 Juin 2015 11:16 CEST, "Carrico, Paul" <paul.carrico at esterline.com> a écrit: 
 
> Hi Antoine,
> 
> Thanks for the comments; In attachment the results of the calculations 
> (note that the modal effective depends on the eigenvectors)
> 
> The calculation for the difference calculations are described herebellow ..

I'm confused, who's who:
u = value or vector
v = value or vector ?

Antoine

> 
> 
> Paul
> 
> ###################################################################################"
> // prog principal
> nbre = 10;
> for k = 1 : nbre
>     printf("\n*******\nIteration num %d\n",k);
>     s1 = "  ...
>     [u" + string(k) + ",v" + string(k) + ",K" + string(k) + ",M" + string(k) + "] = calcul_v() , ...
>     [nl,nc] = size(v" + string(k) + ") , ...
>     save(''u" + string(k) + ".bin'',''u" + string(k) + "'') , ...
>     save(''v" + string(k) + ".bin'',''v" + string(k) + "'') , ...
>     clear nl , ...
>     clear nc , ...
>     save(''K" + string(k) + ".bin'',''K" + string(k) + "'') , ...
>     save(''M" + string(k) + ".bin'',''M" + string(k) + "'') , ...
>     ";
>     execstr(s1) ;
>   
> end
> 
> printf("\n\n");
> 
> // difference v1 - v2
> for k = 2 : nbre
>     s2 = " ...
>     printf(""(eigenvalues) Max delta u%d - u1 = %g\n"",k,abs(max(u" + string(k) + " - u1))) , ...
>     printf(""(eigenvectors) Max delta v%d - v1 = %g\n"",k,abs(max(v" + string(k) + " - v1))) , ...
>     printf(""(input matrix) Max delta K%d - K1 = %g\n"",k,abs(max(K" + string(k) + " - K1))) , ...
>     printf(""(input matrix) Max delta M%d - M1 = %g\n"",k,abs(max(M" + string(k) + " - M1))) , ...
>     ";
>     execstr(s2) ;
>     printf("\n");
> end
> ######################################################################################"
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> -----Message d'origine-----
> De : users [mailto:users-bounces at lists.scilab.org] De la part de Antoine Monmayrant Envoyé : vendredi 26 juin 2015 10:50 À : International users mailing list for Scilab.
> Objet : Re: [Scilab-users] eigs calculation
> 
> Hi Paul,
> 
> I don't really like a function that gives different answers for the very same input.
> That sounds like a bug to me.
> That being said, from the data you showed, it is not clear that your eigenvector are really different.
> If what you show is just a difference in the norm of the difference between the eigenvalue at iteration 1 and N, that might be OK.
> Indeed, if v is an eigenvector, a.v with a non zero-scalar, is also an eigenvector.
> You should check whether v1 and vN are colinear: if they are, the results are not really different, they just differ by a scaling factor.
> But I would still call it a bug, as a function should always give the same answer when given the same input parameters.
> 
> Cheers,
> 
> Antoine
> 
>  
> Le Jeudi 25 Juin 2015 17:17 CEST, "Carrico, Paul" <paul.carrico at esterline.com> a écrit: 
>  
> > Dear all
> > 
> > I'm still working on my "eigs" issue topic and I'm still trying to 
> > understand what's going wrong;
> > 
> > I run a test case :
> > - same function is launched 10 times
> > - each time the input data are recorded (K,M)
> > - for each loop the eigenvalues u and the eigenvectors v are 
> > recorded
> > 
> > Then the values of each loop are compared with the values of the 
> > loop
> > 1
> > 
> > If K,M,u remains strictly identical, it is not the case for u (the eigenvectors) ... why ?
> > 
> > I've ever check any initialization issue, but everything seems to be 
> > ok
> > 
> > Paul
> > 
> > PS : the results of this case
> > 
> > Max delta v2 - v1 = 453.857
> > Max delta K2 - K1 = 0
> > Max delta M2 - M1 = 0
> > 
> > Max delta v3 - v1 = 549.214
> > Max delta K3 - K1 = 0
> > Max delta M3 - M1 = 0
> > 
> > Max delta v4 - v1 = 585.95
> > Max delta K4 - K1 = 0
> > Max delta M4 - M1 = 0
> > 
> > Max delta v5 - v1 = 379.702
> > Max delta K5 - K1 = 0
> > Max delta M5 - M1 = 0
> > 
> > Max delta v6 - v1 = 489.844
> > Max delta K6 - K1 = 0
> > Max delta M6 - M1 = 0
> > 
> > Max delta v7 - v1 = 439.221
> > Max delta K7 - K1 = 0
> > Max delta M7 - M1 = 0
> > 
> > Max delta v8 - v1 = 432.406
> > Max delta K8 - K1 = 0
> > Max delta M8 - M1 = 0
> > 
> > Max delta v9 - v1 = 351.752
> > Max delta K9 - K1 = 0
> > Max delta M9 - M1 = 0
> > 
> > Max delta v10 - v1 = 554.515
> > Max delta K10 - K1 = 0
> > Max delta M10 - M1 = 0
> > 
> > -----Message d'origine-----
> > De : Carrico, Paul
> > Envoyé : mercredi 17 juin 2015 22:18 À : International users mailing 
> > list for Scilab.
> > Objet : RE: [Scilab-users] eigs calculation
> > 
> > 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 ... 
> > 
> > In any way, thanks for the debate
> > 
> > Paul
> > 
> > EXPORT CONTROL : 
> > Cet email ne contient pas de données techniques This email does not 
> > contain technical data 
> > _______________________________________________
> > users mailing list
> > users at lists.scilab.org
> > https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.scilab.org
> > _m
> > ailman_listinfo_users&d=AwIGaQ&c=0hKVUfnuoBozYN8UvxPA-w&r=4TCz--8bXf
> > Jh
> > ZZvIxJAemAJyz7Vfx78XvgYu3LN7eLo&m=1q3UvWvNm8K7-IZGCUzIV3uKngKalGVN-2
> > TH izNu_Ek&s=Qd7_9c6GV5rmRHnsvDdDgvnnodut0J24q0KOnk1zqb8&e=
> > 
>  
>  
>  
>  
> 
> 
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.scilab.org_m
> ailman_listinfo_users&d=AwIGaQ&c=0hKVUfnuoBozYN8UvxPA-w&r=4TCz--8bXfJh
> ZZvIxJAemAJyz7Vfx78XvgYu3LN7eLo&m=1q3UvWvNm8K7-IZGCUzIV3uKngKalGVN-2TH
> izNu_Ek&s=Qd7_9c6GV5rmRHnsvDdDgvnnodut0J24q0KOnk1zqb8&e=
> 
> EXPORT CONTROL : 
> Cet email ne contient pas de données techniques This email does not 
> contain technical data
 
 
 
 


_______________________________________________
users mailing list
users at lists.scilab.org
https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.scilab.org_mailman_listinfo_users&d=AwIGaQ&c=0hKVUfnuoBozYN8UvxPA-w&r=4TCz--8bXfJhZZvIxJAemAJyz7Vfx78XvgYu3LN7eLo&m=DtRDqCwpPaahLQM8E-MeOGMZ4CHFjo7bH4Zh_lxEzr0&s=72hXuchUSXoMknI3enblwt4qNp-LSwTkkeeIaXZI9wE&e= 

EXPORT CONTROL : 
Cet email ne contient pas de données techniques
This email does not contain technical data


More information about the users mailing list