« _____________________________ »
 » exercices on Cl(2) « 
« _____________________________ »
Cl(2)
trace=0
« 1.     a=e2-e12,  b=e1+e2,   c=e0+e2.             compare a b, a c « 
do(a=e2-e12, b=e1+e2, c=e0+e2)
print(« ab = », gp(a,b), « ac = », gp(a,c))
 » a b = a c     with b # c« 
«  »
« 2.    a=e2+e12,  b=1/2(e0+e1).                        compare  a b, b a« 
do(a=e2+e12, b=1/2(e0+e1))
print(« ab = », gp(a,b), « ba = », gp(b,a))
«  a b =  ≠    b a = 0     and    b a = a        b ≠1 « 
«  »
« 3.    a=e0+e1, b=-e0+e1, c=e1+e2     compare a b,  b a,  a c,  c a,  b c,  c b« 
do(a=e0+e1, b=-e0+e1, c=e1+e2)
print(« ab = », gp(a,b), « ba = », gp(b,a), « ac = », gp(a,c), « ca = », gp(c,a),
« bc = », gp(b,c), « cb = », gp(c,b))
 » a b = b a = 0      #   a c = 0  or  c a = 0« 
«  »
« 4.    a=1/2(e0+e1),  b=e1+e12.            compute    a^2,    b^2« 
do(a=1/2(e0+e1), b=e1+e12)
print(« a^2 = », gp(a,a), « b^2 = », gp(b,b))
 » a^2=a,   b^2=0« 
«  »
« 5.    a=e1-2e2, b=e1+e2,  r=5e1-e2 »
 » compute x et y in the decomposition r=x*a+y*b.      x,y,  scalars « 
do(a=e1-2e2, b=e1+e2, r=5e1-e2)

(x*a + y*b)[2]
(x*a + y*b)[3]
print( » x+y= 5″, « -2x+y=-1 »)
 » solve ==> r=2a+3b « 
print( » direct calculation : x=outp(r,b)/outp(a,b). y=outp(a,r)/outp(a,b) »)
print(« x= », gp(outp(r,b), inverse(outp(a,b))))
print(« y= », gp(outp(a,r), inverse(outp(a,b))))
«  »
« 6.    a=8e1-e2, b=2e1+e2.                  compute a|| and a _|_  « 
do(a=8e1-e2, b=2e1+e2)
 » a ||        a.b/b »
gp(inp(a,b), inverse(b))
 » a _|_    a^b/b »
gp(outp(a,b) ,inverse(b))
«  »
« 7.    r=4e1-3e2, a=3e1-e2, b=2e1+e2  »
 » reflect r across a and the result across b« 
do(r=4e1-3e2, a=3e1-e2 ,b=2e1+e2)
 » r across a x=ar/a »
x=gp(gp(a,r),inverse(a))
print(« x = », gp(gp(a,r),inverse(a)))
 » result across b bx/b »
gp(gp(b,x),inverse(b))
«  »
« 8.    u conj(u) = a scalar ?« 
u=u0 e0+u1 e1+u2 e2+u12 e12
print(gp(u,cj(u)))
print(gp(cj(u),u))
 » cj(u) = u0 e0 – u1 e1 – u2 e2 – u12 e12 « 
 » u cj(u) = cj(u) u « 
 » u 1/u = u cj(u)/u cj(u) « 
«  »
« 9.    u=e0+e1+e12.                             compute inverse(u)« 
do(u=e0+e1+e12, v=e0+e1+e2-2e12)
print(« inverse(u) = »,inverse(u))
«  »
#gp(invol(u),inverse(gp(invol(u),u)))

print( » invol(u) = u0 e0 – u1 e1 – u2 e2 + u12 e12 « )
print( » cj(u) = u0 e0 – u1 e1 – u2 e2 – u12 e12 « )
print( » rev(u) = u0 e0 + u1 e1 + u2 e2 – u12 e12 « )
«  »
print( » invol(u) = cj(rev(u)) = rev(cj(u)) « )
print(« . check(invol(u)==cj(rev(u))) »)
check(invol(u)==cj(rev(u)))
print(« . check(invol(u)==rev(cj(u))) »)
check(invol(u)==rev(cj(u)))
print( » inverse(u) = invol(u) u / invol(u) « )
gp(inverse(gp(invol(u),u)),invol(u))
«  »
print( » inverse(u) = rev(u) / (u rev(u)) « )
gp(rev(u),inverse(gp(u,rev(u))))
«  »
print(« . rev(rev(u))=u rev(u v)=rev(v) rev(u) « )
print(« . check(u==rev(rev(u))) »)
check(u==rev(rev(u)))
print(« . check(rev(gp(u,v)),gp(rev(v),rev(u))) »)
check(rev(gp(u,v)),gp(rev(v),rev(u)))
print( » cj(cj(u))=u cj(u v)=cj(v) cj(u) »)
print(« . check(u==cj(cj(u))) »)
check(u==cj(cj(u)))
print(« . check(cj(gp(u,v)),gp(cj(v),cj(u))) »)
check(cj(gp(u,v)),gp(cj(v),cj(u)))

« _____________________________ »
« exercices on complex numbers « 
« _____________________________ »

«  »
« 1.   compute     1/(3+4i)       sqrt(3+4i)         log(-1+i) « 
float(1.3+4i)
float(sqrt(3+4i))
float(-1+i)
«  » 
f(n)=product(k,1,n,1-exp(2k*pi*i/n))

« _____________________________ »
« exercices on Cl(3). « 
« _____________________________ »

Cl(3)
« 1.    find the area of the triangle with vertices« 
print( » (1,-4,-6) (5,-4,-2) (0,0,0) « )
do(a=e1-4e2-6e3,b=5e1-4e2-2e3)
print( » area = « ,1/2 magnitude(outp(a,b)))
«  »
« 2.    find the volume of the paralelepipede with edges « 
print(«  a=2e1-3e2+4e3    b=e1+2e2-e3    c=3e1-e2+2e3 « )
do(a=2e1-3e2+4e3, b=e1+2e2-e3, c=3e1-e2+2e3)
print(« . volume = « , magnitude(outp(outp(a,b),c)))
«  »
« 3.    find the square of the volume element     e123 « 
gp(e123,e123)
«  »
« 4.    show that e123  commute with  e1,  e2,  e3 « 
check(gp(e123,e1)==gp(e1,e123))
check(gp(e123,e2)==gp(e2, e123))
check(gp(e123,e3)==gp(e3,e123))
«  »
« 5.    find the inverse of     B=3e12+e23. « 
print( » inverse(3e12+e23) = »,inverse(3e12+e23))
«  »
« 6.   let a=2e1+3e2+7e3 B=4e12+5e13-e23.     compute a^B and  a_|B « 
do(a=2e1+3e2+7e3,B=4e12+5e13-e23)
outp(a,B)
inp(a,B)
«  »
« 7.    let a=3e1+4e2+7e3.  B=7e12+e13.         compute || and _|_ components« 
do(a=3e1+4e2+7e3,B=7e12+e13)
print( » parallel component : x|| = x.B/B », gp(inp(a,B),inverse(B)))
print( » perpendicular component : x_|_ = x^B/B », gp(outp(a,B),inverse(B)))
«  »
« 10.    show that      x|_y = x.y    « 
 » rigth contraction : rc(u,v) »
do(x = x1 e1 + X2 e2 + x3 e3,y=y1 e1 + y2 e2 + y3 e3)
check(rc(x,y)==inp(x,y))

«  »
u2=quote(u2)
u3=quote(u3)
print(« 12. show that (u _| v) |_ w = u _| (v |_ w) « )
u=u0*e0 + u1 e1 + u2 e2 + u3 e3 + u12 e12 + u13 e13 + u23 e23 + u123 e123
v=v0 e0 + v1 e1 + v2 e2 + v3 e3 + v12 e12 + v13 e13 + v23 e23 + v123 e123
w=w0 e0 + w1 e1 + w2 e2 + w3 e3 + w12 e12 + w13 e13 + w23 e23 + w123 e123
check(rc(lc(u,v),w) == lc(u,rc(v,w)))
«  »
« 14.    show that        u x =  u |_ x + u ^ x « 
check(gp(u,x)==rc(u,x)+outp(u,x))
«  »
« 15. show that u^v-v^u = grade 2 « 
«  »
u=u0 e0 + u1 e1 + u2 e2 + u3 e3 + u12 e12 + u13 e13 + u23 e23 + u123 e123
v=v0 e0 + v1 e1 + v2 e2 + v3 e3 + v12 e12 + v13 e13 + v23 e23 + v123 e123
dispgrd(outp(u,v)-outp(v,u))
«  »
« 15.     show that.      u v – v u = grade 1 + grade 2 « 
«  »
u=u0 e0 + u1 e1 + u2 e2 + u3 e3 + u12 e12 + u13 e13 + u23 e23 + u123 e123
v=v0 e0 + v1 e1 + v2 e2 + v3 e3 + v12 e12 + v13 e13 + v23 e23 + v123 e123
dispgrd(gp(u,v)-gp(v,u))
«  »
u=u0*e0 + u1*e1 + u2*e2 + u3*e3 + u12*e12 + u13*e13 + u23*e23 + u123*e123
print(« 18. show that 1 _| u = u « )
lc(e0,u)
«  »
« _____________________________ »
«  »
« 1.    compute    (a+be123)(a+be123)     a and b vectors « 
 » (a+be123)(a+be123) = a.a-b.b+2(a.b)e123 « 
«  »
« 2.    compute   p^2 q^2  and  p q    p=1/2(e0+e3) and q=1/2(e0-e3)« 
do(p=1/2(e0+e3), q=1/2(e0-e3))
gp(p,p)
gp(q,q)
gp(p,q)
 » p^2=p q^2=q p and q idempotents. « 
 » pq=0 ==> there are 0 division in Clifford algebra« 
«  »
 » 3.    compute square of  1/2(1+e3)+1/2(1-e3)e12     and 1/2(1+e3)-1/2(1-e3)e12 « 
gp(p+gp(q,e12),p+gp(q,e12))
gp(p-gp(q,e12),p-gp(q,e12))
 » = e3 ==> vectors can have square roots  »
«  »
« 5.    find exponentials of   pi/2(1-e3)e12   and    -pi/2(1-e3)e12« 
rnd(exp1(pi/2 gp(e0-e3,e12)),3)
rnd(exp1(-pi/2 gp(e0-e3,e12)),3)
 » = e3 ==> vectors also have logarithm « 
«  »
do(a=quote(a),b=quote(b),n=quote(n))
«  »
« 6. « 
a=a1 e1+a2 e2+a3 e3
b=b1 e1+b2 e2+b3 e3
u=m*e0+a+gp(b,e123)+gp((n*e0), e123)
gp(u,cj(u))
 » u cj(u) = m^2-n^2-a.a+b.b+2(mn-a.b)e123 « 
«  »
« ========================================================================== »