MathGroup Archive 1997

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

Search the Archive

Re: Not a machine-size real number?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg9305] Re: [mg9260] Not a machine-size real number?
  • From: David Withoff <withoff>
  • Date: Mon, 27 Oct 1997 02:47:17 -0500
  • Sender: owner-wri-mathgroup at wolfram.com

> Hello, I am trying to do the following in Mahtematica 3.0.0 for Linux
> 
> BB[I_,a_,NN,d_,z_]= (I*NN/(2*d))*(z/Sqrt[a^2+z^2])
> Plot[BB[1,0.05,100,0.01,z],{z,-1,1}]
> 
> Instead of getting the plot, I get the following error message:
> 
> Plot::"plnr":
> BB[1,0.05,100,0.01,z] ] is not a machine-size real  number at z = -1 ..
> 
> Plot::"plnr":
> BB[1,0.05,100,0.01,z] ] is not a machine-size real  number at z =
> -0.918866
> 
> Plot::"plnr":
> BB[1,0.05,100,0.01,z] ] is not a machine-size real  number at z =
> -0.830382 ..
> 
> General::"stop":
> Further output of Plot::"plnr" will be suppressed during this 
>   calculation.
>
> ---------------------------------------------------
> 
> What does this mean?  Is the definition of my function incorrect?  
> Thank you very much in advance
> 
> -- 
> 
> --
> Pedro Soria-Rodriguez
> sorrodp at ece.wpi.edu

There are two separate problems here.

One problem is related to the fact that the symbol "I" is a built-in
symbol in Mathematica.  This symbol evaluates to the square root of
minus one.  In your example, the "I" on the left-hand side of 

BB[I_,a_,NN,d_,z_]= (I*NN/(2*d))*(z/Sqrt[a^2+z^2])

refers to your variable, but the "I" on the right-hand side  evaluates
to a number (the square root of minus one).  You can fix this part of
the problem by using a delayed assignment (lhs := rhs) rather than an
immediate assignment (lhs = rhs), which will prevent the "I" on the
right-hand side of the rule from evaluating to a number, but a much
better solution is to use some symbol other than "I" as the name of
your variable.

The other problem is that the NN on the left-hand side of this
definition is not followed by an underscore, and so will be treated
literally, rather than as a placeholder for a variable. That is, this
rule will only be used if the third argument is explicitly NN.

If you use

BB[II_,a_,NN_,d_,z_]= (II*NN/(2*d))*(z/Sqrt[a^2+z^2])

then you example should work fine.

Dave Withoff
Wolfram Research



  • Prev by Date: Re: integration problem???
  • Next by Date: speed of the ToCycles[] function
  • Previous by thread: Re: Not a machine-size real number?
  • Next by thread: Re: Not a machine-size real number?