📜  在 R 中求解方程组

📅  最后修改于: 2022-05-13 01:54:37.547000             🧑  作者: Mango

在 R 中求解方程组

在本文中,我们将讨论如何用 R 编程语言求解方程组。

R语言中的solve()函数用于求解方程。这里的方程类似于 a*x = b,其中 b 是向量或矩阵,x 是将要计算其值的变量。

示例 1:求解三个方程的系统方程

Given Equations:
x + 2y + 3z = 20  
2x + 2y + 3z = 100  
3x + 2y + 8z = 200

Matrix A and B for solution using coefficient of equations:
A->
1   2   3
2   2   3
3   2   8
B->
20
100
200

为了使用 R 中的两个矩阵解决这个问题,我们使用以下代码:



R
# create matrix A and B using given equations
A <- rbind(c(1, 2, 3), 
           c(2, 2, 3), 
           c(3, 2, 8))
B <- c(20, 100, 200)
  
# Solve them using solve function in R
solve(A, B)


R
# Load package MASS
library(MASS)
  
# create matrix A and B using given equations
A <- rbind(c(19, 32, 31), 
           c(22, 28, 31), 
           c(31, 12, 81))
B <- c(1110, 1406, 3040)
  
# Solve them using solve
# function wrapped in fractions
fractions(solve(A, B))


R
# create matrix A and B using given equations
A <- matrix(c(4, 7, 3, 6), ncol = 2)
print(A)
  
print("Inverse matrix")
  
# Solve them using solve function in R
print(solve(A))


输出:

80 -36 3.99999999999999

这意味着 x=80、y=-36 和 z=4 是线性方程的解。

示例 2:求解三个方程的系统方程

为了得到分数形式的解,我们使用 R 语言中的库 MASS 并将求解函数包装在分数中。

Given Equations:
19x + 32y + 31z = 1110  
22x + 28y + 13z = 1406  
31x + 12y + 81z = 3040
Matrix A and B for solution using coefficient of equations:
A->
19   32   31
22   28   13
31   12   81
B->
1110
1406
3040

为了使用 R 中的两个矩阵解决这个问题,我们使用以下代码:

电阻

# Load package MASS
library(MASS)
  
# create matrix A and B using given equations
A <- rbind(c(19, 32, 31), 
           c(22, 28, 31), 
           c(31, 12, 81))
B <- c(1110, 1406, 3040)
  
# Solve them using solve
# function wrapped in fractions
fractions(solve(A, B))

输出:

[1] 159950/2243 -92039/4486  29784/2243

这意味着 x=159950/2243 、 y=-92039/4486 和 z=29784/2243 是上述线性方程的解。

示例 3:求解逆矩阵

电阻

# create matrix A and B using given equations
A <- matrix(c(4, 7, 3, 6), ncol = 2)
print(A)
  
print("Inverse matrix")
  
# Solve them using solve function in R
print(solve(A))

输出:

[,1] [,2]
[1,]    4    3
[2,]    7    6
[1] "Inverse matrix"
          [,1]      [,2]
[1,]  2.000000 -1.000000
[2,] -2.333333  1.333333