# Satellite package

The `Satellite` package contains Maple procedures to determine satellite and linearly satellite unknowns in linear differential systems. Procedures for satellite unknowns recognizing implement partial algorithms, so they cannot be applied to all differential systems and thus they solve the problem in some cases. In other cases they do not give any answer (nor positive, nor negative).

We consider a differential system S of the form

y'=Ay or Ary(r)+Ar-1y(r-1)+ … +A1y'+A0y=0

where A, A0, …, Ar are n `x` n matrices over K=Q(x), y=(y1,…,yn)T is a vector of unknowns. We assume that some unknowns (entries of the vector y) are selected. Denote the set of selected unknowns by s.

Definition. An unselected unknown yj is called a satellite unknown for the set of selected unknowns s in S if minimal subfield of a Picard–Vessio field over K for S, that contains all selected components of all solutions to S, also contains the yj component of any solution.

Definition. The unselected unknown yj is called a linearly satellite unknown for the set of selected unknowns s in S if the j-th component of any solution to S can be linearly expressed only via selected components of this solution and their derivatives.

The `Satellite` package exports the following procedures:

• `Testing`;
• `Determination`;
• `LinSatTesting`;
• `LinearlySatellite`.

## Satellite:-Testing procedure

### Calling Sequence

`Testing(A, s, v)`

### Parameters

• `A` — square matrix of the normal differential system y'=Ay
• `s` — set of positive integers — indices of selected unknowns
• `v` — positive integer - index of the testing unknown

### Description

`Testing` procedure determines whether the unknown of index `v` (y`v`) of differential system y'=Ay is a satellite for the set of selected unknowns s.

`Testing` is an implementation of partial algorithm and so it returns “true” if it is able to determine that y`v` is a satellite; otherwise it returns “FAIL”. It also returns “FAIL” in a case when y`v` is a satellite for s but the partial algorithm cannot determine this. `Testing` procedure cannot determine if y`v` is not a satellite.

## Satellite:-Determination procedure

### Calling Sequence

`Determination(M, s)`

### Parameters

• `M` — square matrix of the normal differential system y'=Ay or a list of high-order differential system matrices
• `s` — set of positive integers — indices of selected unknowns

### Description

`Determination` procedure is based on `Testing` procedure and intended to determine the set of satellite unknowns for a given system and a fixed set of selected unknowns.

It builds a partition of the set of unselected unknown indices that contains three parts:

1. indices of unselected unknowns that are satellite for selected unknowns s;
2. indices of unselected unknowns for which `Testing` algorithm cannot determine if they are satellite;
3. indices of unselected unknowns that are not satellite for sure.

## Satellite:-LinSatTesting procedure

### Calling Sequence

`LinSatTesting(A, s, v)`

`LinSatTesting(A, s, v, 'B')`

### Parameters

• A - square matrix of the normal differential system y'=Ay
• s - set of positive integers — indices of selected unknowns
• v - positive integer - index of the testing unknown
• B - (optional) used to return the matrix of the linear expression coefficients

### Description

`LinSatTesting` procedure determines whether the unknown of index v (yv) of differential system y'=Ay is linearly satellite for the set of selected unknowns s. `LinSatTesting` returns «true» if yv is linearly satellite for selected unknowns s; otherwise it returns «false». The entries of B matrix can be used as coefficients of linear expression for yv via selected unknowns and their derivatives.

## Satellite:-LinearlySatellite procedure

### Calling Sequence

`LinearlySatellite(A, s)`

### Parameters

• A — square matrix of the normal differential system y'=Ay or a list of high-order differential system matrices
• s — set of positive integers — indices of selected unknowns

### Description

`LinearlySatellite` procedure builds and returns the set of linearly satellite unknown indices for the set of selected unknowns s.

# Source

sat.mpl — the Maple code of the package

sat_sample.pdf — the pdf copy of Maple session with examples