跳至內容

線性代數/主題:計算機代數系統/解決方案

來自華夏公益教科書,開放的書,開放的世界

解決方案

[編輯 | 編輯原始碼]

本主題的答案使用 Maple 作為計算機代數系統。特別是,所有這些都在運行於 MS-DOS NT 版本 4.0 下的 Maple V 上進行了測試。(在所有這些中,載入線性代數包的預備命令以及 Maple 對 Enter 鍵的響應已被省略。)其他系統也有類似的命令。

其他答案將為 Wolfram Mathematica 13.0 新增。

{{TextBox|1=

問題 1

使用計算機解決本章開頭提出的兩個問題。

  1. 這是靜力學問題。
  2. 這是化學問題。
答案
  1. 命令
    > A:=array( [[40,15],
    [-50,25]] );
    > u:=array([100,50]);
    > linsolve(A,u);

    得出答案 . Mathematica 答案
    eqns = {40 h + 15 c == 100, 25 c == 50 + 50 h};
    {b, m} = CoefficientArrays[eqns, {c, h}]
    LinearSolve[m, -b]
    {c, h} /. Solve[eqns, {c, h}]
    
    返回 {c,h} 的向量 {1,4}。
  2. 這裡有一個自由變數
    > A:=array( [[7,0,-7,0],
    [8,1,-5,2],
    [0,1,-3,0],
    [0,3,-6,-1]] );
    > u:=array([0,0,0,0]);
    > linsolve(A,u);

    提示回覆 . Mathematica 程式碼
    eqns = {7 h == 7 j, 8 h + i == 5 j + 2 k, 1 i == 3 j, 
       3 i == 6 j + 1 k};
    {b, m} = CoefficientArrays[eqns, {h, i, j, k}]
    LinearSolve[m, -b]
    {h, i, j, k} /. Solve[eqns, {h, i, j, k}]
    
    返回 LinearSolve 的 {0,0,0,0} 以及最後一行的

}}

問題 2

使用計算機解決第一小節中的這些系統,或得出結論“多個解決方案”或“無解決方案”。

Maple 答案

這些很容易輸入。例如,第一個


> A:=array( [[2,2],
[1,-4]] );
> u:=array([5,0]);
> linsolve(A,u);

得到預期答案 。其他輸入方式類似。

  1. 答案是
  2. 答案是
  3. 該系統有無窮多個解。在第一小節中,以 為引數,我們得到 。Maple 返回 ,出於某種原因,它更喜歡 作為引數。
  4. 該系統沒有解。當給出陣列 和向量 並要求 Maplelinsolve(A,u)時,它根本沒有返回結果,也就是說,它沒有給出任何解。
  5. 解是
  6. 有很多解。Maple 給出
Mathematica 答案
RowReduceAugmentedMatrix[matrix_] := MatrixForm[RowReduce[matrix]]
將此函式應用於 MatrixForm 中的 RowReduce 對 進行行化簡,得到
問題 3

使用計算機來解決第二小節中的這些方程組。

答案

與上一個問題一樣,輸入這些方程組很容易。

  1. 這個方程組有無窮多個解。在第二小節中,我們給出瞭解集為
    Maple 的響應結果是
  2. 解集只有一個元素
    Maple 毫不費力地找到了它 .
  3. 這個系統的解集是無限的
    Maple 給出了 .
  4. 存在唯一的解
    Maple 給出了 .
  5. 該系統有無數個解;在第二小節中,我們用兩個引數描述瞭解集
    Maple 也給出了 .
  6. 解集為空,Maple 對該命令的回覆沒有返回解。linsolve(A,u)命令。
問題 4

計算機對一般 系統的解給出什麼?

答案

響應此提示


> A:=array( [[a,c],
[b,d]] );
> u:=array([p,q]);
> linsolve(A,u);

Maple 可能思考了二十秒,然後給出了以下回復。

Mathematica 解決方案
RowReduce[( {
    {a, c, p},
    {b, d, q}
   } )] // MatrixForm
返回 ,大約在 2 毫秒內。
華夏公益教科書