bvp4c: a singular Jacobian encountered
4 次查看(过去 30 天)
显示 更早的评论
Hi everybody! I'm trying to solve the following second order differential equation with known boundary conditions:
global a0 a1 a2 a3 a4 h k JA JB
% J/m^2 -> N/m
a0 = 2.0377638272727268;
a1 = -7.105521894545453;
a2 = 9.234000147272726;
a3 = -5.302489919999999;
a4 = 1.1362478399999998;
k = 5.92*10^-3; % N/m
h = 45.5 *10^-10; % Angstrom -> m
JA = 1.025;
JB = 1.308;
XA = 0;
XB = 45;
meshX = linspace(0,45,100);
Y0 = [JA, JB]; %guess values
init = bvpinit(meshX,Y0);
sol = bvp4c(@myode,@mybc,init);
==============
function yprime = myode(x,y)
global a1 a2 a3 a4 h k
H = h^2/12;
B = a1 + 2*a2.*y(1) + 3*a3.*y(1).^2 + 4*a4.*y(1).^3;
C = 5*a1 + 8*a2.*y(1) + 9*a3.*y(1).^2 + 8*a4.*y(1).^3;
yprime = [y(2);
(C.* y(2).^2)./(B.*y(1)) + (y(1).^5)./H - (k.*y(1).^5)./(H.*B)];
================
function res = mybc(ya,yb)
global JA JB
res = [ya(1) - JA
yb(1) - JB];
The function J(x) assumes the values JA and JB at the extremes of the interval. As reported in the title, I get the following error:
"Error using bvp4c (line 252) Unable to solve the collocation equations -- a singular Jacobian encountered.
Error in mybvp (line 54) sol = bvp4c(@myode,@mybc,init);"
How can I overtake this problem? Thanks in advance for your help. Pinco
4 个评论
Kiran Pathapati
2016-8-3
@Pinco,
I'm also facing the same errors that you have mentioned in your earlier message. "Error using bvp4c (line 252) Unable to solve the collocation equations -- a singular Jacobian encountered.
Error in mybvp (line 54) sol = bvp4c(@myode,@mybc,init);"
You have mentioned that you were able to fix the errors. Could you please help me fixing the issue.
Thanks, Kiran
回答(1 个)
Sri Mukessh Subramanian
2015-8-21
the boundary condition vector should be specified column wise NOT ROW wise
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Boundary Value Problems 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!