samiyare

195 Reputation

9 Badges

14 years, 78 days

 

Amir

MaplePrimes Activity


These are replies submitted by samiyare

@Preben Alsholm 

yes. it works very well.

 Thanks for your patience. 

@Preben Alsholm 

yes. it works very well.

 Thanks for your patience. 

@Preben Alsholm 

Dear Preben Alsholm

thanks for your answer.like other answers i get from you it is good without doubt.

but fsolve is a little inefficient (get long tims) i think. i try it with some parameters that i know the answer.

with this command

fsolve({pC(c1,t1),pT(c1,t1)},{c1=-5.55..-5.3,t1=-.67..-0.66});

but it takes long times (30s). as you can see the domain [-5.55..-5.3] and [-.67..-0.66] is little and 30s is very long for this. for the some parameters that i dont know the solution i must increase the domain and it takes a long time. i want to know is there another idea, that gets less time, or parallel fsolve or ...

 

thanks for your attention in advance

@Preben Alsholm 

Dear Preben Alsholm

thanks for your answer.like other answers i get from you it is good without doubt.

but fsolve is a little inefficient (get long tims) i think. i try it with some parameters that i know the answer.

with this command

fsolve({pC(c1,t1),pT(c1,t1)},{c1=-5.55..-5.3,t1=-.67..-0.66});

but it takes long times (30s). as you can see the domain [-5.55..-5.3] and [-.67..-0.66] is little and 30s is very long for this. for the some parameters that i dont know the solution i must increase the domain and it takes a long time. i want to know is there another idea, that gets less time, or parallel fsolve or ...

 

thanks for your attention in advance

@Markiyan Hirnyk 

hi

in the hedayati's problem -6 stands for -b. the actual differential equations is

diff(F(x), x, x, x)+27*F(x)*(diff(F(x), x, x)=0

 F(-infinity) = 0, (D(F))(-infinity) = 0,   F' (infinity)=14.8

this is the boundary layer equation (mixing layer) in fluid mechanics. for solving this kind of problems systematically we set

infinity=10 (for example) and solve the problem. then set infinity=8 and check that results is the same. in other words the infnity=8 is the far field boundary condition. so, in famous blasius equation when your algorithm get the true answer. but in hedayati's problem when you change b, the starting point (in your code b=-6) changed, so the solution change.

for better understand, first run the code i send you for blasius equation and run it. then set b=10 or 12 and reu it again. the results is the same. but in hedayati's equations when you change b=8, the starting point (x=-8) is changes. i must be mentioned that, in your recent reply, you changes b but doesnt changed starting point (-6). in the following i changes your code to hedayati's problem, it must worked and get the same results with b=6,8,10 . but it doesnt

restart:  b:=8:
sol := dsolve({diff(F(x), x, x, x)+27*F(x)*(diff(F(x), x, x)) = 0,
 F(-b) = 0, (D(F))(-b) = 0, (D(D(F)))(-b) = a}, numeric, parameters = [a]);
#Now we write a procedure for calculation F'(b) with the parameters a:=t.
SOL := proc (t) sol(parameters = [t]); rhs(sol(b)[3]) end proc;
#Plot
plot(SOL,0..1);
# helps to find
 a := fsolve('SOL(t) = .148', t = 0.0 .. 0.2);
#At last,
 sol(parameters = [a]):
 plots:-odeplot(sol, -b .. b);
 plots:-odeplot(sol, [x, diff(F(x), x)], -b .. b);

but when you run blasius equations you see

 

where all figure are coincident in every point. so i can say that your solution depend on the value of b but it shouldnt. i almost sure that the solution is in the form of erf function like this (erf(x)+1)

so, as you can see, D@2 at x=-b (or s=-infinity) is zero. so your algorithm that find the D@2=/0 can not solve this problem, so i think the algorithm must be changed. but i dont have any idea!

thanks for your attention in advance

@Markiyan Hirnyk 

hi

in the hedayati's problem -6 stands for -b. the actual differential equations is

diff(F(x), x, x, x)+27*F(x)*(diff(F(x), x, x)=0

 F(-infinity) = 0, (D(F))(-infinity) = 0,   F' (infinity)=14.8

this is the boundary layer equation (mixing layer) in fluid mechanics. for solving this kind of problems systematically we set

infinity=10 (for example) and solve the problem. then set infinity=8 and check that results is the same. in other words the infnity=8 is the far field boundary condition. so, in famous blasius equation when your algorithm get the true answer. but in hedayati's problem when you change b, the starting point (in your code b=-6) changed, so the solution change.

for better understand, first run the code i send you for blasius equation and run it. then set b=10 or 12 and reu it again. the results is the same. but in hedayati's equations when you change b=8, the starting point (x=-8) is changes. i must be mentioned that, in your recent reply, you changes b but doesnt changed starting point (-6). in the following i changes your code to hedayati's problem, it must worked and get the same results with b=6,8,10 . but it doesnt

restart:  b:=8:
sol := dsolve({diff(F(x), x, x, x)+27*F(x)*(diff(F(x), x, x)) = 0,
 F(-b) = 0, (D(F))(-b) = 0, (D(D(F)))(-b) = a}, numeric, parameters = [a]);
#Now we write a procedure for calculation F'(b) with the parameters a:=t.
SOL := proc (t) sol(parameters = [t]); rhs(sol(b)[3]) end proc;
#Plot
plot(SOL,0..1);
# helps to find
 a := fsolve('SOL(t) = .148', t = 0.0 .. 0.2);
#At last,
 sol(parameters = [a]):
 plots:-odeplot(sol, -b .. b);
 plots:-odeplot(sol, [x, diff(F(x), x)], -b .. b);

but when you run blasius equations you see

 

where all figure are coincident in every point. so i can say that your solution depend on the value of b but it shouldnt. i almost sure that the solution is in the form of erf function like this (erf(x)+1)

so, as you can see, D@2 at x=-b (or s=-infinity) is zero. so your algorithm that find the D@2=/0 can not solve this problem, so i think the algorithm must be changed. but i dont have any idea!

thanks for your attention in advance

hi

this is the equation of a boundary layer. so the D@2 in x=-6 and x=+6 must be zero. and also x=-6 (x=-infinity and x=6 stands for x=infinity) is the simple form of x=infinity in boundary layer theory. for example consider the famous blasius equation

diff(F(x), x, x, x)+F(x)*(diff(F(x), x, x)=0

F(0) = 0, (D(F))(0) = 0, D(F(infinity)) = 1

for solving following equation i use your algorithm and set infinity=6 and it works very well. one of validation of the results is when infinity = 10 or infinity =12 the solution doesnt change. but in the orginal question when you change b=6 to b=8 the solution changes. i dont know how i can fix it.

for better understand your algorithm for blasius equation is

restart: b:=6:
sol := dsolve({diff(F(x), x, x, x)+F(x)*(diff(F(x), x, x)) = 0,
 F(0) = 0, (D(F))(0) = 0, (D(D(F)))(0) = a}, numeric, parameters = [a]);
#Now write a procedure for calculation F'(6) with the parameters a:=t.
  SOL := proc (t) sol(parameters = [t]); rhs(sol(b)[3]) end proc;
#Plot
 plot(SOL,0..1);
 #helps to find
 a := fsolve('SOL(t) = 1', t = 0 .. 2);
#At last,
  sol(parameters = [a]):
 plots:-odeplot(sol, 0 .. b);
 plots:-odeplot(sol, [x, diff(F(x), x)], 0 .. b);

in above when you change b=6 to b=10 the solution doesnt change, but in the hedayati's question it changes. i think your algorith must be revised.


thanks for your attention in advance

hi

this is the equation of a boundary layer. so the D@2 in x=-6 and x=+6 must be zero. and also x=-6 (x=-infinity and x=6 stands for x=infinity) is the simple form of x=infinity in boundary layer theory. for example consider the famous blasius equation

diff(F(x), x, x, x)+F(x)*(diff(F(x), x, x)=0

F(0) = 0, (D(F))(0) = 0, D(F(infinity)) = 1

for solving following equation i use your algorithm and set infinity=6 and it works very well. one of validation of the results is when infinity = 10 or infinity =12 the solution doesnt change. but in the orginal question when you change b=6 to b=8 the solution changes. i dont know how i can fix it.

for better understand your algorithm for blasius equation is

restart: b:=6:
sol := dsolve({diff(F(x), x, x, x)+F(x)*(diff(F(x), x, x)) = 0,
 F(0) = 0, (D(F))(0) = 0, (D(D(F)))(0) = a}, numeric, parameters = [a]);
#Now write a procedure for calculation F'(6) with the parameters a:=t.
  SOL := proc (t) sol(parameters = [t]); rhs(sol(b)[3]) end proc;
#Plot
 plot(SOL,0..1);
 #helps to find
 a := fsolve('SOL(t) = 1', t = 0 .. 2);
#At last,
  sol(parameters = [a]):
 plots:-odeplot(sol, 0 .. b);
 plots:-odeplot(sol, [x, diff(F(x), x)], 0 .. b);

in above when you change b=6 to b=10 the solution doesnt change, but in the hedayati's question it changes. i think your algorith must be revised.


thanks for your attention in advance

hi.

i use the previous algorithm and solve the ode system for many parameters. but in some parameters the solution not converge. this is the error

Error, (in dsolve/numeric/BVPSolve) initial Newton iteration is not converging

when it was one ode i use your previous algorithm in

"http://www.mapleprimes.com/questions/133924-Multiple-Solution-For-Ode"

now, with 2 ode i couldnt find the appropriate algorithm to solve it. please help me

 

thanks for your attention in advance

 

hi.

i use the previous algorithm and solve the ode system for many parameters. but in some parameters the solution not converge. this is the error

Error, (in dsolve/numeric/BVPSolve) initial Newton iteration is not converging

when it was one ode i use your previous algorithm in

"http://www.mapleprimes.com/questions/133924-Multiple-Solution-For-Ode"

now, with 2 ode i couldnt find the appropriate algorithm to solve it. please help me

 

thanks for your attention in advance

 

Wow, thanks. it is the best answer i could imagine.

 

 

Wow, thanks. it is the best answer i could imagine.

 

 

thanks for your reply. i like it as a procedure. but i want to know is there any chance to calculate the inverse of L as a procedure. for example if
L:=D

inverse of L, named H is

H:= int

thanks for your attention in advance

3 4 5 6 7 8 9 Page 5 of 9