Efficient numerical solution for $x$ in $\int_0^a \frac{f(t)}{x - f(t)} \, \mathrm{d}t = b$

46 Views Asked by At

I'm looking to numerically solve an integral equation in the form

$$\int_0^a \frac{f(t)}{x - f(t)} \, \mathrm{d}t = b$$

where $x$ is the unknown constant to be solved, $f(t)$ is a known arbitrary function, and $a$ and $b$ are given constants. (In my case, information on $f(t)$ is provided as a sampled array: $f(t)$ has been sampled at discrete points in the domain $[t]_j$ to obtain an array $[f]_j = f([t]_j)$).

My initial reaction is to estimate a value for $x$, numerically evaluate the integral, and inspect the difference between both sides of the equation, using a golden section search to refine the estimate. However, this would involve evaluating a relatively large number of integrals before settling on a solution within desired tolerances.

Is there a more computationally efficient approach to solving this? Something that takes advantage of the particular form of the equation? The holy grail would be a direct method as opposed to an iterative one, but I suspect this might not exist!

1

There are 1 best solutions below

1
On BEST ANSWER

One thought: You could (assuming $f$ is nice, or that your approximation to it is nice) take the expression $$ H(x) = \int_0^a \frac{f(t)}{x - f(t)} \, \mathrm{d}t $$ and compute its derivative: $$ H'(x) = \int_0^a \frac{-f(t)}{(x - f(t))^2} \, \mathrm{d}t $$ which you can compute using the same numerical method you used to compute $H$ (at some point $x_0$) and then use a Newton's-method approach to finding the zero, i.e., roughly:

  1. pick some $x_0$ that's nearly right
  2. Compute $H(x_0), H'(x_0)$
  3. Let $x_1 = x_0 - \frac{H(x_0)}{H'(x_0)}$
  4. Use $x_1$ as the new $x_0$ and go to step 2

Presumably estimating $H'(x_0)$ will involve very little additional work, as long as you're already doing an iterative calculation of $H(x_0)$, which involves all the same numbers.