## 10 Reputation

6 years, 330 days

## @Carl Love  My worksheet is a nume...

@Carl Love

My worksheet is a numerical solution based on Element finite method for multilayred beams with partial interaction.

My mechanical problem come up with this equation:

det(K-w^2*M)=0

I have the Stifness matrix(K) and the Mass matrix(M). The w is the eigenvalues of the problem(That`s the why I `m using sqrt). The main question is to find the minimum value of w (that`s the why I use the sort command). In my problem the K matrix decrease after a increment of load in the centroid of the layers of my beam. In consequence, the result decrease the mimimum value of w too. So ,when the minimum value, known as fundamental frequencie, is zero I have a associate load to this frequencie, called as buckling load. For example :

+Pr
+Pr
+Pr

That`s the buckling load. So I need this kind of loop,  printing the w[1] and Q loads.

## @Carl Love  yes, I see now But, h...

@Carl Love

yes, I see now

But, how can I use this command in the Fn code? After "D:=Eigenvalues(B,C,datatype=float);"? E.g:

Fn:=proc(N,VS,E,A,In,L,h,k,T,q,ro)
local B,C,D;
B:=KG(N,VS,E,A,In,L,h,k,T,q);
C:=MG(N,VS,E,A,In,L,h,ro,T);

D:=Eigenvalues(B,C,datatype=float);
D:=SingularValues(D);

D:=sort(D,`<`);
D:=sqrt~(D);
D:=(0.15915494)*~(D);
end proc;

As I saw in maple help this command only works with Matrices... Actually, I didn`t understand the structure of SingularValues.

Thank you!

## @Carl Love  In the eingenvalue ...

@Carl Love
In the eingenvalue code I put sqrt~(D), wich "D" is the eigenvalue, so it only output and display positive numbers. As you can see:

## Hello Tom...

First, thank you for the attention.

It`s a mechanical problem. I`ll try to explain. "Fn" is the eigenvalues of two matrices that I have already generated in the same worksheet with other procedures. So, I got the eigenvalue of two matrices (stifiness matrix and mass matrix) and allocated in the global variable Fn. The code of Fn it`s bellow:

>Fn:=proc(N,VS,E,A,In,L,h,k,T,q,ro)
local B,C,D;
B:=KG(N,VS,E,A,In,L,h,k,T,q); #Global Stifness matrix
C:=MG(N,VS,E,A,In,L,h,ro,T); #Global Mass matrix

D:=Eigenvalues(B,C,datatype=float);

D:=sort(D,`<`);
D:=sqrt~(D);
(0.15915494)*~(D);
end proc;

The parameter "q" is a list of loads wich is applicated in the centroid of "N" layers of a beam. So, when "q" increase, the stifness matrix change and the eigenvalue changes too. That`s the why I`m trying to use a "pr" (from the word precision) increment of negative loads(compression), because this will make a decrease in the first value of Fn . When the first value of the vector Fn is near to zero(or zero), I will find the buckling load. So, for the procedure buckload, I did the code:

local Qloc;
Qloc:=q;
while Fn(N,VS,E,A,In,L,h,k,T,Qloc,ro)[1]>0 do
Qloc:=Qloc+pr;
end do;
Qloc;
end proc;

But maple display this message when I try to run an example with numbers in the paramters:

Error, (in Fn) unable to store 0.+11.7314161808423930*I in a datatype=float[8] rtable

I need to diaplay all increments of loads "Qloc" and the first values of eingevalues that had been evaluated