//---Robot dell'esempio 1 ring r=(0,l3,l2,a,b),(c2,s2,c1,s1),lp; option(redSB); ideal id=l3*(c1*c2-s1*s2)+l2*c1-a, l3*(c1*s2+c2*s1)+l2*s1-b, c1^2+s1^2-1,c2^2+s2^2-1; ideal j=std(id); dim(j); j; ring t=0,(c2,s2,c1,s1,l3,l2,a,b),lp; ideal id=imap(r,id); ring re=(real,6),(c2,s2,c1,s1,l3,l2,a,b),lp; ideal id=imap(t,id); //---Pomiamo l2 = l3 =1 // e a = 1, b = 1. ideal ids=subst(id,l3,1,l2,1,a,1,b,1); //---Cambiamo ulteriormente l’anello per ottenere // un ideale 0-dimensionale. ring re2=(real,6),(c2,s2,c1,s1),lp; ideal id=imap(re,ids); ideal ids=std(id); dim(ids); //---Risolviamo il problema cinematico inverso, // cioe' dato il posizionamento della mano // (a,b) calcoliamo (c2,s2,c1,s1)=: elenco l. LIB "solve.lib"; list l=solve(ids,6,0); l;