Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

MATLAB Help (BVP4C)

  1. Oct 29, 2012 #1
    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. jcsd
  3. Oct 29, 2012 #2
    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?
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook




Loading...
Similar Threads for MATLAB Help BVP4C Date
MATLAB MATLab: Not enough inputs for nlinfit Nov 16, 2017
MATLAB Help needed to fix a matlab code Nov 8, 2017
New to Matlab, help with vectors Feb 20, 2016
Need help with integral Dec 23, 2015
MATLAB 2D diffusion equation, need help for matlab code. Nov 7, 2015