# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

# `linalg`::`isPosDef`

Test a matrix for positive definiteness

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.

## Syntax

```linalg::isPosDef(`A`)
```

## Description

`linalg::isPosDef(A)` checks whether the matrix A is positive definite, so that for arbitrary vectors .

The component ring of `A` must be a field, i.e., a domain of category `Cat::Field`.

An error message is returned, if a result of an intermediate computation cannot be checked for being positive (which could happen, for example, if components of `A` are symbolic).

## Environment Interactions

Properties of identifiers are taken into account.

## Examples

### Example 1

Here is an example of a positive definite matrix:

```MatR := Dom::Matrix( Dom::Real ): A := MatR([[14, 6, 9], [6, 17, -4], [9, -4, 13]])```

`linalg::isPosDef(A)`

The following matrix is not positive definite:

`B := MatR([[1, 2, 3], [2, 3, 4], [5, 6, 7]])`

`linalg::isPosDef(B)`

### Example 2

`linalg::isPosDef` in general does not work for matrices with symbolic entries. It may respond with an error message (because the system in general cannot decide whether a symbolic component is positive), such as for the following matrix:

```delete a, b: C := matrix([[a, b], [b, a]])```

`linalg::isPosDef(C)`
```Error: Unable to check whether the matrix component is positive. [linalg::factorCholesky] ```

However, properties of identifiers are taken into account, so that, for example, `linalg::isPosDef` is able to perform the test correctly for the following matrix:

`assume(a > 1): C := matrix([[a, 1], [1, a]]):`
`linalg::isPosDef(C)`

Note that such computations depend on the power of the underlying property mechanism implemented in the `property` library.

## Parameters

 `A` A matrix of a domain of category `Cat::Matrix`

## Return Values

Either `TRUE` or `FALSE`.