首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算二维和三维网格中的量的导数

计算二维和三维网格中的量的导数
EN

Stack Overflow用户
提问于 2014-01-26 03:20:23
回答 4查看 1.8K关注 0票数 2

我是游戏物理学的新手。我有一个问题,我有一个二维或三维网格。计算单元分别为三角形或四面体。某些物理量,如密度和能量,在细胞中心以细胞为中心的平均值给出。我需要在网格中所有单元的中心计算这些量的梯度。

我知道在1D中,单元格(i)中的量的导数可以通过将相邻单元格(i+1,i-1)中该量的值的差除以它们之间的距离(中心差分公式)来计算。我不明白的是在任意的2D或3D网格上解决这个问题?

我可以参考一些文献,在那里我可以得到这样的数值方法/算法吗?

提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2014-01-26 03:46:27

在考虑网格上的微分运算符时,This paper是一个很好的起点。它没有进入体积网格(如果我记得的话),但这是一个很好的开始。特别是,本文提出了一种合理的选择,从离散微分几何观点(DDG)的顶点分配梯度,您可以使用重心坐标来计算小平面内部的梯度场。

票数 3
EN

Stack Overflow用户

发布于 2014-01-29 19:27:22

多元函数的导数是一个向量。为了简单起见,让我们假设我们正在处理一个2d网格,那么导数就是一个2d向量。为了进一步简化,让我们取位置(x,y)=(0,0)处的导数。要开始,您必须识别所有相邻的单元格,它们的中心为(x1,y1),(x2,y2)...和values z1,z2,...。您也可以根据距离为每个单元格分配一个(非负)权重,例如wk=(d*d - xk*xk - yk*yk) d这里要考虑的相邻单元格的最大距离。然后使用线性回归近似所有这些相邻的值:z = vx*x+vy*y + z0。通过最小二乘回归得到vx,vy,z0的值:

最小化Sum_kwk * (zk - vx*xk - vy*yk - z0)^2

其中索引k遍历所有邻居。向量(vx,vy)是您要查找的导数。

票数 2
EN

Stack Overflow用户

发布于 2014-01-26 03:23:52

网格中多边形的导数是多边形的平面,如果你需要更细粒度的,那么可以用几种不同的方法,你可以通过平均和加权相邻的多边形来估计它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21355096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档