How to solve for unknown function in integral equation?

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

In which form are h0 and g known ? As functions ? As discrete data ?
@Torsten As functions, sorry for not specifying!
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.

댓글을 달려면 로그인하십시오.

답변 (2개)

Torsten
Torsten 2022년 1월 19일
편집: Torsten 2022년 1월 19일
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

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.
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
John D'Errico 2022년 1월 19일

0 개 추천

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

Thank you!
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.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Numerical Integration and Differentiation에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2022년 1월 19일

댓글:

2022년 1월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by