# OK to post homework # James Betti, 23 Feb 2025, Assignment 9 with(combinat): CheegerC := proc(G) local V,i,h,candidates,S,u,v,T; V := {seq(i,i=1..G[1])}; h := infinity; candidates := {}; for S in seq(op(choose(V,i)),i=1..floor(G[1]/2)) do candidates := {}; for u in S do for v in V minus S do candidates := {op(candidates),{u,v}} od od; T := candidates intersect G[2]; h := min(h,nops(T)/nops(S)); od; h; end: CheckBounds := proc(G); d,l := op(lam2(G)); h := CheegerC(G); J := [(d-l)/2,sqrt(2*d*(d-l))]; if hJ[2] then RETURN(FAIL); fi; [evalf(h),J]; end: for i from 5 to 10 do printf("Gnd(%d,2):",i); CheckBounds(Gnd(i,2)); printf("Gnd(%d,3):",i); CheckBounds(Gnd(i,3)); od; # Gnd(5,2): [3., [2.500000000, 6.324555320]] # Gnd(5,3): [3., [2.500000000, 6.324555320]] # Gnd(6,2): [2., [2.000000000, 5.656854249]] # Gnd(6,3): [3., [3.000000000, 7.745966692]] # Gnd(7,2): [2., [1.599031132, 5.058112110]] # Gnd(7,3): [4., [3.500000000, 9.165151390]] # Gnd(8,2): [1.5, [1.292893219, 4.548218497]] # Gnd(8,3): [3., [3.000000000, 8.485281374]] # Gnd(9,2): [1.5, [1.060307379, 4.118849118]] # Gnd(9,3): [3., [2.560307379, 7.838837739]] # Gnd(10,2): [1.2, [0.881966012, 3.756521819]] # Gnd(10,3): [2.4, [2.190983006, 7.251454484]]