MathGroup Archive 2002

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

Search the Archive

RE: problems with ContourPlot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg33630] RE: [mg33616] problems with ContourPlot
  • From: "Curt Fischer" <cfisher at bio.titech.ac.jp>
  • Date: Thu, 4 Apr 2002 19:39:46 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com


-----Original Message-----
From: Harald von der Osten-Woldenburg [mailto:hvdosten at lb.netic.de] 
To: mathgroup at smc.vnet.net
Subject: [mg33630] [mg33616] problems with ContourPlot

Hi out there,

if I try this:

a := 0.5; b := 0.5; c := 0.5; y := 0.0;

ContourPlot[(x*(x - a) + y*y + z*z)/ (Sqrt[(x*x + y*y + z*z) ** 3]*
          Sqrt[((x - a) ** 2 + y*y + z*z) ** 3]) - ((x - a)*(x - a - b
-c) +
          y*y + z*z)/ (Sqrt[((x - a) ** 2 + y*y + z*z) ** 3]*
          Sqrt[((x - a - b - c) ** 2 + y*y + z*z) ** 3]) - (x*(x - a -b)
+
          y*y + z*z)/ (Sqrt[(x*x + y*y + z*z) ** 3]*
          Sqrt[((x - a - b) ** 2 + y*y + z*z) **
              3]) + ((x - a - b)*(x - a - b - c) + y*y +
          z*z)/(Sqrt[((x - a - b) ** 2 + y*y + z*z) ** 3]*
          Sqrt[((x - a - b - c) ** 2 + y*y + z*z) ** 3]), {x, -1, 1},
{z, 0, 1}, Contours -> {0, 1, 5, 10, 50, 100}, ContourShading -> False]

I receive the error-messages:

[ ...Expression... ] is not a machine-size real number at {x, z} =
{-1.,0.}

ContourGraphics::"ctpnt": "The contour is attempting to traverse a cell
in which some of the points have not evaluated to numbers, and it will
be dropped."

General::"stop": "Further output of (ContourGraphics :: "ctpnt") will be
suppressed during this calculation."

Because I compiled this also with Fortran I know that there are also
results in the range up to 10^6. Is this too much for ContourPlot? Or
did I some crazy things.... ?? At (-1,0.) I  cannot find any
singularity...

Thank you very much for any small hint.

Harry
------------
Dear Harry,

Your problem is that Mathematica uses the ** operator for noncommutative
multiplication.  Thus Mathematica cannot numerically evaluate your
formulae.  If you meant ** to represent exponentiation, the character ^
is used instead.  The following code had no errors and output a graph on
my machine:

ClearAll[a,b,c,y];
a := 0.5; b := 0.5; c := 0.5; y := 0.0;
ContourPlot[(x*(x - a) + y*y + z*z)/ (Sqrt[(x*x + y*y + z*z)^3]*
      Sqrt[((x - a) ^2 + y*y + z*z)^3]) - ((x - a)*(x - a - b-c) +
           y*y + z*z)/ (Sqrt[((x - a)^2 + y*y + z*z)^3]*
      Sqrt[((x - a - b - c)^2 + y*y + z*z)^3]) - (x*(x - a -b)+
           y*y + z*z)/ (Sqrt[(x*x + y*y + z*z)^3]*
      Sqrt[((x - a - b)^2 + y*y + z*z)^3]) + ((x - a - b)*
	     (x - a - b - c) + y*y +z*z)/
      (Sqrt[((x - a - b)^2 + y*y + z*z)^3]*
            Sqrt[((x - a - b - c) ^ 2 + y*y + z*z)^3]),
 {x, -1, 1}, {z, 0, 1}, 
  Contours -> {0, 1, 5, 10, 50, 100}, ContourShading -> False]

Also, unless you are doing it for a specific reason, it is generally
better to assign simple constants using the "immediate assignment"
operator = rather than := which is the delayed evaluation assignment
operator.  For your example here, though, it didn't matter one way or
the other.

Curt Fischer
Tokyo Institute of Technology
Dept. of Bioengineering



  • Prev by Date: Re: problems with ContourPlot
  • Next by Date: Re: problems with ContourPlot
  • Previous by thread: Re: problems with ContourPlot
  • Next by thread: Re: problems with ContourPlot