C++ 程序以矩阵形式表示线性方程

17 Mar 2025 | 4 分钟阅读

线性方程是数学和科学中的一个基本概念。线性方程在计算机科学、经济学、物理学和工程学等许多学科中都很重要。为了快速解决线性方程组,需要以矩阵形式表示它们。

什么是线性方程组?

由一个或多个变量组成的多个线性方程的集合称为线性方程组。

每个线性方程都有以下可能的几种形式

其中,

变量 x₁, x₂, x₃,..., xₙ 的系数是 a₁, a₂, a₃,..., aₙ,方程右侧的常数是 b。

许多这样的方程构成一个线性方程组。三个变量的三个线性方程组的示例如下:

  1. 2x + y - z = 3
  2. 3x - 2y + 2z = 4
  3. x + 3y + 2z = 7

我们将构造一个常数向量和一个系数矩阵,以矩阵形式表示该系统。

矩阵形式的线性方程表示:-

  • 我们可以使用矩阵表示法简洁而实用地表示线性方程组。上述线性方程组表示如下:
    AX = B
  • 矩阵 A 包含变量的系数,它是系数矩阵
  • X 表示变量列向量。
  • 字母 B 表示每个方程右侧常数的列向量。

以矩阵形式表示线性方程组的算法:-

以下描述了以矩阵形式表示线性方程组的算法:

  • 创建一个结构来存储每个线性方程的系数和常数
  • 创建一个函数,该函数接受线性方程的向量,并返回常数向量 B系数矩阵 A
  • 找出系统中包含多少个变量和方程。
  • 设置空矩阵 A 和 B。
  • 在遍历方程时,将每个线性方程的系数添加到 A,将常数添加到 B。
  • 显示常数向量 B 和系数矩阵 A。

程序

让我们用一个 C++ 程序来说明矩阵形式的线性方程。

输出

C++ Program to Represent Linear Equations in Matrix Form

说明

1. 描述线性方程结构

  • 每个线性方程由一个名为 LinearEquation结构体表示。它由两部分组成:
    • 系数 (coefficients):一个向量,存储方程的变量系数。
    • 常数 (constant):一个双精度浮点数,表示方程右侧的常数项。

2. 从线性方程转换矩阵的函数

  • 函数 equationsToMatrix 需要 equations(一个 LinearEquation 对象向量)、两个空容器 A(用于系数矩阵的二维向量)和 B(用于常数项的向量)。
  • 通过查看第一个方程,函数确定变量的数量 (numVariables) 和方程的数量 (numEquations)。
  • 之后,将清除其中任何现有数据,以确保矩阵 A 和向量 B 最初为空。
  • 它迭代地将每个方程的系数作为一行添加到矩阵 A 中,并将方程的常数项添加到B中。

3. 主函数

  • 程序的入口点是主函数。
  • 它通过使用其系数和常数初始化 LinearEquation 对象向量 equations 来构建线性方程组。

4. 初始化矩阵 A 和 B

  • 系数矩阵和常数向量被定义为存储在两个空容器 AB 中。

5. 调用 equationsToMatrix 函数

  • 将 equations 向量、空矩阵 AB 作为输入传递给 equationsToMatrix
  • 处理线性方程后,此函数填充常数向量 B 和系数矩阵 A。

6. 显示系数矩阵 A

  • 程序将系数矩阵 A 打印到标准输出。
  • 使用嵌套循环遍历 二维向量 A,并按行显示系数。

7. 显示常数向量 B

  • 同样,当程序将常数向量 B 写入标准输出时,其每个元素都显示在新的一行。

8. 返回 0

  • 当主函数返回 0 时,表示程序已成功运行。