For those without access to WolframAlpha's step-by-step solution (which I have by virtue of our Mathematica site license), I'll paste it in here:
Note that they haven't addressed the "numerical methods" question directly here: the step-by-step solution for the definite integral is given as (1) use a substitution to do the indefinite integral, (2) plug in the upper & lower limits, (3) subtract. That is, apply the standard analytic methods, including the fundamental theorem of calculus.
Now there is also mention of doing "a series expansion of the integral at a=0", and the Taylor series is shown up to O(a^5). This amounts to doing the series expansion of the integrand e^(-(a t)) about (a t) = 0, then taking the definite integral of each term, and simplifying slightly. If this is the "textbook answer" for the numerical question that John refers to, I only point out that if 0 << a t1, taking only 5 terms in the series expansion may not get us very close to the correct answer, and each term may involve significant errors due to subtracting large quantities: a^n (t2^n - t1^n).
Gut feel without thinking much further: could we do a series expansion about the midpoint in time? (t1+t2)/2 Hmmm, the integrand is, after all, an exponential, and so highly non-linear, meaning that half-way is a little better than expanding about (a t) = 0, but not much. So, for a>0, do the expansion about t = t2 (the larger of the two limits, then integrate using Simpson's method or one if its improved numerical successors, such as Romberg's method.
From: Phys-l <email@example.com> On Behalf Of John Denker via Phys-l
Sent: Tuesday, 5 October, 2021 12:19 AM
To: Forum for Physics Educators <Phys-L@Phys-L.org>
Cc: John Denker <firstname.lastname@example.org>
Subject: [Phys-L] numerical methods
[External sender. Exercise caution.]
Hi Folks --
This is relevant to measuring radioactive decays ... and to many other things. Very very many.
Consider the definite integral of exp(-a t) dt from t1 to t2.
Now explain why that is *not* the formula that I use in my software.
What is the smart way of doing it?
I'll post my answer tomorrow, if nobody nails it before then.
The usual jsd puzzle rules apply. Everything I've said is true to the best of my knowledge. Probably even helpful. No word games. There are undoubtedly more than one right answer, but I expect everybody will agree my answer is as good as any, and vastly better than the "textbook" answer.