在某些幾何軟件的開發中,會要求寫出一個向量方程的微分公式。對我而言,手工推導繁瑣而且容易出錯。
早就聽說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高手能夠留言指教。