makeB'Section allows for easy creation of equations that define hyperplanes. The default creates a hash table with two keys: B'NumberCoefficients and B'SectionString. The first key is a list of numbers in CC that are coefficients, and the second key is a string representing the linear polynomial. The option RandomCoefficientGenerator can be set to a function to generate random numbers for the coefficients.
To get affine linear equations include 1 in the input list.
To have an affine linear equation that contains a particular point we set the ContainsPoint option to a list of coordinates or a point. To get an homogeneous equation that contains a projective point we have to set the ContainsPoint option as well as the B'Homogenization option.
i1 : s=makeB'Section({x,y,z})
o1 = B'Section{...2...}
o1 : B'Section
|
i2 : class s o2 = B'Section o2 : Type |
i3 : randomRealCoefficientGenerator=()->random(RR) o3 = randomRealCoefficientGenerator o3 : FunctionClosure |
i4 : sReal=makeB'Section({x,y,z},RandomCoefficientGenerator=>randomRealCoefficientGenerator)
o4 = B'Section{...2...}
o4 : B'Section
|
i5 : sReal#B'NumberCoefficients
o5 = {.0741835, .808694, .362835}
o5 : List
|
i6 : randomRationalCoefficientGenerator=()->random(QQ) o6 = randomRationalCoefficientGenerator o6 : FunctionClosure |
i7 : sRational=makeB'Section({x,y,z},RandomCoefficientGenerator=>randomRationalCoefficientGenerator)
o7 = B'Section{...2...}
o7 : B'Section
|
i8 : sRational#B'NumberCoefficients
7 1 7
o8 = {--, -, --}
10 2 10
o8 : List
|
i9 : affineSection=makeB'Section({x,y,z,1})
o9 = B'Section{...2...}
o9 : B'Section
|
i10 : X={x,y,z}
o10 = {x, y, z}
o10 : List
|
i11 : P={1,2,3}
o11 = {1, 2, 3}
o11 : List
|
i12 : affineContainingPoint=makeB'Section({x,y,z},ContainsPoint=>P)
o12 = B'Section{...3...}
o12 : B'Section
|
i13 : r= affineContainingPoint#B'SectionString o13 = (1.18921+.849539*ii)*(x-(1)*(1))+(-.542371+.307137*ii)*(y-(1)*(2))+(1.36945+.015633*ii)*(z-(1)*(3)) |
i14 : print r (1.18921+.849539*ii)*(x-(1)*(1))+(-.542371+.307137*ii)*(y-(1)*(2))+(1.36945+.015633*ii)*(z-(1)*(3)) |
i15 : rHomogeSection= makeB'Section({x,y,z},ContainsPoint=>P,B'Homogenization=>"x+y+z")
o15 = B'Section{...3...}
o15 : B'Section
|
i16 : peek rHomogeSection
o16 = B'Section{B'Homogenization => x+y+z }
B'NumberCoefficients => {.534614-.175945*ii, .426704-.97539*ii, -.478803+.0416008*ii}
B'SectionString => (.534614-.175945*ii)*(x-(x+y+z)*(1))+(.426704-.97539*ii)*(y-(x+y+z)*(2))+(-.478803+.0416008*ii)*(z-(x+y+z)*(3))
|
i17 : print rHomogeSection#B'SectionString (.534614-.175945*ii)*(x-(x+y+z)*(1))+(.426704-.97539*ii)*(y-(x+y+z)*(2))+(-.478803+.0416008*ii)*(z-(x+y+z)*(3)) |
i18 : f="y^3-x*y+1" o18 = y^3-x*y+1 |
i19 : s1=makeB'Section({x,y,1})
o19 = B'Section{...2...}
o19 : B'Section
|
i20 : makeB'InputFile(storeBM2Files,
AffVariableGroup=>{x,y},
B'Polynomials=>{f,s1});
|
i21 : runBertini(storeBM2Files) |
i22 : #importSolutionsFile(storeBM2Files)==3 o22 = true |
The object makeB'Section is a method function with options.