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?
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: MATLAB Help (BVP4C)
  1. MATLAB help (Replies: 9)

  2. MATLAB help (Replies: 2)

  3. MATLAB help (Replies: 0)

  4. MATLAB help (Replies: 7)

  5. Matlab help (Replies: 6)

Loading...