latex中利用sage實現數學運算與排版

latex中利用sage實現數學運算與排版

關鍵詞:latex,sagemath,數學運算,排版

sage對象轉換爲latex表達式

sage 是基於python的數學工具,可以非常方便的將其對象轉換成latex公式。
複製轉換後的公式代碼,可以方便的在latex文檔中使用。比如:

sage: A = matrix(ZZ, 2, 2, range(4))
sage: latex(A)
\left(\begin{array}{rr}
0 & 1 \\
2 & 3
\end{array}\right)

其中,sage中的矩陣對象A,利用latex()命令轉換成了

\left(\begin{array}{rr}
0 & 1 \\
2 & 3
\end{array}\right)

直接將其放入latex文檔,就可以得到一個矩陣表示式。

使用sagetex運算和排版

然而sage還提供了一種更爲方便的使用方法,即利用sagetex宏包來直接在latex文檔中運算和排版。

其基本用法是使用sagetex宏包,然後在數學環境中使用\sage命令。

sagemath給出了一個example,內容非常詳細,這裏爲了方便介紹僅給出一個簡單示例:

\documentclass{article}
\usepackage{ctex}
\usepackage{sagetex}

\begin{document}

將\verb|\sage|命令放入數學環境中可以在其中進行sage函數運算,比如:
\verb|$\sage{number_of_partitions(1269)}$|計算了 $1269$ 的整數劃分組合數。結果爲:

$\sage{number_of_partitions(1269)}$ 

又比如,求出$f$的二階導數,其中$f$定義,既利用sageblock環境直接顯示sage運算代碼,也在其中定義:

\begin{sageblock}
f(x) = exp(x) * sin(2*x)
\end{sageblock}

二階導數直接在公式環境中給出:

\begin{equation}
\frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \sage{f(x)} =
\sage{diff(f, x, 2)(x)}.
\end{equation}

另外也可以利用\verb|\sageplot|命令來直接利用sage代碼畫圖,其可選參數設置類似與includegraphics命令的設置。比如對$f$ 函數從$-1$畫到$1$:

\sageplot[width=6cm,angle=15]{plot(f, -1, 1)}

其中可選參數設置了圖片的寬度和旋轉角度。

\end{document} 

其中

公式結果爲:

在這裏插入圖片描述

繪圖結果爲:

在這裏插入圖片描述

使用及編譯方法總結

從上一小結可知用法包括:

  1. 使用\usepackage{sagetex}引入宏包

  2. 使用\sage命令在數學環境中直接使用sage運算代碼

  3. 使用sageblock環境定義sage變量和函數,並原樣顯示

  4. 使用\sageplot命令來插入sage代碼繪製畫圖

編譯方法主要式3步:

  1. 是latex編譯1遍

  2. 是sage編譯*.sage文件
    (方法式利用sagemathshell,進入tex文件所在文件夾後,利用sage命令編譯jobname.sagetex.sage文件)

  3. 是再次latex編譯

小結

以上初步總結了latex和sagemath的混合使用,即在latex文檔中直接利用sagemath的代碼進行運算,並自動排版。

參考文獻

  1. sage 的幫助文檔:sagetutorial.PDF
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章