Algorithms for semi-algebraic curves and surfaces
- B. Mourrain
GALAAD, INRIA M´ editerran´ ee, Sophia Antipolis Bernard.Mourrain@inria.fr July 21, 2011
- B. Mourrain
Algorithms for semi-algebraic curves and surfaces 1 / 53
Algorithms for semi-algebraic curves and surfaces B. Mourrain - - PowerPoint PPT Presentation
Algorithms for semi-algebraic curves and surfaces B. Mourrain GALAAD, INRIA M editerran ee, Sophia Antipolis Bernard.Mourrain@inria.fr July 21, 2011 B. Mourrain Algorithms for semi-algebraic curves and surfaces 1 / 53 SHAPES B.
Algorithms for semi-algebraic curves and surfaces 1 / 53
Algorithms for semi-algebraic curves and surfaces 2 / 53
Algorithms for semi-algebraic curves and surfaces 3 / 53
Algorithms for semi-algebraic curves and surfaces 4 / 53
Algorithms for semi-algebraic curves and surfaces 5 / 53
Shape representation
Algorithms for semi-algebraic curves and surfaces 7 / 53
Shape representation Parametric and implicit curves
d
d , ci)i=0..d
Algorithms for semi-algebraic curves and surfaces 9 / 53
Shape representation Parametric and implicit curves
0(t), c1 0(t), . . . , cd 0 (t)) represents f on [a, (1 − t) a + t b].
0 (t), cd−1 1
d(t)) represents f on [(1 − t) a + t b, b].
Algorithms for semi-algebraic curves and surfaces 10 / 53
Shape representation Parametric and implicit curves
Algorithms for semi-algebraic curves and surfaces 11 / 53
Shape representation Parametric and implicit curves
Algorithms for semi-algebraic curves and surfaces 12 / 53
Shape representation Parametric and implicit curves
Algorithms for semi-algebraic curves and surfaces 13 / 53
Shape representation Parametric and implicit surfaces
Algorithms for semi-algebraic curves and surfaces 15 / 53
Shape representation Parametric and implicit surfaces
Algorithms for semi-algebraic curves and surfaces 16 / 53
Shape representation Parametric and implicit surfaces
Algorithms for semi-algebraic curves and surfaces 17 / 53
Shape representation Exercises Exercise 1.1:
Compute the coefficients in the Bernstein basis of degree d on [0, 1] of 1, x, x2, . . ..
Prove the derivation rule on the Bernstein representation.
Prove De Casteljau subdivision rule on the Bernstein representation. Exercise 1.2: Put in equations the following problems:
Intersection of planar implicit, parametric curves;
Raycasting for implicit surfaces;
Intersection of implicit and parametric surfaces;
Closest point on a curve or a surface;
Offset of a curve or a surface; Exercise 1.3: Let P1, . . . , PN be points in the plane. We fix a degree (d1, d2). The objective is to determine a polynomial of bidegree ≤ (d1, d2) defining an implicit curve which fits this set of points.
Construct the linear system that satisfied the vector of coefficients of a polynomial expressed in the Bernstein basis in
Use the Singular Value Decomposition of the corresponding matrix to find an optimal solution of the fitting problem;
Generate points from a parametric curve and use the previous construction to approximate them by implicit curves of increasing degrees. Exercise 1.4:
Show that the set of rational curves in the plane of degree ≤ d is of dimenion ≤ 3(d + 1).
Compute the dimension of the set of implicit curves. Show that all implicit curves cannot be parametrised by a rational function.
Show that a curve of degree d with a singular point of multiplicity d − 1, is parametrised by a rational function.
Algorithms for semi-algebraic curves and surfaces 19 / 53
Computing points on curves and surfaces
Algorithms for semi-algebraic curves and surfaces 21 / 53
Computing points on curves and surfaces Local methods
1
2
Algorithms for semi-algebraic curves and surfaces 23 / 53
Computing points on curves and surfaces Local methods
1 k−1
Algorithms for semi-algebraic curves and surfaces 24 / 53
Computing points on curves and surfaces Local methods
Algorithms for semi-algebraic curves and surfaces 25 / 53
Computing points on curves and surfaces Subdivision methods
◮ If V (c) = 0, there is not root of f in ]a, b[; ◮ If V (c) = 1, there is one root of f in ]a, b[; ◮ Otherwise, we can subdivide the interval.
Algorithms for semi-algebraic curves and surfaces 27 / 53
Computing points on curves and surfaces Subdivision methods
Algorithms for semi-algebraic curves and surfaces 28 / 53
Computing points on curves and surfaces Subdivision methods
Algorithms for semi-algebraic curves and surfaces 29 / 53
Computing points on curves and surfaces Subdivision methods
Algorithms for semi-algebraic curves and surfaces 30 / 53
Computing points on curves and surfaces Subdivision methods
Algorithms for semi-algebraic curves and surfaces 31 / 53
Computing points on curves and surfaces Subdivision methods
1
2
Algorithms for semi-algebraic curves and surfaces 32 / 53
Computing points on curves and surfaces Subdivision methods
Algorithms for semi-algebraic curves and surfaces 33 / 53
Computing points on curves and surfaces Subdivision methods
1
2
3
Algorithms for semi-algebraic curves and surfaces 34 / 53
Computing points on curves and surfaces Subdivision methods
Algorithms for semi-algebraic curves and surfaces 35 / 53
Computing points on curves and surfaces Subdivision methods
ij=0 min{0≤ik≤dk,k=j} bi1,...,in Bij dj(xj; aj, bj)
ij=0 max{0≤ik≤dk,k=j} bi1,...,in Bij dj(xj; aj, bj)
Algorithms for semi-algebraic curves and surfaces 36 / 53
Computing points on curves and surfaces Subdivision methods
Algorithms for semi-algebraic curves and surfaces 37 / 53
Computing points on curves and surfaces Subdivision methods
method iterations subdivisions resultat time (ms) sbd 4826 4826 220 217 rd 2071 1437 128 114 sbds 3286 3286 152 180 rds 1113 748 88 117 rdl 389 116 78 44 bidegrees (12,12), (12,12)
Algorithms for semi-algebraic curves and surfaces 38 / 53
Computing points on curves and surfaces Subdivision methods method iterations subdivisions
time (ms) sbd 161447 161447 61678 1493 rd 731 383 36 18 sbds 137445 137445 53686 1888 rds 389 202 18 21 rdl 75 34 8 7 bidegrees (2,3), (3,4); 3 singular solutions. method iterations subdivisions
time (ms) sbd 235077 235077 98250 4349 rd 275988 166139 89990 8596 sbds 1524 1524 114 36 rds 590 367 20 29 rdl 307 94 14 18 bidegrees (3,4), (3,4); 3 singular solutions.
Algorithms for semi-algebraic curves and surfaces 39 / 53
Computing points on curves and surfaces Subdivision methods method iter. subd. result time (ms) sbd 76523 76523 20352 3454 rd 42949 27943 12000 2154 sbds 4697 4697 116 258 rds 1895 1222 72 179 rdl 1082 326 64 113 bidegrees (4, 4), (8, 8) method iter. subd. result time (ms) sbd 84887 84887 28896 3820 rd 82873 51100 20336 4553 sbds 6076 6076 364 333 rds 1486 920 144 163 rdl 1055 305 60 120 bidegrees (8, 8), (8, 8)
Algorithms for semi-algebraic curves and surfaces 40 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 42 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 43 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 44 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 45 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 46 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 47 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 48 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 49 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 50 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 51 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 52 / 53
Computing points on curves and surfaces Algebraic methods
Algorithms for semi-algebraic curves and surfaces 53 / 53
Computing points on curves and surfaces Isolated singular points
Algorithms for semi-algebraic curves and surfaces 55 / 53
Computing points on curves and surfaces Isolated singular points
Algorithms for semi-algebraic curves and surfaces 56 / 53
Computing points on curves and surfaces Exercises
i=1(x − zi), let M(f ) = an
2
Algorithms for semi-algebraic curves and surfaces 58 / 53
Computing points on curves and surfaces Exercises
i ≡ ei, eiej ≡ 0, e1 + · · · + eD ≡ 1.
1 − x2 2 , f2 = x1 x2 at (0, 0);
1 x2 + 5 x4 1 , f2 = 2 x1 x2 2 + 5 x4 1 at (0, 0);
Algorithms for semi-algebraic curves and surfaces 59 / 53
Algorithms for curves Sweeping methods
◮ An end point of a segment, ◮ A crossing point of two segments.
◮ Insert or remove a segment in the sweeping structure. ◮ Swap two segments in the sweeping structure.
◮ Use only adjacent segments to compute the intersection points. ◮ Perform local updates of the cell/arrangement structure.
Algorithms for semi-algebraic curves and surfaces 62 / 53
Algorithms for curves Sweeping methods
1
2
3
4
Algorithms for semi-algebraic curves and surfaces 63 / 53
Algorithms for curves Sweeping methods
◮ Vp,p′(a) − Vp,p′(b) is the number of real roots of p in [a, b], ◮ Vp,p′q(a) − Vp,p′q(b) is the sum of the signs of q at the real roots of p
Algorithms for semi-algebraic curves and surfaces 64 / 53
Algorithms for curves Sweeping methods
0(x)) of Sr0.
◮ Φ1 = gcd( ˜
◮ Φ2 = gcd(Φ1, sr2,2), Γ2 = Φ1/Φ2, . . .
Algorithms for semi-algebraic curves and surfaces 65 / 53
Algorithms for curves Sweeping methods
Algorithms for semi-algebraic curves and surfaces 66 / 53
Algorithms for curves Subdivision methods
◮ Algebraic solvers, ◮ Subdivision solvers,
Algorithms for semi-algebraic curves and surfaces 68 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 69 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 70 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 71 / 53
Algorithms for curves Subdivision methods
p(C), e1).
Algorithms for semi-algebraic curves and surfaces 72 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 73 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 74 / 53
Algorithms for curves Subdivision methods
s
Algorithms for semi-algebraic curves and surfaces 75 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 76 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 77 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 78 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 79 / 53
Algorithms for curves Subdivision methods
f1 f2 f1 f2 f3 f3 + + − −
f1 f2 f3 f4 v1 v2 v3 v4 v5 v6 v1 v2 v5 v6 f2 ∪ f3 f1 ∪ f4
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9Algorithms for semi-algebraic curves and surfaces 80 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 81 / 53
Algorithms for curves Subdivision methods
Algorithms for semi-algebraic curves and surfaces 82 / 53
Algorithms for surfaces Subdivision method for smooth surfaces
1
2
3
Algorithms for semi-algebraic curves and surfaces 85 / 53
Algorithms for surfaces Subdivision method for smooth surfaces
Algorithms for semi-algebraic curves and surfaces 86 / 53
Algorithms for surfaces Subdivision method for smooth surfaces
Algorithms for semi-algebraic curves and surfaces 87 / 53
Algorithms for surfaces Subdivision method for smooth surfaces
Algorithms for semi-algebraic curves and surfaces 88 / 53
Algorithms for surfaces Subdivision method for smooth surfaces
Algorithms for semi-algebraic curves and surfaces 89 / 53
Algorithms for surfaces Projection methods for singular surfaces
Algorithms for semi-algebraic curves and surfaces 91 / 53
Algorithms for surfaces Projection methods for singular surfaces
Algorithms for semi-algebraic curves and surfaces 92 / 53
Algorithms for surfaces Projection methods for singular surfaces
Algorithms for semi-algebraic curves and surfaces 93 / 53
Algorithms for surfaces Projection methods for singular surfaces
Algorithms for semi-algebraic curves and surfaces 94 / 53
Algorithms for surfaces Projection methods for singular surfaces
Algorithms for semi-algebraic curves and surfaces 95 / 53
Algorithms for surfaces Projection methods for singular surfaces
1
2
3
4
Algorithms for semi-algebraic curves and surfaces 96 / 53
Algorithms for surfaces Projection methods for singular surfaces
◮ Φ0(x, y) = ˜
◮ Φ1(x, y) = gcd(Φ0(x, y), sr1,1(x, y)), ∆1 = Φ0/Φ1, ◮ Φ2(x, y) = gcd(Φ1(x, y), sr2,2(x, y)), ∆2 = Φ1/Φ2, . . .
Algorithms for semi-algebraic curves and surfaces 97 / 53
Algorithms for surfaces Projection methods for singular surfaces
◮ a singularity (α, βk(α), γl(α)) (if Rl,i(α, βk(α)) = 0 for
◮ two distinct points otherwise.
◮ Γk,l(x) = 0 defined the roots of Γk(x) = 0 such that
◮ gk(x, y) = Φ0(x, y)/Srk(x, y) mod Γk,l(x), ◮ hl(x, y, z) = f (x, y, z)/Srl(x, y, z) mod (Γk,l(x), gk(x, y)).
Algorithms for semi-algebraic curves and surfaces 98 / 53
Algorithms for surfaces Projection methods for singular surfaces
◮ by lifting regular arcs between the lifted critical points of the planar
◮ by connecting the ordered lifted arcs and the arcs of the polar curve in
Algorithms for semi-algebraic curves and surfaces 99 / 53
Algorithms for surfaces Projection methods for singular surfaces
Algorithms for semi-algebraic curves and surfaces 100 / 53
Algorithms for surfaces Projection methods for singular surfaces
Algorithms for semi-algebraic curves and surfaces 101 / 53
Algorithms for surfaces Projection methods for singular surfaces S.S. Abhyankar. Algebraic Geometry for Scientists and Engineers. American Mathematical Society, Providence, R. I., 1990.
Visualisation of algebraic curves. In The 15th Pacific Graphics, pages 303–312. IEEE Computer Society, 2007.
ecourt. Isotopic triangulation of a real algebraic surface. Journal of Symbolic Computation, 44:1291–1310, 2009.
Topology and arrangement computation of semi-algebraic planar curves.
M.F. Atiyah and I.G. MacDonald. Introduction to Commutative Algebra. Addison-Wesley, 1969.
Algorithms in Real Algebraic Geometry. Springer-Verlag, Berlin, 2003.
Ideals, Varieties, and Algorithms: An Introduction to Computational Algebraic Geometry and Commutative Algebra. Undergraduate Texts in Mathematics. Springer Verlag, New York, 1992.
Using algebraic geometry, volume 185 of Graduate Texts in Mathematics. Springer-Verlag, New York, 1998.
An Algebraic Formula for the Degree of a C∞ Map Germ.
Algorithms for semi-algebraic curves and surfaces 101 / 53
Algorithms for surfaces Projection methods for singular surfaces The Annals of Mathematics, 106(1):pp. 19–44, 1977.
Introduction ` a la r´ esolution des syst` emes d’´ equations alg´ ebriques, volume 59 of Math´ ematiques et Applications. Springer-Verlag, 2007.
Curves and surfaces for computer aided geometric design : a practical guide.
On the number of branches of a plane curve germ. Kodai Mathematical Journal, 9(2):179–187, 1986.
On location and approximation of clusters of zeros: Case of embedding dimension one. Foundations of Computational Mathematics, 7:1–58, 2007.
alez-Vega and I. Necula. Efficient topology determination of implicitly defined algebraic plane curves.
Stratified Morse Theory. Springer-Verlag, 1988.
Triangulations of algebraic sets. In Algebraic geometry (Proc. Sympos. Pure Math., Vol. 29, Humboldt State Univ., Arcata, Calif., 1974), pages 165–185.
A delineability-based method for computing critical sets of algebraic surfaces. Journal of Symbolic Computation, 42(6):678–691, 2007.
Algorithms for semi-algebraic curves and surfaces 101 / 53
Algorithms for surfaces Projection methods for singular surfaces
siaˇ svili. The local degree of a smooth mapping.
Newton’s method with deflation for isolated singularities of polynomial systems. Theoretical Computer Science, 359(1-3):111 – 122, 2006.
Degree Theory. Cambridge University Press, Cambridge, 1978. F.S. Macaulay. The algebraic theory of modular systems. Cambridge Univ. Press, 1916.
A subdivision approach to planar semi-algebraic sets. In Geometric Modeling and Processing, volume 6130 of Lecture Notes in Computer Science, pages 104–123. Springer Berlin/Heidelberg, June 2010.
On Continued Fraction Expansion of Real Roots of Polynomial Systems, Complexity and Condition Numbers. Theoretical Computer Science, 412(22):2312–2330, 2011.
On multiplicities in polynomial system solving.
Isolated points, duality and residues. Journal of Pure and Applied Algebra, 117-118:469 – 493, 1997.
Algorithms for semi-algebraic curves and surfaces 101 / 53
Algorithms for surfaces Projection methods for singular surfaces Subdivision methods for solving polynomial equations. Journal of Symbolic Computation, 44:292–306, March 2009.
ebuchet. Stable normal forms for polynomial system solving. Theoretical Computer Science, 409(2):229 – 240, 2008.
On the computation of the topology of a non-reduced implicit space curve. In D. Jeffrey, editor, ISSAC, pages 47–54. ACM Press, 2008.
On the Isotopic Meshing of an Algebraic Implicit Surface, 2011. to appear in Journal of Symbolic Computation.
Complexity of Bezout’s Theorem I: Geometric Aspects. Journal of the American Mathematical Society, 6(2):459–501, 1993.
On the number of branches of a 1-dimensional semianalytic set. Kodai Mathematical Journal, 11(1):78–85, 1988.
Topological degree and quadratic forms. Journal of Pure and Applied Algebra, 141(3):299 – 314, 1999.
Modern computer algebra. Cambridge University Press, New York, 1999.
Tame geometry with applications in smooth analysis. LNM 1834. Springer-Verlag, 2004.
Algorithms for semi-algebraic curves and surfaces 101 / 53