Re: Erf funcion
- To: mathgroup at smc.vnet.net
- Subject: [mg123941] Re: Erf funcion
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Mon, 2 Jan 2012 02:41:04 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201201010729.CAA28444@smc.vnet.net>
FiX[x_] = (1/2)*(1 + Erf[x/Sqrt[2]]);
expr = 3 (2^(7/2 -
2 (k + t))) Cp (E^(-d^2 - (36 Cp^2)/
lambda^2))*((Erf[(-d + (6 Cp)/lambda)/Sqrt[2]] +
Erf[(6 Cp + d lambda)/(Sqrt[2] lambda)])^k);
expr /. Erf[x_] -> 2*HoldForm[FiX[x*Sqrt[x]]] - 1
3*2^(7/2 - 2*(k + t))*Cp*E^(-d^2 - (36*Cp^2)/lambda^2)*
(-2 + 2*
HoldForm[FiX[((-d + (6*Cp)/lambda)*Sqrt[(-d + (6*Cp)/lambda)/Sqrt[2]])/
Sqrt[2]]] +
2*HoldForm[
FiX[((6*Cp + d*lambda)*
Sqrt[(6*Cp + d*lambda)/(Sqrt[2]*lambda)])/(Sqrt[2]*lambda)]])^k
% // ReleaseHold // Simplify
3*2^(7/2 - 2*k - 2*t)*Cp*E^(-d^2 - (36*Cp^2)/lambda^2)*
(Erf[(-d + (6*Cp)/lambda)^(3/2)/(2*2^(1/4))] +
Erf[(Sqrt[d + (6*Cp)/lambda]*(6*Cp + d*lambda))/
(2*2^(1/4)*lambda)])^k
If you want to simplify the argument to FiX
expr /. Erf[x_] -> ToExpression[
"2*HoldForm[FiX[" <>
ToString[Simplify[x*Sqrt[x]], InputForm] <>
"]]-1"]
3*2^(7/2 - 2*(k + t))*Cp*E^(-d^2 - (36*Cp^2)/lambda^2)*
(-2 + 2*HoldForm[FiX[((-d + (6*Cp)/lambda)/Sqrt[2])^(3/2)]] +
2*HoldForm[FiX[((6*Cp + d*lambda)/(Sqrt[2]*lambda))^(3/2)]])^k
% // ReleaseHold // Simplify
3*2^(7/2 - 2*k - 2*t)*Cp*E^(-d^2 - (36*Cp^2)/lambda^2)*
(Erf[(-d + (6*Cp)/lambda)^(3/2)/(2*2^(1/4))] +
Erf[(d + (6*Cp)/lambda)^(3/2)/(2*2^(1/4))])^k
% == %%% // Simplify
True
Bob Hanlon
On Sun, Jan 1, 2012 at 2:29 AM, Vicent <vginer at gmail.com> wrote:
> Hello.
>
> I have an expression that depends on the Cumulative Distribution
> Function (CDF) of a Normal Variable with mean = 0 and standard
> deviation = 1.
>
> When I perform operations and/or derivatives with/for that function
> with Mathematica, I get expressions involving Erf function, as the CDF
> function of a Normal distributed variable and Erf (error function) are
> closely related. Concretely,
>
> FiX[x] == (1/2)*(1 + Erf[x/Sqrt[2]])
>
> and thus
>
> Erf[x] == 2*FiX[x*Sqrt[2]] - 1
>
> where FiX stands for the previously mentioned CDF, I mean:
>
> X = NormalDistribution[0, 1]
> FiX[x_] := CDF[X, x]
>
>
> Is there a quick way to ask Mathematica not to use Erf but always
> let the results as a function of FI[x]??
>
> The expressions I get as a result of my computations are larger than
> this short example:
>
> 3 (2^(7/2 - 2 (k + t))) Cp ( E^(-d^2 - (36 Cp^2)/lambda^2))
> ((Erf[(-d + (6 Cp)/lambda)/Sqrt[2]] + Erf[(6 Cp + d lambda)/(Sqrt[2]
> lambda)])^k)
>
> where "Cp", "k", "t", "d" and "lambda" are parameters or arguments
> that I want to keep as "generic".
>
> So, how can I "translate" expressions such as the last one into "FiX
> mode"? Or, better, how can I prevent Mathematica to reduce everything
> to "Erf mode"??
>
> I hope my question is clear enough... :)
>
> Thank you very much in advance for your answers.
>
> And have a good new year!
>
>
> --
> vicent
> dooid.com/vicent
>
- References:
- Erf funcion
- From: Vicent <vginer@gmail.com>
- Erf funcion