« Mathématiques avec Python et Ruby/Quaternions et octonions en Ruby » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 272 :
 
==Opérations==
 
===Addition===
 
Comme pour les quaternions, on additionne les octonions composante par composante (''a'' avec ''o.a'', ''b'' avec ''o.b''):
 
<source lang="ruby">
def +(o)
Octonion.new(@a+o.a,@b+o.b)
end
</source>
 
===Soustraction===
 
<source lang="ruby">
def -(o)
Octonion.new(@a-o.a,@b-o.b)
end
</source>
 
===Multiplication===
 
<source lang="ruby">
def *(o)
Octonion.new(@a*o.a-o.b*@b.conj,@a.conj*o.b+o.a*@b)
end
</source>
 
Non seulement la multiplication des octonions n'est pas commutative, elle n'est plus associative non plus:
 
<source lang="ruby">
m=Octonion.new(p,q)
n=Octonion.new(q,p)
o=Octonion.new(p,p)
puts((m*n)*o)
puts(m*(n*o))
</source>
 
===Division===
 
<source lang="ruby">
def /(o)
d=1/o.abs**2
Octonion.new((@a*o.a.conj+o.b*@b.conj)*Quaternion.new(d,0),(Quaternion.new(0,0)-@a.conj*o.b+o.a.conj*@b)*Quaternion.new(d,0))
end
</source>
 
=Bibliographie=