       Re: Iteratively determing successive values from previous values....

• To: mathgroup at smc.vnet.net
• Subject: [mg80412] Re: Iteratively determing successive values from previous values....
• From: "Jean-Marc Gulliet" <jeanmarc.gulliet at gmail.com>
• Date: Wed, 22 Aug 2007 04:36:25 -0400 (EDT)
• References: <fabnc6\$419\$1@smc.vnet.net> <46C96DC6.3000906@gmail.com>

```ashesh cb <ashesh.cb at gmail.com> wrote:

> Sir,
>
> Thank you for your response. I have attached a Mathematica notebook in which
> I have represented what I exactly need.
>
> In the attached file, I have computed up to X_4 and Y_4. but, I actually
> need to calculate up to X_15 and Y_15. I want to do these calculations
> recursively so that I do not have to copy-paste the code for each higher
> term manually.

Here is the content of the attached notebook:

(* Beginning of program1.nb *)

Subscript[x, 2] =
Subscript[x, 1] - m Subscript[\[Sigma], 1] Subscript[y, 1] 2^-i;
Subscript[y, 2] =
Subscript[y, 1] +  Subscript[\[Sigma], 1] Subscript[x, 1] 2^-i;
Subscript[x, 3] =
Subscript[x, 2] -
m Subscript[\[Sigma], 2] Subscript[y, 2] 2^(-2 i);
Subscript[y, 3] =
Subscript[y, 2] + Subscript[\[Sigma], 2] Subscript[x, 2] 2^(-2 i);
Subscript[x, 4] =
Subscript[x, 3] -
m Subscript[\[Sigma], 3] Subscript[y, 3] 2^(-3 i);
Subscript[y, 4] =
Subscript[y, 3] + Subscript[\[Sigma], 3] Subscript[x, 3] 2^(-3 i);
Subscript[x, 5] =
Subscript[x, 4] -
m Subscript[\[Sigma], 4] Subscript[y, 4] 2^(-4 i);
Subscript[y, 5] =
Subscript[y, 4] + Subscript[\[Sigma], 4] Subscript[x, 4] 2^(-4 i);
Subscript[x, 6] =
Subscript[x, 5] -
m Subscript[\[Sigma], 5] Subscript[y, 5] 2^(-5 i);
Subscript[y, 6] =
Subscript[y, 5] + Subscript[\[Sigma], 5] Subscript[x, 5] 2^(-5 i);
Subscript[x, 7] =
Collect[ Subscript[x, 6] -
m Subscript[\[Sigma], 6] Subscript[y, 6] 2^(-6 i), {Subscript[x,
1], Subscript[y, 1]}]
Subscript[y, 7] =
Collect[
Subscript[y, 6] +
Subscript[\[Sigma], 6] Subscript[x, 6] 2^(-6 i), {Subscript[x, 1],
Subscript[y, 1]}]

(* End of prgram1.nb *)

I believe that you should not have the free variable 'i' hanging
around. Anyway, what you are looking for is a recursive definition of
the coupled difference equations. You can do that as follows.

In:= Clear[x, y];
x = Subscript[x, 1];
y = Subscript[y, 1];
x[n_] := x[n] =
x[n - 1] - m Subscript[\[Sigma], n - 1] y[n - 1] 2^(-(n - 1) i)
y[n_] := y[n] =
y[n - 1] + Subscript[\[Sigma], n - 1] x[n - 1] 2^(-(n - 1) i)

In:= Table[{x[n], y[n]}, {n, 4}]

Out= {{Subscript[x, 1], Subscript[y,
1]}, {Subscript[x, 1] -
2^-i m Subscript[y, 1] Subscript[\[Sigma], 1],
Subscript[y, 1] +
2^-i Subscript[x, 1] Subscript[\[Sigma], 1]}, {Subscript[x, 1] -
2^-i m Subscript[y, 1] Subscript[\[Sigma], 1] -
2^(-2 i) m (Subscript[y, 1] +
2^-i Subscript[x, 1] Subscript[\[Sigma], 1]) Subscript[\[Sigma],
2], Subscript[y, 1] +
2^-i Subscript[x, 1] Subscript[\[Sigma], 1] +
2^(-2 i) (Subscript[x, 1] -
2^-i m Subscript[y, 1] Subscript[\[Sigma],
1]) Subscript[\[Sigma], 2]}, {Subscript[x, 1] -
2^-i m Subscript[y, 1] Subscript[\[Sigma], 1] -
2^(-2 i) m (Subscript[y, 1] +
2^-i Subscript[x, 1] Subscript[\[Sigma], 1]) Subscript[\[Sigma],
2] -
2^(-3 i) m (Subscript[y, 1] +
2^-i Subscript[x, 1] Subscript[\[Sigma], 1] +
2^(-2 i) (Subscript[x, 1] -
2^-i m Subscript[y, 1] Subscript[\[Sigma],
1]) Subscript[\[Sigma], 2]) Subscript[\[Sigma], 3],
Subscript[y, 1] + 2^-i Subscript[x, 1] Subscript[\[Sigma], 1] +
2^(-2 i) (Subscript[x, 1] -
2^-i m Subscript[y, 1] Subscript[\[Sigma],
1]) Subscript[\[Sigma], 2] +
2^(-3 i) (Subscript[x, 1] -
2^-i m Subscript[y, 1] Subscript[\[Sigma], 1] -
2^(-2 i) m (Subscript[y, 1] +
2^-i Subscript[x, 1] Subscript[\[Sigma],
1]) Subscript[\[Sigma], 2]) Subscript[\[Sigma], 3]}}

> In addition to the calculations, I need to know as to how many terms are
> there in each of the for x_1 and y_1 for each of x_4 and y_4. In addition to
> that, I need to know as to how many terms form each component of x_1 and y_1
> and what the power of 2 is?.
>
> That is corresponding to x_4 =>
>
> 1.  I need to know that there are 4 terms which have x1 in common and 4 with
> y1 in common.

You could use Collect and Length as in

In:= Collect[x, {Subscript[x, 1], Subscript[y, 1]}]

Out= Subscript[x,
1] (1 - 2^(-3 i) m Subscript[\[Sigma], 1] Subscript[\[Sigma], 2] -
2^(-4 i) m Subscript[\[Sigma], 1] Subscript[\[Sigma], 3] -
2^(-5 i) m Subscript[\[Sigma], 2] Subscript[\[Sigma], 3]) +
Subscript[y,
1] (-2^-i m Subscript[\[Sigma], 1] -
2^(-2 i) m Subscript[\[Sigma], 2] -
2^(-3 i) m Subscript[\[Sigma], 3] +
2^(-6 i) m^2 Subscript[\[Sigma], 1] Subscript[\[Sigma], 2]
Subscript[\[Sigma], 3])

In:= Length[Collect[x, Subscript[x, 1]]] - 1

Out= 4

In:= Length[Collect[x, Subscript[y, 1]]] - 1

Out= 4

> 2. How many sigma's are there with each of the 4 terms that have x1 in
> common and what their signs are? Similar details for y1 are needed
>
> The paper in which the above iterative procedure was implemented is also
> attached to this email. The authors had implemented it using another
> programming language (page 184-185). The authors have tabulated the details
> corresponding to (x4, x5 in page 185) in Table.1. I was unable to think as
> to how it can be done in another CAS, so I have been trying to do it in
> MATHEMATICA.
>
> I will be thankful for any help in implementation of the above procedure.
>
> Thanking you.
>
>  with regards,
> Ashesh

--
Jean-Marc

```

• Prev by Date: Re: Missing information in Mathematica 6.0 Documentation
• Next by Date: Re: lower diagonal matrix
• Previous by thread: Re: Iteratively determing successive values from previous values....
• Next by thread: Manipulate with Wrapping SetterBars