Azzera filtri
Azzera filtri

Third Order Coupled ODE's

4 visualizzazioni (ultimi 30 giorni)
I have these coupled equations based off Falkner-Skan:
f′′′=−f⋅f′′−(2m/(m+1))⋅(1−(f′)2)−(2/(m+1))⋅Ri⋅θcos(m/(m+1))
&
θ′′=−Pr⋅f⋅θ'
With the BC's: f(0)=f′(0)=0 and θ(0)=1. f(5)=1 and θ(5)=0 (5 has been taken as the endpoint)
Where Pr, m and Ri are constants which can be assigned, f and θ are functions of η and the dash (') means derivative with respect to η.
I have a MATLAB file which solves this when Ri=0 by using the shooting method (as this is a BVP) and ODE45 but now it seems like that can no longer be used as easily because now they need to be solved simultaneously when Ri is not zero and I don't know where to start.
How can I solve this problem using MATLAB for the plots of f' and θ against η?
  2 Commenti
ravinder khary
ravinder khary il 29 Giu 2018
Respected Andrew Amoateng-Agyemang, As I am a beginner in MATLAB programming, Can you please share your code of shooting method and ODE45 for the above mentioned coupled Falkner-Skan equation. I also have a coupled BVP to solve. I don't know how to use MATLAB inbuilt function so please share a full code if possible. Thank you

Accedi per commentare.

Risposta accettata

Torsten
Torsten il 8 Apr 2015
function main
xa = 0; xb = 5;
solinit = bvpinit(linspace(xa,xb,10),[0 0 1 1 0]);
sol = bvp4c(@coupled_falkner_skan,@bc,solinit);
function res = bc(ya,yb)
res = [ ya(1); ya(2); ya(4)-1; yb(2)-1; yb(4)];
function dydx = coupled_falkner_skan(x,y)
m = 0.0909; Ri = 5; Pr = 0.71;
dydx = [y(2); y(3); -y(1)*y(3)-(2*m/(m+1))*(1-y(2)^2)-(2/(m+1))*Ri*y(4)*cos(m*pi/(m+1)); y(5); -Pr*y(1)*y(5)];
Best wishes
Torsten.
  3 Commenti
Taylor Nichols
Taylor Nichols il 24 Gen 2019
I know this is an old question, but shouldn't the 4th boudary condition be yb(1) - 1, not yb(2) - 1. The BC you have written at the beginning is not the 1st derivative.
Torsten
Torsten il 24 Gen 2019
Yes, take a look at my answer from the 7th of April below. I subsequently copied the code from the comment to it (where the boundary condition is modified) and added the plotting.

Accedi per commentare.

Più risposte (3)

Torsten
Torsten il 7 Apr 2015
Rewrite your equations as a system of first-order ordinary differential equations and use bvp4c to solve.
Best wishes
Torsten.
  1 Commento
Andrew Amoateng-Agyemang
Andrew Amoateng-Agyemang il 7 Apr 2015
I have rewritten the equations in first order form, thanks. But now I'm stuck on actually using bvp4c. I need more clarification on MATLAB's definition (typed "help bvpc4") which I have been trying to understand.
Can you please clarify?

Accedi per commentare.


Torsten
Torsten il 7 Apr 2015
function dydx = ode(x,y)
m=...;
Ri=...;
Pr=...;
dydx = [ y(2); y(3); -y(1)*y(3)-2*m/(m+1)*(1-y(2)*2)-2/(m+1)*Ri*y(4)*cos(m/(m+1)); y(5); -Pr*y(1)*y(4)];
function res = bc(ya,yb)
res = [ ya(1); ya(2); yb(1)-1.0; ya(4)-1.0; yb(4)];
solinit = bvpinit(linspace(0,4,5),[0 0 0 0 0]);
sol = bvp4c(@ode,@bc,solinit);
Best wishes
Torsten.
  1 Commento
Andrew Amoateng-Agyemang
Andrew Amoateng-Agyemang il 7 Apr 2015
Thank you, I now understand all this and corrected any mistakes leaving:
function dydx = coupled_falkner_skan(x,y)
m = 0.0909; Ri = 5; Pr = 0.71;
dydx = [y(2); y(3); -y(1)*y(3)-(2*m/(m+1))*(1-y(2)^2)-(2/(m+1))*Ri*y(4)*cos(m*pi/(m+1)); y(5); -Pr*y(1)*y(5)];
end
function res = bc(ya,yb)
res = [ ya(1); ya(2); ya(4)-1; yb(2)-1; yb(4)];
xa = 0; xb = 5;
solinit = bvpinit(linspace(xa,xb,10),[0 0 1 1 0]);
sol = bvp4c(@coupled_falkner_skan,@bc,solinit);
end
Now I want to plot the solution across the whole domain, I hit the run button but it's telling me "error not enough input arguments" ?
Thanks

Accedi per commentare.


T K
T K il 17 Ott 2018
if true
% code
end

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by