Singular Jacobian with BVP4c used to solve eigenvalue problem
Show older comments
I have been trying to solve an eigenvalue problem of the form:
y"+y/x+(Lambda^2)*(1-x^2)y=0
which is a Sturm-Liouville problem that occurs e.g. in the case of heat convection in tubes and channels. The task here is to find the eigenvalues Lambda in order to describe the temperature in the fluid.
As I understand one way to solve this problem is by intorudcing the parameter Lambda into the definition of the differential equation:
function dydx=evp1(x,y,lambda);
dydx=[y(2)
-y(2)/x-lambda*(1-x^2)*y(1)];
end
function res=evp1bc1(ya,yb,lambda);
res=[ya(1)-1;yb(1);ya(2)];
end
function v=evp1Guess1(x);
v=[cos(x);sin(x)];
end
clear all; close all; echo on; format long;
a=0; b=1; N=10; lambda=0.5;
solInit1=bvpinit(linspace(a,b,N),@evp1Guess1,lambda);
solN1=bvp4c(@evp1,@evp1bc1,solInit1);
This short and elegant code by Zaitsev (in the Book: Handbook of Ordinary DIfferential Equations) finds the eigenvalues for simpler eigenvalue problems (e.g. y"+Lambda.y=0). However, for my problem it creates an error message referring to a singular Jacobian which I assume is due to the presence of the y(1)/x term in the equation at x=0. Is there a way to get around this problem?
3 Comments
Tanya Sharma
on 24 Oct 2019
Hi Saeid,
I am also solving an eigenvalue problem using bvp4c.
As we can pass the unknown eigenvalue as a parameter in bvp4c and give it some initial guess. But in turn we only get a single value of the parameter in return using
sol.parameters
But an ODE can have as many eigenvalues. But this algorithm restricts our eigenvalue to only one value.
How can I obtain all the possible eigenvalues for the ODE?
Saeid
on 16 Nov 2019
Tanya Sharma
on 4 Dec 2019
Hello Saeid,
Actually finding the eigenvalues is very important in my analysis. Can you share the structure of the loop for your guess vector. It may help me as I am stuck with only one eigenvalue.
Thanks in advance.
Accepted Answer
More Answers (0)
Categories
Find more on Boundary Value Problems in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!