You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R求解含不同z值的二元线性方程组?

用R语言求解多组z值对应的二元线性方程组

针对你给出的方程组:

x + y = 1
4.5x + 9y = z

下面提供两种高效的求解方法:

方法1:代数推导后直接向量运算

先通过代数变形得到x和y关于z的表达式:

  • 从第一个方程得 y = 1 - x,代入第二个方程化简:
    4.5x + 9(1 - x) = z → -4.5x = z - 9 → x = (9 - z)/4.5 = 2 - z/4.5
  • 再代入y的表达式得:y = 1 - x = z/4.5 - 1

利用R的向量运算特性,可以直接批量计算所有z对应的x和y:

# 定义z的取值
z <- c(4.1, 5.5, 9.9, 7.3, 5.2, 3.5, 5.4, 4.2)

# 计算x和y
x <- 2 - z / 4.5
y <- z / 4.5 - 1

# 整理为数据框查看结果
result <- data.frame(z = z, x = round(x, 4), y = round(y, 4))
print(result)

运行后会输出每个z对应的x、y值(保留4位小数方便阅读)。

方法2:矩阵求解法

将方程组转化为矩阵形式 (A\mathbf{x} = \mathbf{b}):
[
A = \begin{bmatrix}1 & 1 \ 4.5 & 9\end{bmatrix}, \quad \mathbf{x} = \begin{bmatrix}x \ y\end{bmatrix}, \quad \mathbf{b} = \begin{bmatrix}1 \ z\end{bmatrix}
]
利用R的solve()函数求解线性方程组,批量处理所有z值:

# 定义系数矩阵A
A <- matrix(c(1, 4.5, 1, 9), nrow = 2, byrow = TRUE)

# 定义z的取值
z <- c(4.1, 5.5, 9.9, 7.3, 5.2, 3.5, 5.4, 4.2)

# 批量求解每个z对应的x和y
solutions <- lapply(z, function(val) solve(A, c(1, val)))

# 整理结果为数据框
result_matrix <- data.frame(
  z = z,
  x = sapply(solutions, function(v) round(v[1], 4)),
  y = sapply(solutions, function(v) round(v[2], 4))
)
print(result_matrix)

两种方法得到的结果完全一致,代数方法计算效率更高,矩阵方法则更通用,适合扩展到更复杂的线性方程组。

内容的提问来源于stack exchange,提问作者Kenji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 15:30:51