R语言 解决方程组

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

为了在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

输出

80 -36 3.99999999999999
R

这意味着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

为了在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

输出

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

这意味着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))
R

输出

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程