# How to solve for unknown function in integral equation?

28 views (last 30 days)
Laila Voss on 19 Jan 2022
Commented: Bjorn Gustavsson on 21 Jan 2022
Hello,
I am trying to write code to solve the following integral equation: Here, and are both known, and I would like to numerically find out what is. Can anyone help?
Thanks!
John D'Errico on 19 Jan 2022
You want to numerically solve for g(n), as a function? This can be sometimes difficult, but not always. The usual name given to the general problem is an inhomogeneous Fredholm integral equation (of the first kind).
A common class of solutions lies in the form of the Laplace transform, which you should recognize as a spcial case of the general problem you want to solve.
Another special case lies in the form of convolution/deconvolution problems, which should also be seen to be a special case.
You can even see similar problems arise from Fourier transforms, though over a different domain.
I would strongly recommend you do some reading before you even think about writing any code.

Torsten on 19 Jan 2022
Edited: Torsten on 19 Jan 2022
One (maybe naive) approach:
Choose
0=n(1)<n(2)< ... <n(K)< oo
and
z(1),...,z(K)
Then use linsolve to solve the linear system of equations
h0(z(i)) - trapz(n,g(z(i),n).*f) = 0 (i=1,...,K)
for the unknown vector f=(f(1),...,f(K)).
##### 2 CommentsShowHide 1 older comment
Torsten on 19 Jan 2022
You are right, but it's a starting point.
In principle this is what
suggests as numerical method (in general with a more complex quadrature rule than trapz, I guess).

John D'Errico on 19 Jan 2022
One idea can lie in the use of a family of functions the decompose the unknown f. Choose an orthogonal family over the chosen domain, so 0 to infinity in this case. That may mean Bessel functions. It may mean something like Laguerre polynomials. That is, we can write the integral in a form like
intt(K*f*dt) = int(K*exp(-t)*exp(t)*sum(a_i*p_i(t))*dt)
that is, if the polynomials P_i are Laguerre polynomials, they will be orthogonal with the inclusion of that exp(-t) in that Kernel. So now you write f(t) as a sum of the form
f(t) = sum(a_i*p_i(t))
This will work if that exp(t) term can be neatly absorbed into K.
How does this help? You will need to use a finite number of terms in that sum of course. But the integral and the sum can exchange places. And now you can try to solve for the unknown constants a_i.
The above are standard solution methods for this class of problems, though it has been many years since I worried about them.
Again, as I said before, you will need to do some reading, or spend some time talking to someone with expertise in these solutions.
##### 2 CommentsShowHide 1 older comment
Bjorn Gustavsson on 21 Jan 2022
When chosing the basis-functions you should really think about the kernel g - that might give you a set of basis-functions that are ortogonal with that weighting. This would be a very practical set to use as far as I recall.
If you're lucky you might find some variable-transform that could convert your interval into a finite range and simultaneously get a kernel/weighting-function that has a known series of orthogonal basis-functions.

R2021a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!