3rd order non-linear differential equation (shooting method)

Hi, I have to solve the following equation --- f*f'' + 2*f''' = 0 with the boundary conditions --- for eta = 0: f = 0, f' = 0 and for eta = infinity (let's say it's 20): f' = 1 and I have a problem with the shooting method. If my initial solutions for f, f' and f'' are not near the real solution for the before mentioned then I don't get the right graph. Does anybody know what to do? Thanks in advance!
My code:
beskonacno = 20;
etaint = [0:.01:0.2 0.2:.02:0.8 0.8:.01:1]*20;
solinit = bvpinit(linspace(0,beskonacno,50000),@dbinit);
options = bvpset('stats','on');
sol = bvp4c(@difjedn,@rubuvj,solinit,options);
eta = sol.x;
f = sol.y;
figure
plot(eta,f(1,:),'b',eta,f(2,:),'m',eta,f(3,:),'k');
axis([0 beskonacno -1000 1000]);
title(' Rješenje ')
xlabel('\eta')
ylabel('f , df/d\eta , d^2f/d\eta^2')
legend('f','df/d\eta','d^2f/d\eta^2')
fi = deval(sol,etaint);
Tablica = table(etaint',fi(1,:)',fi(2,:)',fi(3,:)','VariableNames',{'eta' 'f' 'df' 'd2f'})
a = fi(3,1)
function dfdeta = difjedn(eta,f)
dfdeta(1) = f(2);
dfdeta(2) = f(3);
dfdeta(3) = -(f(1)*f(3))/2;
end
function res = rubuvj(f0,fbes)
res = [f0(1);
f0(2);
fbes(2)-1;]
end
function yinit = dbinit(x)
yinit = [x^4;
4*x^3;
12*x^2;
];
end

回答(1 个)

let if you have many value for like f = -2s ,where s= -2.5,-2,-1.5,-1.-0.5,0 , what will be your code

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by