R语言 解决方程组
在这篇文章中,我们将讨论如何用R语言。
R语言中的 solve() 函数被用来解决方程。这里的方程是a*x=b,其中b是一个向量或矩阵,x是一个变量,其值将被计算。
语法: solve(a, b)
参数
- a: 方程的系数
- b: 方程的向量或矩阵
例1:求解三个方程的系统方程
给定方程:
x + 2y + 3z = 20
2x + 2y + 3z = 100
3x + 2y + 8z = 200
用方程系数求解的矩阵A和B:
A->
1 2 3
2 2 3
3 2 8
B->
20
100
200
为了在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)
输出
80 -36 3.99999999999999
这意味着x=80,y=36,z=4是线性方程的解。
例2:解三个方程的系统方程
为了得到分数形式的解,我们使用R语言中的MASS库,并使用分数解函数。
给定方程:
19x + 32y + 31z = 1110
22x + 28y + 13z = 1406
31x + 12y + 81z = 3040
用方程系数求解的矩阵A和B:
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
极客教程