跳至内容

线性代数/主题:计算机代数系统/解决方案

来自维基教科书,开放的书,开放的世界

解决方案

[编辑 | 编辑源代码]

本主题的答案使用 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 毫秒内。
华夏公益教科书