Re: How to get plot Exclusions for a numerical function?
- To: mathgroup at smc.vnet.net
- Subject: [mg102563] Re: How to get plot Exclusions for a numerical function?
- From: antononcube <antononcube at gmail.com>
- Date: Fri, 14 Aug 2009 05:58:52 -0400 (EDT)
- References: <h60ert$pj8$1@smc.vnet.net>
You might find the following code to be useful:
(* This defines a numerical function with a discontinuity *)
f[x_?NumericQ, y_?NumericQ, z_?NumericQ] := If[x^2 + y^3 - 2 x y + 0.1
> x z, 0, 1];
(* Using NIntegrate to get the sampling points of a global adaptive
integrator.
The sampling points will be clustered around the discontinuity. *)
Clear[c, x, y, z]
c = 2;
rng = Rescale[Range[1, 2], {-c, c}];
pnts = Reap[
NIntegrate[
f[x, y, z], {x, -c, c}, {y, -c, c}, {z, -c, c} // Evaluate,
MinRecursion -> 3, MaxRecursion -> 4, PrecisionGoal -> 4,
EvaluationMonitor :>
Sow[{x, y, z},
Method -> {GlobalAdaptive, SingularityHandler -> None,
Method -> {TrapezoidalRule, Points -> 5},
SymbolicProcessing -> 0}]]][[2, 1]]; // AbsoluteTiming
(* Plot the points using small point size. Rotate the plot... *)
Graphics3D[{PointSize[0.00051], Point[pnts]}]
On Aug 13, 3:20 am, asdf qwerty <bradc355... at yahoo.com> wrote:
> I have a complex analytic function that I'm computing numerically, and
> it has branch cuts along arbitrary curves that I can't know
> beforehand. Does anyone have any ideas on how I can get Exclusions-
> like functionality from Plot3D for this case?
>
> With the allowed form "Exclusions -> {{lhs = rhs, ineqs}, ...}", I
> can't think of an easy way to do it numerically... maybe something
> like "Exclusions -> {{True, <something clever>}}"? Has anyone tackled
> this problem before?