Non Linear Eigenvalue problem
9 views (last 30 days)
Show older comments
I have been trying to solve a Non linear Eigenvalue problem using fsolve and Newton's iteration method and have not been successful. The matrix which I am looking to solve:
A=[2*w -300 0 0;sin(w/2) cos(w/2) -sin(w/2) cos(w/2); 2*cos(w/2) -2*sin(w/2) -cos(w/2) sin(w/2); 0 0 cos(w) -sin(w)]; (Found in a paper, using it as a practice case)
My Newton method code:
%Define intial values and tolerances for the variable
w0=0.1;
tol=2;
maxiter=1000;
w=w0;
wold=w0;
lambda=0.1;
%Start Iteration
for i=1:maxiter
%Define A and B
A=[2*w -300 0 0;sin(w/2) cos(w/2) -sin(w/2) cos(w/2); 2*cos(w/2) -2*sin(w/2) -cos(w/2) sin(w/2);
0 0 cos(w) -sin(w)];
B=[-2 0 0 0;-0.5*cos(w/2) 0.5*sin(w/2) 0.5*cos(w/2) -0.5*sin(w/2); sin(w/2) cos(w/2) -0.5*sin(w/2) -0.5*cos(w/2);
0 0 sin(w) cos(w)];
C=inv(B);
%Find Eigen value for the intermediate step
beta=eig(C*A);
epsilon=min(abs(beta));
%Update the variable
w=w0+epsilon;
err=abs(epsilon);
wold=w;
if(err<tol)
break;
end
end
Fsolve code
function fval=fun4evp(w)
A=[2*w -300 0 0;sin(w/2) cos(w/2) -sin(w/2) cos(w/2); 2*cos(w/2) -2*sin(w/2) -cos(w/2) sin(w/2);
0 0 cos(w) -sin(w)];
fval=det(A);
end
wsol=fsolve(@(w)fun4evp,0.1);
Thanks
1 Comment
Gyan Swarup Nag
on 16 Mar 2019
clear all;
% One root at a time
% Number of iteration
k=0; % Number of iteration
ks=300;
epsi=1*0.01;
w0=-1
while 1e-14<abs(epsi)
k=k+1;
A=[2*w0 -ks 0 0;
sin(w0/2) cos(w0/2) -sin(w0/2) -cos(w0/2);
2*cos(w0/2) -2*sin(w0/2) -cos(w0/2) sin(w0/2);
0 0 cos(w0) -sin(w0)];
B=-[2 0 0 0;
cos(w0/2)/2 -sin(w0/2)/2 -cos(w0/2)/2 sin(w0/2)/2;
-sin(w0/2) -cos(w0/2) sin(w0/2)/2 cos(w0/2)/2;
0 0 -sin(w0) -cos(w0)];
e = eig(A, B);
[dum,jj]=min(abs(e));
epsi=e(jj)
w0=w0+epsi
end
[w0 k]
Answers (2)
Christine Tobler
on 8 Jan 2025
Edited: Christine Tobler
on 8 Jan 2025
Sorry for answering so long after the initial post. One option you could consider for solving a nonlinear eigenvalue problem is the Rational Krylov Toolbox for MATLAB: http://guettel.com/rktoolbox/examples/html/example_nlep.html.
(edit to fix the link)
0 Comments
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!