# fixed.singularValueUpperBound

Upper bound of largest singular value of matrix

Since R2022b

## Syntax

``svdUpperBound = fixed.singularValueUpperBound(m,n,max_abs_A)``
``svdUpperBound = fixed.singularValueUpperBound(m,n,max_abs_A,regularizationParameter)``

## Description

example

````svdUpperBound = fixed.singularValueUpperBound(m,n,max_abs_A)` returns an upper bound of the largest singular value of an `m`-by-`n` matrix `A`, where `m >= n` and `max_abs_A >= max(abs(A(:)))`.```

example

````svdUpperBound = fixed.singularValueUpperBound(m,n,max_abs_A,regularizationParameter)` returns an upper bound of the largest singular value of the matrix `[regularizationParameter*eye(n); A]`, where `A` is an `m`-by-`n` matrix with `m >= n`.```

## Examples

collapse all

Define a real-valued matrix, `A`.

```m = 5; n = 3; A = ones(m,n); max_abs_A = 1;```

Determine an upper bound for the largest singular value of the matrix.

`svdUpperBound = fixed.singularValueUpperBound(m,n,max_abs_A)`
```svdUpperBound = 3.8730 ```

Compare to the actual largest singular value of the matrix.

`actual_largest_singular_value = max(svd(A))`
```actual_largest_singular_value = 3.8730 ```

Use the helper function `realRandomLowRankMatrix` to define a real-valued, low rank matrix `A`.

```m = 300; n = 10; rankA = 3; A = realRandomLowRankMatrix(m,n,rankA);```

Determine an upper bound for the largest singular value of the matrix of the Tikhonov regularized problem.

```regularizationParameter = 0.01; A = [regularizationParameter*eye(n);A]; svdUpperBound = fixed.singularValueUpperBound(m,n,max(abs(A(:))),regularizationParameter)```
```svdUpperBound = 54.7823 ```

Compare to the actual largest singular value of the matrix.

`actual_largest_singular_value = max(svd(A))`
```actual_largest_singular_value = 13.3424 ```

## Input Arguments

collapse all

Number of rows in matrix `A`, specified as a positive integer-valued scalar. The number of rows, `m`, must be greater than or equal to the number of columns, `n`.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`

Number of columns in matrix `A`, specified as a positive integer-valued scalar. The number of rows, `m`, must be greater than or equal to the number of columns, `n`.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`

Maximum of absolute value of matrix `A`, specified as a scalar.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`

Regularization parameter, specified as a nonnegative scalar.

Data Types: `single` | `double`

## Algorithms

The upper bound for the largest singular value of matrix `A` is `svdUpperBound = sqrt(m*n)*max(abs(A(:)))`. If there is a regularization parameter, then the upper bound is ```svdUpperBound = sqrt(m*n)*max(abs(A(:))) + abs(regularizationParameter)``` [1][2][3].

## References

[1] Bryan, Thomas A., Jenna L. Warren, Brenda Zhuang, and Jessica Clayton. Continuation in Part for "Systems and Methods for Design Parameter Selection." U.S. Patent Application No. 16/947, 130. 2022.

[2] Bryan, Thomas A., and Jenna L. Warren. "Systems and Methods for Design Parameter Selection." U.S. Patent Application No. 16/947, 130. 2020.

[3] Chen, Zizhong, and Jack J. Dongarra. "Condition Numbers of Gaussian Random Matrices." SIAM Journal on Matrix Analysis and Applications 27, no. 3 (July 2005): 603—620. https://doi.org/10.1137/040616413.

## Version History

Introduced in R2022b