BVP4c for three boundary set of boundary conditions
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Respected sir/maam,
I was trying to solve my coupled non-linear ODEs with three intervals of boundary conditions. Here It is error "uncognized function or variable D1" and some minor errors, which I am not able to rectify. Can you please help. If any information is required, please feel free to ask.
Thanking You in Advance
You help will be highly appreciable
xb = 0.4;
xc = 0.8;
xmesh = [linspace(0,0.4,100),linspace(0.4,0.8,100),linspace(0.8,1,100)];
yinit = [1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1 ];
solinit = bvpinit(xmesh,yinit);
%constant
r=1;
m=1;
cp=1;
k=1;
s=1;
bt=1;
bc2=1;
r1=1;
m1=1;
cp1=1;
k1=1;
s1=1;
bt1=1;
bc1=1;
t=1;
L=1;
e=0.001;
H=1;
R=0.2;
Da1=0.5;
Da2=0.5;
Da3=0.5;
B=1;
M=1;
Gr=1;
Gc=1;
th=pi/2;
d=1;
Pr=1;
Ec=1;
a1=1;
a2=1;
a3=1;
f1=1;
Nb=1;
Nt=1;
Le=1;
g=1;
K1=0.001;
Bi=1;
n=1;
Db=1;
Dt=1;
K=1;
Pr1=21;
v=(m*r1)/(m1*r);
si=(s1/s);
mu=(m1/m);
ro=(r/r1);
btk=(bt1/bt);
btc=(bc1/bc2);
CP=(cp/cp1);
roc=(r*cp)/(r1*cp1);
k2=(k/k1);
a=(r*cp*k1)/(k*r*cp1);
H1=sqrt(v)*H;
R1=v*R;
M1=sqrt(si/mu)*M;
Gr1=btk*v*Gr;
Gc1=btc*v*Gc;
Ec1=CP*Ec;
Nt1=(Nt)/(Dt*a);
Nb1=(Nb)/(Db*a);
Le1=a*Le*Db;
g1=(v*g)/K;
K2=(v*K1)/K;
D1=-(1/Da1)-(M^2)
D2=sin(th)*Gr;
D3=sin(th)*Gc;
D4=d*((R/H)^2);
D5=(1/Pr);
D6=(f1-a1)/Pr;
D7=((Ec/Da1)+((M^2)*Ec));
D8=(Nb/Pr);
D9=(Nt/Pr);
D10=Le*Pr*(H^2);
D11=Le*Pr*R;
D12=(Nt/Nb);
D13=g*Le*Pr;
D14=K1*Le*Pr;
D15=ro*((H1)^2);
D16=-(1/Da2)-((M1)^2);
D17=sin(th)*Gr1;
D18=sin(th)*Gc1;
D19=(1/Pr1);
D20=d*(((R1)/(H1))^2);
D21=((f1-2)*k2)/Pr;
D22=((Ec1/Da2)+(Ec1*((M1)^2)));
D23=(ro*CP*Nb1)/(Pr1);
D24=(ro*CP*Nt1)/(Pr1);
D25=Le1*Pr1*(H1)^2;
D26=Le1*Pr1*R1;
D27=Nt1/Nb1;
D28=g1*Le1*Pr1;
D29=K2*Le1*Pr1;
D30=-(1/Da3)-((M)^2);
D31=(f1-a3)/Pr;
D32=(Ec/Da3)+((M^2)*Ec);
hold on
for R = 0.2
p = [r m cp k s bt bc2 r1 m1 cp1 k1 s1 bt1 bc1 t L e H R Da1 Da2 Da3 B M Gr Gc th d Pr Ec a1 a2 a3 f1 Nb Nt Le g K1 Bi n Db Dt K Pr1 D1 D2 D3
D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 D25 D26 D27 D28 D29 D30 D31 D32];
sol = bvp5c(@(x,y,r) f(x,y,r,p), @(ya,yb)bc(ya,yb,p), solinit);
plot(sol.x,real(sol.y(1,:)));
end
hold off
function dydx = f(x,y,region,p) % equations being solved
r = p(1);
m = p(2);
cp = p(3);
k = p(4);
s = p(5);
bt = p(6);
bc2 = p(7);
r1 = p(8);
m1 = p(9);
cp1 = p(10);
k1 = p(11);
s1 = p(12);
bt1 = p(13);
bc1 = p(14);
t = p(15);
L = p(16);
e = p(17);
H = p(18);
R = p(19);
Da1 = p(20);
Da2 = p(21);
Da3 = p(22);
B = p(23);
M = p(24);
Gr = p(25);
Gc = p(26);
th = p(27);
d = p(28);
Pr = p(29);
Ec = p(30);
a1 = p(31);
a2 = p(32);
a3 = p(33);
f1 = p(34);
Nb = p(35);
Nt = p(36);
Le = p(37);
g = p(38);
K1 = p(39);
Bi = p(40);
n = p(41);
Db = p(42);
Dt = p(43);
K = p(44);
Pr1 = p(45);
D1 = p(46);
D2 = p(47);
D3 = p(48);
D4 = p(49);
D5 = p(50);
D6 = p(51);
D7 = p(52);
D8 = p(53);
D9 = p(54);
D10 = p(55);
D11 = p(56);
D12 = p(57);
D13 = p(58);
D14 = p(59);
D15 = p(60);
D16 = p(61);
D17 = p(62);
D18 = p(63);
D19 = p(64);
D20 = p(65);
D21 = p(66);
D22 = p(67);
D23 = p(68);
D24 = p(69);
D25 = p(70);
D26 = p(71);
D27 = p(72);
D28 = p(73);
D29 = p(74);
D30 = p(75);
D31 = p(76);
D32 = p(77);
dydx = zeros(6,1);
switch region
case 1 % x in [0,0.4]
dydx = [y(2);
(R*y(2))-(D1*y(1))-(D2*y(5))-(D3*y(9))-(H^2);
y(4);
(R*y(4))-((D1-(1i*(H^2)))*y(3))-(D2*y(7))-(D3*y(11))-(H^2);
y(6);
(1/(D5-D4))*((R*y(6))+(D6*y(5))-(Ec*(y(2)^2))-(D7*(y(1)^2))-(D8*y(6)*y(10))-(D9*(y(6)^2)));
y(8);
(1/(D5-D4))*((R*y(8))+((D6+(1i*(H^2)))*y(7))-(2*Ec*y(2)*y(4))-(2*D7*y(1)*y(3))-(D8*((y(6)*y(12))+((y(10)*y(8)))))-(2*D9*y(6)*y*(8)))
y(10);
(D11*y(10))+(D13*y(9))-(D12*((1/(D5-D4))*((R*y(6))+(D6*y(5))-(Ec*(y(2)^2))-(D7*(y(1)^2))-(D8*y(6)*y(10))-(D9*(y(6)^2)))))+(D14)
y(12);
(D11*y(12))+((D13+(1i*D10))*y(11))-(D12*((1/(D5-D4))*((R*y(8))+((D6+(1i*(H^2)))*y(7))-(2*Ec*y(2)*y(4))-(2*D7*y(1)*y(3))-(D8*((y(6)*y(12))+((y(10)*y(8)))))-(2*D9*y(6)*y*(8)))))];
case 2 % x in [0.4,0.8]
dydx = [y(2);
(B/(B+1))*((R1*y(2))-(D16*y(1))-(D17*y(5))-(D18*y(9))-D15);
y(4);
(B/(B+1))*((R1*y(4))-((D16-(1i*(H1^2)))*y(3))-(D17*y(7))-(D18*y(11))-D15);
y(6);
(1/(D19-D20))*((R1*y(6))+(D21*y(5))-(Ec1*((B+1)/B)*(y(2)^2))-(D22*(y(1)^2))-(D23*y(10)*y(6))-(D24*(y(6)^2)));
y(8);
(1/(D19-D20))*((R1*y(8))+((D21+(1i*(H1^2)))*y(7))-(2*Ec1*((B+1)/B)*y(2)*y(4))-(2*D22*y(1)*y(3))-(D23*((y(10)*y(8))+((y(12)*y(6)))))-(2*D24*y(6)*y(8)));
y(10);
(D26*y(10))+(D28*y(9))-(D27*((1/(D19-D20))*((R1*y(6))+(D21*y(5))-(Ec1*((B+1)/B)*(y(2)^2))-(D22*(y(1)^2))-(D23*y(10)*y(6))-(D24*(y(6)^2)))))+D29;
y(12);
(D26*y(12))+(D28*y(11))-(D27*((1/(D19-D20))*((R1*y(8))+((D21+(1i*(H1^2)))*y(7))-(2*Ec1*((B+1)/B)*y(2)*y(4))-(2*D22*y(1)*y(3))-(D23*((y(10)*y(8))+((y(12)*y(6)))))-(2*D24*y(6)*y(8)))))
];
case 3 % x in [0.8,1]
dydx = [y(2);
(R*y(2))-(D30*y(1))-(D2*y(5))-(D3*y(9))-(H^2);
y(4);
(R*y(4))-((D30-(1i*(H^2)))*y(3))-(D2*y(7))-(D3*y(11))-(H^2);
y(6);
(1/(D5-D4))*((R*y(6))+(D31*y(5))-(Ec*(y(2)^2))-(D32*(y(1)^2))-(D8*y(6)*y(10))-(D9*(y(6)^2)));
y(8);
(1/(D5-D4))*((R*y(8))+((D31+(1i*(H^2)))*y(7))-(2*Ec*y(4)*y(2))-(2*D32*y(1)*y(3))-(D8*((y(10)*y(8))+((y(6)*y(12)))))-(2*D9*y(6)*y*(8)));
y(10);
(D11*y(10))+(D13*y(9))-(D12*((1/(D5-D4))*((R*y(6))+(D31*y(5))-(Ec*(y(2)^2))-(D32*(y(1)^2))-(D8*y(6)*y(10))-(D9*(y(6)^2)))))+(D14);
y(12);
(D11*y(12))+((D13+(1i*D10))*y(11))-(D12*((1/(D5-D4))*((R*y(8))+((D31+(1i*(H^2)))*y(7))-(2*Ec*y(4)*y(2))-(2*D32*y(1)*y(3))-(D8*((y(10)*y(8))+((y(6)*y(12)))))-(2*D9*y(6)*y*(8)))))
];
end
end
function res = bc(YL,YR,p)
B = p(23);
m = p(9)/p(2);
k2 = p(4)/p(11);
Db = p(42);
res = [YL(1,1) % u10(0)=0
YL(3,1) % u11(0)=0
YL(5,1) % T10(0)=0
YL(7,1) % T11(0)=0
YL(9,1) % Phi(0)=0
YL(11,1) % Phi(0)=0
YR(1,1)-YL(1,2) % u20(0.4)=u10(0.4)
YR(3,1)-YL(3,2) % u21(0.4)=u11(0.4)
YR(1,2)-YL(1,3) % u30(0.8)=u20(0.8)
YR(3,2)-YL(3,3) % u31(0.8)=u21(0.8)
YR(5,1)-YL(5,2) % T20(0.4)=T10(0.4)
YR(7,1)-YL(7,2) % T21(0.4)=T11(0.4)
YR(5,2)-YL(5,3) % T30(0.8)=T20(0.8)
YR(7,2)-YL(7,3) % T31(0.8)=T21(0.8)
YR(9,1)-YL(9,2) % P20(0.4)=P10(0.4)
YR(11,1)-YL(11,2) % P21(0.4)=P11(0.4)
YR(9,2)-YL(9,3) % P30(0.8)=P20(0.8)
YR(11,2)-YL(11,3) % P31(0.8)=P21(0.8)
(m*((B+1)/B))*YR(2,1)-YL(2,2) % m*(1+(1/b))*u20'(0.4)=u10'(0.4)
(m*((B+1)/B))*YR(4,1)-YL(4,2) % m*(1+(1/b))*u21'(0.4)=u11'(0.4)
YR(2,2)-((m*((B+1)/B))*YL(2,3)) % m*(1+(1/b))*u20'(0.8)=u30'(0.8)
YR(4,2)-((m*((B+1)/B))*YL(4,3)) % m*(1+(1/b))*u21'(0.8)=u31'(0.8)
YR(6,1)-(k2*YL(6,2)) % T20'[0.4]=k*T10'[0.4]
YR(8,1)-(k2*YL(8,2)) % T21'[0.4]=k*T11'[0.4]
(k2*YR(6,2))-(YL(6,3)) % k*T30'[0.8]=T20'[0.8]
(k2*YR(8,2))-(YL(8,3)) % k*T31'[0.8]=T21'[0.8]
YR(10,1)-(Db*YL(10,2)) % P20'[0.4]=Db*P10'[0.4]
YR(12,1)-(Db*YL(12,2)) % P21'[0.4]=Db*P11'[0.4]
(Db*YR(10,2))-(YL(10,3)) % Db*P30'[0.8]=P20'[0.8]
(Db*YR(12,2))-(YL(12,3)) % Db*T31'[0.8]=P21'[0.8]
YR(1,3) % u30(1)=0
YR(3,3) % u31(1)=0
YR(5,3) % T30(1)=0
YR(7,3) % T31(1)=0
YR(9,3) % Phi30(1)=0
YR(11,3) % Phi31(1)=0
];
end
0 Kommentare
Antworten (1)
Torsten
am 5 Feb. 2023
Bearbeitet: Torsten
am 5 Feb. 2023
You didn't try to understand the code I provided for the similar problem, did you ?
You still supply 6 initial conditions although you have to supply 12.
You still add the equation numbers for the different regions although they have to start with 1 in every region and go up until 12. Your method gives you a numbering up to 12 + 12 + 12 = 36 (1-12, 13-24, 25-36) for the equation numbers within the regions, although the index should only run from 1-12 in every region (1-12, 1-12, 1-12).
16 Kommentare
Torsten
am 15 Feb. 2023
x = 1 does not exist in the above expression. You wanted to restrict y to the first region, and this region ends at x = 0.4.
Use "deval" to evaluate the solution at certain x-values:
x = 1;
y = deval(sol,x)
Siehe auch
Kategorien
Mehr zu Boundary Value Problems finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!