How to find Jacobian of a vector field given as a dataset?

18 次查看(过去 30 天)
I have a dataset given in 3x 1 x m x n x l. 3x1 vector at each point of m x n x l 3D tensor holds the velocity vector [u,v,w]. How do I estimate the Jacobian matrix at each point?
  7 个评论
Mirlan Karimov
Mirlan Karimov 2020-6-12
Alex, the domain is fixed.
Yes, I found that velocity gradient as a term is quite confusing. As you noted, the gradient well suits the situations where there is deformation and we measure at each point how the point moves.
Anyway, my method works correctly as I benchmarked it with a data set generated from an analytical velocity field. I just wanted to know if there is a better way of doing this.
J. Alex Lee
J. Alex Lee 2020-6-12
编辑:J. Alex Lee 2020-6-12
Great, glad that you have a working method!
Just to note that I don't think "velocity gradient" is confusing at all...I think "deformation gradient" could potentially be confusing.
Back to the actual question at hand:
I think your method is as good as can be unless you want to try to compute with higher accuracy finite differences (TMW's gradient() function uses central differences; docs also state that edge gradients are approximated by one-sided differences, which are only 1st order accurate). Added effort for higher "accuracy" would probably go to waste unless your velocities were computed using similarly accurate FDs (if you method is based on FD).
If you're extracting the nodal solutions from an FEM-based code (I've seen it before on Answers), you might be better off computing the gradients within the FEM framework and exporting it, if you have control over that.

请先登录,再进行评论。

回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by