Re: Bernoulli variable algebra
- To: mathgroup at smc.vnet.net
- Subject: [mg46539] Re: Bernoulli variable algebra
- From: Dr Bob <drbob at bigfoot.com>
- Date: Sun, 22 Feb 2004 11:27:42 -0500 (EST)
- References: <8e.40ca9af.2d6971b9@aol.com>
- Reply-to: drbob at bigfoot.com
- Sender: owner-wri-mathgroup at wolfram.com
If the calculations involve any kind of sub-expressions, they can be
expanded individually, as in my simple example. If not, we might simply
"manage" its expansion. Details depend on how the expressions arise, but
here's an example. First I take a single step to reduce a large power.
Then I take the other 96 steps or so. Then I expand a product to finish
the process.
subFunction[a_Symbol] :=
Block[{aa = ToString[a]},
MakeExpression[SubscriptBox[ToString[a],
i_], f_] := MakeExpression[
RowBox[{ToString[a], "[", i, "]"}]];
MakeBoxes[a[i_], f_] := SubscriptBox[
MakeBoxes[a, f], MakeBoxes[i, f]]]
subFunction[binary]
binary[i_]*binary[i_] ^= binary[i];
Unprotect[Power];
binary[i_]^(n_)?Positive := binary[i]
Protect[Power];
stepDown = (a_)^(n_Integer) /; n > 2 && PolynomialQ[a, binary[i_]] :>
Expand[a^2]*a^(n - 2);
(binary[j] + binary[i])^100
(binary[i] + binary[j])^100
% /. stepDown
(binary[i] + binary[j])^98* (binary[i] + binary[j] +
2*binary[i]*binary[j])
% //. stepDown
(binary[i] + binary[j])^2*
(binary[i] + binary[j] +
2*binary[i]*binary[j])*
(binary[i] + binary[j] +
14*binary[i]*binary[j])^2*
(binary[i] + binary[j] +
254*binary[i]*binary[j])*
(binary[i] + binary[j] +
65534*binary[i]*binary[j])*
(binary[i] + binary[j] +
4294967294*binary[i]*
binary[j])^2
Expand[%]
binary[i] + binary[j] +
1267650600228229401496703205374*binary[i]*binary[j]
Bobby
On Sat, 21 Feb 2004 21:45:13 EST, <JMyers6761 at aol.com> wrote:
>
> In a message dated 2/21/04 11:01:57 AM, drbob at bigfoot.com writes:
>
> << Bobby >>
>
> Thank you for your thoughtful reply. Your technique is interesting and
> represents an approach I had not considered. However I believe it will
> still require
> the expansion of the inititial expression which for the actual problem I
> have
> is on the order of 10^6 terms - if the expression could be expanded I
> believe
> your approach would produce the correct results but the trick I'm
> looking for
> is a transformation that could be done without the Expand. I know from
> other
> analysis of the problem that the resulting expression, after the
> Bernoulli
> transformation, will still be large, on the order of 10^3 terms, but
> will be
> managable. I have reposted what I hope is a more complete statement of
> my
> problem. Thanks for the help.
>
> Al