Solve() In R: Solve System Of Equations

solve () in R

Today, we will learn how to use the R solve() function to solve equations and inverse matrices. Please read to the end of the article to learn how to use this function.

What is the solve() function in R?

The solve() function in R is used to solve equations. For example, in this case, an equation is a*x = b, where b is a matrix or vector, and x is a variable whose value will be determined.

Syntax:

solve(a,b)

Parameters:

  • a: The equation’s coefficients
  • b: The equation’s matrix or vector

How to use this function?

The basic equation

In this example, we will use the solve() function to solve a single equation.

If we want to solve the following equation: 6x = 30, we can easily see a = 6 and b = 30, so we can use the R code below to solve:

# Solve the equation 6x = 30
x <- solve(6,30)

cat("x= ");x

Output

x= [1] 5

Solve three equations in a system

If you want to solve complex systems of equations, you can use the solve() function. Assume that our equation system looks like this:

2x + 1y + 3z = 20  

5x + 2y + 5z = 40  

5x + 1y + 2z = 10

Here, we will have two matrix A and B as follows:

A =    

2  1   3

5  2  5

5  1   2

B = 

20

40

10

Following the code below, we will solve this matrix:

# Create matrix A and B
A <- rbind(
    c(2, 1, 3),
    c(5, 2, 5),
    c(5, 1, 2)
)

B <- c(20, 40, 10)

# Using solve function to solve them
res <- solve(A, B)
res

Output

[1] -5 45 -5

To solve inverse matrix

If the right-hand side matrix is not explicitly supplied, the solution function sets it to the identity matrix. In other words, if no right-hand side matrix is supplied, the solve function computes the inverse of a matrix.

Let’s take this into practice: First, we must generate another example matrix in R:

# Create a complex matrix
set.seed(10000)

# Create a matrix
mat <- matrix(rnorm(16),nrow = 4)

# View matrix
mat

Output

           [,1]       [,2]       [,3]        [,4]
[1,]  0.5009103  0.3108103 -0.5412128  0.60377924
[2,]  0.1744218  0.3432122  1.8712320  0.02941477
[3,] -0.3329998 -0.9400177  0.1401120 -0.46298819
[4,] -0.6930059  0.7979436 -0.7248476 -0.07789984

Now, we can use the solve() function to solve this matrix (i.e. compute the inverse):

# Create a complex matrix
set.seed(10000)

# Create a matrix
mat <- matrix(rnorm(16),nrow = 4)

# Solve this matrix
print("The inverse matrix: ")
solve(mat)

Output

[1] "The inverse matrix: "
           [,1]       [,2]      [,3]      [,4]
[1,] -36.536944  2.6335609 23.357741 3.3006428
[2,]  -4.128077 -0.1301276  3.954233 0.3871201
[3,] -12.332008  1.1835330  8.443213 0.9982597
[4,]  -6.468463  0.6006657  3.255613 0.1099143

Summary

And here is the end of this post. We hope you use the solve () in R proficiently. If you have any questions, please leave a comment below. We will answer as possible.

Have a great day!

Maybe you are interested:

Posted in R

Leave a Reply

Your email address will not be published. Required fields are marked *