# MATLAB Help (BVP4C)

1. Oct 29, 2012

### Juggler123

Hi all, (Don't mean to spam, meant to put this in General Math not General Engineering!)
I'm running the following code in MATLAB:

function M = nonNewtonian(~)

M = bvpinit(linspace(0,10,301),@VKinit);
sol = bvp4c(@VK,@VKbc,M);

figure;
hold all;
plot(sol.x,sol.y(2,;
plot(sol.x,sol.y(4,;
hold off;
xlabel('\zeta')
xlabel('\zeta')
hleg = legend('F\prime','G\prime',...
'Location','NorthEast'); %#ok<NASGU>

figure;
hold all;
plot(sol.x,sol.y(1,;
plot(sol.x,sol.y(3,;
plot(sol.x,(-1)*sol.y(5,;
hold off;
xlabel('\zeta')
hleg = legend('F','G','-H',...
'Location','East'); %#ok<NASGU>

function yprime = VK(x,y)

n=1;

yprime = [ y(2)
n^(-1)*((y(2)^(2)+y(4)^(2))^((n-1)/2))^(-1)*((y(1)^(2)-y(3)^(2)+(y(5)+((1-n)/(n+1))*y(1)*x)*y(2))*(1+(n-1)*(y(2)^(2)+y(4)^2)^(-1)*y(4)^(2))-(n-1)*y(2)*y(4)*(y(2)^(2)+y(4)^(2))^(-1)*(2*y(1)*y(3)+(y(5)+((1-n)/(n+1))*y(1)*x)*y(4)))
y(4)
n^(-1)*((y(2)^(2)+y(4)^(2))^((n-1)/2))^(-1)*((2*y(1)*y(3)+(y(5)+((1-n)/(n+1))*y(1)*x)*y(4))*(1+(n-1)*(y(2)^(2)+y(4)^2)^(-1)*y(2)^(2))-(n-1)*y(2)*y(4)*(y(2)^(2)+y(4)^(2))^(-1)*(y(1)^(2)-y(3)^(2)+(y(5)+((1-n)/(n+1))*y(1)*x)*y(2)))
-2*y(1)-(1-n)/(n+1)*x*y(2)];

function res = VKbc(ya,yb)

res = [ya(1);ya(3)-1;ya(5);yb(2)-(yb(5)*yb(1));yb(4)-(yb(5)*yb(3))];

function yinit = VKinit(~)

yinit = [0;0;1;0;0];

but receive the following error message:

??? Error using ==> bvp4c at 252
Unable to solve the collocation equations -- a singular Jacobian encountered.

Error in ==> nonNewtonian at 4
sol = bvp4c(@VK,@VKbc,M);

I struggle to see where I am going wrong?! Five differential equations and five boundary conditions, should be fine? I'm using n=1 as a test case here. I know the solutions to this system for n=1 but would like to look into the solutions when n is not equal to one.

Any help anyone could give would be greatly appreciated.
Thanks!

2. Oct 29, 2012

### Number Nine

That code is almost impossible to decipher, but, as MATLAB says, the problem is that your Jacobian matrix is singular. Have you tried testing this on a system that you know has a well behaved solution?