- #1

- 255

- 37

## Summary:

- I would like to compute the approximate speed of travelling waves in 2 dimensions using MATLAB.

I have a 2-dimensionsal smooth function ##f(x,y,t)##. There may be multiple travelling waves across the domain. None of them are precisely travelling waves (the shape of the wave changes as it travels). Here is how one of these waves would look in 1-dimension:

I want to find the speed of these waves using MATLAB. (The function is just stored as a matrix of values). I was thinking of applying the wave equation $$\text{squared error}=(\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}-\frac{1}{v^2} \frac{\partial^2 f}{\partial t^2})^2$$ It would be an optimization problem where I find ##v## which minimizes the squared error.

I would also like to find the local speed at different ##<x,y>## values. I imagine I could do the same procedure but in a local region around that coordinate.

Would this be a reasonable approach? Would there be way of doing this efficiently? Are there better approaches?

EDIT: I'm only looking for travelling waves like the one sketched above, where there is a change from a lower value to a higher value. Could I use that to make the problem simpler?

I want to find the speed of these waves using MATLAB. (The function is just stored as a matrix of values). I was thinking of applying the wave equation $$\text{squared error}=(\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}-\frac{1}{v^2} \frac{\partial^2 f}{\partial t^2})^2$$ It would be an optimization problem where I find ##v## which minimizes the squared error.

I would also like to find the local speed at different ##<x,y>## values. I imagine I could do the same procedure but in a local region around that coordinate.

Would this be a reasonable approach? Would there be way of doing this efficiently? Are there better approaches?

EDIT: I'm only looking for travelling waves like the one sketched above, where there is a change from a lower value to a higher value. Could I use that to make the problem simpler?

Last edited: