sexta-feira, 29 de janeiro de 2021

Operações com matrizes

 Assim como vetores, as matrizes também possuem um jeito diferente de se realizarem operações, vamos vê-los aqui:

Adição e subtração de matrizes

Esses procedimentos devem ser realizados entre matrizes de mesma dimensão, e o resultado será a matriz com a soma ou subtração termo a termo, como visto abaixo:

Multiplicação de matrizes

Esse caso pode ser subdividido em duas categorias, a multiplicação de uma matriz por um número real, e multiplicação entre matrizes

Multiplicação por um número real
Se considerarmos os seguintes dados:
Perceba que com isso também é possível, dividir uma matriz por um número real, apenas multiplicando a matriz, pela fração cujo denominador é o número que queremos dividir a matriz.

Multiplicação entre matrizes
Esse já é um procedimento mais trabalhoso, pois deveremos multiplicar toda a linha de uma matriz pelas colunas da outra, sendo uma matriz A(m,n) e uma matriz B(n,p) o resultado de A*B será a matriz C(m,p), e importante ficar atento que o numero de colunas da primeira matriz deve ser o número de linhas da segunda matriz, e fique atento também, que na multiplicação de matrizes, a ordem em que se resolve as contas, ALTERA o produto:

Com matrizes maiores a quantidade de cálculos pode aumentar a chance de cometer um erro, então se puder usar uma ferramenta computacional para fazer multiplicações de matrizes, use-as.

Divisão de matrizes

Não podemos dividir um número ou uma matriz por outra, então se em algum cálculo surgir uma matriz no denominador de uma fração, ou como divisor, devemos usar métodos algébricos para tira-la daquela posição.

Cálculo do determinante de uma matriz

Já sabemos do ensino médio como calcular o determinante de matrizes 2x2 e 3x3, mas para matrizes maiores, usar esses métodos iria resultar em muitos cálculos, então podemos usar a forma de expansão em cofatores, ou método de Laplace, esse método é usado para calcular o determinante de matrizes de maior ordem, vamos ver o exemplo com a matriz 4x4:
Primeiro escolhemos uma linha ou uma coluna para extrair os cofatores, eles serão calculados como:
também devemos calcular o determinante do menor referido à esse cofator, o menor será a matriz A, sem a linha e nem a coluna do cofator que desejamos. então em uma matriz 4x4, esse menor será uma matriz 3x3. e por fim calculamos o determinante de A como uma soma de parciais, nesse exemplo retirei os cofatores da primeira linha:











segunda-feira, 25 de janeiro de 2021

Mapas de Karnaugh

 Já vimos como usar maxtermos e mintermos para obter a função booleana a partir da tabela verdade, mas com esses métodos acabamos caindo em expressões booleanas grandes, que as vezes podem ser complicadas para simplificar, então será que existe uma forma mais simples para obter a função lógica? Sim existe, usando mapas de karnaugh podemos usar uma representação matricial que nos dá a função booleana de uma tabela de uma forma muito mais simples. E podemos usar para obter a função lógica de maneira mais rápida:

Primeiro montamos a partir da tabela verdade, uma matriz que contenha os resultados para as respectivas entradas, veja o exemplo de 3 entradas abaixo:


Dessa tabela não seria difícil obter o circuito por maxtermos, mas vamos montar o mapa de karnaugh para ver como fica. Ao montar o mapa colocaremos uma variável para mudar as linhas e duas mudando as colunas, para essa representação funcionar colunas e linhas adjacentes só potem ter a mudança de 1 bit de cada vez. O mapa dessa tabela será:


Agora iremos agrupar os uns em grupos que sejam potências de 2, ou seja, devemos agrupar grupos de 1, 2, 4 ou 8 uns, então os agrupamentos desse mapa serão, toda a linha debaixo, a segunda coluna, e a terceira coluna. A função lógica será formada pelos bits que não se alteram nesses agrupamentos, com valor lógico 1, então serão barrados se forem 0, e todos somados. desse mapa obteremos:
Substituindo os agrupamentos pelas variáveis que não se alteram neles teremos:
Note que agrupamentos maiores geram termos menos complexos na função lógica, e para fazer esses agrupamentos também, podemos considerar que a primeira e a última coluna são adjacentes, como se a tabela se fechasse em um cilindro, Simplificando essa expressão ainda mais, com álgebra booleana teremos:
Esse método é prático quando conseguimos fazer grandes agrupamentos de saídas em mesmo estado lógico, e pode ser usado para uma quantidade elevada de variáveis de entrada, apenas o número de linhas e colunas que irão aumentar.






quinta-feira, 21 de janeiro de 2021

Teorema de De Morgan

 Esse é um modo de simplificar expressões booleanas, utilizando a ideia de dualidade, substituindo portas com entradas de em certas condições por outras equivalentes. O teorema de De Morgan diz que:

Uma operação barrada, pode ser substituida pela sua operação complementar, com as entradas barradas, da sequinte maneira:

1)     

Assim, se na expressão lógica tivermos uma porta E com as duas entradas invertidas, podemos substituir essas 3 portas, por uma NOR.

2)

E nesse da mesma forma, uma porta OU com entradas invertidas pode ser substituída por uma porta NAND. Associando esse teorema com as técnicas de mintermos e maxtermos, conseguiremos formar circuitos mais enxutos.

As substituições que eu destaquei tem a ideia de substituir mais portas por uma equivalente, mas na simplificação da função booleana, podemos usar a substituição que for mais conveniente.

quarta-feira, 20 de janeiro de 2021

Circuitos combinacionais - Mintermos e Maxtermos

 Já vimos que portas lógicas possuem tabelas verdade que demostram o seu funcionamento, mas a tabela verdade de cada porta lógica não pode ser alterada para diferentes aplicações, por exemplo, se tivermos uma máquina que só possa funcionar, quando dois botões dois botões estiverem pressionados simultaneamente:

Se entendermos solto e não funciona como sendo 0, e pressionado e funciona como sendo 1, vemos que esse é a mesma tabela verdade de uma porta E, então essa lógica pode ser satisfeita com somente uma porta, mas raramente a aplicação que queremos terá a mesma tabela verdade de uma única porta lógica, na maior parte das aplicações deveremos ter uma combinação de portas lógicas para atender a nossa necessidade. Mas como chegar na função lógica que iremos necessitar?
Para resolver esse problema primeiro devemos levantar como será a tabela verdade da aplicação que temos, então escolheremos um método, que seja mais conveniente.

Por exemplo. seja a tabela verdade abaixo:

Nesse caso vemos que a tabela verdade não pode ser atendida por uma única porta lógica, nós teremos que fazer a combinação de portas, em um circuito lógico, que atenda essa tabela verdade, existem dois modos de descobrirmos quais são esses circuitos, vamos ver aqui:

Mintermos

Esse método para obtenção de circuito lógico, utiliza os valores em 1. Nós faremos a soma dos produtos que resultaram em saída 1, mas como ele utiliza valores em 1, todas as entradas que forem 0 serão barradas, para obter o 1 lógico que desejamos. da tabela acima  vamos utilizar a primeira, a terceira, a sexta, sétima e oitava linhas, barrando as entradas em 0 obteremos a expressão booleana:
Através de Álgebra Booleana chegaramos na expressão simplificada:
Se montarmos esse circuito lógico com 6 portas lógicas, a tabela verdade será a mesma que apresentamos no inicio.

Maxtermos

Assim como mintermos, esse método é usado para obter uma expressão lógica de uma tabela verdade, mas diferente dos mintermos que utilizam as linhas da tabela com resultados em 1, maxtermos utilizarão as linhas da tabela com resultados em 0, e fará o produto das somas. Veja a outra tabela verdade abaixo:
Novamente a tabela não é atendida por uma única porta lógica, vamos fazer o produto das somas de todas as linhas com 0 no resultado, e as entradas que tiverem valor 1 serão barradas, para obtermos apenas zeros lógicos. A expressão da tabela será:
Novamente usamos algebra booleana para fazer simplificações, no caso da primeira multiplicação nós teremos um termo X*X , X*Y barrado, X*Z barrado, quando temos um termo como X*X que aparece somente a mesma variável, outros termos com essa variável podem ser ignorados, pois só essa variável repetida será importante. A expressão final será:




Então quando usamos um método ou usamos o outro? Isso dependerá da tabela verdade, se a maior parte das saídas forem 0, usaremos mintermos, se forem 1 usaremos maxtermos, mas essa escolha é simplesmente para ter equações menores, mas os dois métodos funcionam para todas as tabelas.













sexta-feira, 15 de janeiro de 2021

Exercícios -- Sistemas de numeração

 Depois de ver os diferentes sistemas de numeração, vamos fazer alguns exercícios para praticar: a seguir haverá alguns números, cada um com seu sistema de numeração explicito, converta os números para o sistema que se pede: as respostas estarão abaixo, mas tente fazer sozinho primeiro:

Tente fazer essas conversões em um pedaço de papel, e confira a suas respostas abaixo:
Aqui eu fiz exercícios dos principais sistemas de numeração, mas se perceber que precisa exercitar mais esses conceitos, você mesmo pode escolher números quaisquer, converte-los e conferir o resultado pesquisando qualquer conversor na internet.




quinta-feira, 14 de janeiro de 2021

Algebra booleana

 Da mesma forma que temos regras em matemática, para resolver equações numéricas, também podemos fazer operações com circuitos lógicos.

Propriedades da porta Inversora:

Se um sinal entra em uma porta E, OU com o seu sinal barrado, invertido, os resultados são como os esperados abaixo

Propriedades da porta E:

As propriedades dessa porta, são as algumas que já conhecemos da multiplicação 
 
Propriedade de Associatividade
 Se vários sinais passam por portas E, podemos agrupa-los como desejarmos:
 
Propriedade Comutativa
 Em uma porta E, a ordem dos fatores não altera o produto
 
Propriedade Distributiva 
Duas lógicas que o resultado delas passe por uma porta E podem ser reorganizadas:
 

Propriedades da porta OU

Propriedade Associativa
Sinais em portas OU também podem ser agrupados para a maneira mais conveniente:
 

Propriedade Comutativa

 A ordem em que os sinais entram na porta também não importa.

Propriedade Distributiva

Bastante parecida com a propriedade da porta E, ela pode reorganizar as operações para uma sequencia de lógicas:



quarta-feira, 13 de janeiro de 2021

Portas lógicas digitais

 Quando usamos sistemas digitais, vamos operar com os estados alto e baixo, 0 ou 1, e para isso usaremos essas ferramentas, capazes de fazer o processamento de sinais lógicos, vamos ver aqui as portas lógicas, suas tabelas verdade, que resumem a operação da porta, e a função booleana que será usada depois:

As portas representadas aqui estão em um funcionamento simplificado, apenas para demonstrar as tabelas e funções lógicas, mas usamos esses símbolos mesmos para projetar circuitos lógicos, também uma porta pode conter mais de duas entradas para serem usadas em aplicações mais complexas.

Também nas portas NAND, NOR e NXOR vemos que o pequeno circulo na saida da porta representa uma porta inversora, mas em alguns casos veremos esse circulo em entradas, representando uma entrada invertida