How to solve nonlinear coupled ode by Shooting method .
5 次查看(过去 30 天)
显示 更早的评论
Respected sir ,
I am getting problem to solve non linear coupled BVP by shooting method . Can you help me to solve that problem?
My problem is
F'''=(1/(1+epsilon1*(1-G)))*(A*F'+.5*t*A*F''+(F')^2-F*F''+epsilon1*G'*F''-lambda*G-delta*H+M*F'-(-1+epsilon1*G-epsilon1)*bita*F');
G''=(1/(1+epsilon2*G+Nr))*(Pr*(2*A*G+.5*A*t*G'+F'*G-F*G'-M*Ec*(F')^2-Ec*(1-epsilon1*G'+epsilon1)*(F'')^2)-epsilon2*(G')^2);
H''= Sc*(2*A*H+.5*A*t*H'+F'*H-F*H'+Rex*Zai*H);
where A=0 ; epsilon1= 0 ; epsilon2=1; lambda= 1; delta=1; bita=0; Nr=.1; Pr=5; M=.5;
Ec=.1 ; Sc=1; Rex= .3 ; Zai= .1 ;
and F(0)=0 , F'(0)=1 F'(infity)=0 G(0)=1 G(infity)=0 H(0)= 1 H(infity)=0
and F''(0) , G'(0) & H'(0) we have to guess
so tell me how to solve by shooting method with using rk -4 method .
2 个评论
采纳的回答
更多回答(1 个)
darova
2019-10-14
Try bvp4c
Suggestion:
F0 = y(1);
%% ...
H1 = y(7);
% and use these variables to make your code more redable
dy(1) = F1;
%% ..
You can also use temporary variables to make your code simpler
dy(3) = 1/(1+e1*(1-G0))* ...
(A*F1 + 0.5*t*A*F2 + F1^2 - F0*F2 + e1*G1*F2 - lambda*G0 - delta*H0 + M*F1 - (-1+e1*G0-e1)*bita*F1);
%%
TEMP0 = 1/(1+e1*(1-G0));
TEMP1 = 0.5*t*A*F2;
TEMP2 = e1*G1*F2;
TEMP3 = (-1+e1*G0-e1)*bita*F1;
dy(3) = TEMP0 * (A*F1 + TEMP1 + F1^2 - F0*F2 + TEMP2 - lambda*G0 - delta*H0 + M*F1 - TEMP3);
See attached scripts
10 个评论
darova
2019-10-17
I just changed main code
init = [0 1 -0.58 1 -1.52 1 -1.12];
% solinit = bvpinit([0 2],zeros(1,7));
% sol = bvp4c(@new,@bvpf,solinit);
[t,y] = ode45(@new,[0 2], init);
% plot(sol.x,sol.y)
plot(t,y)
legend('F','dF','d2F','G','dG','H','dH')
I took initial conditions from last calc. There is no rule for F2(0) G1(0) & H1(0) values, only guessing or something like bvp4c
![img1.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/243110/img1.png)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!