Números Duais

Números duais são definidos algebricamente como:

$$q = a +\epsilon b$$

em que $\epsilon^2 = 0$ e $\epsilon\neq0$.

Outras Representações

Forma Matricial

$$q = \left[\begin{array}{cc} a & -b \\ 0 & a \end{array}\right]$$

Operações com números duais

Forma Algébrica


In [26]:
from sympy import *
from IPython.display import display,Math

# Constantes
a,b,c,d = symbols("a b c d",real=true, constant=true)
et = symbols("epsilon",constant=true)

# Regras Algébricas
regrasDuais = [(et**2,0)]

# Números Duais
q1 = a + b*et
q2 = c + d*et

display(Math("q_1 = " + latex(q1)),Math("q_2 = " + latex(q2)))


$$q_1 = a + b \epsilon$$
$$q_2 = c + d \epsilon$$

In [15]:
# Soma
somaQ = q1 + q2
somaQ = somaQ.subs(regrasDuais) # Aplica as Regras Algébricas para Duais
somaQ = somaQ.collect(et)       # Agrupa Termos
display(Math("q_1 + q_2 = " + latex(somaQ)))


$$q_1 + q_2 = a + c + \epsilon \left(b + d\right)$$

In [16]:
# Subtração
subQ = q1 - q2
subQ = subQ.subs(regrasDuais) # Aplica as Regras Algébricas para Duais
subQ = subQ.collect(et)       # Agrupa Termos
display(Math("q_1 - q_2 = " + latex(subQ)))


$$q_1 - q_2 = a - c + \epsilon \left(b - d\right)$$

In [27]:
# Produto
produtoQ = q1*q2
produtoQ = produtoQ.expand()          # Aplica Distribuição da Multiplicação
produtoQ = produtoQ.collect(et)       # Agrupa Termos
produtoQ = produtoQ.subs(regrasDuais) # Aplica as Regras Algébricas para Duais
display(Math("q_1  q_2 = " + latex(produtoQ)))


$$q_1 q_2 = a c + \epsilon \left(a d + b c\right)$$