Re: How can I plot the region satisfying an inequality?
- To: mathgroup at smc.vnet.net
- Subject: [mg18916] Re: How can I plot the region satisfying an inequality?
- From: Adam Strzebonski <adams at wolfram.com>
- Date: Mon, 26 Jul 1999 14:27:52 -0400
- Organization: Wolfram Research, Inc.
- References: <7mp3dn$l99@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Function InequalityPlot[ineqs, {x, x0, x1}, {y, y0, y1}] defined below will plot the 2D part of the region satisfying polynomial inequalities ineqs. It uses Experimental`GenericCylindricalAlgebraicDecomposition so it works only in Mathematica 4. ineqs needs to be a system of polynomial inequalities in x and y with rational number coefficients. The code could be extended to handle algebraic inequalities with algebraic number coefficients, and to plot lower dimensional parts of the solution set, by using Experimental`CylindricalAlgebraicDecomposition instead of Experimental`GenericCylindricalAlgebraicDecomposition, and extending cylinderplot code to handle lower dimensional cylinders. --------------- << Experimental`; << Developer`; Needs["Utilities`FilterOptions`"]; Needs["Graphics`FilledPlot`" ]; cylinderplot[cyl_, x_, opts___?OptionQ] := Module[{x0 = cyl[[1, 1]], x1 = cyl[[1, 5]], ys}, ys = If[Head[cyl[[2]]] === Or, List @@ (cyl[[2]]), {cyl[[2]]}]; FilledPlot[{#[[1]], #[[5]]}, {x, x0, x1}, DisplayFunction -> Identity, opts]& /@ ys] InequalityPlot[ineq_, {x_, x0_, x1_}, {y_, y0_, y1_}, opts___?OptionQ] := Module[{cyls, plots, ii}, ii = If[Head[ineq] === List, And@@ineq, ineq]; cyls = GenericCylindricalAlgebraicDecomposition[ ii && x0 < x < x1 && y0 < y < y1, {x, y}]; If[Head[cyls] === GenericCylindricalAlgebraicDecomposition, Return[$Failed], cyls=cyls[[1]]]; plots = If[cyls === False, Plot[y1 + 1, {x, x0, x1}, PlotRange -> {{x0, x1}, {y0, y1}}, DisplayFunction -> Identity, Evaluate[FilterOptions[Plot, opts]]], If[Head[cyls] === Or, cyls = List @@ cyls, cyls = {cyls}]; cylinderplot[#, x, FilterOptions[FilledPlot, opts]]& /@ cyls]; Show[plots, FilterOptions[Graphics, opts], Axes -> True, AxesLabel -> {x, y}, DisplayFunction -> $DisplayFunction, AspectRatio -> Automatic, PlotRange -> {{x0, x1}, {y0, y1}}]] Best Regards, Adam Strzebonski Wolfram Research ELodger wrote: > > Hi There, > > Is there a way to plot the region satisfying a set of inequalities, > such as: > > x - y > 0 and > x + y < 0 > > on [-10, 10] > > ? > > Thanks! > > Sent via Deja.com http://www.deja.com/ > Share what you know. Learn what you don't.