MATLAB Use finite difference method to solve for eigenvalue E in Matlab

  • Thread starter EigenCake
  • Start date
13
0
Use finite difference method to solve for eigenvalue E from the following second order ODE:

- y'' + (x2/4) y = E y

I discretize the equation so that it becomes

yi-1 - [2 + h2(x2i/4)] yi + yi+1 = - E h2 yi

where xi = i*h, and h is the distance between any two adjacent mesh points.

This is my code:
Code:
clear all
n = 27;
h = 1/(n+1);
voffdiag = ones(n-1,1);
for i = 1:n
    xi(i) = i*h;
end
mymat = -2*eye(n)-diag(((xi.^2).*(h^2)./4),0)+diag(voffdiag,1)+diag(voffdiag,-1);
D=sort(eig(mymat),'descend');
lam= -D/(h^2);
spy(mymat)
fprintf(1,' The smallest eigenvalue is %g \n',lam(1));
fprintf(1,' The second smallest eigenvalue is %g \n',lam(2));
fprintf(1,' The 3rd eigenvalue is %g \n',lam(3));
it returns
Code:
 The smallest eigenvalue is 9.92985 
 The second smallest eigenvalue is 39.3932 
 The 3rd eigenvalue is 88.0729
Obviously, something wrong here, since the analytic solution should be
E = n + 1/2 (for n = 0, 1, 2, 3...)
The smallest eigenvalue should be 0.5, instead of 9.92985.

I don't know whether my numerical solution agrees with the analytic solution or not, if I impose a boundary condition (ie. when x goes to infinity, y(x) should vanish to 0). And I don't know how to impose boundary condition. Please help, thank you very much!

By the way, is there any another way to find the eigenvalue E please?
 
Last edited:

Want to reply to this thread?

"Use finite difference method to solve for eigenvalue E in Matlab" You must log in or register to reply here.

Related Threads for: Use finite difference method to solve for eigenvalue E in Matlab

Replies
0
Views
8K
Replies
0
Views
2K
Replies
0
Views
14K
Replies
0
Views
2K
Replies
0
Views
2K
Replies
0
Views
2K

Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving
Top