Error using bvp4c (singular jacobian encountered)
Show older comments
How can I find the error in this MATLAB's script?
Script one: perfiles_thiele
clc; clear;
R=3;%input('Radio de particula en mm, R: ');
%%BVP solution problem
C0=2E-4;
dCdr0=0.016;
solinit = bvpinit(linspace(0,R,100),[C0 dCdr0]);
sol = bvp4c(@model,@ex1bc,solinit);
r =sol.x;
C=sol.y(1,:);
v=sol.y(2,:);
TWO:
function F =model(r,Y)
R=3;
Thiele =1;
C=Y(1);
v=Y(2);
dCdr= v;
dvdr= (-2/r)*v + C*9*Thiele^2/R^2;
F = [dCdr; dvdr];
end
THREE:
function res = ex1bc(ya,yb)
Cs=2E-6;
dCdr=0;
res = [ ya(1) - Cs
yb(2) - dCdr];
end
When I run the script one throws me the error:
Error using bvp4c (line 251)
Unable to solve the collocation equations -- a singular Jacobian encountered.
Error in perfiles_thiele (line 19)
sol = bvp4c(@model,@ex1bc,solinit);
I appreciate help to know if the problem is the definition of [C0 dCdr0] or if it is because I have some error in my BVP system.
Thanks!
1 Comment
Walter Roberson
on 18 Oct 2018
As we only have your code and not your equations, we cannot compare to determine if there is a problem.
Accepted Answer
More Answers (1)
CLMSP
on 18 Oct 2018
0 votes
2 Comments
MOSLI KARIM
on 7 Nov 2023
%%
function solved
clc; clear;
global Thiele Cs R C0 dCdr0
Cs=2E-6
Thiele =1
R=3;%input('Radio de particula en mm, R: ');
%%BVP solution problem
C0=2E-4;
dCdr0=0.016;
solinit = bvpinit(linspace(0.01,R,100),[C0 dCdr0]);
sol = bvp4c(@model,@ex1bc,solinit);
RR=sol.x'
display(RR)
C=sol.y(1,:);
v=sol.y(2,:);
figure(1)
plot(RR,C)
figure(2)
plot(RR,v)
function F =model(r,Y)
C=Y(1);
v=Y(2);
dCdr= v;
dvdr= (-2/r)*v + C*9*Thiele^2/R^2;
F = [dCdr; dvdr];
end
function res = ex1bc(ya,yb)
res = [ ya(1) - Cs
yb(2) ];
end
end
MOSLI KARIM
on 7 Nov 2023
your code works well, I just made x=a=0.001 to avoid the singularity
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!