汪建軍,許才軍
(1.武漢大學測繪學院 湖北 武漢 430079;2.地球空間環境與大地測量教育部重點實驗室 湖北 武漢 430079)
張量是一種能以非常簡潔優美的形式表達現實世界中物理規律的數學量。物理規律的張量表達形式不依賴于特定的坐標系,在任何坐標系下都具有統一的形式[1-2]。張量分析在諸如相對論、電磁場論、流體力學和連續介質力學等諸多學科中得到廣泛應用。近幾十年來,愈來愈多的力學文獻和教材也采用張量符號書寫,學生不熟悉張量分析則難以理解其內容[2]。因此,張量分析已成為相關專業理工科學生需要掌握的重要數學工具。國內部分高等院校陸續開設了張量分析的課程[3-5],但由于課程內容存在大量的數學公式和運算符號,并且概念比較抽象,學生學習起來常感到枯燥難懂。為此,講授張量分析課程的高校教師一直在不斷探索張量分析課程教學改革。例如,陳新等[4]提出了基于優化和拓展教學內容及加強前后銜接課程聯系的張量分析教學內容改革;張志鎮等[5]提出了面向張量論文閱讀和寫作的張量分析教學改革。這些研究有效促進了該類課程的教學。不過,上述研究側重于較為宏觀層面的課程教學改革措施研究,而在更微觀層面的課程內容教學方面仍值得進一步研究。
本文提出利用MATLAB 的繪圖、符號推導、張量運算和腳本編程功能輔助于張量分析課程教學,讓該課程的知識幾何直觀化,清晰地展現公式的由來或定理證明過程,從而激發學生的學習興趣,讓學生清楚地認識到公式或定理證明過程均可以在邏輯的指引下被演繹出來,增強學生學習的信心,以幫助學生更好地理解和掌握張量分析的知識。
“張量分析”是一門面向武漢大學測繪學院地球物理專業和武漢大學地球物理弘毅班的本科學生的大類平臺必修課程。該課程總計學分1.5 分,學時24,開設學期為第3 學期上半學期。該課程只涉及張量分析的基礎部分,旨在讓學生建立張量的基本概念,能熟練運用指標法推導矢量恒等式,掌握二階張量的加法和乘法分解等。
“張量分析”課程主要內容包括:矢量及其代數運算、斜角直線坐標系的基矢量與矢量分析、曲線坐標系、坐標轉換、并矢、張量的概念、張量的代數運算、張量的矢積以及二階張量的矩陣、不變量、和張量分解等。
該課程的抽象性、符號龐雜性、公式復雜性及其緊密邏輯關聯,決定了該門課程有一定的學習難度。此外,授課對象是剛結束大學工科基礎類數學課程學習的本科生,他們對笛卡爾坐標系下的微積分和空間解析幾何,以及不涉及具體坐標系的線性代數比較熟悉,但是對立即轉入有關斜角坐標系和曲線坐標系的矢量分析、張量運算和張量場函數運算等方面的學習,可能有一定認識上的難度。這兩個難度決定了教學存在難點:①抽象概念的幾何直觀化;②公式和定理證明的清晰化。
教師可以充分利用MATLAB 的繪圖、腳本編程、符號推導和張量運算的功能,來解決這些教學難點。下面從旋度分析、坐標變換和定理輔助證明三個方面,展示MATLAB 工具對張量分析課程教學的輔助作用。
速度場的旋度的二分之一并不總是等于歐拉剛體運動模型所描述的歐拉矢量。下面對此加以分析和論證。
令v為一速度場,其經旋度運算后的角速度為,亦即另外假定v可以由歐拉剛體運動模型描述:其中 為歐拉矢量,為向徑。令三維笛卡爾直角坐標系的單位基矢量為現證明在一般情形下
由上可知:

圖1 速度場和旋度場。基于常歐拉矢量導出的速度場,其經旋度運算后得到的旋度場(圖1a底圖);一般速度場經旋度運算后得到的旋度場(圖1b 底圖)。白色粗箭頭表示實際速度場,黑色細箭頭表示基于旋度場的模擬速度場。
當歐拉矢量是常矢量時,基于歐拉矢量生成的實際速度場,同經過該速度場導出的旋度場所模擬出的速度場完全重合(圖1a),這說明此時作用于原始速度場的旋度運算得到的旋度,就等于常歐拉矢量。然而,當歐拉矢量既不是常矢量,也非具有特別的函數形式時,并不能保證式(1)右端第1 項始終為零,也就不能保證實際速度場和經旋度導出的速度場完全重合(圖1b)。
張量的坐標定義為:新老坐標系中按坐標轉換關系變化的有序數的集合[2]。這些有序數即為坐標分量。當老坐標系的基矢量變換到新坐標系的基矢量時,對應的老坐標系中的坐標分量也要變換到新坐標系中的坐標分量。換言之,盡管坐標分量隨著坐標系的基矢量的變化而變化,但是基矢量的并矢的線性組合(組合系數為坐標分量)構成的張量實體不隨基矢量的變化而變化(張量的實體定義),此為張量的內秉性。下面以平面坐標系的坐標軸的旋轉為例,說明當坐標軸的基矢量發生變化時,坐標分量隨之變化,但矢量實體卻不發生變化。
運行程序basis_transformation.m[6]繪制圖2。該圖表明:盡管坐標軸連續發生旋轉,但不影響圖形的原初位置和幾何形狀。這是因為圖形在空間所占據的位置不依賴于選定的坐標系,坐標系只是為了研究的方便附加上去的,就如同張量實體并不依賴于坐標系,只是為了研究的方便而選定了坐標系,之后才將張量表達為具體坐標系中的分量形式。不過,當將逆時針旋轉得到的新坐標系的軸沿順時針置于水平位置時,該坐標系的圖形從視覺上看,則相應地也發生順時針旋轉,但就實質而言,若新坐標系的軸不置于水平位置,則圖形在實際空間中并不發生移動。因此,當坐標軸發生旋轉時,坐標系的基矢量發生變化,坐標分量也隨之變化,但由基矢量和坐標分量所組成的矢量實體并不隨坐標系的變化而變化。

圖2 圖形隨平面坐標系的坐標軸的旋轉。坐標軸沿逆時針方向依次旋轉0°(圖2a)、90°(圖2b)、180°(圖2c)、270°(圖2d)。各子圖中x和y軸代表旋轉后的坐標軸位置。
對如下定理的證明,可以先進行張量運算,再利用MATLAB 的符號運算功能進行等式驗證。
定理[2]:三維空間中任意二階張量T 將任意矢量組u、v、w 映射為另一組矢量,滿足:。
證明:
運行程序second_order_tensor_mapping.m 可驗證得證。
為了幫助學生更好地學習“張量分析”課程,教師可以借助MATLAB 工具將抽象的概念直觀化,將復雜的計算、推理和證明交由計算機處理。本文從旋度分析、坐標變換和定理輔助證明這三個方面,展示了MATLAB 工具應用于該課程學習的強大功能。學生通過公式推導和編程實現,將深化對所學知識的認識和理解。學生通過“張量分析”課程學習,領悟了對基矢量和對偶基矢量進行運算操作的精神實質后,就能利用MATLAB 的張量工具箱或Py-Torch 開源深度學習庫,自由地實現張量的運算和操作。