Macaulay2 » Documentation
Packages » NoetherianOperators :: zeroDimensionalDual
next | previous | forward | backward | up | index | toc

# zeroDimensionalDual -- dual space of a zero-dimensional polynomial ideal

- Usage:
    `S = zeroDimensionalDual(p, I)`
- Inputs:
  - p, a point, or a one-row matrix
  - I, an ideal, or a one-row matrix of generators
- Optional inputs:
  - Tolerance => ..., default value null, optional argument for numerical tolerance
- Outputs:
  - S, an instance of the type DualSpace,

## Description

This function computes a reduced basis of the dual space of a zero-dimensional ideal. It does not check if the ideal is zero-dimensional and if not then termination will fail. Elements are expressed as elements of the polynomial ring of the ideal although this is an abuse of notation. They are really elements of the dual ring.

    i1 : R = QQ[a,b];

    i2 : I = ideal{a^3,b^3}

                 3   3
    o2 = ideal (a , b )

    o2 : Ideal of R

    i3 : D = zeroDimensionalDual(origin(R), I)

    o3 = | 1 b a 1/2b2 ab 1/2a2 1/2ab2 1/2a2b 1/4a2b2 |

    o3 : DualSpace

    i4 : dim D

    o4 = 9

The dimension of the dual space at p is the multiplicity of the solution at p.

    i5 : S = CC[x,y];

    i6 : J = ideal{(y-2)^2,y-x^2}

                 2              2
    o6 = ideal (y  - 4y + 4, - x  + y)

    o6 : Ideal of S

    i7 : p = point matrix{{1.4142136_CC,2_CC}};

    i8 : D = zeroDimensionalDual(p, J)

    o8 = | 1 .353553x+y |

    o8 : DualSpace

    i9 : dim D

    o9 = 2

## Caveat

The computation will not terminate if I is not locally zero-dimensional at the chosen point. This is not checked.

## See also

- truncatedDual -- truncated dual space of a polynomial ideal

## Ways to use zeroDimensionalDual:

- `zeroDimensionalDual(AbstractPoint,Ideal)`
- `zeroDimensionalDual(AbstractPoint,Matrix)`
- `zeroDimensionalDual(Matrix,Ideal)`
- `zeroDimensionalDual(Matrix,Matrix)`

## For the programmer

The object zeroDimensionalDual is a method function with options.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/NoetherianOperators.m2:2022:0.