← LibraryRange of a Linear TransformationEngineering · Engineering MathematicsLesson 231/812← PrevNext →
ArticlePublished 7 Aug 2026Updated 9 Aug 202622 min readBy KEVOS®
Skip to content

Engineering/Mathematics/Linear Transformations

Range of a Linear Transformation

The range of a linear transformation is the set of outputs it actually produces. It is always a subspace of the codomain, it coincides with the column space when the transformation is a matrix product, and the transformation is surjective exactly when the range fills the codomain.

  • Core level
  • Stream: transformations
  • Reading time 15 min
  • Ref KVS-ENG-MATH-0099
Taxonomy
Engineering / Mathematics
Notation
R(T)
Lives in
The codomain V, not the domain
Key property
Always a subspace of V
Surjectivity test
T surjective R(T)=V
Matrix case
R(T)=C(A) when T(x)=Ax

Overview

The codomain of a linear transformation is a declaration, not a description. When T:UV is written down, V states where outputs are recorded; it says nothing about which elements of V are ever produced. The set that is produced is the range of T, written R(T): the collection of all vectors of the form T(u) as u runs over the whole domain. It is the honest description of the transformation's reach.

The range is always a subspace of the codomain. It contains the zero vector because T(0)=0, and it is closed under addition and scalar multiplication because sums and multiples of outputs are outputs of the corresponding sums and multiples of inputs. That structure is what makes the range a tractable object: it has a basis, a dimension — the rank of T — and a description as the solution set of a system of linear constraints. An engineer can therefore state exactly which outputs are achievable, and give the equations distinguishing achievable from unachievable.

For a transformation defined by a matrix, T(x)=Ax, the range is precisely the column space of A. Expanding the matrix-vector product shows every output to be a linear combination of the columns of A, with the input components as the coefficients; conversely every such combination is an output. So the range is spanned by the columns, and the whole apparatus for computing column spaces — culling a spanning set to a basis, row-reducing to obtain a clean basis, extracting membership conditions — carries over unchanged.

The range also settles the surjectivity question outright. A transformation is surjective if and only if its range equals the codomain, so computing R(T) is not merely descriptive: it is the decisive test. When the range is a proper subspace, its defining constraints name the linear laws every achievable output obeys, and any vector violating those laws is provably unattainable. That is both a diagnosis and a practical instrument, since a measured output violating them indicates that the model, not the measurement, is at fault.

Definition

Range of a Linear Transformation

RLT

Let T:UV be a linear transformation. The range of T, written R(T), is the set of all outputs of T:

  • R(T)={T(u)uU}
It is a subset of the codomain V, and in fact always a subspace of it.

Also called the image of T. It is the image of the whole domain; the image of a single vector is that vector's output, a different object.

Rank of a Linear Transformation

The dimension of the range, dim(R(T)). It counts the independent directions in the codomain that the transformation can actually reach, and for a matrix transformation it equals the rank of the matrix.

The rank never exceeds either dim(U) or dim(V), since the range is spanned by the images of a basis of U and is a subspace of V.

Column Space

CSM

For an m×n matrix A, the column space C(A) is the span of the n columns of A, a subspace of m. It is exactly the set of vectors b for which the system Ax=b is consistent.

Restated here because the range of a matrix transformation is this object under a different name, and the two computations are identical.

Concepts

The range is a subspace of the codomain

Apply the three-part subspace test to R(T) as a subset of V. Non-emptiness: 0U lies in the domain and T(0U)=0V, so the zero vector of the codomain is an output. Additive closure: if x,yR(T) then there are inputs w,z with T(w)=x and T(z)=y; since U is a vector space, w+zU, and T(w+z)=x+y, so the sum is an output. Scalar closure: T(αw)=αx by the same reasoning. The essential move in both closure arguments is that the required input is constructed, not merely assumed to exist.

The range is spanned by the images of the columns

For T(x)=Ax, expand the product component by component and regroup by input variable. The output is u1A1+u2A2++unAn, where Aj denotes the j-th column of A. Since u ranges over all of n, the coefficients range over all possible scalar tuples, so the set of outputs is exactly the span of the columns: R(T)=C(A). The same regrouping works in abstract settings: applying T to a spanning set of the domain always produces a spanning set of the range.

From a spanning set to a basis

The columns of A span the range but are usually dependent, so they over-describe it. Two standard routes produce a basis. Place the spanning vectors as the rows of a matrix, row-reduce, and discard the zero rows: the surviving rows form a basis whose leading-one pattern makes them easy to read, though they are not among the original vectors. Alternatively, reduce A itself and keep the original columns indexed by the pivot columns: the basis then consists of genuine columns of A, which matters when each column has a physical identity. The two bases span the same subspace and have the same size.

Describing the range by constraints

A subspace can be presented as a span or as a solution set, and the second form is often more useful. Row-reduce the augmented matrix [Av] with symbolic constants; every zero row appearing in the coefficient part leaves a linear expression in v1,,vm that must vanish. Those expressions are exactly the equations defining R(T). Their count is mrank(A), matching the codimension of the range. Presented this way, deciding whether a given vector is attainable becomes an evaluation rather than a solve.

Surjectivity is range equals codomain

T is surjective if and only if R(T)=V. The forward direction is immediate from the definitions: surjectivity says every vV is an output, so VR(T), and the reverse inclusion always holds. The backward direction is equally direct. In finite dimensions the equality can be checked by dimension alone: since R(T) is a subspace of V, it equals V exactly when dim(R(T))=dim(V). So a rank computation decides surjectivity without ever listing the range explicitly.

Range and preimage are two views of the same fact

A vector v belongs to R(T) if and only if its preimage T1(v) is non-empty. This is a restatement of the definition, but it links two computations that look different: membership in a span, and consistency of a linear system. Taken together with the kernel, it gives the complete picture — the range says whether a target is attainable and the kernel says how many ways there are to attain it. Neither answers the other's question.

Computing and using a range

Apply T to a spanning set of the domainFor a matrix transformation this is just reading off the columns; for an abstract domain, evaluate T on a basis.
Assemble the imagesCoordinatise them in a fixed basis of the codomain and place them as rows of a matrix.
Row-reduce and discard zero rowsThe surviving rows form a basis of the range; their count is the rank of T.
Compare against the codomain dimensionIf the rank equals dim(V) the range is all of V and T is surjective; otherwise it is a proper subspace.
Derive the membership constraintsReduce [Av] with symbolic constants and collect the expressions left by zero rows.
Use the constraints as a testEvaluate them on any candidate output: zero means attainable, non-zero means provably outside the range.

Equations

Definition of the range

EQ-RLT-01
R(T)={T(u)uU}

The set of all outputs, taken as the input runs over the entire domain. A subset of the codomain V.

Range as the span of the columns

EQ-RLT-02
T(x)=AxLongrightarrowR(T)=span({A1,A2,,An})=C(A)

Regrouping the matrix-vector product by input variable shows every output to be a linear combination of the columns, with the input components as coefficients.

Expansion of an output over the columns

EQ-RLT-03
Au=u1A1+u2A2++unAn

The identity behind the previous equation. As u ranges over n, the coefficients take every possible set of values.

Surjectivity criterion

EQ-RLT-04
TsurjectiveR(T)=V

The range is always contained in the codomain; surjectivity is precisely the reverse inclusion.

Dimensional form of the criterion

EQ-RLT-05
dim(R(T))=dim(V)R(T)=V

Valid because the range is a subspace of V. A subspace of the full dimension of the space it sits in must be the whole space, so a rank count suffices.

Membership by non-empty preimage

EQ-RLT-06
vR(T)T1(v)

Attainability of a target and consistency of the corresponding system are the same statement.

Codimension of the range

EQ-RLT-07
dim(V)dim(R(T))=mrank(A)

The number of independent linear constraints satisfied by every attainable output, and therefore the number of zero rows in the reduced coefficient matrix.

Variable Definitions

Symbols used on this page
SymbolNameMeaningDomain / type
TLinear transformationThe map T:UV whose range is under studyfunction from U to V
R(T)RangeThe set of all attained outputssubspace of V
UDomainThe vector space of inputs, whose spanning sets generate the rangevector space over C
VCodomainThe declared output space; the range is a subspace of itvector space over C
AMatrix of the transformationCoefficient matrix when T(x)=Ax; its columns span the rangem x n matrix
AjColumn of the matrixThe j-th column of A, equal to the image of the j-th standard unit vectorelement of C^m
vCandidate outputA vector of the codomain tested for membership in the rangeelement of V
mCodomain dimensionRow count of A; the range is a subspace of mpositive integer
C(A)Column spaceSpan of the columns of A; identical to R(T) for a matrix transformationsubspace of C^m

Worked Numerical Example

Problem statement

A three-channel shaker drives a test article and four accelerometers record the steady-state response. The linearised response model is T:34 with T(u)=Du. Determine the set of response patterns the rig can produce, give a basis and a constraint description for it, and decide whether the rig can produce every conceivable four-channel pattern.

  1. State the response model

    Each column of D is the response pattern produced by unit drive on one shaker channel:

    D=[102213113033]
  2. Write the range as a span

    Expanding Du by input variable gives u1D1+u2D2+u3D3, and the drive vector u is unrestricted. The range is therefore the span of the three columns:

    R(T)=span({[1210],[0113],[2333]})
  3. Detect the redundancy

    The three columns are not independent. Direct inspection gives 2D1D2=(2,3,3,3), which is exactly D3. The third channel therefore adds no reachable direction: driving it is equivalent to a combination of the other two.

    D3=2D1D2
  4. Reduce to a basis

    Discard the dependent column and place the remaining two as rows of a matrix. Applying R1R12R2 produces a reduced basis whose leading-one pattern makes the subspace easy to read:

    [12100113][10360113]
  5. Record the rank

    Two non-zero rows survive, so dim(R(T))=rank(D)=2. The rig reaches a two-dimensional subspace of the four-dimensional response space. Since 24, the transformation is not surjective: most four-channel patterns cannot be produced at all.

  6. Derive the membership constraints

    Write a general element as v=a(1,0,3,6)+b(0,1,1,3), giving v1=a, v2=b, v3=3a+b and v4=6a+3b. Eliminating a and b leaves two linear laws that every attainable pattern must satisfy:

    3v1v2+v3=0,6v13v2+v4=0
  7. Check the constraints against the original columns

    Test D1=(1,2,1,0): 321=0 and 66+0=0. Test D2=(0,1,1,3): 01+1=0 and 03+3=0. Both columns satisfy both laws, as they must, since the constraints were derived from a basis of the same subspace.

  8. Exhibit an unattainable response

    Take v=(1,0,0,0). The first constraint evaluates to 3(1)0+0=30, so this pattern lies outside the range and no drive vector produces it. This also settles surjectivity constructively rather than by a rank count alone.

    3(1)0+0=30LongrightarrowvR(T)
Result

The rig can produce only a two-parameter family of response patterns, not the four-parameter family the instrumentation is capable of recording. The two constraint equations are the practical deliverable: applied to live data they form a residual check, since any measured response violating them cannot have come from the shaker under the assumed linear model and therefore indicates a sensor fault, a nonlinearity or a modelling error. The redundancy in the third drive channel also means that channel can be dropped, or used to trade drive amplitude between the remaining two without changing the response at all.

Applications & Industry Use

Structural testing

Achievable response patterns on a shaker rig

The range of the drive-to-response map describes exactly which response patterns a multi-shaker rig can generate. Its constraint equations serve as an online residual check: a measured response violating them indicates instrumentation error or nonlinear behaviour rather than a new operating point.

Electrical engineering

Realisable network currents

For a network driven by a fixed set of sources, the map from source values to branch currents has a range that is the set of realisable current distributions. Current patterns outside that subspace violate Kirchhoff's laws for the given topology and cannot occur, which makes the range a diagnostic tool for state estimation.

Colour science

Gamut as the range of a primary mixture

Mixing a fixed set of primaries is a linear map from intensities to tristimulus values. Its range is the linear span of the gamut; colours outside it cannot be reproduced by any intensity setting, and the constraint description of the range gives an exact out-of-gamut test.

Chemical engineering

Attainable product specifications

The range of the linearised blend model is the set of specification vectors reachable from the available feeds. Its dimension is the number of independently controllable specifications, and its constraint equations identify which specification combinations are locked together by the feed chemistry.

Computer vision

Image of a projection map

A camera projection is linear in homogeneous coordinates, and its range is the set of image configurations consistent with the geometry. Configurations outside the range are geometrically impossible, which underpins consistency checks in multi-view reconstruction.

Signal processing

Reachable outputs of a synthesis filter bank

A synthesis stage maps a coefficient vector to a signal block. The range determines which signals the bank can construct; anything outside is unrepresentable regardless of coefficient choice, which bounds the achievable reconstruction quality independently of the algorithm used.

Design Considerations

State the range, not just the rank

The rank is a number; the range is a subspace with equations. Reporting only the rank tells a reader how much authority exists but not in which directions. Deliver a basis and, where the range is a proper subspace, the constraint equations — those equations are directly usable as a runtime consistency test.

Choose the basis form deliberately

A basis of original columns keeps the physical identity of each channel and shows which channels are redundant. A row-reduced basis is cleaner and easier to compare between models but consists of synthetic combinations. Neither is canonical; only the subspace is. State which convention a reported basis follows.

Do not confuse the range with the codomain

The codomain is declared when the transformation is written; the range is computed. Documentation that treats them as interchangeable will assert coverage the model does not have. Where a transformation must be surjective, verify dim(R(T))=dim(V) rather than assuming it from the notation.

Range and kernel answer different questions

The range lives in the codomain and decides whether a target is attainable. The kernel lives in the domain and decides how many inputs attain it. Both are needed for a complete account of a transformation, and reasoning that mixes them — for instance inferring uniqueness from a full range — is unsound unless the dimensions happen to coincide.

Rank is discontinuous, constraints are not

Perturbing the entries of A can raise the computed rank and make the range appear to fill the codomain. The constraint residuals degrade gracefully by contrast: a near-dependent model yields residuals that are small rather than zero. For monitoring applications prefer thresholded residuals over a rank verdict.

Exploit redundant input channels rather than removing them

A dependent column contributes nothing to the range but does contribute a kernel direction. That direction is free capacity: it lets the same output be produced with different input distributions, which can be spent on amplitude limits, actuator wear or energy. Dropping the channel discards the option.

Standards & Codes

Notation, interchange and numerical standards that govern how this material is written down, stored and computed in production systems.

Applicable standards, conventions and reference implementations
ReferenceTitleRelevance to this topic
ISO 80000-2Quantities and units — Part 2: MathematicsPrescribes the set-builder notation used to define R(T) and the typographic conventions distinguishing the transformation, its argument and its outputs.
LAPACK / BLAS referenceLinear Algebra PACKage reference implementationAn orthonormal basis for the range is obtained in production from the leading left singular vectors returned by xGESVD, or from the leading columns of Q in a pivoted QR factorisation.
IEEE 754-2019IEEE Standard for Floating-Point ArithmeticDetermines the arithmetic in which the range basis and its constraint residuals are computed, and why a residual threshold rather than an exact zero test is required in monitoring code.
ISO 18431-1Mechanical vibration and shock — Signal processingMulti-channel vibration test data are processed under this framework; the range constraints of a drive-to-response model provide the algebraic consistency check applied to such data.
ISO/IEC 40314Mathematical Markup Language (MathML) Version 3.0Encodes the span expressions, matrices and constraint equations on this page as semantic markup rather than images, keeping them searchable and accessible.

Material Selection

For a mathematical topic, "material" is the numeric representation: the scalar field, storage format and precision the computation is built from.

Representation and precision selection
RepresentationSelect whenTrade-off
Exact rational arithmeticDesign-stage models with exact integer or rational coefficients, where the constraint equations are the deliverable.Produces exact constraint equations with integer coefficients, but coefficient growth limits the practical size.
IEEE 754 binary64 with SVD basisMeasured or identified models, and any application requiring numerically stable projection onto the range.Gives an orthonormal basis and a graded measure of how nearly the range fills the codomain, at cubic cost.
IEEE 754 binary64 with pivoted QRLarge models where an SVD is uneconomical and the identity of the independent columns matters.Cheaper and names the independent input channels directly, but the rank boundary is less sharply resolved.
Original-column basis from row reductionApplications where each column is a physical channel and the basis must consist of real channels.Maximum interpretability, but the resulting basis may be poorly conditioned for numerical projection.
Constraint (implicit) representationRuntime membership tests and residual monitoring, where evaluating a few linear forms beats solving a system.Testing membership becomes an evaluation rather than a solve, but constructing an element of the range from constraints requires an extra step.
Sparse storage with a fill-reducing orderingVery large network or finite-element models where the matrix is mostly zero.Keeps memory tractable, but explicit range bases are dense; prefer an implicit representation through a factorisation.

Manufacturing Notes

Implementation notes — how the result is actually produced by hand, by algorithm and by library, including cost and numerical behaviour.

Cost of computing a range basis

Row reduction of the n images arranged as rows of an n×m array costs about 2nmmin(n,m)23min(n,m)3 operations and yields a basis immediately. A singular value decomposition costs several times more and returns an orthonormal basis plus the singular values that quantify how nearly the range degenerates.

Hand procedure

Place the images as rows, not columns, when a clean basis is wanted: row reduction then discards dependent members automatically and the surviving rows are the basis. Place the images as columns instead when the basis must consist of original vectors: reduce, and keep the columns indexed by the pivot positions of the reduced form.

Extracting the constraint equations

Augment A with a symbolic column (v1,,vm) and reduce. Each zero row of the coefficient part carries an expression in the vi; setting those expressions to zero gives the equations of the range. The count of such rows equals mrank(A), which is a useful check on the arithmetic.

Library routes

scipy.linalg.orth(A) returns an orthonormal basis for the range from the SVD, with an explicit tolerance. numpy.linalg.matrix_rank gives its dimension. Symbolic systems expose Matrix.columnspace(), which returns original columns, and Matrix.rowspace() applied to the transpose, which returns a reduced basis; the two spans agree but the vectors do not.

Verification discipline

Two independent checks are worth the effort. Confirm that every original image satisfies every derived constraint equation, and confirm that the number of basis vectors plus the number of constraints equals dim(V). A slip in the reduction almost always breaks one of the two.

Failure Modes & Common Mistakes

Failure modes, root causes and prevention
Failure mode / mistakeImpactRoot causePrevention & detection
Treating the codomain as the rangehighReading T:UV as a claim that every element of V is produced.The codomain is declared, the range is computed. Verify dim(R(T))=dim(V) before asserting coverage.
Placing the range in the domainhighConfusing the range with the kernel, or with the set of inputs that produce non-zero outputs.The range is defined by a condition on outputs, so it is a subspace of the codomain. Check which space the vectors live in.
Reporting a dependent spanning set as a basismediumListing all columns of A as the basis of the range without culling.The columns span but rarely are independent. Reduce first, and check that the count of basis vectors equals the rank.
Reducing without a symbolic columnmediumReducing A alone and then attempting to state the constraint equations.The constraints live in the augmented column. Carry symbolic constants through every operation to recover them.
Exact-zero residual test in floating pointhighTesting constraint residuals against zero on measured data, so every real measurement appears to be outside the range.Threshold the residual against a scaled tolerance derived from the data noise level and the matrix norm.
Confusing rank with codomain dimensionmediumAssuming that a rank equal to the number of input channels means the range fills the codomain.Surjectivity requires the rank to equal dim(V), the number of output coordinates, which is a different count.
Assuming a basis of the range is a basis of the codomainmediumExtending conclusions about spanning the range to spanning V.A basis of a proper subspace spans only that subspace. Extend it explicitly if a basis of V is needed.
Discarding a redundant input channel automaticallylowRemoving a dependent column because it adds nothing to the range.The dependent column contributes a kernel direction, which is exploitable slack. Decide on operational grounds, not algebraic ones.

FAQs

What is the difference between the range and the codomain?

The codomain is declared as part of the notation T:UV and states where outputs are recorded. The range is computed and states which elements of V actually occur. The range is always a subspace of the codomain, and the two are equal exactly when T is surjective.

Is the range the same thing as the column space?

For a transformation defined by a matrix, T(x)=Ax, yes: R(T)=C(A) exactly, because expanding the matrix-vector product writes every output as a linear combination of the columns. The range is the more general notion, defined for transformations between any vector spaces.

Why is the range always a subspace but not always the whole codomain?

Closure holds because sums and scalar multiples of outputs are outputs of the corresponding combinations of inputs, and the zero vector is the image of the zero vector. Filling the codomain is a separate matter of dimension: the range can have at most dim(U) dimensions, so a small domain cannot cover a large codomain.

How do I test whether a specific vector is in the range?

Two equivalent routes. Solve T(u)=v and check consistency, or evaluate the constraint equations of the range on v and check that they all vanish. The second is far cheaper once the constraints are known, which is why the implicit description is preferred for repeated tests.

How does the range relate to the kernel?

They live in different spaces and answer different questions: the range in the codomain decides attainability, the kernel in the domain decides how many inputs attain a given output. Their dimensions are linked by the rank-nullity relationship, in which they sum to the dimension of the domain.

Can the range have larger dimension than the domain?

No. The range is spanned by the images of any basis of the domain, so it is spanned by at most dim(U) vectors and its dimension cannot exceed dim(U). It also cannot exceed dim(V), since it sits inside V. The rank is bounded by the smaller of the two.

Why should I present the range as equations rather than as a span?

Because the two forms suit different tasks. A span is the natural output of the computation and is what you need to construct elements. Equations are what you need to test elements, and testing is the common runtime operation in monitoring, validation and fault detection.

References

  1. Beezer, R. A. A First Course in Linear Algebra, Version 0.70. University of Puget Sound, 2006. Section SLT, subsection RLT. Licensed under the GNU Free Documentation License v1.2.
  2. ISO 80000-2:2019, Quantities and units — Part 2: Mathematics. International Organization for Standardization.
  3. Golub, G. H. and Van Loan, C. F. Matrix Computations, 4th edition. Johns Hopkins University Press, 2013.
  4. Strang, G. Linear Algebra and Its Applications, 4th edition. Cengage, 2006.
  5. Anderson, E. et al. LAPACK Users' Guide, 3rd edition. Society for Industrial and Applied Mathematics, 1999.

AI Suggested Questions

  • Given a 5x3 matrix, derive the equations describing its range and show how they act as a residual check on measured data.
  • Compare the original-column basis and the row-reduced basis for the same range, and explain when each is the right choice.
  • Why does the range of a transformation from a 3-dimensional space always have dimension at most 3, whatever the codomain?
  • Show how the range of a linear transformation between abstract polynomial spaces is computed without introducing a coordinate matrix.
  • How should I threshold range-membership residuals when the measurement noise level is known?
  • Work through an example where the range is a proper subspace but a rank test in floating point reports full rank, and explain why.

Related Calculators

Continue learning

Surjective Linear TransformationsArticle · Engineering MathematicsNEXT LESSON →Surjective Transformations, Spanning Sets and DimensionArticle · Engineering MathematicsInjective Transformations, Independence and DimensionArticle · Engineering MathematicsInvertible Linear TransformationsArticle · Engineering Mathematics