Solving third order nonlinear boundary value problem

I have a boundary value problem in this form:
where alpha is a nonzero constant and boudary conditions are:
f(-1) = 0
f(0) = 1
f(1) = 0
How can I solve this problem using bvp5c?

5 个评论

Hi parham,
This looks doable if you constuct an f vector of length 6, where the first three elements are f,f',f'' in the left hand region -1<=x<=0 and the second three elements are f,f',f'' in the right hand region 0<=x<=1. Then the differential equation part will be
dfdt(1) = f(2)
dfdt(2) = f(3)
dfdt(3) = a*f(1)*f(2) + 4*a^2*f(2)
and the same for f variables (4,5,6) since the differential equation is the same. At the boundary x = 0, the first and second derivatives of f have to be continuous across the boundary. So for the boundary part in terms of fa and fb, remembering that the a,b boundaries are -1,0 for f (1,2,3) and 0,1 for f(4,5,6) ,the follwing values are zero:
fa(1)
fb(1)-1
fa(4)-1
fb(4)
fb(2)-fa(5) % continuous 1st derivative
fb(3)-fa(6) % continuous 2nd derivative
I have the exact same equation, and I understood everything about your code, except for one thing.
Instead of dfdt(3) = a*f(1)*f(2) + 4*a^2*f(2), shouldn't it be dfdt(3) = -a*f(1)*f(2) - 4*a^2*f(2) ?
Instead of dfdt(3) = a*f(1)*f(2) + 4*a^2*f(2), shouldn't it be dfdt(3) = -a*f(1)*f(2) - 4*a^2*f(2) ?
Yes.
Hi @Torsten. Thanks for the reply. I am still confused while applying this technique. I am trying to use bvp4c and am getting singular Jacobian values.
I am trying to use bvp4c and am getting singular Jacobian values.
I don't:
alpha = 1;
xc = 0;
xmesh = [linspace(-1,xc,1000),linspace(xc,1,1000)];
solinit = bvpinit(xmesh, [0 0 0]);
sol = bvp5c(@(x,y,r)f(x,y,r,alpha),@bc,solinit);
plot(sol.x,sol.y(1,:))
function dydx = f(x,y,region,alpha)
dydx = [y(2);y(3);-alpha*y(1)*y(2)-4*alpha^2*y(2)];
end
function res = bc(yl,yr)
res = [yl(1,1);yr(1,1)-1;yr(1,1)-yl(1,2);yr(2,1)-yl(2,2);yr(3,1)-yl(3,2);yr(1,2)];
end

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Function Creation 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by