First time here? Check out the FAQ!

Ask Your Question
1

Simplify exponentials

asked 12 years ago

calc314 gravatar image

I'm using Sage to check the initial condition for a solution to the advection-diffusion equation. Here the initial condition is checked using a limit whose result should be zero. But, Sage gives the difference of two equivalent exponentials and leaves it without simplifying to zero. These exponentials only differ in that one has a 1/10 in it and one has a 0.1.

Here is the code:

var('u,x,t')
erfc(x) = 1-erf(x)
k=0.03
D=0.3
C=2.
u(x,t) = C*1/2*(erfc((x-k*t)/sqrt(4*D*t))+exp(x*k/D)*erfc((x+k*t)/sqrt(4*D*t)))
assume(x>0)
ans=limit(u(x,t),t=0,dir='+')
print ans.simplify_full()

The result is:

-e^(1/10*x) + e^(0.1*x)

Any advice on how to get this to simplify to zero?

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
0

answered 12 years ago

ndomes gravatar image

What's about this version:

var('u,x,t')
erfc(x) = 1-erf(x)
k=3/100
D=3/10
C=2
u(x,t) = C*1/2*(erfc((x-k*t)/sqrt(4*D*t))+exp(x*k/D)*erfc((x+k*t)/sqrt(4*D*t)))
assume(x>0)
ans=limit(u(x,t),t=0,dir='+')
print ans.simplify_full()
Preview: (hide)
link

Comments

That certainly works, even without calling simplify_full. But, why is it that we cannot mix rationals and floats? Moreover, when I just type in "-e^(1/10*x) + e^(0.1*x)", Sage computes the result to be zero. So, why does Sage simplify this automatically sometimes and sometimes not?

calc314 gravatar imagecalc314 ( 12 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 12 years ago

Seen: 514 times

Last updated: May 25 '12