Path: news.mathworks.com!not-for-mail
From: "Miroslav Balda" <miroslav.nospam@balda.cz>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Help!!! Eigenvalue program for frequency dependent matrix
Date: Mon, 14 Jul 2008 16:00:24 +0000 (UTC)
Organization: Miroslav Balda
Lines: 75
Message-ID: <g5ft6o$dbu$1@fred.mathworks.com>
References: <g51ddf$pm4$1@fred.mathworks.com> <g51igi$8g1$1@fred.mathworks.com> <g53alh$2tc$1@fred.mathworks.com> <g58i3i$8f6$1@fred.mathworks.com>
Reply-To: "Miroslav Balda" <miroslav.nospam@balda.cz>
NNTP-Posting-Host: webapp-05-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1216051224 13694 172.30.248.35 (14 Jul 2008 16:00:24 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Mon, 14 Jul 2008 16:00:24 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 360709
Xref: news.mathworks.com comp.soft-sys.matlab:479212



"Yogesh " <yahoo@trashmail.net> wrote in message
<g58i3i$8f6$1@fred.mathworks.com>...

Sorry that I am replaying so late. I was off the Internet.
My reply concernes discrete mechanical systems, say
multibody systems.
 :
 SNIP
 :
> Thanks for your response. I had implemented something
> similar before posting it on the newsgroup. 
> 
> Here is what I was doing:
> 
> 1. Assume a certain omega.
> 2. Find K for this omega
> 3. Find eigenvalues
> 4. Check is the eigenvalue is the same as the omega assumed
> in step-1. 
> 5. If yes, this omega is an eigenvalue. Store the freuqency
> and eigenvector.
> 

In principal, the procedure is in order. However, I have
also found problems with convergence. This has been a reasom
why I aplied the function LMFnlsq (FEX Id 17524). The best
way how to show it is a solved example:
%Main script:
%   Yogesh      Balda, 2008-07-14
%%%%%%%%%%%%
omega = 300;    %   Initial guess for omega near to first
eigenvalue
omega = LMFnlsq('KomgM',omega,'Display',1)

%   Example of a cost function:
function ds = KomgM(omg)
% ds    difference between eigenvalue and omega
% Mass matrix:
M = diag([5, 32.12, 32.12, 5]);         %   [kg]
% Stiffness matrix:
K = [0.4397, -0.6143,  0.4095, -0.0683  %   [N/m]
     -0.6143,  1.6381, -1.4334,  0.4095
      0.4095, -1.4334,  1.6381, -0.6143
     -0.0683,  0.4095, -0.6143,  0.4397]*1e7;
K = K-10*omg*diag(ones(4,1)); Frequeny dependent K
s = sqrt(eig(K,M));
omega = s(k);

And results for the second natural frequency:
>> Yogesh
***************************************************************************
  itr  nfJ   SUM(r^2)        x           dx           l    
      lc
***************************************************************************
   0    1  1.4677e+004  3.0000e+002  0.0000e+000 
0.0000e+000  1.0000e+000 
   1    2  1.2516e-006  4.2099e+002 -1.2099e+002 
0.0000e+000  1.0000e+000 
   2    3  6.6392e-017  4.2099e+002  1.1173e-003 
0.0000e+000  1.0000e+000 
 
   3    4  6.6392e-017  4.2099e+002  2.3314e-008 
0.0000e+000  1.0000e+000 
omega =
  420.9890

It is obvious that the solution has been found in 4
iterations and that square of delta s(2)-omega  dropped down
by 21 orders! It is necessary to stress out that the code is
not optimized. 

Hope it helps

Mira