# DiscreteShift

DiscreteShift[f,i]

gives the discrete shift .

DiscreteShift[f,{i,n}]

gives the multiple shift .

DiscreteShift[f,{i,n,h}]

gives the multiple shift of step h.

DiscreteShift[f,i,j,]

computes partial shifts with respect to i, j, .

# Details and Options • DiscreteShift[f,i] can be input as if. The character is entered using shift or \[DiscreteShift]. The variable i is entered as a subscript.
• All quantities that do not explicitly depend on the variables given are taken to have constant partial shift.
• DiscreteShift[f,i,j] can be input as i,jf. The character \[InvisibleComma], entered as , , can be used instead of the ordinary comma.
• DiscreteShift[f,{i,n,h}] can be input as {i,n,h}f.
• DiscreteShift[f,,Assumptions->assum] uses the assumptions assum in the course of computing discrete shifts.

# Examples

open allclose all

## Basic Examples(4)

Shift with respect to i:

Shift with step h:

Multiple shifts with respect to i:

Enter using shift , and subscripts using :

The shift with respect to i of scoped operators:

## Scope(10)

### Basic Use(3)

Compute the first and second shift:

First and second shift with step h:

The first partial shifts with respect to i and j :

Higher partial shifts:

Partial shifts with steps r and s:

### Special Sequences(3)

Elementary functions:

Integer functions:

Holonomic sequences satisfy a linear difference equation:

### Special Operators(4)

Sums:

Shifting inside the summation sign:

In this case i is not a free variable:

Products:

Differencing product limits:

Integrals:

Shifting integration limits:

Limits:

Here the i is not a free variable:

## Applications(2)

Define a symbolic mean operator using DiscreteShift:

It also works with scoping constructs:

Use on special functions:

Use DiscreteShift to define derivatives:

## Properties & Relations(3)

DiscreteShift is a linear operator:

Product rule:

Quotient rule:

Chain rule:

DiscreteShift can be expressed in terms of DifferenceDelta:

DifferenceDelta can be expressed in terms of DiscreteShift:

DiscreteRatio can be expressed in terms of DiscreteShift:

## Possible Issues(1)

Using ReplaceAll to implement DiscreteShift can be dangerous: DiscreteShift understands scoping rules: