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 B'SectionString => (.534614-.175945*ii)*(x-(x+y+z)*( ----------------------------------------------------------------------- -.97539*ii, -.478803+.0416008*ii} 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.