Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.

See the recommended documentation of this function

# power

(^,.^) power operation

### Syntax

t=A^b t=A**b t=A.^b

### Arguments

- A,t
scalar, polynomial or rational matrix.

- b
a scalar, a vector or a scalar matrix.

### Description

If

`A`

is a square matrix and`b`

is a scalar then`A^b`

is the matrix`A`

to the power`b`

.If

`b`

is a scalar and`A`

a matrix then`A.^b`

is the matrix formed by the element of`A`

to the power`b`

(element-wise power). If`A`

is a vector and`b`

is a scalar then`A^b`

and`A.^b`

performs the same operation (i.e. element-wise power).If

`A`

is a scalar and`b`

is a square matrix`A^b`

is the matrix`expm(log(A) * b)`

.If

`A`

is a scalar and`b`

is a vector`A^b`

and`A.^b`

are the vector formed by`a^(b(i,j))`

.If

`A`

is a scalar and`b`

is a matrix`A.^b`

is the matrix formed by`a^(b(i,j))`

.If

`A`

and`b`

are vectors (matrices) of the same size`A.^b`

is the`A(i)^b(i)`

vector (`A(i,j)^b(i,j)`

matrix).

### Additional Remarks

Notes: |

1. For square matrices `A^p`

is computed through successive matrices
multiplications if `p`

is a positive integer, and by *diagonalization* if not (see "note 2 and 3" below for details).

2. If `A`

is a square and Hermitian matrix and `p`

is a non-integer scalar,
`A^p`

is computed as:

`A^p = u*diag(diag(s).^p)*u'`

(For real matrix `A`

, only the real part of the answer is taken into account).

`u`

and `s`

are determined by `[u,s] = schur(A)`

.

3. If `A`

is not a Hermitian matrix and `p`

is a non-integer scalar,
`A^p`

is computed as:

`A^p = v*diag(diag(d).^p)*inv(v)`

(For real matrix `A`

, only the real part of the answer is taken into account).

`d`

and `v`

are determined by `[d,v] = bdiag(A+0*%i)`

.

4. If `A`

and `p`

are real or complex numbers,
`A^p`

is the *principal value* determined by:

`A^p = exp(p*log(A))`

(or `A^p = exp(p*(log(abs(A))+ %i*atan(imag(A)/real(A))))`

).

5. If `A`

is a square matrix and `p`

is a real or complex number,
`A.^p`

is the *principal value* computed as:

`A.^p = exp(p*log(A))`

(same as case 4 above).

6. `**`

and `^`

operators are synonyms.

Exponentiation is right-associative in Scilab contrarily to Matlab® and Octave.
For example 2^3^4 is equal to 2^(3^4) in Scilab but is equal to (2^3)^4 in Matlab®
and Octave. |

### Examples

Report an issue | ||

<< polar | Log - exp - power | sqrt >> |