Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Project: amplituhedron
Views: 59
var("a b c d e f g h i j k l t"); it=5; #number of iterations #vars_current=[d,e,f]; #Y=Matrix([[1,d+f,d*e],[0,1,e],[0,0,1]]); vars_current=[g,h,i,j,k,l];#variables on which Y depends Y=Matrix([[1,g+j+l,g*h+g*k+j*k,g*h*i],[0,1,h+k,h*i],[0,0,1,i],[0,0,0,1]]); #a generic TNN Y matrix n=Y.ncols(); diag_sum=sum([Y[i,i+1] for i in range(n-1)]);#the superdiagonal sum of X should be equal to that of Y x=diag_sum/(n-1); X=Matrix([[expand(x^(j-i)) for j in range(n)] for i in range(n)]); for i in range(n): for j in range(i): X[i,j]=0; Id=Matrix.identity(n); Z=Id-Y.inverse()*X; L=0; for i in range(1,n+2): L=L-Z^i/i; E=Y*exp(t*L); for i in range(n): for j in range(i,n): E[i,j]=expand(E[i,j]); Y[i,j]=expand(Y[i,j]); print("Y=E(0): "+str(Y==E({t:0}))); print("X=E(1): "+str(X==E({t:1}))); diag_sum_E=expand(sum([E[i,i+1] for i in range(n-1)])); if (diag_sum_E==diag_sum): print("diag_sum_E==diag_sum: True");#somehow doesn't work directly set_random_seed(5); #interesting_minors=[E.matrix_from_rows_and_columns([0,1],[1,2]).det()]; interesting_minors=[]; interesting_minors_lists=[]; for size in range(1,n): indices=Set(range(n)); for rows in indices.subsets(size): for cols in indices.subsets(size): rows_list=list(rows); cols_list=list(cols); if (rows_list[0]>=cols_list[0]): continue; if (rows_list[size-1]>=cols_list[size-1]): continue; interesting_minors.append(E.matrix_from_rows_and_columns(rows_list,cols_list).det()); interesting_minors_lists.append((rows_list,cols_list)); print("looking at minors: "+str(interesting_minors_lists)); for i in range(it): if (it>=100) and (i%(it/100)==0): print(str(i)+"/"+str(it)); eval_dict={}; for v in vars_current: eval_dict[v]=(RR.random_element(0,1)); eval_dict[t]=RR.random_element(0,1); if (it<100): print(eval_dict); for minor in interesting_minors: if (it<10): print(minor(eval_dict)); if (minor(eval_dict)<-0.000000001): print(eval_dict); print(minor(eval_dict)); print("FAIL!!!"); break; print("OK! ("+str(it)+" iterations)");
(a, b, c, d, e, f, g, h, i, j, k, l, t) Y=E(0): True X=E(1): True diag_sum_E==diag_sum: True looking at minors: [([0], [1]), ([0], [2]), ([0], [3]), ([1], [2]), ([1], [3]), ([2], [3]), ([0, 1], [1, 2]), ([0, 1], [1, 3]), ([0, 1], [2, 3]), ([0, 2], [1, 3]), ([0, 2], [2, 3]), ([1, 2], [2, 3]), ([0, 1, 2], [1, 2, 3])] {j: 0.351116692650360, l: 0.133327137396470, g: 0.347721177768766, k: 0.628533029622704, h: 0.268490093738948, i: 0.316596823006412, t: 0.324350632554739} 0.783435642460834 0.507143123385804 0.127115556836044 0.827256987203218 0.216874246904188 0.435092324519607 0.140959485863963 0.0427914581205488 0.00482905038208932 0.340866834789796 0.0935385235820201 0.143058918633147 0.0185389322470916 {j: 0.783003811928945, l: 0.461918556711508, g: 0.205818541672845, k: 0.887881640706856, h: 0.908149544355015, i: 0.831803062917904, t: 0.109694464581810} 1.44073503565810 1.14886568554732 0.395167793270008 1.74814887859282 0.886535761672577 0.889691244042159 1.36975365138777 0.882095338935510 0.327698380935216 1.28180934620978 0.626967947741932 0.668776988893571 0.336562491198963 {j: 0.885927842134671, l: 0.0476818777740332, g: 0.951051680927721, k: 0.819791448314951, h: 0.528009902898612, i: 0.445630480511117, t: 0.696440582976992} 1.42596451449987 1.64795756828912 1.41097861182501 1.26299559081341 1.12832806525948 0.989133127247833 0.153029326180591 0.197977169949291 0.0773770091903609 1.41046873957169 0.219070811268538 0.120942713182011 -0.0466107939836540 {j: 0.885927842134671, l: 0.0476818777740332, g: 0.951051680927721, k: 0.819791448314951, h: 0.528009902898612, i: 0.445630480511117, t: 0.696440582976992} -0.0466107939836540 FAIL!!! {j: 0.554733031599039, l: 0.267804045733936, g: 0.986732667405018, k: 0.461711453086382, h: 0.561493073811742, i: 0.178932894447462, t: 0.980294501463367} 1.01967452450035 1.01255500523026 0.996063115174603 1.00418471750050 0.989897977766220 0.987547924082728 0.0113865690975796 0.0133106346080214 0.00209479413021940 1.00697745991036 0.00388347826011802 0.00178255539700442 -0.00206585193328200 {j: 0.554733031599039, l: 0.267804045733936, g: 0.986732667405018, k: 0.461711453086382, h: 0.561493073811742, i: 0.178932894447462, t: 0.980294501463367} -0.00206585193328200 FAIL!!! {j: 0.893326110947572, l: 0.921731068777590, g: 0.336788177093606, k: 0.0488606959192424, h: 0.242822144760225, i: 0.512176141979073, t: 0.286283353638580} 1.81786416844697 0.461816842800901 0.325712965970964 0.490235215740811 0.333136395883248 0.647604955289524 0.429364190005191 0.279883751310759 -0.00582796757348253 {j: 0.893326110947572, l: 0.921731068777590, g: 0.336788177093606, k: 0.0488606959192424, h: 0.242822144760225, i: 0.512176141979073, t: 0.286283353638580} -0.00582796757348253 FAIL!!! OK! (5 iterations)