How to solve for unknown function in integral equation?
29 次查看(过去 30 天)
显示 更早的评论
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 个评论
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
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
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
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
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 个评论
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.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!