How to solve for unknown function in integral equation?

37 vues (au cours des 30 derniers jours)
Laila Voss
Laila Voss le 19 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!
  3 commentaires
Laila Voss
Laila Voss le 19 Jan 2022
@Torsten As functions, sorry for not specifying!
John D'Errico
John D'Errico le 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.

Connectez-vous pour commenter.

Réponses (2)

Torsten
Torsten le 19 Jan 2022
Modifié(e) : Torsten le 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 commentaires
John D'Errico
John D'Errico le 19 Jan 2022
It might indeed have problems. Note that the integral goes to infinity, so trapz may have problems. As well, these problems are often ill-posed. So the approximation of a trapezoidal rule can be an issue.
Torsten
Torsten le 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).

Connectez-vous pour commenter.


John D'Errico
John D'Errico le 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 commentaires
Laila Voss
Laila Voss le 20 Jan 2022
Thank you!
Bjorn Gustavsson
Bjorn Gustavsson le 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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Numerical Integration and Differentiation dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by