Degree versus Dimension for Rational Parametric Curves

Barry H. Dayton

Given a rationally parameterized curve P(t)=((Subscript[p, 1])(t)/Δ(t),…,(Subscript[p, n])(t)/Δ(t)) in (ℝ^n) or (ℂ^n), where the (Subscript[p, j]) and Δ are polynomials, we find the dimension of the smallest linear subset of (ℝ^n) containing the curve. If all the (Subscript[p, j]) and Δ are of degree d or less, then it is known abstractly that this dimension is d or less and rational normal curves play a key role in the argument. We consider this from a computational point of view with TransformationFunction playing an essential part in the discussion.

1. Introduction

The ancients were confused about the concepts of degree and dimension. As late as 1545 in his famous book Ars Magna [], Cardano, who did not hesitate to invent imaginary numbers, in reference to his assistant Ferrari's solution of the quartic gives the following disclaimer:

Although a long series of rules might be added and a long discourse given about them, we conclude our detailed consideration with the cubic, others being merely mentioned, even if generally, in passing. For as the first power refers to a line, the square to a surface, and the cube to a solid body, it would be very foolish to go beyond this point. Nature does not permit it.

The distinction between degree and dimension was later resolved by Descartes's algebraic notation. But, in the context of parametric curves, I recently noticed a simple linear algebra proof of the following theorem:

Theorem A

Let P(t)=((Subscript[p, 1])(t),…,(Subscript[p, n])(t)), be a curve in (ℝ^n) or (ℂ^n) where the coordinate functions (Subscript[p, j])(t) are polynomials of degree d or less. Then for any n>d, the curve lies in a linear subset of (ℝ^n) or (ℂ^n) of dimension d.

This theorem, as well as many of the other facts in this article, is given in Joe Harris’s book [] from a projective geometry point of view. He also considers the degree versus dimension issue in a number of other situations. We give the linear algebra proof in Section .

Unfortunately, projective geometry is not computationally friendly. Instead we can view these results from an affine point of view using the built-in function TransformationFunction [], which we discuss in Section .

We then generalize and rephrase our result in Section  as Theorem B. The generalization is to rational curves and we can give the dimensions of the smallest linear space containing the curve. Theorem B does clarify that, while the degree bounds the size of a linear set, the curve may lie in a smaller dimensional linear set.

In Section  we observe that the rational normal curve in (ℂ^d) or (ℝ^d), ((t^d),(t^(d-1)),…,t), is universal for rational curves. That is, every rational curve is a transform of a normal curve. This is very easily seen via the TransformationFunction. This lets us rephrase Theorem B in another useful form, where the TransformationMatrix can be found directly from the expression of a rational function in the form

Q(t)=((((Subscript[p, 1])(t))/(Δ(t))),(((Subscript[p, 2])(t))/(Δ(t))),…,(((Subscript[p, n])(t))/(Δ(t)))),

where (Subscript[p, 1])(t),(Subscript[p, 2])(t), …,(Subscript[p, n])(t) and the common denominator Δ(t) are all polynomials of degree d or less written in descending degree. To simplify notation we generally work with coefficients in the real numbers ℝ, but it should be understood that one could work in any subfield of the complex numbers ℂ as well. But, as immediately below, in some cases we must consider parameter values in the algebraic closure of the subfield.

Sections  and  give two applications.

The first discusses the recognition problem: given a point q∈(ℝ^n), is q=P(t} for some t∈ℂ? This is equivalent to the well-studied problem of finding a common solution of a family of univariate polynomials, which we do not consider here. We show that modulo the linear TransformationFunction, the recognition problem can often be solved in a linear space of smaller dimension.

The second example is the implicitization problem for rational functions, which is to find an implicit system that describes the ideal of the rational curve. We only sketch this, as there is no room to carefully describe the routines in [].

In fact, this article was motivated by the author’s work on implicitization of parametric curves. I noticed that an unexpectedly large number of linear equations appeared in the implicit systems.

2. Special Case of Polynomial Parameters

In this article a linear subset of (ℝ^n) is a set defined by a system of linear equations, not necessarily homogeneous. A linear subset is distinguished from a linear subspace, which is a subspace of the vector space (ℝ^n) and defined with homogeneous equations. The big difference is that a subspace contains the origin (0,…,0). A linear subset is a coset of a linear subspace under the operation of vector addition.

A polynomial parametric curve is a function P(t)=((Subscript[p, 1])(t),…,(Subscript[p, n])(t)) where each coordinate function is a polynomial that we write in descending degree:

(Subscript[p, j])(t)=(Subscript[a, j,1])(t^(Subscript[d, j]))+ (Subscript[a, j,2])(t^((Subscript[d, j])-1)) +⋯+ (Subscript[a, j,(Subscript[d, j])])(t^1)+(Subscript[a, j,(Subscript[d, j])+1]),

where (Subscript[d, j]) is the degree of the coordinate polynomial. The largest such degree is the degree of the parameterization. Note that P(0)=((Subscript[a, 1,d+1]),(Subscript[a, 2,d+1]),…,(Subscript[a, j,d+1])). This constant acts merely as a basepoint; a different basepoint gives a curve that is a translation of the first. Thus the basepoint does not affect the geometry. We say our parameterization is stripped if P(0)=0 (or alternatively if each (Subscript[a, j,d+1])=0). Each polynomial parameterized curve is then a translate of a stripped curve, so we first consider those. We strip a polynomial parameterized curve by dropping all the constant terms.

We now create a stripped coefficient matrix M from the stripped polynomial. If d is the degree of the polynomial, M is the n×d matrix with rows ((Subscript[a, j,1]),…,(Subscript[a, j,d])). Consider the following equation where points are column vectors.

p(t)=(({{((t )^d)(Subscript[a, 11])+, (t^(d-1)) (Subscript[a, 12])+, ⋯, +t (Subscript[a, 1,d])}, {((t )^d)(Subscript[a, 21])+, (t^(d-1)) (Subscript[a, 22])+, ⋯, +t (Subscript[a, 2,d])}, {((t )^d)(Subscript[a, 31])+, (t^(d-1)) (Subscript[a, 32])+, …, +t (Subscript[a, 3,d])}, {⋮, ⋮, ⋯, ⋮}, {((t )^d)(Subscript[a, n,1])+, (t^(d-1)) (Subscript[a, n,2])+, ⋯, +t (Subscript[a, n,d])}}))=(({{(Subscript[a, 11]), (Subscript[a, 12]), ⋯, (Subscript[a, 1,d])}, {(Subscript[a, 21]), (Subscript[a, 22]), ⋯, (Subscript[a, 2,d])}, {(Subscript[a, 31]), (Subscript[a, 32]), …, (Subscript[a, 3,d])}, {⋮, ⋮, ⋯, ⋮}, {(Subscript[a, n1]), (Subscript[a, n2]), ⋯, (Subscript[a, n,d])}}))·(({{(t^d)}, {(t^(d-1))}, {(t^(d-2))}, {⋮}, {t}}))=(t^d) (({{(Subscript[a, 11])}, {(Subscript[a, 21])}, {(Subscript[a, 31])}, {⋮}, {(Subscript[a, n,1])}}))+(t^(d-1)) (({{(Subscript[a, 12])}, {(Subscript[a, 22])}, {(Subscript[a, 32])}, {⋮}, {(Subscript[a, n,2])}}))+ ⋯+t (({{(Subscript[a, 1,d])}, {(Subscript[a, 2,d])}, {(Subscript[a, 3,d])}, {⋮}, {(Subscript[a, n,d])}}))

This shows that every point on the parameterized curve is in the vector space spanned by the columns of the coefficient matrix. So Theorem A is true for a stripped parameterization, but adding back the constant P(0) simply moves this subspace to a linear subset.

To describe the smallest linear set containing a finite set of points in terms of a system of equations, here is a short routine.

linearSet[P_,X_]:=Module[
{n,r,M,U,S,V,rk,eq0},
{n,r}={Length[X],Length[P]};
M=Table[
Switch[
Length[P[[i]]],
n,Append[P[[i]],1],
n+1, P[[i]]
],{i,r}];
{U,S,V}=SingularValueDecomposition@N@M;
rk=Length@Select[Diagonal@S,#>1.*^-10&];
If[
rk>n,
{},
eq0=Take[Transpose@V,rk-n-1,n].X;
eq0-(eq0/.Thread[X->P[[1]]])
]
]

A longer version of this with error detecting is linearSetMD in [].

Example 1:

P1={2t+5,3(t^2)-7,3t-6(t^2)-1};

Here are the four random points.

pts=Table[P1/.{t->RandomReal[{-5,5}]},{4}]

Here is the linear expression for the linear set.

First@linearSet[pts,{x,y,z}]

A linear set defined by one linear equation in three variables is of dimension two. This curve lies in the linear set defined by setting the linear expression to zero.

3. Rational Parametric Curves via TransformationFunction

The central concept in this article is the built-in Wolfram Language function TransformationFunction. When we say transformation function we mean a function given by TransformationFunction. Basically these are affine versions of projective linear transformations, which can include translations along with the usual transformations of linear algebra. They appeared in Lecture 2 of Abhyankar [] and much of the author’s work [, ] as fractional linear transformations; they are also known in the literature as linear fractional transformations. Our major use of these transformations is to be able to access projective geometry where points are cosets of (n+1)-tuples, while working in affine geometry where points are merely n-tuples, which are easy to manipulate computationally.

A transformation function (ℝ^m)⟶(ℝ^n) can be described by an (n+1)×(m+1) matrix. The matrix of the associated projective linear transformation is called the transformation matrix in the Wolfram Language. Thus the TransformationFunction of an (n+1)×(m+1) matrix A takes an affine m-tuple, appends 1 to represent this in projective m-space, applies the projective linear transformation defined by A and then specializes by dividing by the (((n+1))^st) component.

Here is an example.

TransformationFunction[(({{1, 2, 3}, {4, 5, 6}, {-1, -2, -3}}))][{x,y}]

These transformations in the special case (ℝ^2)⟶(ℝ^2) are discussed in detail in Chapter 6 of my book [].

A transformation function is affine if the last row is (0,…,0,1); the denominators are always 1, the upper-left n×m submatrix gives a linear transformation and the first n entries of the last column describe a translation.

TransformationFunction[(({{1, 2, 3}, {4, 5, 6}, {0, 0, 1}}))][{x,y}]

In particular, the domain of an affine transformation (ℝ^m)⟶(ℝ^n) is all of (ℝ^m). Otherwise we call the transformation function projective. If the last row of the transformation matrix is ((Subscript[a, n+1,1]),…,(Subscript[a, n+1,m+1])), then the hyperplane of (ℝ^m) given by (Subscript[a, n+1,1])(Subscript[x, 1])+⋯+(Subscript[a, n,m])(Subscript[x, m])+(Subscript[a, n+1,m+1])=0 is not in the domain of the transformation function. In the context of an affine transformation, it is understood that the equation 1=0 defines the empty set.

In this article we assume that a rational parametric curve has coordinates that are quotients of two polynomials in t. We insist that the parametric curve be given with a common denominator Δ(t), so, for example, is of the form

Q(t)=((((Subscript[p, 1])(t))/(Δ(t))),(((Subscript[p, 2])(t))/(Δ(t))),…,(((Subscript[p, n])(t))/(Δ(t))))

for polynomials (Subscript[p, 1]),…,(Subscript[p, n]),Δ. The degrees of (Subscript[p, j])(t) may be greater than, equal to or less than the degree of Δ(t). In particular, Δ(t) could be the constant polynomial 1, in which case Q(t) is a polynomial curve that we can treat as a special case of a rational curve. The degree of Q(t) is the largest degree of (Subscript[p, 1]),…,(Subscript[p, n]),Δ.

The advantage of writing polynomials in the parameter t in descending degree is that writing a transformation matrix for a rational function is easy. Suppose in equation (1) that (Subscript[p, j])=(Subscript[a, j,1])(t^d)+⋯+(Subscript[a, j,d])t+(Subscript[a, j,d+1]) for j=1,…,d+1, where we write Δ=(Subscript[p, n+1]). Then the transformation matrix for Q[t] is

(({{(Subscript[a, 11]), (Subscript[a, 12]), ⋯, (Subscript[a, 1,d]), (Subscript[a, 1,1+d])}, {(Subscript[a, 21]), (Subscript[a, 22]), ⋯, (Subscript[a, 2 d]), (Subscript[a, 2,1+d])}, {⋮, ⋮, ⋯, ⋮, ⋮}, {(Subscript[a, 1+n,1]), (Subscript[a, 1+n,2]), ⋯, (Subscript[a, 1+n,d]), (Subscript[a, 1+n,1+d])}})).

Example 2.

Q={(((t^3)-2(t^2)+4t-3)/((t^2)+1)), ((4(t^2)-4)/((t^2)+1)), ((-(t^2)+2)/((t^2)+1)), (8/((t^2)+1))};

(QA=MatrixForm[{{1,-2,4,-3},{0,4,0,-4},{0,-1,0,2},{0,0,0,8},{0,1,0,1}}])//MatrixForm

TransformationFunction[QA][{(t^3),(t^2),t}]

Both [] and [] mention the fact that every rationally parameterized curve is a projective transformation applied to a polynomially parameterized curve. In particular, [] notes that this polynomial curve can be the rational normal curve of degree d.

4. Theorem B

Before we state Theorem B, we note that every linear transformation can be factored into a projection on some coordinates followed by an embedding. This is accomplished in a special way using Mathematica by the following matrix reduction algorithm we call rankDecomposition. This takes an n×d matrix A of rank r and outputs an n×r matrix L and an r×d matrix R consisting of rows of A such that L R=A. This implies that r rows of A are what the Wolfram Language calls UnitVectors; that is, L contains an r×r identity matrix as a submatrix.

In the code, the functions pivotrows and nonpivotrows defined in the Do statements invert the lists pivots and nonpivots viewed as functions from their index sets. The IntegerQ tests whether k is in the domain of pivotrows.

rankDecomposition[A_]:=Module[
{n,prenulls,pivots,nonpivots,pivotrows,nonpivotrows,R,L},
n=First@Dimensions@A;
If[MatrixRank@A==n,Return@{IdentityMatrix[n],A}];
prenulls=Map[Reverse,RowReduce@NullSpace@Transpose@Reverse@A];
pivots=Flatten@Map[FirstPosition[#,1,1]&,prenulls];
nonpivots=Complement[Range@n,pivots];
Do[pivotrows@pivots[[i]]=i,{i,Length@pivots}];
Do[nonpivotrows@nonpivots[[j]]=j,{j,Length@nonpivots}];
R=A[[nonpivots]];
L=Table[
If[
IntegerQ[pivotrows@k],
LinearSolve[Transpose@R,A[[k]] ],
UnitVector[Length@nonpivots,nonpivotrows@k]
],
{k,n}];
{L,R}
]

We can now state and prove our main theorem; we write (Subscript[p, n+1])(t)=Δ(t). It may seem counterintuitive that we can strip the constant off the denominator, in particular for polynomially parameterized curves Δ(t)=1 (so stripping it gives (OverTilde[Δ])=0). But projectively the denominator is just another coordinate so we can still do that. So if A is the matrix from the previous section and P(t)=F(((t^d),…,t)), where F is the TransformationFunction of A, then the projective stripped coefficient matrix of P is just the submatrix of A with the last column removed.

Theorem B

Let P(t)=((Subscript[p, 1])(t)/Δ(t),…,(Subscript[p, n])(t)/Δ(t)) be a parametric curve in (ℝ^n) of degree d. Suppose the projective stripped coefficient matrix of P has rank r. Then there are r components of P defining a stripped polynomial parametric curve ρ(t)=((Subscript[(OverTilde[p]), (Subscript[i, 1])]),(Subscript[(OverTilde[p]), (Subscript[i, 2])]),…,(Subscript[(OverTilde[p]), (Subscript[i, r])])) in (ℝ^r) and a transformation function F:(ℝ^r)⟶(ℝ^n) taking ρ(t) to P(t).

Proof

We apply the algorithm rankDecomposition to the (n+1)×d projective stripped coefficient matrix M of P, obtaining a list of r rows forming a basis (Subscript[R, M]) of the row space of M and a matrix (Subscript[L, M]) of size (n+1)×r, where the rows corresponding to this basis are replaced by rows of the r×r identity matrix. Multiplying (Subscript[R, M]) by the vector ((t^d), (t^(d-1)), …,t) gives the parametric function p(t). Appending a last column to (Subscript[L, M]) with the constant terms of the original P(t) gives a transformation matrix (Subscript[L, A]). By the above comments it is easy to see that the TransformationFunction F defined by (Subscript[L, A]) takes ρ(t) to P(t).

One can paraphrase this theorem as: Given a parametric curve P(t) of degree d, there is an r≤d, a stripped parametric polynomial curve ρ in (ℝ^r) and a TransformationalFunction F so that the following diagram commutes.

We ask the reader not to take this diagram literally in the case of a rational parameterization, as the domains of ρ, F, P may not be the full spaces indicated. But if P is a polynomial parameterization, then the domains are the full spaces and F is an embedding.

Example 3: We illustrate this proof by fully working out the following degree-two curve in (ℝ^3).

P1={2t+5,3(t^2)-7,3t-6(t^2)-1};

M1=(({{2, 0}, {0, 3}, {3, -6}, {0, 0}}));

The decomposition can be easily done by hand.

MatrixForm/@({LM1,RM1}=rankDecomposition[M1])

So we add the constant row; remember that the constant in the last row is 1.

ρ1={2t,3t^2};
(LA1=Join[LM1,{{5},{-7},{-1},{1}},2])//MatrixForm

F1=TransformationFunction[LA1]

Theorem B tells us the composition of F1 and ρ1 is P1.

F1[ρ1]

form1=linearSet[F1/@{{0,0},{1,0},{0,1}},{x,y,z}]

So this curve is contained in a plane.

Show[
ContourPlot3D[form1==0,{x,3,8},{y,-7,5},{z,-10,0},Mesh->None,ContourStyle->Opacity[.2]],ParametricPlot3D[P1,{t,-1,2},PlotStyle->Thick]
]

Example 2 (continued): We now consider the rational parameterization Q of example 2.

Q={((-3+4 t-2 (t^2)+(t^3))/(1+(t^2))),((-4+4 (t^2))/(1+(t^2))),((2-(t^2))/(1+(t^2))),(8/(1+(t^2)))};

(QA={{1,-2,4,-3},{0,4,0,-4},{0,-1,0,2},{0,0,0,8},{0,1,0,1}})//MatrixForm

QM=Take[QA,All,3]

QA0=Take[QA,All,-1]

{LM,RM}=rankDecomposition[QM]

LA=Join[LM,QA0,2]

Qρ=RM.{t^3,t^2,t}

TransformationFunction[LA][Qρ]

We check that this lies in a two-dimensional plane in (ℝ^4).

QPts=Table[Q/.{t->p},{p,RandomReal[{-6,6},5]}]

linearSet[QPts,{x,y,z,w}]//Chop

The step in the proof of Theorem B where we use (Subscript[R, M]) to obtain the curve ρ from the rational normal curve can also be done by using an affine transformation function obtained by adding the row and column (0,…,0,1) to (Subscript[R, M]). In Example 2 we have the following.

RA=Join[Append[RM,{0,0,0}],{{0},{0},{1}},2]

TransformationFunction[RA][{t^3,t^2,t}]

This gives:

Theorem C

Let P: ℝ⟶(ℝ^n) be a rational (or polynomial) curve parameterization of degree d. Suppose the projective stripped coefficient matrix of P(t) has rank r. Then the transformation function F in Theorem B can be decomposed into transformation functions (Subscript[F, 2])∘(Subscript[F, 1]) as in the following diagram.

Construction

As in Theorem B, we let M be the projective stripped matrix of P(t) and apply rankDecomposition to M to get ((Subscript[L, M]),(Subscript[R, M])) of sizes (n+1)×r and r×d, respectively. Appending a row of zeros and then a column of zeros with last component 1 to make (Subscript[R, M]) into an affine transformation matrix (Subscript[R, M,A]) of size (r+1)×(d+1) , let (Subscript[F, 1]) be the TransformationMatrix of (Subscript[R, M,A]). Appending the column of constants to (Subscript[L, M]), we get a transformation matrix (Subscript[L, M,T]) of size (n+1)×(r+1). Then (Subscript[F, 2]) is the TransformationMatrix of (Subscript[L, M,T]). One can check that P(t)=(Subscript[F, 2])((Subscript[F, 1])(((t^d),(t^(d-1)),…,t))).

This recovers the known result [] that every rational parameterization is a projective linear transformation of the rational normal curve, but here we have a constructive approach.

Example 4: For an easy but nontrivial (i.e. not conic) example we use the piriform [].

P3={((1-(t^4))/(1+2 (t^2)+(t^4))),((4 t)/(1+2 (t^2)+(t^4)))};

Here d=4, n=2. Here is the stripped projective matrix.

M3=(({{-1, 0, 0, 0}, {0, 0, 0, 4}, {1, 0, 2, 0}}));

A trivial application of rankDecomposition in that M3 is of full rank gives the following.

MatrixForm/@({LM3,RM3}=rankDecomposition[M3])

(ARM3= Join[Append[RM3,{0,0,0,0}],{{0},{0},{0},{1}},2])//MatrixForm

F1=TransformationFunction[ARM3]

(TLM3=Join[LM3,{{1},{0},{1}},2])//MatrixForm

F2=TransformationFunction[TLM3]

F2@F1@{t^4,t^3,t^2,t}

Notice here that n=2, r=3 and d=4. In this case, the curve lies in (ℝ^2), a two-dimensional space. The numbers n, r, d are important values in describing a rational parameterized curve. Even though the transformation matrix for (Subscript[F, 2]) contains the 3×3 identity matrix, it is not injective, which is typical in the case of a rational parameterization, even when n≥r, but this does not occur for a polynomial parameterization.

5. The Recognition Problem

The recognition problem is: given a parameterized curve P:ℝ⟶(ℝ^n) and a point q in (ℝ^n), is q in the curve; that is, does there exist t with P(t)=q?

There are two obvious methods to solve this problem. The first is to directly solve the over-determined system P(t)=q using NSolve[P-q]. This works surprisingly well, failing mostly with poorly conditioned systems for which the other methods following may not work well either. The biggest problem with this approach is that when it does not work, it gives a false negative to the recognition problem. One can, of course, solve component by component and see if any solutions are numerically close.

Example 2 continued.

Q={(((t^3)-2(t^2)+4t-3)/((t^2)+1)), ((4(t^2)-4)/((t^2)+1)), ((-(t^2)+2)/((t^2)+1)), (8/((t^2)+1))};
q1={1.2616272901771202`,2.75550189053762`,-0.5333132089516074`,1.2444981094623802`}
q2={0.9328657844018655`,3.6099079667742315`,-0.0055749054767041395`,0.3132677134420798`}

NSolve[Q-q1]

NSolve[Q-q2]

So the first point P[q1] is on the curve but the second point P[q2] is not. In general, finding a common zero of a set of polynomial or rational equations is an interesting problem, but we do not consider that here.

The second method is to find a system of equations whose solution set is the Zariski closure of the point set {P(t):t ϵ ℝ}. All that then needs to be done, in principle, is to evaluate this system at q and check that the value is 0. We consider this issue in Section 5.

As we have seen, a parameterized curve in (ℝ^n) may lie in a linear subset of dimension less than n. Using Theorem C and the linearSet algorithm, we can get some additional information about the problem and perhaps reduce this to a problem in a smaller (ℝ^r).

Example 5.

P4={((2-3 t+2 (t^2)+(t^3))/(1+(t^2)+2 (t^3))),((-4+(t^2)-2 (t^3))/(1+(t^2)+2 (t^3))),((-2-3 t+(t^2)-(t^3))/(1+(t^2)+2 (t^3))),((-1+t-(t^2)+(t^3))/(1+(t^2)+2 (t^3)))};

We would like to find out which, if any, of the following points are on this curve.

q41={(4/7),-(16/21),-(4/7),(5/21)};
q42={(2/5),-(14/15),-(4/5),(1/3)};
q43={(3/7),(4/3),-(2/5),1};

We first find the transformation functions. Here is the projective stripped coefficient matrix.

M4=(({{1, 2, -3}, {-2, 1, 0}, {-1, 1, -3}, {1, -1, 1}, {2, 1, 0}}));

con4={{2},{-4},{-2},{-1},{1}};

Apply rankDecomposition.

MatrixForm/@({L4,R4}=rankDecomposition[M4])

Augment these matrices to get transformation matrices.

(R4a=Join[L4,con4,2])//MatrixForm

(L4a=Join[Append[R4,{0,0,0}],{{0},{0},{0},{1}},2])//MatrixForm

F41=TransformationFunction[L4a]

F42=TransformationFunction[R4a]

Simplify[F42@F41@{t^3,t^2,t}]

Generate some random points.

pts3=RandomReal[{-1,1},{4,3}];

lin41=linearSet[F41/@pts3,{x,y,z}]

lin42=linearSet[F42/@pts3,{x,y,z,w}]

This says F41 is not contained in any proper subspace, but the image of F42 lies in a three-dimensional subspace of (ℝ^4).

lin42/.Thread[{x,y,z,w}->q41]

lin42/.Thread[{x,y,z,w}->q42]

lin42/.Thread[{x,y,z,w}->q43]

The points q41 and q42 do lie in the image of F42[F41], so may be points on the curve, but we can eliminate q43. We find the fibers (preimage) of q41 and q42 in (ℝ^3).

form42=Simplify@F42@{x1,x2,x3}

sol1={x1,x2,x3}/.First@Solve[form42==q41]

sol2={x1,x2,x3}/.First@Solve[form42==q42]

These conveniently are singleton points. Thus we have reduced this rational recognition problem in (ℝ^4) to a polynomial problem recognition problem in (ℝ^3).

ρ=F41@{t^3,t^2,t}

NSolve[ρ-sol1]

NSolve[ρ-sol2]

So q41==P4[2] but q42 is not on the curve.

6. Implicitization of Rational Parametric Space Curves

As mentioned, the motivation for this article is my work on implicitization of rational parametric space curves. In this section I only sketch my algorithms; details are in []. The key here is that by the material discussed, especially Theorem C, every such curve is simply a fractional linear transformation of the rational normal curve.

By implicitization I mean describing these parametric curves by way of algebraic equations. A problem that arises is that while one expects a curve in (ℝ^n) to be given by n-1 equations, this is often not enough to fully describe the curve pointwise or algebraically. The standard counterexample is the twisted cubic, which is just the rational normal curve of degree three, (Subscript[T, 3])(t)=((t^3),(t^2),t). A system of three equations in the variables x, y, z describing the twisted cubic, given in [], is (x z-(y^2),x-y z,y-(z^2)). An exercise in [] is to show that the zero set of any pair of these three equations contains not only the twisted cubic, but also a line, but note that the extra line in the last pair lies in the infinite plane of projective three-space.

Any implicitization problem has infinitely many possible answers, but the best answers are systems of equations that form an H-basis. This idea goes back to F. S. Macaulay in 1916, who was studying homogeneous equations, hence the “H”; basically in our context it means that any equation f of total degree d containing the parametric curve in its zero set is a polynomial combination f=(Subscript[g, 1])(Subscript[h, 1])+⋯+(Subscript[g, k])(Subscript[h, k]), where the (Subscript[h, i]) are in the H-basis and the (Subscript[g, i]) are polynomials so that each term (Subscript[g, i])(Subscript[h, i]) has total degree at most d. Thus for an H-basis, the ideal membership problem reduces to linear algebra.

If one has a system S with zero set describing the parametric curve P(t), then the Gröbner basis with respect to a degree ordering is an H-basis, perhaps larger than necessary. In practical terms one can simply use the following format.

H=GroebnerBasis[S,MonomialOrder->DegreeLexicographic];

In the case of the rational normal curve of degree d, Harris [] claims that using quadratic equations is sufficient, so we can proceed as follows: we first give a procedure finding the total degree d of a polynomial of several variables.

totalDegree[f_,X_]:=Max[Total/@Keys@CoefficientRules[f,X]]

Then we use the following code, say for d=3.

With[{d=3},
S=Table[x[i]-x[d]^(d+1-i),{i,d-1}]]

This defines H.

With[{d=3},
Select[
GroebnerBasis[S, MonomialOrder->DegreeLexicographic],totalDegree[#,Table[x[i],{i,d}]]==2&
]
]

Likewise we get the following for d=4,5.

{-x[1]+((x[3])^2),-x[2]+x[3] x[4],-x[1]+x[2] x[4],-x[3]+((x[4])^2),-((x[2])^2)+x[1] x[3],-x[2] x[3]+x[1] x[4]};

{-x[2]+((x[4])^2),-x[1]+x[3] x[4],-((x[3])^2)+x[2] x[4],-x[3]+x[4] x[5],-x[2]+x[3] x[5],-x[1]+x[2] x[5],-x[4]+((x[5])^2),-x[2] x[3]+x[1] x[4],-((x[2])^2)+x[1] x[3],-((x[3])^2)+x[1] x[5]};

The size of the H-basis (Subscript[H, d]) is ((d(d-1))/2), which gets much larger than d-1. The numbers ((d(d-1))/2) are binomial coefficients and can be enumerated recursively; however, (Subscript[H, d+1]) does not contain (Subscript[H, d]), so there is no obvious recursive construction of these bases.

In [] I construct, for the fractional linear transformation given by an (n+1)×(m+1) transformation matrix A, a transformation FLTMD[F,A,k,X,Y,tol]. This takes the system F in (ℝ^m) with variables given by the list X to a system in (ℝ^n) with variable list Y such that for a solution x0 of F then TransformationFunction[A][x0] is a solution of G. Unfortunately, this works numerically and the user must provide a number k that bounds the degrees of the polynomials used and a small tolerance tol, but for an appropriate choice of these parameters the system G is often an H-basis if F is.

Thus, a possible method for finding an implicit system describing the rational parameterized curve P(t) is to write it in the form P(t)=F(A)(((t^d),…,t)), where F is a TransformationFunction, and use FLTMD[Hd,A,d,X,Y,tol].

We use Example 4 to illustrate this.

Example 4 continued; define A3 and so on.

A3=(({{-1, 0, 0, 0, 1}, {0, 0, 0, 4, 0}, {1, 0, 2, 0, 1}}));

P3=TransformationFunction[A3][{t^4,t^3,t^2,t}]

With[{d=4},
S4=Table[x[i]-x[d]^(d+1-i),{i,d-1}];
H4=Select[
GroebnerBasis[S4,MonomialOrder->DegreeLexicographic],totalDegree[#,Table[x[i],{i,d}]]==2&
]
]

Then we get the implicitization directly using a related function FLTMD (fractional linear transformation, i.e. TransformationFunction) that takes not points to points but equation systems to equation systems. In [] this is simple, because all transformation matrices used are invertible. In this context the 3×5 transformation matrix is not invertible, so finding the equation system for the image of a transformation function becomes quite involved. Essentially this is the subject of all of Chapter 2 in []. For instance, in this case we are compacting six equations into one.

The following non-executable code and result are copied from [, Section 3.1]. For executable code, see the GlobalFunctionsMD.nb notebook of [].

G=FLTMD[H4,A3,4,{x[1],x[2],x[3],x[4]},{x,y},1.*^-12]

Once this is done we can check that this works.

piriform=1+2 x-2x^3-x^4-y^2;
Show[ContourPlot[piriform==0,{x,-2,2},{y,-2,2},ContourStyle->Orange],ParametricPlot[P3,{t,-6,6}, PlotStyle->Directive[{Black,Dashed}]]]

Summary

We have shown how the Wolfram function TransformationFunction simplifies the study of rational parameterized curves.

References

J. Cardano, The Great Art (T. R. Whitmer, trans.), Boston: MIT Press, 1968.

J. Harris, Algebraic Geometry, A First Course, Springer Graduate Texts in Mathematics 133, New York: Springer, 1992.

S. Wolfram, An Elementary Introduction to the Wolfram Language, Champaign, IL: Wolfram Media, 2015. See also reference.wolfram.com/language.

B. H. Dayton. “Space Curve Book.” http://barryhdayton.space/SpaceCurves/spindex.html. (Sep 4, 2020). Code in barryhdayton.space/SpaceCurves/GlobalFunctionsMD.nb.

S. Abhyankar, Algebraic Geometry for Scientists and Engineers, Providence, RI: American Mathematical Society, 1990.

B. H. Dayton, A Numerical Approach to Real Algebraic Curves with the Wolfram Language, Champaign, IL: Wolfram Media, 2018.

E. W. Weisstein. “Piriform Curve” from Wolfram MathWorld—A Wolfram Web Resource. mathworld.wolfram.com/PiriformCurve.html.

Barry Dayton is the author of A Numerical Approach to Real Algebraic Curves with the Wolfram Language and is Professor Emeritus at Northeastern Illinois University in Chicago, IL. He lives in Ridgefield CT.