Here's how I would approach that problem. You have a positive integrand. Therefore, is a monotone increasing function of . Find a such that the integral is larger than the desired . Then utilize a bisection algorithm:

1. Split the interval in two equal pieces.

2. Evaluate the integral

3. If the integral is larger than the desired L, then split the first subinterval in two. Otherwise, split the second subinterval in two.

4. Repeat steps 2 and 3 with the new interval midpoint as the upper limit of integration, continually subdividing and checking your integrals until the results differ by less than a pre-determined tolerance. Then you're done.

Example: Desired Tolerance in the value of L = 0.001.

Note that

1. Subdivide into and

2. Evaluate . We get

3. This value is greater than the desired L. Split into and

2'. Evaluate . We get

3'. Split into and .

2''. Evaluate We get

3''. Split into and .

2'''. Evaluate We get

3'''. Split into and

2''''. Evaluate We get

3''''. Split into and .

2'''''. Evaluate We get

3'''''. Split into and

2''''''. Evaluate We get

3''''''. Split into and

2'''''''. Evaluate We get

3'''''''. Split into and

2''''''''. Evaluate We get

3''''''''. Split into and

2'''''''''. Evaluate We get The error, which I've been checking as I go, is now less than the specified tolerance. We therefore pick

You can see that our algorithm converged to an acceptable answer (meaning, within tolerance) after 9 iterations. It is also possible to specify the tolerance on the value of . I'm uncomfortable with that, because you then don't know if the value of the arc length corresponding to the b you found is really all that close. With the tolerance on the L values, you know that your value of b produces an arc length that's as close as you want it to be.

All of this can be easily coded up in Mathematica or MATLAB, and I would think you'd be able to run the algorithm and get its answer in seconds at most.