码迷,mamicode.com
首页 > 其他好文 > 详细

利用Maple推导向量方程的微分公式

时间:2014-12-23 15:20:20      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

在某些几何软件的开发中,会要求写出一个向量方程的微分公式。对于我这样毕业多年的程序员而言,虽然也可以捡起高等数学的课本,手工进行推导,但这是一个繁琐、易出错、需要反复校验的过程。

早就听说Mathematica, Maple这样的软件可以自动进行符号公式的推导,一直没有时间研究。最近终于应用了一把,发现还是挺简单的。现以求一个“点到直线距离”的方程微分为例,展示一下怎么样用Maple推导向量方程的微分。

 

首先看一下我们的问题:求一个“点到直线距离”方程关于点的x坐标的微分。

空间一直线由一点S和一个单位向量V表示,空间一点由P表示。所以点到直线的距离可用如下图中的向量方程表示。

技术分享

我们要推导的是d关于P的x坐标变量的微分,即

技术分享 

 

下面看看在Maple里面怎么进行推导。

首先在Maple主窗口里敲入with(VectorCalculus):,载入向量微分的库函数。

然后运行BasisFormat(false):,使向量以列向量的方式显示。

然后分别定义P,S,Q,V。例如 P:=<Px,Py,Pz>

技术分享

再键入距离d的方程,用命令Del(d,[Px])就可以求出d关于Px的微分了:

技术分享

至此,我们已经利用Maple推导出了想要的微分公式。

 

美中不足的是,这个公式是完全的展开形式,非常复杂。我们需要手工的运行如下命令,用计算的中间结果对结果表达式进行化简。

技术分享

把这个公式用Word的公式编辑器写出来,就是:

技术分享

其中

技术分享

 

后记:我在Maple中进行结果表达式化简时,必须额外引入一些变量如F和DotPV,而不能使用原来的d和DotProduct(P,V)。这是我觉得不爽的地方。希望Maple高手能够留言指教。

利用Maple推导向量方程的微分公式

标签:

原文地址:http://www.cnblogs.com/kaige/p/4180146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!