Solve: Solve and Display Solutions for Systems of Linear...

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/Solve.R

Description

Solve the equation system Ax = b, given the coefficient matrix A and right-hand side vector b, using link{gaussianElimination}. Display the solutions using showEqn.

Usage

1
2
Solve(A, b = rep(0, nrow(A)), vars, verbose = FALSE, simplify = TRUE,
  fractions = FALSE, ...)

Arguments

A,

the matrix of coefficients of a system of linear equations

b,

the vector of constants on the right hand side of the equations. The default is a vector of zeros, giving the homogeneous equations Ax = 0.

vars

a numeric or character vector of names of the variables. If supplied, the length must be equal to the number of unknowns in the equations. The default is paste0("x", 1:ncol(A).

verbose,

logical; show the steps of the Gaussian elimination algorithm?

simplify

logical; try to simplify the equations?

fractions

logical; express numbers as rational fractions?

...,

arguments to be passed to link{gaussianElimination} and showEqn

Details

This function mimics the base function solve when supplied with two arguments, (A, b), but gives a prettier result, as a set of equations for the solution. The call solve(A) with a single argument overloads this, returning the inverse of the matrix A. For that sense, use the function inv instead.

Value

the function is used primarily for its side effect of printing the solution in a readable form, but it invisibly returns the solution as a character vector

Author(s)

John Fox

See Also

gaussianElimination, showEqn inv, solve

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  A1 <- matrix(c(2, 1, -1,
               -3, -1, 2,
               -2,  1, 2), 3, 3, byrow=TRUE)
  b1 <- c(8, -11, -3)
  Solve(A1, b1) # unique solution

  A2 <- matrix(1:9, 3, 3)
  b2 <- 1:3
  Solve(A2,  b2, fractions=TRUE) # underdetermined

  b3 <- c(1, 2, 4)
  Solve(A2, b3, fractions=TRUE) # overdetermined

matlib documentation built on April 4, 2018, 5:03 p.m.