Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

qhull precision error

274 views
Skip to first unread message

crispin Donnelly

unread,
Apr 3, 2010, 8:26:05 AM4/3/10
to
Hi...

I have created an interpolation grid:

[interp_time,interp_depth]=meshgrid(0:5:365,0:1:200);

and then execute the following:

temp2006=griddata(new_date(291:328),depth,potemp(1:200,291:328),interp_time,interp_depth);

I am getting the following error and I have no idea what it means or how to resolve it...Any assistance greatly appreciated...

??? qhull precision warning:
The initial hull is narrow (cosine of min. angle is 1.0000000000000002).
A coplanar point may lead to a wide facet. Options 'QbB' (scale to unit box)
or 'Qbb' (scale last coordinate) may remove this warning. Use 'Pp' to skip
this warning. See 'Limitations' in qh-impre.htm.

qhull precision error: initial simplex is not convex. Distance=-3.2e-014


While executing: | qhull d Qt Qbb Qc

Options selected for Qhull 2003.1 2003/12/30:
delaunay Qtriangulate Qbbound-last Qcoplanar-keep _pre-merge
_zero-centrum Pgood Qinterior-keep _max-width 3.6e+002
Error-roundoff 5e-013 _one-merge 3.5e-012 Visible-distance 1e-012
U-coplanar-distance 1e-012 Width-outside 2e-012 _wide-facet 6e-012
_narrow-hull -2.2e-016


The input to qhull appears to be less than 3 dimensional, or a
computation has overflowed.

Qhull could not construct a clearly convex simplex from points:


The center point is coplanar with a facet, or a vertex is coplanar
with a neighboring facet. The maximum round off error for
computing distances is 5e-013. The center point, facets and distances
to the center point are as follows:


facet
p199
p7400
p0
distance= -1.8e-014

facet
p7599
p7400
p0
distance= -1.4e-014

facet
p7599
p199
p0
distance= -2.8e-014

facet
p7599
p199
p7400
distance= -1.4e-014


These points either have a maximum or minimum x-coordinate, or
they maximize the determinant for k coordinates. Trial points
are first selected from points that maximize a coordinate.


The min and max coordinates for each dimension are:

0: 4 363 difference= 359

1: 0.99 197.9 difference= 196.9

2: 0 359 difference= 359


If the input should be full dimensional, you have several options that
may determine an initial simplex:
- use 'QJ' to joggle the input and make it full dimensional
- use 'QbB' to scale the points to the unit cube
- use 'QR0' to randomly rotate the input for different maximum points
- use 'Qs' to search all points for the initial simplex
- use 'En' to specify a maximum roundoff error less than 5e-013.
- trace execution with 'T3' to see the determinant for each point.

If the input is lower dimensional:
- use 'QJ' to joggle the input and make it full dimensional
- use 'Qbk:0Bk:0' to delete coordinate k from the input. You should
pick the coordinate with the least range. The hull will have the
correct topology.
- determine the flat containing the points, rotate the points
into a coordinate plane, and delete the other coordinates.
- add one or more points to make the input full dimensional.

This is a Delaunay triangulation and the input is co-circular or co-spherical:
- use 'Qz' to add a point "at infinity" (i.e., above the paraboloid)
- or use 'QJ' to joggle the input and avoid co-circular data

Error in ==> delaunayn at 81
t = qhullmx(x', 'd ', opt);

Error in ==> griddata>linear at 125
tri = delaunayn([x y]);

Error in ==> griddata at 98
zi = linear(x,y,z,xi,yi,opt);

Bruno Luong

unread,
Apr 3, 2010, 11:10:19 AM4/3/10
to
The error might occurs with your scatter data repeat (or almost repeat). Use John's consolidator on FEX to group them before interpolation.

If the input data is badly scaled (e.g., unit of both axis are widely differ, or data are not centered around zero but around large number), it can also create numerical difficulty when griddata performs the triangulation. Normalize the data should help.

Bruno

0 new messages