Error using bvp4c (singular jacobian encountered)
Afficher commentaires plus anciens
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 commentaire
Walter Roberson
le 18 Oct 2018
As we only have your code and not your equations, we cannot compare to determine if there is a problem.
Réponse acceptée
Plus de réponses (1)
CLMSP
le 18 Oct 2018
0 votes
2 commentaires
MOSLI KARIM
le 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
le 7 Nov 2023
your code works well, I just made x=a=0.001 to avoid the singularity
Catégories
En savoir plus sur Boundary Value Problems dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!