2010-02-12 137 views

回答

10

This page給出以下簡單的方法:

  1. 在一個NxN 輸入範圍中的係數矩陣。

  2. 在n-tall列中輸入常量的向量 。選擇一個 空白的n-tall列。重要的是 您不只有一個單元 被選中。

  3. 在式 文本框中鍵入, = MMULT(MINVERSE(coefficients_matrix_range) constants_vector_range),然後按 [CTRL] [SHIFT] [ENTER]。你不是簡單地按下[ENTER]鍵是很重要的 。

這應該適當地工作,因爲你只有一個小的系統(22×22)。雖然,理想情況下,您不會直接反轉矩陣,但在這種情況下,這應該不重要。

你肯定不想克拉默的規則。由於其數值性質相當差,它比實際的興趣更具理論性。

+0

謝謝彼得。這很好,很簡單! – 2010-02-12 19:18:37

+0

頁面不再存在 – GordonM 2013-07-14 12:16:19

+0

Peter的答案中的鏈接無效,請嘗試http://www.excel-easy.com/examples/system-of-linear-equations.html – user2914821 2015-02-23 12:18:16

1

你不應該考慮克萊默的規則來解決線性系統!這是非常低效的,即使是小系統也不可能實現。

Excel不是解決線性系統的正確工具。如果我是你,我會寫一個簡單的python腳本來讀取excel文件,解決方程式(使用numpy)並將結果保存在excel可以讀取的文件中。 (甚至更好,如果可以的話,完全避免使用Excel)。

+0

謝謝關於Cramer規則的警告。我並不擔心這裏的速度,因爲這隻需要稍後更新一次。完全避免使用Excel將不是一種選擇,因爲所有源數據都已經在Excel中。此外,我發現Excel是我工作中幾乎所有計算機上最強大,最實用的程序之一! – 2010-02-12 19:21:28

+0

如果速度是一個主要問題,Python並不是最好的選擇...... – 2010-02-12 23:06:32

+0

這就是爲什麼我寫「與numpy」。 numpy是用C或Fortran(BLAS/LAPACK)編寫的標準線性代數庫的一個python接口,所以它非常快。 – 2010-02-12 23:42:11

1

Excel LINEST函數應該這樣做 - 並且在很多情況下會比MMULT(MINVERSE(...)...)返回更好的結果。

您可能還會發現有用的LOGEST,GROWTH和TREND函數。

+0

我很確定LINEST和其他人都只處理* linear *數據,即只有一個未知(x)。我正在使用22個未知數的方程組,所以我不認爲LINEST會這樣做。 – 2010-02-13 19:39:00

1

如果在逆矩陣計算中有任何問題,例如over/under flow/truncation等等,你總是可以使用Solver - 否則在C中獲得數字配方的副本並轉換成VBA。

2

Microsoft's Solver Foundation怎麼樣?我似乎記得在快速版本附帶的文檔中有一組較小的聯立方程的例子。

+0

+1這很酷!直到今天,我從未聽說過它。彼得的解決方案這次爲我工作,但如果我處理更大或更動態的數據集,我可以看到MSF很方便。謝謝你的信息。 – 2010-02-17 00:21:46

1

可以是linear equation solver我們可以用數學求解器通過使用數學方程的根在於求解器的另外兩個指數部分之間,但找到線性方程求解器的更好方法。