Ask Your Question
1

Simplify exponentials

asked 2012-05-25 17:17:51 +0100

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?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2012-05-25 17:46:42 +0100

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()
edit flag offensive delete link more

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 ( 2012-05-26 09:13:39 +0100 )edit

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: 2012-05-25 17:17:51 +0100

Seen: 487 times

Last updated: May 25 '12