Goal
Estimate the numerical rank of a finite row-major 3x3 matrix with a documented scale-relative pivot tolerance.
Worldwide context
Saved once here, used across the site.
Currency changes display only. Country selection guides tax input; no tax rate is guessed.
Estimate the numerical rank of a finite row-major 3x3 matrix with a documented scale-relative pivot tolerance.
rank(A) is the number of pivots retained by partial-pivot elimination after treating pivots at or below 1e-12 times max(abs(Aij)) as zero.A clearer path to an answer
This page keeps the calculation transparent: define the goal, enter the matching values, inspect the method, and decide what the result means in your situation.
Estimate the numerical rank of a finite row-major 3x3 matrix with a documented scale-relative pivot tolerance.
A11 · A12 · A13 · A21 · A22 · A23 · A31 · A32 · A33
rank(A) is the number of pivots retained by partial-pivot elimination after treating pivots at or below 1e-12 times max(abs(Aij)) as zero.
Calculate, review the assumptions below, then compare a related tool when the decision needs more context.
Estimate the numerical rank of a finite row-major 3x3 matrix with a documented scale-relative pivot tolerance.
Open the Matrix Rank pageMore math tools
Download PDFDownload Word (.doc)
Enter your values above and choose Calculate to see the result here.
Calculation map
rank(A) is the number of pivots retained by partial-pivot elimination after treating pivots at or below 1e-12 times max(abs(Aij)) as zero.
Bounded, transparent calculation
Your recent runs stay in this browser session only.
Formula: rank(A) is the number of pivots retained by partial-pivot elimination after treating pivots at or below 1e-12 times max(abs(Aij)) as zero.
The rank is the number of numerically independent pivot rows or columns in the entered 3x3 matrix. This implementation uses partial-pivot elimination and states its scale-relative tolerance instead of parsing an arbitrary matrix expression.
Worked example: Partial-pivot elimination retains three pivots, so rank(A) = 3.
The displayed limits are checked before the handler runs. Model-specific domain checks may also reject impossible or non-finite inputs.
Methodology: This calculator follows the WorldCalculate input, formula, precision, and boundary policy. Read the official methodology.
Calculator usage statistics
This section counts anonymous successful Calculate submissions, not unique visitors. Counts and top tools appear only when trusted aggregate data is available; country analysis is shown only under the same condition and reporting threshold.
Answer-first guide
Estimate the numerical rank of a finite row-major 3x3 matrix with a documented scale-relative pivot tolerance. Start with one clearly defined goal, enter values in the units shown, and keep the result attached to the assumptions below.
This tool is useful when your question includes matrix rank, 3x3 rank, numerical rank. It returns the outputs declared in the calculator contract rather than a live quote, approval, diagnosis, or professional sign-off.
A11 · A12 · A13 · A21 · A22 · A23 · A31 · A32 · A33. Keep the same time period, unit system, and currency wherever the form requires comparable values.
Run the worked example first, compare its output with the page's example, then change one input at a time. This makes an unexpected result easier to trace to a unit, boundary, or assumption.
Need a wider view? Browse Math Calculators or compare the related tools below. The WorldCalculate methodology explains how formulas, examples, limits, and revisions are reviewed.
rank(A) is the number of pivots retained by partial-pivot elimination after treating pivots at or below 1e-12 times max(abs(Aij)) as zero.
The rank is the number of numerically independent pivot rows or columns in the entered 3x3 matrix. This implementation uses partial-pivot elimination and states its scale-relative tolerance instead of parsing an arbitrary matrix expression.
Partial-pivot elimination retains three pivots, so rank(A) = 3.
Context and background
Math calculators move from named quantities to a relation, then to a result that can be checked with substitution, units, or an alternate form.
Arithmetic, algebra, geometry, trigonometry, and number theory provide reusable structures for classroom work and everyday reasoning. Each page narrows that structure to one declared problem.
Research and review
Researched by Hassan ALRowaie, Founder and editorial researcher at WorldCalculate.
This guide follows the live calculator's declared inputs, formula, worked example, assumptions, validation boundaries, and source-backed methodology. The review date describes editorial review of the calculator explanation; it is not a promise that external facts or rates remain current.
Matrix rank describes how many independent directions are represented by a matrix. This calculator accepts one finite 3x3 matrix in fixed row-major order and returns a numeric rank from 0 through 3. Because decimal arithmetic cannot decide exact dependence in every real data set, the handler uses partial-pivot elimination and a documented scale-relative tolerance: a pivot at or below 1e-12 times the largest absolute entry is treated as zero. The guide explains the rank contract, fields, elimination idea, rank examples, scale behavior, zero and near-dependence cases, the boundary between exact and numerical rank, output safety, and responsible interpretation.
The rank of a 3x3 matrix is the dimension of the span generated by its rows or, equivalently, its columns. The possible values are 0, 1, 2, and 3. Rank zero occurs only for the all-zero matrix under the declared finite arithmetic. Rank one means all nonzero rows or columns lie along one independent direction. Rank two means a plane-like span is present but full three-dimensional independence is absent. Rank three means the matrix has three independent pivot directions under the chosen numerical tolerance.
Rank is not the count of nonzero entries and it is not the number of nonzero rows before reduction. Several nonzero rows can be multiples or combinations of one another. Conversely, a sparse matrix can have full rank. The calculator therefore performs elimination on the complete 3x3 input rather than trying to infer rank from a visual pattern or from one determinant check alone.
Enter A as [[a11, a12, a13], [a21, a22, a23], [a31, a32, a33]]. The first digit in a key names a row and the second names a column. The complete matrix is required even when a suspected pattern seems obvious. The handler does not accept a comma-separated matrix string, a nested arbitrary array, a symbolic expression, or a dimension inferred from text. Those choices keep the rank contract fixed and testable.
Every entry must be a finite number from -1000 to 1000 inclusive. Signed, fractional, and zero entries are valid. Direct input with a string, NaN, infinity, missing property, or out-of-range value is rejected before elimination. The form bounds are an engineering boundary for the calculator, not a theorem that rank cannot be studied for larger values. Scaling a valid matrix may change the numerical threshold because the tolerance is defined relative to its scale, so preserve the declared units and scale when comparing results.
The engine scans columns from left to right and selects the largest absolute candidate in the current column as the pivot row. It swaps that row into position, eliminates entries beneath the pivot, and advances to the next row. A pivot whose absolute value is greater than the tolerance increases the rank. A column with no candidate above the tolerance is skipped, allowing the algorithm to find a later pivot in a different column. This is the standard structural idea behind row reduction, adapted to a fixed 3x3 numeric contract.
Partial pivoting improves ordinary floating-point behavior by choosing a relatively large available pivot instead of dividing by the first tiny candidate. It does not make arbitrary measured data exact and it does not replace a condition analysis. Each elimination factor and derived entry is finite-checked. The algorithm works on a copy of the input, so the caller's values are not mutated while the pivot structure is determined.
The tolerance is 1e-12 times the largest absolute entry in the matrix. If the largest entry has magnitude S, a pivot at or below 1e-12*S is treated as zero. This makes the decision relative to the input scale instead of using one unexplained absolute cutoff for every matrix. The zero matrix is handled naturally with scale zero and rank zero. The tolerance is part of the published model and should be recorded whenever a numerical rank result is shared.
A relative tolerance is a practical convention, not a universal truth. A matrix whose small pivot is meaningful at the measurement precision may be classified differently by a stricter or looser tolerance. Scaling all entries by a positive factor scales both the pivot values and the tolerance, so the classification is intended to be stable under that uniform rescaling. Nonuniform changes can alter conditioning and legitimately change the result.
The zero matrix has rank 0. A rank-one example is [[1, 2, 3], [2, 4, 6], [-1, -2, -3]], where every row is a multiple of the first. A rank-two example is [[1, 0, 1], [0, 1, 1], [1, 1, 2]], where the third row is the sum of the first two. The identity matrix has rank 3 because it produces a pivot in every column and row. These fixtures cover the complete output range and are more informative than testing only a full-rank default.
The default matrix [[1, 2, 3], [0, 1, 4], [5, 6, 0]] has determinant one and retains three pivots, so its numerical rank is 3. A determinant can help confirm full rank for a square matrix when it is well separated from zero, but the rank handler itself is based on elimination and tolerance. That separation keeps the implementation meaningful for rank-two and rank-one matrices whose determinant is exactly zero.
Zero rows and columns are allowed. A matrix with one nonzero row can have rank one, while a matrix with two independent nonzero rows and a zero third row can have rank two. A zero entry within an otherwise independent row is not a zero row and does not automatically reduce rank. These distinctions are why the handler counts pivots after elimination rather than counting visible nonzero patterns before any row operations.
Near dependence is where the tolerance matters most. If one row differs from a multiple of another by a residual smaller than the scale-relative threshold, the residual pivot may be treated as zero. If the residual is larger, it can create an additional pivot and the reported rank may increase. Neither result is a claim about the underlying exact matrix when entries are measurements. Report the input precision and tolerance with the output when near-dependence is important.
For a 3x3 matrix, a nonzero determinant implies rank 3, and an exactly zero determinant implies rank below 3 in exact arithmetic. Determinant magnitude alone does not identify whether the rank is 2, 1, or 0, and a small computed determinant can be a scale or conditioning warning. Rank is also different from the Frobenius norm: a large-norm matrix may have rank one, and a small-norm matrix may have rank three. Each metric answers a separate question.
Rank is invariant under invertible changes of row or column coordinates in exact mathematics, but numerical calculations depend on scale, rounding, and tolerance. Transpose preserves rank, and multiplying by an invertible matrix can preserve it, while multiplying by a singular matrix can reduce it. The calculator does not apply those transformations or infer their validity. It returns the numerical classification of the specific nine values supplied.
The result is a numeric metric with integer precision, while the steps state the scale and tolerance used. To review it, run the zero, rank-one, rank-two, and identity fixtures, then perturb a dependent row by a known residual above and below the tolerance. Check transpose invariance and confirm that a uniform rescaling does not unexpectedly change the classification. Also verify that the original input object is unchanged after the call and that JSON serialization contains finite values only.
A numerical rank is useful for education, small software tests, and preliminary structure checks, but it is not an automatic statement about data quality, model identifiability, or physical dimension. The tool does not estimate uncertainty, choose a statistically justified tolerance, or certify a downstream solve. Keep the tolerance, units, source precision, and intended decision with the result. For ill-conditioned or high-consequence work, use a reviewed numerical method suited to the data and preserve the distinction between exact rank and numerical rank.
A row relation and a column relation describe the same rank even though elimination in this handler proceeds through rows and columns in a particular order. A matrix can have dependent rows while its columns show the same missing dimension. Check both descriptions when explaining a result to a reviewer. The implementation does not need to eliminate the transpose because the pivot count of the supplied square matrix already captures the shared dimension under ordinary exact algebra and the declared numerical policy.
A nonzero row does not automatically add a pivot. It may be a multiple of an earlier row or a combination that becomes zero after elimination. Similarly, a column with several nonzero entries may contribute no independent direction. Use the reduced pivot structure, not visual density, as the explanation. This distinction is especially useful for sparse matrices, where a few strategically placed entries can give rank three.
At each step the engine compares available entries in the current column and selects the largest absolute candidate at or below the current pivot row. If no candidate exceeds the scale-relative tolerance, the column is skipped and the search continues. This matters when the first column has no usable pivot but a later column contains an independent direction. A routine that advances the pivot row after every column would undercount some matrices and would not implement the stated elimination contract.
Swapping rows changes the order of the working representation but not the rank. The handler keeps the source object unchanged and performs swaps on a copied matrix. Elimination entries below a pivot are set to zero after their factor is calculated, while later columns receive the finite-checked subtraction. The result is the pivot count, not a displayed row-echelon matrix, so the intermediate rows remain an implementation detail described by the steps.
If every entry is multiplied by the same nonzero scalar, exact rank is unchanged. Under this implementation, the largest absolute entry and every pivot scale by the same magnitude, so the relative tolerance scales with them as well. This makes a useful regression test: multiply a fixture by 2, 0.5, and -3 and confirm the same reported rank, provided the scaled values remain within the input bounds. A zero scalar is different because it creates the zero matrix and rank zero.
Uniform scaling does not make the method insensitive to all numerical effects. Rounding, entry quantization, and nonuniform changes can alter the residuals revealed by elimination. A matrix near a tolerance boundary may also change classification if its source values are serialized with fewer digits. Record the scale and input precision when a rank is used as evidence rather than treating the integer as independent of its data representation.
Near dependence is not a binary fact without a scale and precision convention. Suppose a third row is almost the sum of two rows. The residual after elimination may be below 1e-12 times the largest input entry and therefore not count as a new pivot, or it may be above the threshold and produce rank three. Both classifications can be reproducible under different declared policies. The article and result note expose the selected policy so the output is not mistaken for an exact symbolic proof.
If source measurements are rounded to a few decimal places, a residual far below that precision should not be interpreted as a reliable independent direction. If the source is high precision, the same residual may matter. The handler cannot inspect significant digits or uncertainty, and it does not estimate a condition number. Attach source precision, units, tolerance, and the reason for using this threshold whenever the rank supports a consequential comparison.
Use the zero matrix for rank zero, a single outer-product pattern for rank one, a matrix with one dependent row for rank two, and the identity for rank three. Add a full-rank matrix with a zero in one or more positions so the test does not equate nonzero density with independence. Include a row swap, a column permutation, and a sign reversal. These fixtures exercise pivot placement, skipped columns, dependence, and the fact that signs do not by themselves determine rank.
Perturb a known rank-two matrix in one cell by values below and above the relative threshold. Recompute the expected scale after each perturbation rather than using one absolute epsilon. Then transpose the fixtures and compare the rank. A focused suite that includes these transitions is more informative than many random matrices because it documents exactly where the numerical classification is intended to change.
Rank should not be inferred from the norm. A rank-one matrix can have entries of large magnitude and therefore a large Frobenius norm, while a full-rank matrix can have a small norm after uniform scaling. The trace also cannot determine rank because matrices with the same diagonal sum can have different pivot structures. Keep the full matrix available when a workflow needs to relate these metrics instead of treating one scalar as a substitute for another.
For a square matrix, a determinant well separated from zero supports a full-rank conclusion, but a zero or small determinant does not by itself distinguish ranks zero, one, and two. The rank handler deliberately uses elimination so it can report all four categories and expose a tolerance in pivot terms. The inverse and cofactor tools use determinant behavior for their own contracts; their rejection or acceptance should not silently replace the rank calculation.
Multiplication can preserve or reduce rank depending on the factors. Multiplying by an invertible 3x3 matrix preserves rank in exact arithmetic, while a singular factor can collapse independent directions. The rank page does not inspect another factor or certify invertibility. If rank is checked before and after a product, retain both matrices, the multiplication order, and the tolerance used for each rank result. A difference may reflect the modeled transformation or numerical sensitivity rather than an implementation defect.
Transpose should preserve rank because it exchanges the row and column descriptions of the same linear map. This is a strong cross-tool check for the fixed M1 family. It is still necessary to compare structured numeric results and use the same tolerance convention. A displayed transpose that has been rounded or remapped before ranking can produce a different classification even when the unrounded mathematical transpose would not.
A rank value is only reproducible when the nine entries and their mapping are retained. Store the source grid, row and column labels, units, observation period, serialization precision, tolerance constant, and reported scale when those details matter. Do not store private identifiers in numeric fields or assume that a label such as feature or component supplies enough context. The handler validates numbers and computes pivots; it does not classify the source population, model, or business process.
The result can support a software regression, a teaching example, or a preliminary structural screen. It should not be presented by itself as proof of data quality, identifiability, causal dimension, or safety. A high-consequence workflow may need singular-value analysis, interval arithmetic, uncertainty propagation, or domain-specific validation. Those are separate methods with different contracts. Keep the simple numerical rank visibly bounded rather than implying that it answers those larger questions.
An independent check can reproduce the pivot count with a small test-only elimination routine or with a reviewed numerical library, provided the same tolerance definition and partial-pivot rule are applied. Compare every structured fixture, not only the default full-rank matrix. For a near-dependent case, log the largest absolute entry, the computed tolerance, candidate pivots, and final count. This makes a disagreement diagnosable instead of reducing it to two unexplained integers.
The handler output includes a numeric result, finite steps, and a note that states the relative tolerance. JSON serialization should preserve the integer as a number and the tolerance explanation as text. Do not parse the note to recover the rank or source scale in a later operation. Pass the structured input and result through the surrounding application and keep presentation text at the edge of the workflow.
A rank result is ready for handoff when all nine finite bounded fields are mapped correctly, partial-pivot elimination has counted only pivots above 1e-12 times the largest absolute entry, and the original input remains unchanged. The result should be an integer from zero through three with steps that expose the scale and tolerance. Run the zero, rank-one, rank-two, rank-three, scaled, transposed, and near-boundary fixtures before accepting a change to the handler or catalog contract.
The remaining question is what the reported independence means for the surrounding data. Keep units, uncertainty, precision, source provenance, and the consequence of a rank change with the result. The pure handler supplies one documented numerical classification of a fixed 3x3 matrix. It should remain deterministic and bounded, while any stronger statement about a real system belongs to a separately reviewed analysis.
Estimate the numerical rank of a finite row-major 3x3 matrix with a documented scale-relative pivot tolerance.
rank(A) is the number of pivots retained by partial-pivot elimination after treating pivots at or below 1e-12 times max(abs(Aij)) as zero. The rank is the number of numerically independent pivot rows or columns in the entered 3x3 matrix. This implementation uses partial-pivot elimination and states its scale-relative tolerance instead of parsing an arbitrary matrix expression.
Enter A11, A12, A13, A21, A22, A23, A31, A32, A33, then choose Calculate.
A is a real 3x3 matrix supplied through the fixed row-major numeric fields. Each entry is finite and bounded from -1000 through 1000 inclusive. Numerical rank uses partial-pivot elimination with relative tolerance 1e-12 times the largest absolute matrix entry; a zero matrix has rank 0.
This calculator is part of the WorldCalculate library. Its formula, example, assumptions, input bounds, and output formatting follow the official methodology.
These WorldCalculate collections connect this tool with related questions while keeping each calculation separate and transparent.