Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

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

Search the Archive

Re: how can I solve a function Erfc

  • To: mathgroup at smc.vnet.net
  • Subject: [mg48447] Re: how can I solve a function Erfc
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Sun, 30 May 2004 06:12:08 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

David W. Cantrell wrote:
> montgermont.aude at ec-lille.fr (aude) wrote:
> 
>>I have to solve this function:
>>
>>Erfc[L/(4*(Dg*t)^(1/2))]= 0.9
>>
>>Dg is constant.
>>
>>Dg=5*10^5
>>
>>I want to plot t as a function of L.
> 
> 
> If plotting t as a function of L is all you want to do, you can just use
> ImplicitPlot. But trying to use Mathematica to solve an equation of the
> form
> 
>  Erfc[L/(4*(Dg*t)^(1/2))] == k
> 
> for t in terms of L, Dg, and k raises some interesting points, one of which
> I suspect is a bug.
> 
> First, note that Mathematica has a built-in function InverseErfc. With that
> in mind, you might think that one of the following would work, but alas,
> no.
> 
> In[1]:= Solve[Erfc[L/(4*(Dg*t)^(1/2))] == k, t]
> ...
> Out[1]= {}
> 
> In[2]:= Reduce[Erfc[L/(4*(Dg*t)^(1/2))] == k, t]
> ...
> Out[2]= Reduce[Erfc[L/(4*Sqrt[Dg*t])] == k, t]
> 
> But it seems that we should be able, trivially, to assist Mathematica by
> rewriting the equation using InverseErfc. (Note that I've now used your
> specific k value, so that there is no doubt that InverseErfc is defined
> there.)
> 
> In[3]:= Solve[L/(4*Sqrt[Dg*t]) == InverseErfc[9/10], t]
> Out[3]= {}
> 
> Surely this is a bug. The solution for t should have been
> 
>  L^2/(16*Dg*InverseErf[Infinity, -(9/10)]^2)
> 
> which, BTW, is obtainable with Reduce. I can't imagine why Solve didn't
> work there!
> 
> David Cantrell
> 

The Solve verification process did not like that value (no doubt due to 
presence of the Infinity). That may indicate a bug, I'm not sure.

In[6]:= InputForm[Solve[Erfc[L/(4*(Dg*t)^(1/2))] == k, t, 
VerifySolutions->False]]

Solve::ifun: Inverse functions are being used by Solve, so some 
solutions may
      not be found; use Reduce for complete solution information.

Out[6]//InputForm= {{t -> L^2/(16*Dg*InverseErf[Infinity, -k]^2)}}

Daniel Lichtblau
Wolfram Research



  • Prev by Date: Re: Number of roots from Solve?
  • Next by Date: Re: Number of roots from Solve?
  • Previous by thread: Re: how can I solve a function Erfc
  • Next by thread: S_4 elements