Reconstruct a scalar field from its gradient
古いコメントを表示
Hi,
I have a cartesian grid over the rectangle [0,N]x[0,M]. In each point of the grid, I know the gradient of a certain scalar field F; that is, I know the derivative of F with respect to x, Fx, and the derivative of F with respect to y, Fy.
The question then is: what is the best way to reconstruct the scalar field F?
Of course, the easiest thing is to integrate by lines: Integrate along a straigth line keeping y fixed (for example) and then integrate along a bunch of perpendicular straigth lines keeping x fixed. But this is quite inefficient and, since this is a numerical problem, the directionality could play (undesirably) an important role (although theoretically, of course, that shouldn't be the case if the gradient truly comes from a scalar field)
So, briefly put: how can I do this in Matlab? Is there a function or subroutine to which I can feed a gradient so that it will return to me the scalar field?
Thank you
3 件のコメント
Jan
2017 年 5 月 4 日
Do you have a reason to claim that "this is quite inefficient"? Are you aware that you cannot reconstruct a scalar field from the gradients, because you will miss the constant factor? Do you have any further information about the field like symmetry, smoothness, discontinuities?
Diego Soler Polo
2017 年 5 月 4 日
編集済み: Diego Soler Polo
2017 年 5 月 4 日
Jan
2017 年 5 月 4 日
Could you post the code, which is too slow currently?
回答 (1 件)
John D'Errico
2017 年 5 月 4 日
編集済み: John D'Errico
2017 年 5 月 4 日
0 投票
Just download my intgrad tools from the FEX. They are designed to recover a scalar field, given gradient information on a regular gridded domain. Of course they allow you to provide the constant of integration, or just assume it is zero.
カテゴリ
ヘルプ センター および File Exchange で Develop Apps Using App Designer についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!