10 votes

Why not use the convolution theorem for explicit timestepping?

This is a linear PDE, and so while this technique works here, it would not work for any nonlinear PDE. Often times when people are solving these equations it is to get experience with common solution ...
EMP's user avatar
  • 2,079
7 votes
Accepted

How to plan convoluted measurements

What you have is an "inverse problem": You are trying to recover something (in your case, the function $f(x)$) from indirect and potentially noisy measurements (namely, the convolved data). ...
Wolfgang Bangerth's user avatar
5 votes

Why not use the convolution theorem for explicit timestepping?

For the linear, constant coefficient advection equation on a torus, one can simply use the exact solution. So there are no "popular" numerical methods for this problem.
David Ketcheson's user avatar
4 votes

Problem implementing convolutions exactly with the FFT

It looks to me that the FFT convolution algorithm is doing what is expected here. Remember that you work with discretized signals, and therefore, discretized convolution. There are a few ways to ...
QuantumApple's user avatar
4 votes

What's the relationship of machine learning and mechanical simulation?

Your question is a bit broad, I think. Lacking concreteness, I would give a high-level overview. Terms that you can search for are in italics. Machine learning is a huge field, that includes many ...
Zoltan Csati's user avatar
4 votes

Convolute a gaussian kernel with a large array of off-grid centroids without looping? (how to make "A Thousand (Gaussian) Points of Light" )

If you simply want to compute the convolution you can construct a Kernel matrix for computation with arbitrary arrangements of Gaussians that do not lie on grid points of the domain where you want to ...
Ron's user avatar
  • 725
3 votes

Why not use the convolution theorem for explicit timestepping?

Reharding the question in the comment: After discretization you get a system of the form $ \partial_t C = (M_x + M_y) C $ where $M_x$ and $M_y$ are commuting matrices obtained by discretizing the time-...
davidhigh's user avatar
  • 3,127
2 votes
Accepted

Convolute a gaussian kernel with a large array of off-grid centroids without looping? (how to make "A Thousand (Gaussian) Points of Light" )

The classical way to do this fast for arbitrary collections of "source" and "target" points is to use a fast multipole-type algorithm called the Fast Gauss Transform, developed by ...
coolguy1000000's user avatar
2 votes

Convolute a gaussian kernel with a large array of off-grid centroids without looping? (how to make "A Thousand (Gaussian) Points of Light" )

Approximately implementing @Ron's answer in Python the key is img = (A * weights).sum(axis=2) which of course is a loop but it's done in the compiled code that ...
uhoh's user avatar
  • 1,038
2 votes

Convolution in Python

I think that you can use convolve() from scipy.signal. As mentioned in a previous question, you can take advantage that the ...
nicoguaro's user avatar
  • 8,490
2 votes
Accepted

Computation of triple nested loops as a convolution product?

Let us write it as \begin{equation} A_j = \sum_{l'=1}^{NL} S_{jl'}L_{l'} \end{equation} Where \begin{equation} S_{jl'} = \sum_{k= 0}^{K-1}[T_k\epsilon_{l'\text{mod} R,k}]e^{2\pi i \frac{k}{K}j} \...
Ian Bush's user avatar
  • 591
2 votes

Calculating the Convolution Using DFT (FFT)

You need to pay attention that unless properly padded the Multiplication in the Frequency Domain (DFT) applies Circular Convolution while you're after Linear Convolution. For practical examples and ...
Royi's user avatar
  • 332
2 votes

How to generate the convolution of f(x, y) with a parametric function g(t), x(t), y(t) in Python? (Something better than this brute-force sum)

Not stating that this approach is faster, but maybe it inspires you or someone else. The conventional approach in here was certainly faster compared to my implementation of the approach outlined below....
Ron's user avatar
  • 725
2 votes

How to plan convoluted measurements

you say you don't know the exact shape of f(x) but then you describe it as a Gaussian. Is f(x) LTI? If so, why not make many measurements and estimate the critical parameters which describe a Gaussian,...
user7257's user avatar
  • 414
2 votes

Computing convolution on non-uniform sample

After briefly reading the user manual of NUFFT you simply have to choose both variants I and II as forward and backward transformation. With this you can proceed in a similar way as having uniformal ...
ConvexHull's user avatar
  • 1,290
1 vote

Padding length and error analysis of discrete convolution by FFT

The fourier transform is only (strictly) applicable on periodic and continuous functions. Depending on your data in the two arrays, they might be a good approximation to a periodic signal when they ...
MPIchael's user avatar
  • 2,862
1 vote
Accepted

Compute efficiently a 1D function relying on a 2D convolution

I didn't manage to find a suitable formulation for the diagonal. But doing the convolution of the column then the convolution of the rows was enough computation time gain for me ...
Bast's user avatar
  • 11
1 vote

Convolution in Python

That depends on what kind of integral transform you are looking at. Your comments suggest that you are looking at a Fourier transform specifically, so I would recommend the FFT implementation of ...
123's user avatar
  • 206
1 vote

Accelerating Conjugate Gradients fitting for small localized kernel (like cubic B-spline)

You certainly can try using Gauss-Seidel based preconditioning that is relatively easy to construct and is cheap enough (by my assessment) to give it a try. Other choices of algebraic preconditioners ...
Anton Menshov's user avatar
  • 8,652

Only top scored, non community-wiki answers of a minimum length are eligible