Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

bvp4c failing to produce the correct solution

Asked by pxg882

pxg882

on 29 Nov 2012

I'm running the following:

function M = SwirlingFlow(~)  
M = bvpinit(linspace(0,30),@VKinit);
options = bvpset('RelTol',1e-8);
sol = bvp4c(@VK,@VKbc,M,options);
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>
disp('Value of F''(0)')
a = sol.y(2,1);
disp(a)
disp('Value of G''(0)')
b = sol.y(4,1);
disp(b)
disp('Value of H(infinity)')
c = sol.y(5,end);
disp(c)
function yprime = VK(~,y)
yprime = [  y(2) 
            y(1)^2-y(3)^2+y(2)*y(5)
            y(4)
            2*y(1)*y(3)+y(4)*y(5)
            -2*y(1)];
function res = VKbc(ya,yb)
res = [ya(1);ya(3)-1;ya(5);yb(2)-(ya(1)*yb(5));yb(4)-(ya(3)*yb(5))];
function yinit = VKinit(~)
yinit = [0;0.5102;1;-0.6159;0];

I'm sure all the initial values and boundary conditions are correct (I have confirmed the initial conditions using a shooting method). I know exactly how the solution should look and I know that the value of

-H(infty)=0.8845

but using the bvp4c solver it fails to produce the correct solution. Can anybody help debug this?

Thanks.

0 Comments

pxg882

pxg882

Tags

Products

No products are associated with this question.

0 Answers

Contact us