matching_asymp_example.mw

 > restart;

 > f := (t,epsilon) -> (1 - a)*(1 - exp(-t/epsilon)) / (1 - exp(-1/epsilon)) + a*t; yout0 := (t,epsilon) -> 1 - a + a*t; Yin0 := (tau, epsilon) -> (1 - a)*(1 - exp(-tau)); f0 := (t,epsilon) -> a*t + (1-a)*(1-exp(-t/epsilon));

 (1)

is the solution to the BVP is the zeroth order term of the outer expansion. is the zeroth order term of the inner expansion (we take from the zeroth order matching condition). is the zeroth order uniform approximation that we find by matching.

is the naïve approximation near 0 that we get by taking and using the inner boundary condition,

 > a:=1/2: eps := 0.02: plot([f(t,eps),a*t,yout0(t,eps),Yin0(t/eps,eps)],t=0..1); plot([f(t,eps),a*t,yout0(t,eps),Yin0(t/eps,eps),f0(t,eps)],t=0..1);

 > a:=1/2: eps := 0.3: plot([f(t,eps),a*t,yout0(t,eps),Yin0(t/eps,eps)],t=0..1); plot([f(t,eps),a*t,yout0(t,eps),Yin0(t/eps,eps),f0(t,eps)],t=0..1);

For this problem,

We find that and and all subsequent terms are the same. This doesn't happen in general.

 > yout1 := (t,epsilon) -> 1 - a + a*t; Yin1 := (tau, epsilon) -> (1 - a)*(1 - exp(-tau)) + a*tau*epsilon; f1 := (t,epsilon) -> a*t + (1-a)*(1-exp(-t/epsilon)) + epsilon*0;

 (2)

 >