How to solve for unknown function in integral equation?

조회 수: 28 (최근 30일)
Laila Voss
Laila Voss 2022년 1월 19일
댓글: Bjorn Gustavsson 2022년 1월 21일
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
Laila Voss
Laila Voss 2022년 1월 19일
@Torsten As functions, sorry for not specifying!
John D'Errico
John D'Errico 2022년 1월 19일
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
John D'Errico
John D'Errico 2022년 1월 19일
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 2022년 1월 19일
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일
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
Laila Voss
Laila Voss 2022년 1월 20일
Thank you!
Bjorn Gustavsson
Bjorn Gustavsson 2022년 1월 21일
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.

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

카테고리

Help CenterFile Exchange에서 Numerical Integration and Differentiation에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by