Synergetics Coordinates Applications

Reference

Based on books :

Synergetics : explorations in the geometry of thinking.1975 by R.Buckminster Fuller.
ISBN 0 - 02 - 065320 - 4
Macmillan Publishing Company
866 Third Avenue, New York, N.Y.10022
Collier Macmillan Canada, Inc.

Synergetics 2, 1979 by R.Buckminster Fuller.
ISBN 0 - 02 - 541870 - X (v.1)
ISBN 0 - 02 - 541880 - 7 (v.2)
Macmillan Publishing Co., Inc.866 Third Avenue, New York, N.Y.10022
Collier Macmillan Canada, Ltd.

Foreword

I'll post some things from time to time to try to get some help understanding Bucky Fuller's books Synergetics 1 and 2 and my interpretation of the Synergetics Coordinate System. I've been working on this stuff all alone for years. Bucky advised not to work alone and he wrote that this coordinate system, or something like it, is very important. 
Cliff Nelson
email: cnelson9@verizon.net

Initialization

VertexesOf[x_List,n_Integer]:=ReplacePart[x,-Plus@@Delete[x,-n],-n]

VertexesOf[x_List]:=(VertexesOf[x,#1]&)/@Range[Length[x]]

VertexesOf[x_B]:=VertexesOf[List@@Drop[x,-1]]

StoP[x_List]:=Module[{wx=x,anser={},i},Do[anser=Prepend[anser,-((wx[[i]] (Sqrt[Tri[i]]))/(i-1))];wx=Drop[wx,-1]+((wx[[i]])/(i-1)),{i,Length[x],2,-1}];anser]

Tri[n_Integer]:=(1/2) n (n-1)

StraightLineDistance[x_List]:=(Sqrt[((Plus@@(x^2))/2)])

VectorDistance[x_List]:=(1/2) Plus@@Sqrt/@(x^2)

PtoS[x_List]:=(∑_(i=2)^(Length[x]+1))((x[[i-1]] uni[i-1,Length[x]+1])/(Sqrt[Tri[i]]))

uni[n_Integer,s_Integer]:=PadRight[Append[Table[1,{n}],-n],s]

gB5[x_B]:=Line/@Subsets[StoP/@VertexesOf[List@@Drop[x,-1]],{2}]

tetrapoint[x_,{i_}]:={Text[i,StoP[(1/4) Plus@@VertexesOf[List@@Drop[x,-1]]]],Line/@Subsets[StoP/@VertexesOf[List@@Drop[x,-1]],{2}]}

Bmultiply[x_List,y_List]:=(-((RotateRight[Reverse[x],#1].y)/(Length[x]))&)/@Range[0,Length[x]-1]

BeigenNumber[x_List,n_Integer]:=Append[x[[Mod[Range[Length[x]-1] n,Length[x]]]],Last[x]]

Breciprical[x_List]:=Module[{wx,iii},wx=BeigenNumber[x,2];Do[wx=Bmultiply[wx,BeigenNumber[x,iii]],{iii,3,Length[x]-1}];-((Length[x] wx)/(Reverse[x].wx))]

Bdivide[x_List,y_List]:=Bmultiply[x,Breciprical[y]]

Bunity[n_Integer]:=Append[Table[1,{n-1}],-(n-1)]

mz[x_List]:=Append[x,-Plus@@x]

mid[x_B]:=x+((Last[x])/(Length[x]-1))

width[x_B]:=x-mid[x]

Bconjugate[x_List]:=Module[{wx,iii},wx=BeigenNumber[x,2];Do[wx=Bmultiply[wx,BeigenNumber[x,iii]],{iii,3,Length[x]-1}];wx]

rootOfUnity[n_Integer]:=B@@RotateLeft[Bunity[n]]

Bpowern[x_List,n_]:=MatrixPower[(RotateRight[-((Reverse[x])/(Length[x]))+(1/(Length[x])),#1]&)/@Range[0,Length[x]-1],n].Bunity[Length[x]]

panmaux[n_]:=Riffle[-Reverse[n],n]

pandm[n_]:=((π panmaux[Range[Floor[(n/2)]]])/n)

bnI[n_]:=B@@Append[Tan/@pandm[n],0]

reIm[x_B]:=Im/@x bnI[Length[x]]+Re/@x

Clear[B]

Conjugate[B[x__]]^:=B@@Bconjugate[{x}]

x_B y_B^:=B@@Bmultiply[List@@x,List@@y]

n_?NumberQ x_B^:=B@@(n List@@x)

x_B+y_B^:=B@@(List@@x+List@@y)

x_B+n_?NumberQ^:=B@@(List@@x+n Bunity[Length[x]])

((x_B)^(n_?NumberQ))^:=B@@If[!IntegerQ[n],Bpowern[List@@x,n],Nest[Bmultiply[If[Sign[n]==-1,Breciprical[List@@x],List@@x],#1]&,Bunity[Length[x]],Abs[n]]]

Unprotect[Times];
a_B x_+b_B x_^:=x (a+b);
Protect[Times];

Synergetics Coordinates

Bucky's kindergarten teacher gave his class some semi-dried peas and toothpicks to make "structures". She called the other teachers over to see the structure Bucky built. He got a patent for it sixty years later. She got word to him seventy five years later through her granddaughter that she still remembered that day. The positions of the peas in the structure are in the same places as the centers of closest packed equal diameter spheres. He was four years old and could not see because he didn't have a pair of eyeglasses yet. That was the beginning of "explorations in the geometry of thinking".

You can make a coordinate system from the whole to the parts, based around the closest packing of spheres, instead of building up from axioms or reference vectors: rack up a triangle of 15 pool balls on a pool table and put a smaller triangle of 10 balls on top of the big triangle of balls and then a smaller triangle of 6 balls on that one, and then 3 balls, then 1, to make a tetrahedron of pool balls with five balls on each of the six edges, thirty five balls altogether. Bisect the edges and connect them by removing pool balls to make an octahedron and bisect the edges of the octahedron to make a cuboctahedron of thirteen balls. The four planes that defined the tetrahedron could move inward one layer of balls and meet at the origin of the coordinate system (4 dimensions) which is at the center ball of the cuboctahedron. Three of the four planes intersect the bottom fourth plane if the fourth plane doesn't move from the origin to make triangles in the plane (3 dimensions) and two of the four planes define signed line segments (2 dimensions) if the other two planes do not move from the origin of the coordinate system.

R. Buckminster Fuller wrote the books, Synergetics, published in 1975, and Synergetics 2, published in 1979, which I read and thought about off and on until I discovered what he meant by the term "Synergetics 60 degree coordinate system" in 1994. Bucky wrote that he discovered the coordinate system of nature in 1940(?), but his books don't give concrete examples of them.

The idea can be seen by starting with a paper ruled with equilateral triangles, and using three numbers representing the perpendicular displacement of the three defining lines of an equiangular triangle that is positioned at the center of the paper {0,0,0}. That triangle has an edge length of zero and an area of zero. All three of the vertices of that triangle are at the same place on the plane.

If all three defining lines of the reference triangle move one unit away from the center of the origin triangle you get the triangle {1,1,1}. A unit here (for perpendicular displacement) is the height of an equilateral triangle of edge length one.

The vertices of {1,1,1} are:

? VertexesOf

Clear[a,b,c]

VertexesOf[{a,b,c}]

VertexesOf[{1,1,1}]

They can be converted to perpendicular 90 degree coordinates by the function StoP. StoP is short for Synergetics coordinates to perpendicular coordinates. The function StoP converts Synergetics coordinates to coordinates with mutually perpendicular axes. The Synergetics coordinates must add up to zero so that they are a regular simplex of edge length zero.

? StoP

Coordinates with perpendicular axes are usually called Cartesian coordinates, named after Rene Descartes, even though Descartes is said to have expected the use of oblique coordinate axes instead of perpendicular.

Clear[a,b]

StoP[{a,b,-a-b}]

Simplify[%]

triangle=StoP/@VertexesOf[{1,1,1}]

ListPlot[Append[triangle,First[triangle]],Joined->True,AspectRatio->Automatic]

If the perpendicular displacement of the defining lines is toward the center of the triangle, you get {-1,-1,-1}, an upside down inside out (negative) triangle.

NegativeTriangle=StoP/@VertexesOf[{-1,-1,-1}]

ListPlot[Append[NegativeTriangle,First[NegativeTriangle]],Joined->True,AspectRatio->Automatic]

The edge length of triangle and NegativeTriangle defined above equals three.

EuclidDistance[{x_,y_}]:=(Sqrt[(x^2)+(y^2)])

EuclidDistance/@(triangle-RotateLeft[triangle])

EuclidDistance/@(NegativeTriangle-RotateLeft[NegativeTriangle])

Triangles' edge lengths are just the sum of the three Synergetics coordinates.

Here is an example.

t123=StoP/@VertexesOf[{1,2,3}]

ListPlot[Append[t123,First[t123]],Joined->True,AspectRatio->Automatic]

1+2+3

EuclidDistance/@(t123-RotateLeft[t123])

The triangle {1,2,3} is shown below.

If the sum of the Synergetics coordinates is zero, all three vertices are the same.

VertexesOf[{1,2,-3}]

Triangles with an edge length of zero are points on the plane.

There are six points that can be represented by three integers that add up to zero such that the sum of the absolute values of the three coordinates divided by two equals one.

six=Permutations[{1,-1,0}]

circles=(Circle[StoP[#1],(1/2)]&)/@six;

Show[Graphics[circles],AspectRatio->Automatic,Axes->True]

The variable six contains the unit vectors that can be added to a point in the plane to step to the closest neighbors of the point with integer coordinates. There are six neighbors with this coordinate system instead of four neighbors as in the omni-perpendicular Cartesian system.

sixsix=Union[Flatten[Outer[Plus,six,six,1],1]]

circles2=(Circle[StoP[#1],(1/2)]&)/@sixsix;

Show[Graphics[circles2],AspectRatio->Automatic,Axes->True]

If you add another dimension you get twelve sets of four coordinates that add up to zero and have a VectorDistance of one and also have integer coordinates. The four coordinates refer to the perpendicular displacement of the four defining planes of a regular tetrahedron. In other words, the surface of the paper with the triangular grid is fixed by the fourth coordinate.

The unit of perpendicular displacement is the height of a regular tetrahedron of edge length one instead of an equilateral triangle. You can see why if you make a model of the cuboctahedron (Bucky Fuller's Vector Equilibrium (VE)) with 36 tubes: 24 edges of the cuboctahedron and 12 radial tubes to the 12 vertices from the center, and look at the four hexagonal planes (cross sections) of the VE to see them as the four planes that define a tetrahedron when the tetrahedron has an edge length of zero and imagine one or more of the planes moving outward or inward from the center of the tetrahedron to define other regular tetrahedrons of different sizes in different places. The T_2 simplex (line segment), the T_3 simplex (equilateral triangle) and the T_4 simplex (regular tetrahedron) are interlocked in the VE. Some things can only be understood or discovered operationally.

twelve=Permutations[{1,-1,0,0}]

Clear[a,b,c]

StoP[{a,b,c,-a-b-c}]

Simplify[%]

spheres=(Sphere[StoP[#1],(1/2)]&)/@twelve;

Show[Graphics3D[spheres],AspectRatio->Automatic,Axes->True]

The variable twelve defined above contains the 12 unit vectors that can be added to a sphere in closest packed sphere space to step to its nearest neighbors.

twelve12=Union[Flatten[Outer[Plus,twelve,twelve,1],1]];

layer2spheres=(Sphere[StoP[#1],(1/2)]&)/@twelve12;

Show[Graphics3D[layer2spheres],AspectRatio->Automatic,Axes->True]

The agglomeration of spheres above keeps the same shape when more and more layers of closest packed spheres are added. The shape is called a cuboctahedron. It is the Vector Equilibrium. It is an equilibrium of vectors from equal diameter objects when the centers of the objects are connected to the centers of their nearest neighbors by vectors, and the spheres removed. It has six square faces and eight triangular faces. If you know the formulas for the square numbers ((n^2)) and the triangular numbers (((n( 1+n))/2)) you can compute the shell growth rate of closest packed spheres. Bucky Fuller published the formula in 1941(?) and it can be used to find the number of protein nodes on the outer shell of a virus.

Objects under consideration can be assumed to act in equal amounts in all directions sometimes, i.e. like spheres. If you know the Avogadro constant that 22.4 liters of ANY gas at one atmosphere at zero degree Celsius contains 6.02252 times (10^23)molecules, then you can compute the size of a tetrahedron with a volume of 22.4 liters and think of the molecules as being like stacked cannon balls in a court yard. ((n(1+n)(2+n))/6) is the formula for the number of balls in a tetrahedron of edge length n-1, because it is the sum of the triangular numbers, (∑_(k=1)^n)((k( 1+k))/2).  So, you can figure out the spherical influence of any molecule of gas.

{1,1,1} is a triangle with an edge length of three and {1,1,1,1} is a tetrahedron with an edge length of four, shown below.

Clear[a,b,c,d]

VertexesOf[{a,b,c,d}]

tet=VertexesOf[{1,1,1,1}]

tetVertexPairs=Subsets[StoP/@tet,{2}];

Show[Graphics3D[Line/@tetVertexPairs],AspectRatio->Automatic,Axes->True]

EuclidDistanceBetween[{a_,b_}]:=(Sqrt[Plus@@(((a-b))^2)])

Clear[a,b,c,d,e,f]

EuclidDistanceBetween[{{a,b,c},{d,e,f}}]

Simplify[EuclidDistanceBetween/@tetVertexPairs]

{-1,-1,-1,-1} is an upside down inside out (negative) tetrahedron, shown below, with an edge length of four (maybe minus four: the sum of the four coordinates)..

negativetet=VertexesOf[{-1,-1,-1,-1}]

negativetetVertexPairs=Subsets[StoP/@negativetet,{2}];

Show[Graphics3D[Line/@negativetetVertexPairs],AspectRatio->Automatic,Axes->True]

Simplify[EuclidDistanceBetween/@negativetetVertexPairs]

The cube is a positive and a negative tetrahedron together. The mid points of the edges of the tetrahedrons are at the centers of the faces of a cube. The cube in the following graphic has an edge length of (Sqrt[8]) because ((((Sqrt[8])))^2) + ((((Sqrt[8])))^2) = (4^2). The cube's edges are not shown, just the face diagonals.

Show[Graphics3D[{Line/@negativetetVertexPairs,Line/@tetVertexPairs}],AspectRatio->Automatic,Axes->True]

Three Cartesian coordinates refer to the perpendicular movement of the three unique non parallel planes that define the six faces of a cube. Their intersection after they move defines a point in three dimensional space.

Four Synergetics coordinates represent the independent perpendicular movements of the four planes of a regular tetrahedron. Their intersections after the planes move define a point in four dimensional space, represented by a regular tetrahedron in three dimensional space. Whether you move the planes toward the center (a negative direction) of the reference tetrahedron, or away from the center (positive), you always get another regular tetrahedron. The edge length of the tetrahedron defined by the intersections of the planes, in terms of unit vectors or Euclid distance, is the sum of the coordinates if the coordinates are in terms of the height of a tetrahedron of edge length one. If the sum is negative, the tetrahedron is upside down and inside out. If the sum is zero it represents a "fix", location, or three dimensional point, and the zero edge length tetrahedron corresponds to three Cartesian coordinates.

The function StoP transforms Synergetics coordinates which add up to zero, to perpendicular 90 degree coordination. All movements of the four planes are kept with reference to a volume zero tetrahedron at {0,0,0,0}. The four planes of the reference tetrahedron coincide with the four hexagonal planes of the cuboctahedron. The edge length of the resulting tetrahedron found by adding the four coordinates is both the StraightLineDistance (Euclidean distance) and the (unit) VectorDistance from vertex to vertex.

StraightLineDistance[x_List]:=(Sqrt[((Plus@@(x^2))/2)])

VectorDistance[x_List]:=(1/2) Plus@@Sqrt/@(x^2)

The VectorDistance function is the distance going by way of adjacent neighbors similar to the "Manhattan distance" with Cartesian coordinates. The synergetics coordinates add up to zero. There are six adjacent neighbors in two dimensions, twelve neighbors in three dimensions, d(d+1) neighbors in d dimensions with d+1 synergetics coordinates. When the coordinates are integers they are the positions of the centers of unit diameter closest packed circles in two dimensions and closest packed spheres in three dimensions. Notice the difference between VectorDistance and StraightLineDistance. VectorDistance gives the results I need for complex coordinates (that is why the Abs function is not used).

The edge length of a tetrahedron is just the sum of the four synergetics coordinates, like the tetrahedron {1,2,3,4} as shown below.

tet1234=VertexesOf[{1,2,3,4}]

tetVertexPairs1234=Subsets[StoP/@tet1234,{2}];

Show[Graphics3D[Line/@tetVertexPairs1234],AspectRatio->Automatic,Axes->True]

Simplify[EuclidDistanceBetween/@tetVertexPairs1234]

1+2+3+4

Four synergetics coordinates that add up to zero are points in three dimensional space.

StoP[{1,1,1,-3}]

If you drop the last coordinate of {1,1,1,-3} and find the vertices of what is left {1,1,1}, the three points lie in the plane and form the base of a regular tetrahedron whose top point is {1,1,1,-3}. {1,1,1,-3} is the endpoint of a line perpendicular to the midpoint of the triangle {1,1,1}, and it's equidistant from the three vertices of {1,1,1}.

Therefore an equiangular triangle in the plane is a way of representing a point in three dimensional space. If the triangle has an edge length of zero the point is in the plane. If the triangle is positive the point is above the  plane. If the triangle is negative the point is below the plane.

Five synergetics coordinates that add up to zero are points in four dimensional space. Just as the first three synergetics coordinates of a point in three dimensional space can represent the point as a triangle in the plane, the first four synergetics coordinates of a point in four dimensional space can represent the point as a tetrahedron in three dimensional space. It is implied that to transform the point represented by the tetrahedron in synergetics coordinates, to find the perpendicular fourth coordinate, find the midpoint of the tetrahedron and make a line perpendicular to all three mutually perpendicular XYZ Cartesian coordinate axes until the end point of the line is the same distance from all four vertices of the tetrahedron as they are from each other. The four perpendicular Cartesian coordinates are usually called XYZT for traditional reasons.

Clear[a,b,c,d]

StoP[{a,b,c,d,-a-b-c-d}]

Simplify[%]

The triangle {1,1,1} can be looked at by finding the three vertices and plotting them in two dimensional space. The tetrahedron {1,1,1,1} can be looked at by finding the four vertices and plotting them in three dimensional space. {1,1,1,1,1}, (a (Subscript[T, 5]) simplex or pentatope) can be looked at by finding the five vertices, and for each vertex, dropping the last Synergetics coordinate and plotting the resulting tetrahedron in three dimensional space, as follows.

t5=VertexesOf[{1,1,1,1,1}]

t5tets=(VertexesOf[Take[#1,4]]&)/@t5

tetralines[x_]:=Line/@Subsets[StoP/@x,{2}]

t5representation=tetralines/@t5tets;

Show[Graphics3D[t5representation],AspectRatio->Automatic,Axes->True]

Clear[a,b,c,d,e,f,g,h]

EuclidDistanceBetween[{{a,b,c,d},{e,f,g,h}}]

Simplify[EuclidDistanceBetween/@Subsets[StoP/@t5,{2}]]

The edge length of a four dimensional simplex such as {1,2,3,4,5} is just the sum of the five synergetics coordinates.

For instance the (Subscript[T, 5]) simplex {1,2,3,4,5}.

t12345=VertexesOf[{1,2,3,4,5}]

EuclidDistanceBetween/@Subsets[StoP/@t12345,{2}]

1+2+3+4+5

There are twenty points in four dimensional space represented by five Synergetics coordinates which add up to zero that have a VectorDistance of one and also have integer coordinates.

n5=Permutations[{1,-1,0,0,0}]

The last coordinate can be dropped from each one and the VertexesOf the remaining four coordinates produce twenty tetrahedrons. Twelve with an edge length of zero and eight of edge length one.

tetrapoint[x_,{i_}]:={Text[i,StoP[(1/4) Plus@@VertexesOf[List@@Drop[x,-1]]]],Line/@Subsets[StoP/@VertexesOf[List@@Drop[x,-1]],{2}]}

VectorsFive=MapIndexed[tetrapoint,n5];

Show[Graphics3D[VectorsFive],Axes->True]

Show[Graphics3D[VectorsFive],Axes->True,ViewPoint->{0.000,-2.450,1.420}]

The graphic above is why I think that I have the same coordinate system that R. Buckminster Fuller had. The figure above is a cuboctahedron which Bucky called the Vector Equilibrium. He wrote that the XYZ Cartesian coordinate axes should go through the square faces of the VE, but I don't know the advantage to that. The XY Cartesian plane is coincident with one of the hexagonal planes of the VE in this system. Bucky also said that the radius of the closest packed spheres should be one, but it is (1/2) in this system, to make the diameter equal to one.

The function StoP (short for Synergetics to perpendicular coordinates) has an inverse PtoS.

PtoS[x_List]:=(∑_(i=2)^(Length[x]+1))((x[[i-1]] uni[i-1,Length[x]+1])/(Sqrt[Tri[i]]))

uni[n_Integer,s_Integer]:=PadRight[Append[Table[1,{n}],-n],s]

Clear[a,b,c,d]

PtoS[StoP[{a,b,c,d,-a-b-c-d}]]

Simplify[%]

PtoS and StoP were derived by computing the height of an equilateral triangle of edge length 3 and the altitude of a regular tetrahedron of edge length 4. The formulas were plugged in by hand at first. The first vertices of {1,1,1} and {1,1,1,1} are {1,1,-2} and {1,1,1,-3} respectively. Their StraightLineDistance is the square root of the quantity (the sum of the squares divided by two). Append[Table[1,{k}],-k] gives the first vertex of the simplex Table[1,{k+1}], and their StraightLineDistances are the square roots of the triangular numbers as shown below.

Table[Append[Table[1,{k}],-k],{k,2,6}]

StraightLineDistance/@%

StoP/@%%

PtoS/@%

All these vertices are made to point as "up" as possible. That explains the logic behind the definitions of StoP and PtoS.

Synergetics coordinates simplexes with an edge length of zero can be added and subtracted from each other. That is just vector addition and subtraction. They can be multiplied and divided by each other according to special rules. Then I call them B numbers or "Bucky numbers" after R. Buckminster Fuller. Floating point numerical approximations to fractional powers can be computed because each B number corresponds to a matrix and the MatrixPower function can be used. Unity for (Subscript[B, 5]) numbers is B[1,1,1,1,-4]. The last coordinate of a B number equals minus the sum of the other coordinates. The first four coordinates of a (Subscript[B, 5]) number can be shown as a tetrahedron. Here is a graphic of the B number ((B[-1,-1,-1,-1,4])^x) times B[1,-1,0,0,0] for x from 0 to 2 color coded as Hue[(x/2)].

?gB5

?reIm

ggg={Hue[#/2],gB5[reIm[N[B[-1,-1,-1,-1,4]]^#] B[1.0,-1.0,0,0,0]]}&/@ Range[0.0,2.0,.1];

Show[Graphics3D[ggg],Axes -> True,ViewPoint->{1.3,-2.4,2.0}]

Eric W. Weisstein's MathWorld entry about Synergetics Coordinates is on line at:
Weisstein, Eric W. "Synergetics Coordinates." From MathWorld--A Wolfram Web Resource. 
mathworld.wolfram.com/SynergeticsCoordinates.html

Both volumes of the books Synergetics were on line the last time I looked at:
www.rwgrayprojects.com/synergetics/synergetics.html

Area and Volume With Synergetics Coordinates

Area is measured by how many edge length one equilateral triangles instead of how many squares it takes to cover a region on a surface. Volume is measured by how many unit edge length tetrahedrons instead of cubes it takes to fill a region of space. Unit edge length regular tetrahedrons can't fill all-space by joining them face to face, but volume can still be measured with them. The tetra-volume of a polyhedron is always a rational number if the synergetics coordinates of its vertices are rational numbers.

Clear[a,b,c,d,e,f,x1,x2,x3]

generalTriangle={{a,b,-a-b},{c,d,-c-d},{e,f,-e-f}};

tetrahedronWithGeneralTriangleBase=Join[{{x1,x2,x3,-x1-x2-x3}},(Append[#1,0]&)/@generalTriangle]

Simplify[((Det[tetrahedronWithGeneralTriangleBase-(1/4)])/(Det[generalTriangle-(1/3)]))]

That (above) proves that the triangular area of the base of a tetrahedron times the height of the tetrahedron equals the tetra-volume of the tetrahedron, just like the square area of a square times the height of a cube equals the cubical volume of the cube, except that the tetrahedron can be a skew tetrahedron. The height of the tetrahedron is in terms of the height of an edge length one tetrahedron.

Angle Between Synergetics Coordinate Vectors

The formula for the cosine of the angle between two synergetics coordinate vectors is similar to Cartesian coordinates.

synDot[a_,b_]:=((a.b)/2)

synAbs[a_]:=(Sqrt[synDot[a,a]])

Clear[a,b,c,d,e,f,g,h]

synAbs[{a,b,c,d,-a-b-c-d}]==StraightLineDistance[{a,b,c,d,-a-b-c-d}]

cosAngleSynergetics[a_List,b_List]:=((synDot[a,b])/(synAbs[a] synAbs[b]))

cosAngleCartesian[a_List,b_List]:=((a.b)/((Sqrt[a.a]) (Sqrt[b.b])))

aa={a,b,c,d,-a-b-c-d}

bb={e,f,g,h,-e-f-g-h}

Simplify[cosAngleSynergetics[aa,bb]==cosAngleCartesian[StoP[aa],StoP[bb]]]

Bucky Numbers

Bucky Number Arithmetic Algorithms

Robin Chapman answered an email and said BuckyNumbers are isomorphic to the cyclotomic fields.
His website is:
http://www.secamlocal.ex.ac.uk/people/staff/rjchapma/rjc.html

Rowland, Todd. "Cyclotomic Field." From MathWorld--A Wolfram Web Resource, created by Eric W. Weisstein. http://mathworld.wolfram.com/CyclotomicField.html

The number of dimensions the nth cyclotomic field has is given by the Euler Totient function.

Weisstein, Eric W. "Totient Function." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/TotientFunction.html

The proof that the nth cyclotomic field has n - 1 dimensions when n is a prime number is not trivial according to Robin Chapman.

Multiplication

The n coordinates of a B_n number add up to zero. You make the outer product to make an n by n table of the multiplication products of the coordinates in two B_n numbers when you want to multiply B_n numbers. Then you have to decide how to add up the results and where to put them into the n coordinates of the result. The coordinates of each B_n number are labeled 1 to n and the rule is to add up the products in the table that have the same sum of labels (j-residue n). (j-residue n) is almost like congruence modulo n but gives results 1 to n instead of 0 to n-1. So 5 (mod 5) is 0 but 5 (j-residue 5) is 5. You could just work from the 5 by 5 table for B_5 multiplication, but,  labels (1,2,3,4,5) + (5,4,3,2,1) (j-residue 5) = (1,1,1,1,1) for B_5 numbers, so the inner product of a B_5 number with the reverse of the other B_5 number goes in the first coordinate of the result. Then you rotate the coordinates of one of the B_5 numbers so the labels add up to (2,2,2,2,2), then (3,3,3,3,3), (4,4,4,4,4), and (5,5,5,5,5) (j-residue 5) and put the inner products into coordinates 2, 3, 4 and 5 respectively. You divide each inner product by (-n) for B_n numbers. Then some B_4 numbers, B[1,-1,1,-1] for instance, do not have a multiplicative inverse because B_4 numbers are isomorphic to the 4th cyclotomic field which has two dimensions and B_4 numbers have three dimensions, not two. B_n numbers work right when n is a prime number and the coordinates are exact rational numbers or B_m numbers, n not equal to m (m is prime too). B_n numbers with modulo p arithmetc is good if p is a prime number and is a quadratic nonresidue of n.

Weisstein, Eric W. “Quadratic Residue.” From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/QuadraticResidue.html

Division

You can divide B_n numbers c/d  by solving the matrix equation Mx = c for the unknown vector x where M is an n by n matrix for the B number d. It is only necessary to know the first row of the matrix M, because each subsequent row is a rotation to the right one position of the row above it.

FirstRowofM[x_List] := -Reverse[x]/Length[x] + 1/Length[x] 
FirstRowofM[{a, b, c}] == {1/3 - c/3, 1/3 - b/3, 1/3 - a/3}

But, the multiplicative inverse of a B_n number, when n is a prime number, can be found without creating the matrix M and storing it in computer memory, and without having to solve the linear algebra problem.

The matrix M is called a circulant matrix. Its eigen values can be computed quickly with a formula that uses powers of the nth roots of unity. The product of the eigen values is the determinant of the matrix M, and it is a rational number.

Weisstein, Eric W. "Circulant Determinant From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/CirculantDeterminant.html

The nth roots of unity are usually defined as complex numbers e^(2*Pi*i*k/n), for k = 0 .. (n - 1), and i = Sqrt[-1], or equivalently Cos[2*Pi*k/n] + i*Sin[2*Pi*k/n]. But the nth roots of unity are rotations of the coordinates of unity for B_n numbers (nth roots of unity = RotateLeft[unity, k] for k = 0 .. (n - 1)). Unity for B_ 3 numbers is B[1, 1, -2]; for B_ 5 numbers B[1, 1, 1, 1, -4] etc .. So, the eigen values for the matrix M, for a B_n number b, are themselves B_n numbers . The first eigen value e[1] is always unity, and the last e[n], is always b itself. The partial product of the eigen values, e[1]*e[2]* ... e[n - 1], divided by the full product e[1]*e[2]* ... e[n], is equal to 1/e[n] = 1/b. You only need the first coordinate of the full product of the eigen values, so, you divide the partial product by a scalar. (and that' s the point : you don' t know how to divide by a B_n number unless the first n - 1 coordinates are all the same; then it' s the same as dividing by a scalar).

The Initialization section has the Mathematica code for the BuckyNumber algorithms.

Solving Matrix Problems Using Bucky Numbers

(Subscript[B, n]) Numbers have n numbers that add up to zero and are geometrically interpreted with the synergetics coordinate system as regular simplexes with an edge length of zero and n vertices at the same place.

Each coordinate in a B number fixes a geometric object. The objects fixed by the three coordinates of a (Subscript[B, 3]) number are lines. The coordinate axes are perpendicular to the lines that define an equiangular triangle, and differ by 120 degrees in their directions. The movements of the lines are in terms of the height of an edge length one equilateral triangle, and the intersection of the lines after they move are the three vertices of an equiangular triangle whose edge length is the sum of the three numbers (zero).

A regular (Subscript[T, n]) simplex has n vertices that are the same distance from each other. The first n-1 coordinates of a (Subscript[B, n])number are a  regular (Subscript[T, n-1]) simplex with and edge length of minus the (n^th) coordinate, in the synergetics coordinate system.

Here is a matrix m, and an example of the LinearSolve function. Then the problem is solved using B numbers.

m={{1,2},{3,4}}

LinearSolve[m,{5,6}]

LinearSolve[m,{5,6}] solves the matrix equation m times the solution vector of two scalars equals {5,6}. The solution vector is the scalars {x, y} such that x+2*y == 5 and 3*x+4*y == 6. The problem can be stated  x(1,3)+y(2,4) = (5,6). In other words, x and y each scale a vector.

The known vectors can be Complex numbers or (Subscript[B, 3]) numbers.

The functions to divide by a B number and the mz function are in the initialization cells section.

? mz

bm=Apply[B,mz/@Transpose[m],{1}]

e=B@@mz[{5,6}]

ee=Append[bm,e]

? mid

The vectors involved have been set up as a list of (Subscript[B, 3]) numbers in the three statements above. The three parts of a (Subscript[B, 3]) number are synergetics coordinates. They add up to zero. The (Subscript[B, 3]) numbers are points on the plane, but the last coordinate can be dropped or ignored and the first two coordinates fix the end points of a directed line segment. {1,1} is a line segment of length two. Minus the last coordinate of a (Subscript[B, 3]) number is the width of the directed line segment fixed by the first two coordinates.

First divide everything by the first coefficient.

(ee/(ee[[1]]))

Each simplex represented by a B number has a width and a mid point. The mid point of {1,1} is {0,0}.  Matrix problems seek scalar answers. The vector equation is true for both the midpoints and the widths of the simplexes represented by the B numbers, so all of the B numbers can be replaced by their mid points. Then at least one of the variables drops out (it is multiplied by zero, the mid point of unity B[1,1,-2]).

mid/@%

Now divide by the second coefficient to get the solution for y = 9/2.

((%)/(%[[2]]))

You could eliminate the second variable first and solve for x (-4).

(ee/(ee[[2]]))

mid/@%

((%)/(%[[1]]))

(Subscript[B, 5]), (Subscript[B, 7]), (Subscript[B, 11]), (Subscript[B, n]) where n is a prime number can do the same thing for larger matrices.

The problem of finding the minimum or maximum of a linear function constrained by linear inequalities (called Linear Programming) can be stated as a problem of finding unknown scalars of known vectors and solved using B numbers. The simplex method invented by Dantzig (I think) is usually used (and I think is much faster). You just make so called "slack variables" (unknowns), to turn an inequality, such as greater than or equal, into an equality. If you can find a solution to the system with all the slack variables non negative, it solves the inequality.

Finding Roots Of Equations Numerically With Bucky Numbers

Here is some inspiration from Bucky Fuller's books Synergetics and Synergetics 2, section 260.42:

260.42  The synergetic coordinate system of nature and its finite macro-micro turnaround-limited hierarchy of primitive ascending or descending timeless-sizeless, omnisymmetrically concentric, polyhedral components provides the human mind with a rational means of resolving problems by bringing nature into a corner__a convergent terminus center, a four-dimensional corner of the four-dimensional planes of the tetrahedron. Only with the four-dimensional convergence and divergence of synergetics can the human mind reduce problems to comprehension as minimum-limit systems. The minimum polygon is a triangle; the minimum polyhedron is a tetrahedron; both of their structural behaviors are unique (see Secs. 614.00 and 621.00). By their academic training humans think only in terms of parallel and rectilinear coordination, and so they tend to hold to the unresolvable parallel interpretations of their lives’ experiences. They seek to maintain the status quo and__despite the organic and biologic manifests of birth and death__they fail to be able to take advantage of the cornerability of comprehension and the positional fixes provided by the four-dimensional, synergetic, convergent-divergent coordination.

rootOfUnity[5]

The five rational solutions for x in the equation (x^5)= B[1,1,1,1,-4] are shown in the next statement.

((rootOfUnity[5])^(Range[5]))

The B number roots of unity rotate the coordinates of their B number coefficients.

B[1,2,3,4,-10] ((rootOfUnity[5])^(Range[5]))

(Subscript[u, (Overscript[x_B, p_])]):=RotateLeft[B@@Bunity[Length[x]],p]

Δ=(1/(10^7))

findaRootOne[fs_,x_B]:=x-((Δ fs[x])/(fs[x]-fs[x-Δ]))

findaRootTwo[fs_,x_B]:=x-((fs[x] Length[x] 2)/((∑_(p=1)^(Length[x]))RotateRight[fs[x+(Subscript[u, (Overscript[x, p])])]-fs[x-(Subscript[u, (Overscript[x, p])])],p]))

The function findaRootOne is Newton's method when iterated. The function findaRootTwo gives exactly the same result as dividing fs[x] by its symbolic first derivative at x and subtracting that from x if fs[x] is a polynomial and Length[x] is greater than half the highest exponent of x in fs[x]. The function findaRootOne is faster than findaRootTwo. Sometimes it's not easy to find a good value for delta for findaRootOne.

Clear[f]

f[x_]:=(x^2)-x-1

(Subscript[B, n]) numbers are fields when they have an odd prime number n of coordinates if exact rational numbers are used when n is greater than 3. Floating point coordinates for (Subscript[B, 5]) numbers can get too close to certain irrational quantities so that multiplication of two non zero B numbers gives zeros in every coordinate. But, floating point arithmetic is very fast compared to exact rational arithmetic, so lets take a chance with the N function.

firstGuess=N[B@@mz[{1,-1,-1,1}]]

findaRootThree[fs_,x_B]:=((fs[x] x)/((∑_(p=1)^(Length[x]))fs[x (Subscript[u, (Overscript[x, p])])]))+x

The function findaRootThree is the least general findaRoot, but it goes toward a rational (Subscript[B, 5]) number solution of (x^2)- x - 1 = 0 from a firstGuess of B[1,-1,-1,1,0].

aa=NestList[findaRootThree[f,#1]&,firstGuess,30];

Last[aa]

The iteration is getting closer and closer to a zero of the function f, and it gets closer with more iterations.

f[Last[aa]]

? gB5

Show[Graphics3D[MapIndexed[{Hue[N[((First[#2])/(Length[aa]))]],gB5[#1]}&,f/@aa]],PlotRange->All,Axes->True]

The sequence of tetrahedrons in the graph above should end with an edge length zero tetrahedron. You could draw a line from each of the four vertexes of a tetrahedron to the respective vertexes of the next tetrahedron in the sequence and compute where the continuations of the lines would meet at the edge length zero tetrahedron point to figure out what the next guess should be to find a zero of the function.

aa=NestList[findaRootTwo[f,#1]&,firstGuess,10];

Last[aa]

f[Last[aa]]

Show[Graphics3D[MapIndexed[{Hue[N[((First[#2])/(Length[aa]))]],gB5[#1]}&,f/@aa]],PlotRange->All,Axes->True]

? mz

g[x_]:=B@@mz[{-x[[1]],((x[[1]])^2),-1,0}]

Sometimes you only want a single number answer. The function g has been defined to use the first coordinate of the input B number, and findaRootlast, below, stops changing x when the value of the last coordinate, which is minus the edge length of the tetrahedron represented by the (Subscript[B, 5 ])number, is zero.

? mid

? width

findaRootlast[fs_,x_]:=x-((width[fs[x]])/x)

firstGuess=B@@mz[N[{1,1,1,1}+I]]

The variable firstGuess has complex numbers this time and some functions won't converge to zero without them or with (Subscript[B, 3]) numbers as the "coordinates". That is, (Subscript[B, n])× C or (Subscript[B, n])× (Subscript[B, 3]) is necessary sometimes.

aa=NestList[findaRootlast[g,#1]&,firstGuess,40];

g[Last[aa]]

The last coordinate is pretty close to zero, above.

Last[aa]

The imaginary part of the Bucky Numbers is shown starting with the color Hue[.5] in the graphic below.

Show[Graphics3D[MapIndexed[{Hue[N[((First[#2])/(Length[aa] 2))]],gB5[Re/@#1],Hue[N[((First[#2]+Length[aa])/(Length[aa] 2))]],gB5[Im/@#1]}&,g/@aa]],PlotRange->All,Axes->True]

The edge length of each tetrahedron in the graphic above is the value of (x^2)- x - 1 for each guess. All of these examples are just given to show what Bucky Fuller might have meant by "bringing nature into a corner" and using "four dimensional positional fixes". Can you "zero in" on a solution to an equation quickly by following the four lines that connect the respective vertexes of two adjacent tetrahedrons in the sequence of tetrahedrons, that have exact rational synergetics coordinates, to a volume zero tetrahedron?