Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

Re: Help! About drawing a high-precision 3D graph

  • To: mathgroup at smc.vnet.net
  • Subject: [mg96353] Re: Help! About drawing a high-precision 3D graph
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Thu, 12 Feb 2009 06:35:45 -0500 (EST)
  • Organization: The Open University, Milton Keynes, UK
  • References: <gmu8la$ggt$1@smc.vnet.net>

In article <gmu8la$ggt$1 at smc.vnet.net>,
 Chris <chris_wen_11 at hotmail.com> wrote:

> I met a problem with drawing a 3D graph. My data to be used in Mathematica 
> Software is 15 digits, which means an example of those data is 
> 58.1234343253452. These data represent the latitude an d longitude of world. 
> So, I need to precisely paint those coordinate in a 3D space as a tiny point, 
> perhaps the method ListPoint3D to be used.However, it seems that ListPoint3D 
> does not support morn than 6 significant digits. So, can anyone help me ?

First, I assume you are talking about the standard built-in function 
*ListPointPlot3D*

Second, you seems to imply that *ListPointPlot3D* works with single 
floating-point precision numbers. How did you reach this --- erroneous 
--- conclusion? Regarding hardware precision arithmetic, Mathematica 
uses only *double* precision floating-point numbers. 

Since seeing is believing, we check that the points within the plot are 
represented in double-precision floating-point numbers. We create a 
graph, use FullForm to spot where the points are stored (as a list of 
triples within a structure Point[]), and check the precision of these 
numbers.

In[1]:= g=ListPointPlot3D[Table[Sin[j^2+i],{i,0,3,0.1},{j,0,3,0.1}]]

In[2]:= FullForm[g]//Short

Out[2]//Short= 
Graphics3D[List[List[Hue[0.67`,0.6`,0.6`],Point[List[\[LeftSkeleton]1\[Ri
ghtSkeleton]]]]],\[LeftSkeleton]1\[RightSkeleton]]

In[3]:= g[[1,1,2]]//Short

Out[3]//Short= Point[{{1.,1.,0.},<<959>>,{31.,31.,-0.536573}}]

In[4]:= Precision/@g[[1,1,2,1]]//Short

Out[4]//Short= 
{MachinePrecision,MachinePrecision,<<958>>,MachinePrecision}

In[5]:= $MachinePrecision

Out[5]= 15.9546

Regards,
--Jean-Marc


  • Prev by Date: Re: Dynamic changing of variables
  • Next by Date: Re: Shortest Path Problem
  • Previous by thread: Re: Help! About drawing a high-precision 3D graph
  • Next by thread: Re: Help! About drawing a high-precision 3D graph