MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Use of Mathematica with Rule-based Equation Derivations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg61944] Re: [mg61914] Use of Mathematica with Rule-based Equation Derivations
  • From: "David Park" <djmp at earthlink.net>
  • Date: Sat, 5 Nov 2005 01:52:45 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Hi Mark,

Clearly, I think you have to specify either a list of variables or a list of
constants. It will probably be easier to specify the variables. So for the
cases you have presented (using EV instead of E for the expectation value
operator)...

vars = {x};

expectationBreakout[vars_][expr_] :=
  expr //. {EV[a_?(FreeQ[#, Alternatives @@ vars] &)b_] -> a EV[b],
      EV[a_?(FreeQ[#, Alternatives @@ vars] &) + b_] -> a + EV[b],
      EV[EV[x_]] -> EV[x]}

{EV[a x], EV[b + f[x]], EV[a + EV[b x]]};
% // expectationBreakout[vars]

{a EV[x], b + EV[f[x]], a + b EV[x]}

I suppose there would be additional sets of rules for evaluating various
functions of the variables.

It certainly is possible to do step by step derivations and calculations
with Mathematica. It's the best way to learn material! You can do many steps
within one cell and intersperse them with Print statements to annotate the
derivation. But one will usually have to write rules, as above, to implement
the various 'axioms'.

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/


From: mmorriss at gcn.ou.edu [mailto:mmorriss at gcn.ou.edu]
To: mathgroup at smc.vnet.net


Hi All - I'm a many-year user of mathematica, but have always had one
particular problem with it that I may have just simply missed reading
about.

Mathematica Version: 5.2

Problem: I would like to develop a set of re-rewite rules to apply to the
Expected Value operator.  For example:

E[a x] = a E[x]  a -> constant, x -> variable
E[b + f[x]] = b + E[f[x]] , etc.

The issue is how does one using Mathematica distinguish a 'constant
variable (i.e. a and b)' from a variable 'variable' (i.e. 'x')? The head
of a, b and x is 'Symbol' and neither a, b nor x contain a number so I
can't use a_?NumberQ to identify it as a constant.

This actually goes to the wider question of how does one use Mathematica
for symbolic derviations where numbers are not actually substituted in the
derviation?

E.g. E[a + E[b x]] /. Rule2
   out= a + b E[x] etc.

Thanks all - Mark Morrissey
University of Oklahoma




  • Prev by Date: Re: Use of Mathematica with Rule-based Equation Derivations
  • Next by Date: Re: Re: Question regarding Mathematica's treatment of whitespace
  • Previous by thread: Re: Use of Mathematica with Rule-based Equation Derivations
  • Next by thread: Re: Use of Mathematica with Rule-based Equation Derivations