![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1369004/image.png)
Find integrand function from a convolution integral whose result is known
4 次查看(过去 30 天)
显示 更早的评论
Hello
I have this convolution integral: ∫[0,t] μ(t-τ)*(dy^(3/2) (τ))/dτ dτ (so a definite integral between 0 and t).
From a balance of forces I know the result of this integral, let's say by way of example that the equilibrium is:
M*y''(t) + K*y(t) = ∫[0,t] μ(t-τ)*(dy^(3/2) (τ))/dτ dτ
And I know the paremeters M, K and the variable y(t) (not as a continuous function but I know the values of y for a discrete vector time t). So, basically, I know everything from that equation except for the function μ(t), which is what I want to know.
Since in the convolution integral there is "(dy^(3/2) (τ))/dτ" which is a non linear function, I cannot use the Laplace trasform to invert the problem and easily find μ(t).
So the unique option is to solve it numerically and here is my problem: I don't know how to solve this prolem numerically and find μ(t), is there a matlab command that does this? Do you have any other suggestions?
To summarize and clarify therefore: I know the result (discretized as a function of the time vector) of the convolution integral, I know the function y(t) and I want to get the function μ(t), how can this be done?
Thank you!
9 个评论
John D'Errico
2023-4-29
编辑:John D'Errico
2023-4-29
Yes. In fact, this is certainly the approach I would try.
I don't know the domain, so I could not guess the proper family of functions for mu I would choose. It could be Legendre polynomials. It could be a trig series. It could be Bessel functions. In fact, I'd bet you could do this with a chebfun series, and it would be a breeze to write. Sadly, I lack expertise in using that toolbox, though it is high on my to do list. I would NOT try it using simple polynomials, because they will cause numerical problems. But again, the domain will be highly important. (My advice is to try chebfun. In fact, I did a quick online search for how to solve such a problem, and chebfun was one of the most common hits I saw.)
What order spline would I use for y(t)? I'd start with a cubic spline. They are easy to use an manipulate. Easy to differentiate. The same applies to a higher order spline. You can build that using the splines tools in MATLAB, and operate on them as easily.
Ok, I'll also admit that chebfun might be an option to model y(t). Again, I don't know the real capabilities of chebfun. But then the whole process becomes yet more easy. (I'm really making a big case for me to spend serious time learning chebfun. UGH.)
Note that IF there is noise in y(t), then you may be in deep trouble, as the deconvolution process will probably be ill-posed, in the sense that it will amplify that noise. This is a characteristic of integral equations. They are noise amplifiers.
Without seeing any data, I can only suggest what I would try as my first and best shot. Note that my suggestion is a (relatively) easy one to implement.
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Splines 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!