- Julia高性能科學計算(第2版)
- (韓)權昌賢(Changhyun Kwon)
- 777字
- 2021-10-29 21:36:58
3.1 向量、矩陣和數(shù)組
像MATLAB和很多其他用于數(shù)值計算的計算機語言一樣,Julia提供簡單、方便且很強大的處理向量和矩陣的方法。例如,如果你想生成如下這樣的向量和矩陣。

在Julia中,你只需要簡單地輸入如下代碼。

其中分號;表示新的一行。Julia返回結果如下所示。

我們可以用A[i,j]訪問A的(i,j)元素。

用下面的代碼很容易就可以得到向量和矩陣的轉置。

讓我們引入兩組列向量。

內(nèi)積或點積可以用下面的方式獲得。

另一種獲得點積的方式是使用dot()函數(shù)。該函數(shù)由Julia的標準庫提供,被稱作LinearAlgebra(線性代數(shù))包。

關于LinearAlgebra(線性代數(shù))包的更多有用的功能,請參考官方文檔(見參考資料[29])。
特定大小的恒等矩陣如下所示。

定制的0和1的矩陣如下所示。


當我們有一個如下的方陣時。

它的逆矩陣能被計算出來。

當然,其中有一些數(shù)值錯誤。

注意:非對角線元素不全是0,這是因為逆矩陣計算并不精確。例如,矩陣B的逆矩陣的(2,1)元素不是1,而是如下所示。

上面,我們見過類似于Int64和Float64這樣的數(shù)據(jù);在32位系統(tǒng)中,它應該是Int32和Float32;這些是數(shù)據(jù)類型。如果你確定向量和矩陣中的元素是整數(shù)類型的,那么可以使用Int64。相反,如果有任何一個元素是非整型數(shù)值,如1.0000000000000004,那么你需要使用Float64。這些設置通常是自動完成的。

在某些情況下,你會希望先生成特定類型的數(shù)組對象,然后再賦值。這可以通過調用帶有undef關鍵詞的數(shù)組來完成。例如,如果我們想要一個Float64類型的數(shù)組,并且它含有3個元素,那么我們可以這樣做。

一些接近0的值是被預先賦值的,你可以按照自己的意愿給數(shù)組賦值。


盡管你輸入的是精確的整型數(shù)值,結果數(shù)組將是Float64類型的,正如它最初被定義的那樣。
如果你的數(shù)組代表一個向量或一個矩陣,我建議你通過顯式地指定具體維度來創(chuàng)建數(shù)組。例如,對一個3行1列的列向量,你只能用下面的函數(shù)。

對一個1行3列的行向量,你只能用下面的函數(shù)。

那么它們的乘積能被寫成p×q或q×p。
更多與數(shù)組相關的函數(shù),請參見官方文檔(參考資料[30])。