algcurves
implicitize
find an implicit equation for a curve surface or hypersurface given by parametric equations
Calling Sequence
Parameters
Description
Examples
implicitize( peqs, params, d, options )
peqs
-
list of equations of the form name=formula
params
list of equations of the form name=range
d
total degree of implicit polynomial to be found
options
(optional) equation(s) of the form option=name where option is one of maxIters, symbolic, tol, or useFNV
The implicitize(peqs, params, d, options) function computes an implicit (polynomial) equation for the algebraic curve, surface, or hypersurface defined by the parametric equations peqs.
The output is given as a set that can be empty or have one or more elements.
The implicitize routine returns an implicit equation for the degree d if it exists.
The output will be exact or approximate, depending on the optional parameters controlled by the user.
The options argument can contain one or more of the following equations.
maxIters = positive_integer
The maxIters option controls the maximum number of iterations performed by findNullVector.
symbolic = true or false
If the symbolic option is set to true, all integrations are performed symbolically. If the symbolic option is set to false, all integrations are performed numerically. The default value is false.
tol = expression
The tol option controls the tolerance used in findNullVector. The default value is 10e−Digits.
useFNV = true or false
If the useFNV option is set to true, the implicitize routine uses findNullVector. If the useFNV option is set to false, the implicitize routine uses NullSpace instead of findNullVector. The default value is true.
The implicitize routine accepts parametric equations that:
[1] are polynomials, rational functions, trigonometric functions, functions involving square roots, or functions in polar form;
[2] have coefficients from Q, parameters, or algebraic numbers; and
[3] define multi-parameter families of curves, surfaces of hypersurfaces.
The implicitize routine is based on the algorithm described in the paper: Robert M. Corless, Mark W. Giesbrecht, Ilias S. Kotsireas, Stephen M. Watt. "Numerical implicitization of parametric hypersurfaces with linear algebra." AISC'2000 Proceedings, Madrid, Spain. LNAI 1930 (in print).
with⁡algcurves:
peqs≔x=cos⁡θ,y=sin⁡θ
implicitize⁡peqs,θ=0..π,2,symbolic=true,useFNV=false
x2+y2−1
peqs≔x=1sqrt⁡t2+1,y=tsqrt⁡t2+1
peqs≔x=1t2+1,y=tt2+1
implicitize⁡peqs,t=0..1,2,symbolic=true,useFNV=false
Peqs≔x=3⁢t2t3+1,y=3⁢tt3+1
Digits≔25
ee≔implicitize⁡Peqs,t=0..1,3,symbolic=true
ee≔7.175755130803066010567000×10−20−1.845883179623651348694161×10−18⁢y−1.620368226773049054536803×10−16⁢y2−0.3015113445777636810112419⁢y3+5.208339920246452022722121×10−16⁢x+0.9045340337332909517727017⁢y⁢x+3.417979544288393196348183×10−16⁢x⁢y2−6.571949647625600126222411×10−16⁢x2−3.336979304002439223779846×10−16⁢x2⁢y−0.3015113445777633127855855⁢x3
eq≔fnormal⁡ee,4
eq≔−0.3015⁢y3+0.9045⁢y⁢x−0.3015⁢x3
sm≔min⁡op⁡map⁡xx↦abs⁡xx,coeffs⁡expand⁡eq
sm≔0.3015
fnormal⁡simplify⁡eqsm,3
−y3+3.00⁢y⁢x−x3
simplify⁡eval⁡,Peqs
0.
implicitize⁡x=r⁢t,y=r⁢t2,z=r2,r=0..1,t=0..1,4,symbolic=true,useFNV=false
x4−y2⁢z
peqs≔x=α⁢tan⁡φ,y=β⁢cos⁡φ2
implicitize⁡peqs,φ=π3..π4,3,symbolic=true,useFNV=false
−α2⁢β+y⁢α2+x2⁢y
simplify⁡eval⁡,peqs
0
peqs≔x=sin⁡3⁢θ⁢cos⁡θ,y=sin⁡3⁢θ⁢sin⁡θ
implicitize⁡peqs,θ=0..π,4,symbolic=true,useFNV=false
x4+2⁢x2⁢y2+y4−3⁢x2⁢y+y3
peqs≔x=t+s+r,y=t⁢s+s⁢r+r⁢t,z=t⁢s⁢r,w=t3+s3+r3
peqs≔x=t+s+r,y=s⁢r+r⁢t+t⁢s,z=t⁢s⁢r,w=r3+s3+t3
implicitize⁡peqs,t=0..1,s=0..1,r=0..1,3,symbolic=true,useFNV=false
x3−3⁢y⁢x−w+3⁢z
peqs≔x=t⁢β−t21+t22,y=t2⁢β−t21+t22
peqs≔x=t⁢−t2+βt2+12,y=t2⁢−t2+βt2+12
implicitize⁡peqs,t=0..2,2,symbolic=true,useFNV=false
∅
implicitize⁡eval⁡peqs,β=3,t=0..2,4,symbolic=true,useFNV=false
implicitize⁡eval⁡peqs,β=4,t=0..2,4,symbolic=true,useFNV=false
x4+2⁢x2⁢y2+y4−4⁢x2⁢y+y3
p≔x4−β⁢y⁢x2+2⁢x2⁢y2+y3+y4
p≔−β⁢y⁢x2+x4+2⁢x2⁢y2+y4+y3
simplify⁡eval⁡p,peqs
peqs≔x=3⁢t2−2⁢ttk,y=3⁢t−2tk
implicitize⁡eval⁡peqs,k=4,t=1..2,4,symbolic=true,useFNV=false
x4−3⁢x⁢y2+2⁢y3
implicitize⁡eval⁡peqs,k=5,t=1..2,5,symbolic=true,useFNV=false
x5−3⁢x⁢y3+2⁢y4
implicitize⁡eval⁡peqs,k=6,t=1..2,6,symbolic=true,useFNV=false
x6−3⁢x⁢y4+2⁢y5
p≔3⁢t−2;q≔tk;xtk≔t⁢pq;ytk≔pq
p≔3⁢t−2
q≔tk
xtk≔t⁢3⁢t−2tk
ytk≔3⁢t−2tk
exk≔xk−3⁢x⁢yk−2+2⁢yk−1
dd≔eval⁡exk,x=xtk,y=ytk
dd≔t⁢3⁢t−2tkk−3⁢t⁢3⁢t−2⁢3⁢t−2tkk−2tk+2⁢3⁢t−2tkk−1
simplify⁡dd
−9⁢t+6⁢t1−k⁢3⁢t−2⁢t−kk−2+t1−k⁢3⁢t−2k+2⁢3⁢t−2⁢t−kk−1
alias⁡β=sqrt⁡b
β
alias⁡γ=sqrt⁡c
β,γ
peqs≔x=β+cos⁡2⁢θ,y=γ+sin⁡2⁢θ
−2⁢x⁢β−2⁢y⁢γ+x2+y2+b+c−1
See Also
abs
alias
coeffs
convert
Digits
eval
expand
fnormal
map
min
op
simplify
sqrt
trig
Download Help Document