Re: Polar coordinates - ReplaceAll issue
- To: mathgroup at smc.vnet.net
- Subject: [mg107491] Re: [mg107479] Polar coordinates - ReplaceAll issue
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Sun, 14 Feb 2010 08:17:15 -0500 (EST)
- References: <201002141058.FAA25972@smc.vnet.net>
Hi, if you want to replace something, then you have to use a Rule or a RuleDelayed! Paste to following into a notebook Rule[a, b] a -> b RuleDelayed[a, b] a :> b and see, that this has *nothing* to do with an \[RightArrow]. Changing this and your sample is syntactically correct: Needs["MultivariateStatistics`"] X = {x1, x2}; mu = {0, 0}; Sigma = sigma^2 ({{1, rho}, {rho, 1}}); dist = MultinormalDistribution[mu, Sigma]; cond = {sigma > 0, -1 < rho < 1, r > 0, 0 < theta < 2 \[Pi]}; f = Simplify[PDF[dist, X], cond] domain[f] = {{x1, -\[Infinity], \[Infinity]}, {x2, -\[Infinity], \[Infinity]}} && cond; Omega = {x1 :> r Cos[theta], x2 :> r Sin[theta]}; g = Simplify[(f /. Omega) Jacob[X /. Omega, {r, theta}], cond] Cheers Patrick On Sun, 2010-02-14 at 05:58 -0500, Andrej wrote: > Hi, > > this is my first post to this group. Yes, I'm a newbie in Mathematica. > I'm trying to compute the probability of circular disc (in R^2). > Suppose that vertical and horizontal deviations from the center of the > disc follows bivariate normal distribution. I hope that the code below > is self explained. The main issue is the transformation from Cartesian > to polar coordinates as follows: > > # First I set up the appropriate bivariate normal distribution: > Needs["MultivariateStatistics`"] > X = {x1, x2}; > mu = {0, 0}; > Sigma = sigma^2 ({{1,rho}, {rho,1}}); > dist = MultinormalDistribution[mu, Sigma]; > cond = {sigma > 0, -1 < rho < 1, r > 0, 0 < theta < 2 \[Pi]}; > f = Simplify[PDF[dist, X], cond] > domain[f] = {{x1, -\[Infinity], \[Infinity]}, {x2, -\[Infinity], \ > [Infinity]}} && cond; > > # Transformation to polar coordinates: > Omega = {x1 \[RightArrow] r Cos[theta], x2 \[RightArrow] r > Sin[theta]}; > g = Simplify[(f /. Omega) Jacob[X /. Omega, {r, theta}], cond] > > And the message I get: > > ReplaceAll::reps: {x1\[RightArrow]r Cos[theta],x2\[RightArrow]r > Sin[theta]} is neither a list of replacement rules nor a valid > dispatch table, and so cannot be used for replacing. >> > > Thanks in advance for any suggestions or pointers. > > Best, Andrej >
- References:
- Polar coordinates - ReplaceAll issue
- From: Andrej <andrej.kastrin@gmail.com>
- Polar coordinates - ReplaceAll issue