SI - Projeto de Pesquisa - 2º Sem de 2018 - Alexandro Rosanelli, Marcos Graeber, Weliton Klein

Fazer download em docx, pdf ou txt
Fazer download em docx, pdf ou txt
Você está na página 1de 44

1

ALEXSANDRO GUIMARÃES ROSANELLI


MARCOS VINICÍUS GRAEBER
WELITON RAFAEL KLEIN

DESENVOLVIMENTO DE SOFTWARE PARA RESOLUÇÃO DE MATRIZES

Três de Maio
2

2018
3

ALEXSANDRO GUIMARÃES ROSANELLI


MARCOS VINICÍUS GRAEBER
WELITON RAFAEL KLEIN

DESENVOLVIMENTO DE SOFTWARE PARA RESOLUÇÃO DE MATRIZES

Trabalho de pesquisa apresentado à


Faculdade Três de Maio.

Professor Orientador: MS.c Denise Da Luz Siqueira, MS.c Cristiane Hahn Baldissera
4

Três de Maio

2018

RESUMO

Este trabalho apresenta o desenvolvimento de um software desktop, para


resolução de matrizes, o mesmo utilizara de seus diversos tipos e formas de
cálculos. Com o uso da linguagem de programação Java para o seu
desenvolvimento, utilizando de métodos e variáveis que executam o cálculo para a
resolução das mesmas, utilizando da mesma linguagem foi criada sua interface
gráfica, o aplicativo foi desenvolvido com base nos conceitos e tecnologias
estudadas, no decorrer do desenvolvimento agilizando a resolução de matrizes.
Como problema de pesquisa supõe-se a elaboração de um software para calcular
matrizes poderia agilizar a resolução da mesma. Como objetivo temos o
desenvolvimento de uma aplicação desktop utilizando a linguagem de programação
Java. A metodologia utilizada foi: dedutivo, quantitativa, qualitativa, a pesquisa
bibliográfica, observação, linguagem de programação e as técnicas de programação.
Como resultados foi desenvolvido o software, podendo efetuar cálculos como soma,
subtração, multiplicação, inversa, determinante, transposta e identidade. Também
possibilitando ao usuário escolher o tamanho de linhas e colunas das matrizes assim
como os diversos métodos de operação. Com o desenvolvimento dos componentes
citados acima foi possível a criação do software, e como resultados temos a
apresentação da ferramenta seguida da apresentação dos códigos e posteriormente
a demonstração dos testes.
Palavras-chave: Matriz. Java. Software.
5

ABSTRACT

This work presents the development of a desktop software, for matrix


resolution, the same use of its different types and forms of calculations. With the use
of Java programming language for its development, using methods and variables that
perform the calculation to solve them, using the same language was created its
graphical interface, the application was developed based on the concepts and
technologies studied, in the course of development by streamlining matrix resolution.
As a research problem it is assumed that the elaboration of a software to calculate
matrices could speed up the resolution of the same. As a goal we have the
development of a desktop application using the Java programming language. The
methodology used was: deductive, quantitative, qualitative, bibliographic research,
observation, programming language and programming techniques. As results the
software was developed, being able to perform calculations like sum, subtraction,
multiplication, inverse, determinant, transposed and identity. Also allowing the user to
choose the size of rows and columns of the matrices as well as the various methods
of operation. With the development of the components mentioned above it was
possible to create the software, and as results we have the presentation of the tool
followed by the presentation of the codes and later the demonstration of the tests.

Keywords: Matrix, Java, Software.


6

LISTA DE ABREVIATURAS E SIGLAS

Nº Número

Resp. Responsabilidade

SETREM Sociedade Educacional Três de Maio

TI Tecnologia da Informação

TM Três de Maio

WWW World Wide Web


7

LISTA DE FIGURAS

Figura 1 - Selecionando linhas.........................................................................32


Figura 2 - Selecionando colunas......................................................................33
Figura 3 - Gerando matriz A.............................................................................34
Figura 4 - Gerando matriz B.............................................................................34
Figura 5 - Selecionando cálculo.......................................................................35
Figura 6 - Efetuando cálculo.............................................................................36
Figura 7 - Função Limpar..................................................................................36
Figura 8 - Método somar...................................................................................37
Figura 9 - Método subtrair.................................................................................37
Figura 10 - Método multiplicar..........................................................................38
Figura 11 - Método determinante.....................................................................38
Figura 12 - Método inversa...............................................................................39
Figura 13 - Método transposta..........................................................................39
Figura 14 - Método identidade..........................................................................40
8

LISTA DE QUADROS
Quadro 1 - Cronograma..............................................................................................14
Quadro 2 - Orçamento................................................................................................15
9

SUMÁRIO

RESUMO.......................................................................................................................3
INTRODUÇÃO............................................................................................................10
CAPÍTULO 1 - CONTEXTUALIZAÇÃO...................................................................12
1.1 TEMA................................................................................................................12
1.2 DELIMITAÇÃO DO TEMA................................................................................12
1.3 PROBLEMA......................................................................................................13
1.4 HIPÓTESES.....................................................................................................13
1.5 OBJETIVO GERAL...........................................................................................13
1.6 OBJETIVOS ESPECÍFICOS............................................................................13
1.7 JUSTIFICATIVA................................................................................................14
1.8 METODOLOGIA...............................................................................................14
1.8.1 Abordagem......................................................................................................15
1.8.1.1 Dedutivo.....................................................................................................15
1.8.1.2 Quantitativa................................................................................................15
1.8.1.3 Qualitativa...................................................................................................15
1.8.2 Procedimento..................................................................................................15
1.8.2.1 Pesquisa Bibliográfica................................................................................15
1.8.3 Técnicas..........................................................................................................16
1.8.3.1 Observação................................................................................................16
1.8.3.2 Linguagem de programação......................................................................16
1.8.3.3 Técnicas de Programação.........................................................................17
1.9 CRONOGRAMA...............................................................................................17
1.10 ORÇAMENTO..................................................................................................18
CAPÍTULO 2 - EMBASAMENTO TEÓRICO...........................................................20
2.1 MATRIZES........................................................................................................20
2.1.1 Tipos de matrizes...........................................................................................20
2.1.1.1 Matriz coluna..............................................................................................20
2.1.1.2 Matriz linha.................................................................................................21
2.1.1.3 Matriz Nula.................................................................................................21
2.1.1.4 Matriz Quadrada.........................................................................................21
2.1.1.5 Matriz Diagonal..........................................................................................21
2.1.1.6 Matriz Identidade........................................................................................21
2.1.1.7 Matriz Escalar.............................................................................................21
2.1.1.8 Matriz transposta........................................................................................22
2.1.1.9 Matriz Simétrica..........................................................................................22
10

2.1.2 Operações com Matrizes...............................................................................22


2.1.2.1 Soma..........................................................................................................22
2.1.2.2 Subtração...................................................................................................23
2.1.2.3 Multiplicação por Escalar...........................................................................23
2.1.2.4 Multiplicação entre matrizes.......................................................................23
2.1.2.5 Matriz Inversa.............................................................................................24
2.1.2.6 Determinante..............................................................................................26
2.1.2.7 Método de Laplace.....................................................................................27
2.1.2.8 Método de Gauss-Jordan...........................................................................28
2.2 PROGRAMAÇÃO.............................................................................................30
2.2.1 Algoritmo.........................................................................................................30
2.2.2 Java..................................................................................................................31
2.2.3 NetBeans.........................................................................................................31
CAPÍTULO 3 - ANÁLISE E RESULTADOS............................................................32
CONCLUSÃO.............................................................................................................41
REFERÊNCIAS...........................................................................................................42
11

INTRODUÇÃO

Será realizado neste trabalho um software capaz de solucionar operações


matemáticas envolvendo matrizes. Com o intuito de ser prático de efetuar os
cálculos e que diminua o temo gasto na resolução dessas operações.

Por sua vez a utilização deste software reduzira a ocupação do espaço que
estas contas acabam por ocupar pois são contas extensas, contribuindo até mesmo
para a economia de papel e outros materiais ocupados para o registro das mesmas.

Existe um grande número de estudos que se aplicam ao seguinte projeto


desde a metodologia até as matrizes (ZANELLA, 2011; LAKATOS et. al.,1986;
LOVATO, 2007; BOLDRINI, 1980). Esses estudos destacam a dificuldade do
problema tanto pela quantidade de variáveis presente no programa como pela
dificuldade de transformar no mesmo. Desenvolvendo cálculos para que a máquina
possa executar corretamente, gerando resultados de forma rápida e correta.

O desenvolvimento de um software que soluciona matrizes acaba por gerar


várias dificuldades na transposição das diferentes contas envolvendo matrizes gera
diferente variáveis e dúvidas de como gerar um código capaz de interpretar as
diferentes operações.

Estes empecilhos acabam por atrasar o desenvolvimento e até mesmo acaba


por gerar erros que por sua vez tendem a gerar dados errados para quem utiliza o
software tendo que por assim recorrer a meios diferentes para alcançar a solução
dos mesmos.
12

Para a solução destes problemas há a recorrente pesquisa bibliográfica ou a


recorrência a pessoas que auxiliem no desenvolvimento de diferentes meios para
realizar os cálculos corretamente e de forma rápida.

A organização deste trabalho é composta por capítulos que estão descritos a


seguir.

No capítulo 1 será feita a apresentação do tema, a delimitação do tema, o


problema da pesquisa, as hipóteses, o objetivo geral, os objetivos específicos, a
justificativa, a metodologia, o cronograma e o orçamento.

No capítulo 2 será desenvolvido o referencial teórico, sendo utilizado citações


para descrever e explicar os termos utilizados ao longo do projeto.

No capítulo 3 apresenta-se os resultados obtidos na realização do projeto.


13

CAPÍTULO 1 - CONTEXTUALIZAÇÃO

No capítulo 1 (contextualização) apresenta-se o tema, a delimitação do tema,


o problema da pesquisa, as hipóteses, o objetivo geral, os objetivos específicos, a
justificativa, a metodologia, o cronograma e o orçamento.

1.1 TEMA

“O tema é o assunto que se deseja provar ou desenvolver” (LAKATOS;


MARCONI, 2012, p. 106).

O presente relatório tem por finalidade o desenvolvimento de software para


resolução de matrizes.

1.2 DELIMITAÇÃO DO TEMA

“O processo de delimitação do tema só é dado por concluído quando se faz a


limitação geográfica e espacial do mesmo, com vistas na realização da pesquisa”
(LAKATOS; MARCONI, 2012, p. 106).

O relatório propõe o desenvolvimento de software para resolução de matrizes,


sendo desenvolvido no segundo semestre de 2018, na SETREM pelos estudantes
Alexsandro Rosanelli, Marco Graeber e Weliton Klein.
14

1.3 PROBLEMA

“A formulação do problema se prende ao tema proposto: ela esclarece a


dificuldade específica com a qual se defronta e que se pretende resolver por
intermédio da pesquisa” (LAKATOS; MARCONI, 1989, p. 103).

A elaboração de um software para calcular matrizes poderia agilizar a


resolução da mesma?

1.4 HIPÓTESES

“A hipótese atende a uma resposta provisória, provável e suposta ao


problema formulado” (LAKATOS; MARCONI, 1989).

Resolução de matriz 50 por 50 em um segundo.

Exatidão dos resultados obtidos na resolução das matrizes.

1.5 OBJETIVO GERAL

“Um objetivo geral é formado para responder à questão da pesquisa”


(LOVATO; 2013, p. 101).

Desenvolver um aplicativo desktop com o objetivo de revolver operações


aritméticas de matrizes.

1.6 OBJETIVOS ESPECÍFICOS

“E objetivos específicos são estabelecidos para, através de passos e etapas,


corroborar ou refutar as hipóteses” (LOVATO; 2013. p. 101).

● Desenvolver aplicação desktop na linguagem de programação JAVA;

● Analisar o quão rápido é a resolução de uma matriz através do software;

● Analisar e testar o software com as operações evolvidas nos cálculos de


matrizes;
15

1.7 JUSTIFICATIVA

É o único item do projeto que apresenta resposta à questão, por quê? De


suma importância, geralmente é o elemento que contribui mais diretamente
na aceitação da pesquisa pelas(s) pessoa(s) ou entidade(s) que vai(ão)
financiá-la. Consiste numa exposição sucinta, porém completa, das razões
de ordem teórica e dos motivos de ordem prática que tornam importante a
realização da pesquisa (LAKATOS; MARCONI, 2012, p. 107).

Matrizes são cálculos com uma gama muito ampla de uso, sua aplicabilidade
este presente na informática, economia, engenharia, matemática, física, etc. Em
informática é usada em programas onde elas aparecem no auxílio dos cálculos
matemáticos, editores de imagem, o próprio teclado onde sua configuração é
realizada por um sistema de matrizes, entre outros tantos.

A demanda de resoluções de contas envolvendo matrizes, exigindo tempo


que talvez não possuam os envolvidos nos cálculos, com o desenvolvimento de um
software para a resolução destas contas agilizaria a vida e as aplicações que
envolvem matrizes.

Assim como o conhecimento e busca por soluções para a criação do mesmo,


torna-se um desafio para ambos os envolvidos, que colaboram, e auxiliam na
criação e desenvolvimento tanto do projeto como do software, auxiliando e
simplificando a resolução de matrizes, que em determinados momentos se tornam
contas extensas e complexas.

Há o compromisso humanitário que com algo de ampla utilidade como este


haverá um amplo uso e acesso de pessoas que acabam por pesquisar formas mais
simples e rápidas de se resolver matrizes assim optando por um programa que
acabaria resolvendo em pouco tempo contas de grande amplitude, assim ajudando
professores, alunos, e pessoas a fim de utilizar o mesmo.

1.8 METODOLOGIA

“A especificação da metodologia da pesquisa é a que abrange maior número


de itens, pois responde, a um só tempo, às questões como?, com quê?, onde?,
quanto?” (LAKATOS; MARCONI, 2012, p. 109).
16

1.8.1 Abordagem

1.8.1.1 Dedutivo
O método dedutivo, de acordo com o entendimento clássico, é o método
que parte do geral e, a seguir, desce ao particular. A partir de princípios, leis
ou teorias consideradas verdadeiras e indiscutíveis, prediz a ocorrência de
casos particulares com base na lógica. “Parte de princípios reconhecidos
como verdadeiros e indiscutíveis e possibilita chegar a conclusões de
maneira puramente formal, isto é, em virtude unicamente de sua lógica.”
(GIL, 2008, p. 9).

A abordagem do tipo dedutiva empregou se através de pesquisas e aplicação


da mesma em um programa que resolva matrizes de diversas formas e meios.

1.8.1.2 Quantitativa
“Quantitativa: expressa através da subjetividade dos resultados da pesquisa”
(LOVATO; 2007. p. 36).

A abordagem do tipo quantitativa será aplicada por meio do levantamento de


dados da pesquisa de campo para entender pelas opiniões coletadas a opinião do
público alvo.

1.8.1.3 Qualitativa
A pesquisa qualitativa pode ser definida como a que se fundamenta
principalmente em análises qualitativas, caracterizando-se, em princípio,
pela não utilização de instrumental estatístico na análise dos dados. Esse
tipo de análise tem por base conhecimentos teórico-empíricos que permitem
atribuir-lhe cientificidade. (ZANELLA, 2011, p. 35)

A pesquisa qualitativa as respostas não são objetivas, e o intenção não é


contabilizar quantidades como resultado, mas sim conseguir compreender o
comportamento de determinado grupo-alvo.

1.8.2 Procedimento

1.8.2.1 Pesquisa Bibliográfica


Segundo Andrade (1995), Lakatos e Marconi (1986) e Gil (2002) apud Lovato,
Evangelista, Güllich (2007, p. 35) pesquisa bibliográfica é a consulta de obras
escritas por outros autores a respeito do assunto a ser pesquisado.
17

“А pesquisa bibliográfica é o passo inicial na construção efetiva de um


protocolo de investigação, quer dizer, após а escolha de um assunto é necessário
fazer uma revisão bibliográfica do tema proposto. ” (SIMONSEN, 2016).

Este procedimento será realizado por meio de citações, e para isso utilizou-
se de pesquisas em sites na internet e livros para encontrar as citações com a
finalidade de se obter conhecimento sobre os termos pesquisados e que serão
utilizados ao longo do estudo.

1.8.3 Técnicas

1.8.3.1 Observação
Segundo Lakatos e Marconi (1986, p. 107) apud Lovato, Evangelista, Güllich
(2007, p. 36) descrevem observação que não consiste apenas em ver e ouvir, mas
examinar os fatos ou fenômenos que se deseja analisar, podendo esta ser:
sistemática, assistemática, participante, não participante, individual, em equipe, na
vida real e em laboratório.

Esta técnica foi realizada por meio da observação sendo feito de modo
estruturado sendo participante, em grupo e ocasional nos fenômenos observados a
fim de obter melhores resultados na solução dos problemas.

1.8.3.2 Linguagem de Programação


Podemos comparar um computador como uma super calculadora, capaz de
fazer cálculos muito rapidamente, mas para isso devemos dizer ao computador o
que deve ser calculado. A função das linguagens de programação e exatamente
essa, ou seja, um meio de comunicação entre computadores e humanos.

Uma linguagem de programação consiste em um conjunto de normas


sintáticas e semânticas utilizadas para determinar um programa de
computador e tem um poder de criação ilimitado, que permite desenvolver
desde aplicativos de planilhas eletrônicas até jogos e editores de texto.
(ALMEIDA, 2008, p. 10).

Um conjunto de dados compostos de acordo com regras que constitui o


código-fonte, ou programa, de um software. Esse código-fonte é depois traduzido
18

para código de máquina (uma linguagem binária), que é então executado pelo
processador.

Existem dois tipos de linguagem de programação: as de baixo nível e as de


alto nível. Os computadores entendem tudo como números binários, ou seja, só
entendem zero e um. As linguagens de baixo nível são interpretadas diretamente
pelo computador, obtendo um rápido resultado, mas sendo difícil de se trabalhar
com elas. Já as linguagens de alto nível são mais fáceis de se entender, as ações
são representadas por palavras de ordem geralmente em inglês, sendo criadas
assim para facilitar a memorização e a logica, elas não são interpretadas
diretamente pelo computador, sendo necessário transforma-las para linguagem
binaria utilizando-se um programa chamado compilador.

A linguagem utilizada foi a Java, a mesma e baseada em C++ e foi criada por
James Gosling e financia da [ela Sum Microsystems, James a chamou de Oak, mas
logo descobriu-se que já havia uma linguagem de computador com esse nome. E
quando a equipe da Sun visitou uma cafeteria com o nome Java o mesmo foi
sugerido; e o nome pegou.

A Sun anunciou o Java formalmente em uma conferência do setor em maio


de 1995. O Java chamou a atenção da comunidade de negócios por causa do
enorme interesse na Web, pois o mesmo tinha potencial para adicionar conteúdo
dinâmico, como interatividade e animações, as páginas da Web. E agora o mesmo é
utilizado para desenvolver aplicativos corporativos de grande porte, aprimorar a
funcionalidade da Web, fornece aplicativos para dispositivos voltados para o
consumo popular e para muitos outros propósitos.

1.8.3.3 Técnicas de Programação


A Programação Orientada a Objetos (POO) é um dos principais paradigmas
de programação que tem por finalidade em modelar os objetos do mundo real e ser
desenvolvido no sistema. Sendo o programa em desenvolvimento dividido em
Classes, Atributos e Métodos.

“O paradigma de orientação a objetos traz um enfoque diferente da


programação estruturada, no sentido de adotar formas mais próximas do
mecanismo humano para gerenciar a complexidade de um sistema. Nesse
19

paradigma, o mundo real é visto como sendo constituído de objetos


autônomos, concorrentes, que interagem entre si, e cada objeto tem seu
próprio estado (atributo) e comportamento (métodos), semelhante a seu
correspondente no mundo real.” (MENDES, 2009, p.18)

1.9 CRONOGRAMA

“A pesquisa deve ser dividida em partes, fazendo-se a previsão do tempo


necessário para passar de uma fase para outra” (LAKATOS e MARCONI, 2012, p.
246) .
A finalidade do cronograma e demostrar a disposição no calendário das
atividades diferenciando o proposto ao realizado.

Quadro 1 - Cronograma
Atividades Ago Set Out Nov Dez

Definição do Tema X

Desenvolver aplicação desktop na linguagem X X X


de programação JAVA

Analisar e transpor para o software as X X X


operações evolvidas nos cálculos de
matrizes

Analisar o quão rápido é a resolução de uma X


matriz através do software

Referencial Teórico X X

Apresentação dos Resultados X

Proposto

Realizad X
o
20

1.10 ORÇAMENTO

“O orçamento distribui os gastos por vários itens, que devem


necessariamente ser separados” (LAKATOS e MARCONI, 2012, p. 246) .

O mesmo foi calculado com base nos valores os quais foram gastos e
estipulados durante o decorrer do mesmo.

Quadro 2 - Orçamento

Material / Despesas Quantidade Valor Unitário Valor Total

Impressão 200 folhas R$0,12 R$24,00

Horas 50 R$10,00 R$500,00

Total (R$) R$524,00


21

CAPÍTULO 2 - EMBASAMENTO TEÓRICO

Este capítulo contém o referencial teórico do trabalho. Para um melhor


entendimento do mesmo serão apresentados os principais termos e conceitos
utilizados para o desenvolvimento e elaboração da pesquisa.

2.1 MATRIZES

As matrizes possibilitam o tratamento de dados de forma simplificada,


permitindo a fácil visualização da informação. O uso da mesma está presente em
todas a áreas do conhecimento, desde áreas que lidam diretamente com
matemática ou não, como saúde, áreas humanas, etc.

Uma matriz é um conjunto de dados dispostos em uma tabela onde cada


dado é referenciado por linhas e colunas. A arrumação dos dados dessa
forma permite não apenas sua organização, mas também possibilita novas
maneiras de manipular esses dados. (FERREIRA, 2011, p. 33)

A mesma e um conjunto de dados, ordenados em linhas(horizontais) e


colunas(verticais), geralmente entre colchetes ou parênteses. Sendo composta por
qualquer tipo de números, funções e até de submatrizes.

2.1.1 Tipos de matrizes

2.1.1.1 Matriz Coluna


“É formada por apenas uma coluna.” (FERREIRA, 2011, p.34)

[]
1
(1) A= 2
3

2.1.1.2 Matriz Linha


“É formada por apenas uma linha.” (FERREIRA, 2011, p.35)

A= [1,2,3] (2)

2.1.1.3 Matriz Nula


“Matriz onde todos os seus elementos são zero.” (FERREIRA, 2011, p.35)
22

A= [ 00 00] (3)

2.1.1.4 Matriz Quadrada


“Matriz onde a quantidade de linhas é igual à quantidade de colunas.”
(FERREIRA, 2011, p.35)

A= [ 13 24] (4)

2.1.1.5 Matriz Diagonal


“Matriz onde todos os elementos exceto os da diagonal principal são nulos.
“(FERREIRA, 2011, p.35)

A= [ 10 02](5)
2.1.1.6 Matriz Identidade
“Matriz onde todos os elementos da diagonal principal são iguais a um, e
todos os elementos fora da diagonal principal são nulos.” (FERREIRA, 2011, p.36)

[ 10 01] (6)

2.1.1.7 Matriz Escalar


Uma matriz escalar é, quando todos os números da diagonal principal são
iguais.

[ 40 04]
2.1.1.8 Matriz Transposta
“A matriz é obtida a partir de qualquer matriz trocando-se as linhas pelas
colunas.” (FERREIRA, 2011, p.36)

A= [ 13 24] A =[ 12 34]
t
(8)
23

2.1.1.9 Matriz Simétrica


“Uma matriz é simétrica se ela for igual a sua transposta.” (FERREIRA, 2011,
p.36)

[ ]
2 −1 0
A= −1 3 7 (9)
0 7 −2

[ ]
2 −1 0
A = −1 3
t
7 (10)
0 7 −2

2.1.2 Operações com Matrizes

2.1.2.1 Soma
Para que seja efetuada a operação de soma a matriz A deve ter o mesmo
número de linhas e colunas da matriz B, somando o elemento da primeira linha e da
primeira coluna da matriz A, com o primeiro elemento da primeira linha e primeira
coluna da matriz B e assim sucessivamente.

A=[ CA DB ]
B=[
G H]
E F
(11)

A+B= [
C+G D+ H ]
A + E B+ F

Exemplo:

A=[ 13 24] B=[ 13 24]


A+B= [
3+3 4+ 4 ]
1+1 2+ 2
(12)

A+B=[
6 8]
2 4
24

2.1.2.2 Subtração
Para efetuar a operação de subtração as matrizes devem ter o mesmo
número de linhas e colunas, somando o elemento da primeira linha e da primeira
coluna da matriz A, com o primeiro elemento da primeira linha e primeira coluna da
matriz B e assim sucessivamente.

[ ]
1 2 3
A= 4 5 6
7 8 9

[ ]
2 2 2
B= 3 7 1 (13)
8 7 5

[ ]
−1 0 1
A-B= 1 −2 5
−1 1 4

2.1.2.3 Multiplicação por Escalar


Multiplicando-se cada elemento da matriz A pelo escalar.

A=[ 13 24] (14)

Ax5=[
15 20 ]
5 10

2.1.2.4 Multiplicação entre Matrizes


O produto de duas matrizes, tais que o número de colunas da primeira matriz

é igual ao número de linhas da segunda, multiplicando a primeira linha vezes


a segunda coluna.

Para analisar a multiplicação A.B procederemos da mesma forma, o número


de colunas da primeira matriz(A) e igual a 2 e o número de linhas da segunda
matriz(B) e igual a 2, portanto a multiplicação A.B pode ser feita:

[ ]
A B
A= C D
E F
25

B= [ GI HJ ] (15)

[ ]
A . G+ B . I A . H + B . J
AxB= C . G+ D. I C . H + D . J
E .G+ F . I E . G+ F . J

[ ]
3 −1
A= 2 0
4 1

Exemplo:

B= [ 10 −23 ]
[ ]
3.1+ (−1 ) .0 3. (−2 )+ (−1 ) .3
AxB= 2.1+ 0.0 2. (−2 ) +0.3 (16)
4.1+ 1.0 4. (−2 )+ 1.3

[ ]
3 −9
AxB= 2 −4
4 −5

2.1.2.5 Matriz Inversa


“Todo número real a, não nulo, possui um inverso (multiplicativo), ou seja,
existe um número b, tal que a b = b a = 1. Este número é único e o denotamos pôr a
1.” (SANTOS, 2002, p.71)

Somente matrizes quadradas podem ter inversa, e mesmo entre as matrizes


quadradas, muitas não possuem inversa. Existe um modo prático para descobrir se
uma matriz possui uma matriz inversa ou não. Basta calcular o determinante da
matriz: caso o determinante dê igual a zero, não existe matriz inversa para ela.

Encontre a matriz inversa da matriz A.

A= [ 22 35] (17)
26

Sabemos que a matriz A-1 será uma matriz quadrada de mesma ordem.
Explicite uma matriz inversa com elementos quaisquer. Sendo assim, usaremos
letras para representar estes elementos.

A-1= [ ac bd ] (18)

Sabemos que ao multiplicarmos estas duas matrizes, obteremos a matriz


identidade .

Por fim, teremos a seguinte igualdade:

A*A-1=In= [ 22 35] .[ ac bd ]=[ 10 01] (19)

[ 22 a+3
a+5 c 2b +5 c ] [ 0 1 ]
c 2 b+3 d 1 0
=

Através da igualdade de matrizes, obteremos 4 igualdades muito importantes


para os nossos cálculos. Agrupamos as mesmas de forma que as igualdades com
mesmas incógnitas fiquem juntas.

1){22 a+3 c=1


a+5 c=0
(20)

2){
2b +3 d=0
(21)
2 b+5 d=1

Resolvendo o sistema 1) pelo método da adição.

2ª+3c=1 –
2ª+5c=0 (22)
1
-2c=1->-
2

Substituindo o valor de c, obteremos o valor de a.


1 5
2ª+3c=1->2ª+3.(- )=1->a= (23)
2 4

Resolvendo o sistema 2) de forma análoga, obteremos os seguintes valores para as


incógnitas:
27

3 1
b= - d= (24)
4 2

Como encontramos os valores para os elementos da matriz inversa, vamos esboçá-


la:

( )
5 −3
4 4
A-1= (25)
−1 1
2 2
Neste primeiro momento verificaremos se de fato está matriz corresponde à matriz
inversa:

( )( )(
5 −3 5 3 −3 3
2. − +
( )2 3
*
2 5 −1
4 4
1
=
4 2
5 5

2 2 1 0
=
−3 5 0 1
+
) (26)
2 2 2 2 2 2

De fato, a matriz obtida corresponde à matriz inversa, pois o produto das duas
matrizes resultou na matriz identidade.

2.1.2.6 Determinante
Calculamos o determinante de matrizes quadradas, isto é, com mesmo
número de linhas e colunas.

O determinante de uma matriz é uma função que leva uma matriz quadrada
a um número real, ou seja, o determinante é um número real que é
associado a uma matriz. A notação utilizada para o determinante de uma
matriz é qualquer uma das formas abaixo, onde A é uma matriz quadrada e
aij seu termo geral. detA det(A) |A| det (aij). (FERREIRA, 2011, p.61)
Definimos como determinante da matriz A (det A) o número que é obtido pela
operação dos elementos que compõem A.

Se A possui uma linha e uma coluna (A1 X 1), então o determinante será
representado pelo único elemento que compõe A. Exemplo:

A = (10)
det A = 10

Se A possuir duas linhas e colunas (A2 x 2), então o determinante (det A2 x 2)


será dado pela diferença entre os produtos da diagonal principal da matriz A pelo
28

produto dos elementos que compõem a sua diagonal secundária. Veja abaixo como
é feito o cálculo do determinante de uma matriz 2 por 2 (A 2 X 2).

Diagonal primaria Diagonal secundaria

M=2x2 [ aa 1.1
2.1
a1.2
a 2.2 ]
D=a1.1 x a2.2 – (a1.2 x a2.1)

Caso a matriz quadrada seja do tipo M 3 X 3, M 4 X 4, M 5 X 5 e assim por


diante, calculamos o seu determinante executando os passos descritos abaixo:

1.Faça o espelhamento da primeira e da segunda coluna da matriz, ou seja,


repita a primeira e a segunda coluna;

2.Realize os produtos de cada diagonal principal e secundária


separadamente;

3.Efetue a soma entre os termos obtidos dos produtos de cada diagonal;

4.Realize a diferença entre os resultados obtidos referente à soma dos termos


das diagonais principais e das secundárias. No fim desses cálculos, teremos o
determinante da matriz.

Diagonal principal Diagonal secundaria

M3x3= a1.1 a1.2 a1.3 a1.1 a1.2

a2.1 a2.2 a2.3 a2.1 a2.2

a3.1 a3.2 a3.3 a3.1 a3.2

det M3 X 3 = (a 1,1 . a 2,2 . a 3,3) + (a 1,2 . a 2,3 . a 3,1) + (a 1,3 . a 2,1 . a 3,2) - ((a
1,3 . a 2,2 . a 3,1) + (a 1,1 . a 2,3 . a 3,2) + (a 1,2 . a 2,1 . a 3,3)).

2.1.2.7 Método de Laplace


O Teorema de Laplace é um método para calcular o determinante de matrizes
quadradas de ordem n. Normalmente, é utilizado quando as matrizes são de ordem
igual ou superior a 4.Esse método foi desenvolvido pelo matemático e físico Pierre-
Simon Laplace (1749-1827).
29

Para aplicar o teorema de Laplace devemos escolher uma fila(linha e coluna


da matriz) e adicionar os produtos dos elementos desta fila aos respectivos
cofatores.

Cofator de aij tal que Aij=(-1)i+j * Dij-

Exemplo:
Considere a matriz e calcule o seu determinante

[ ]
21 6 0
5 01 3
B= (27)
−2 51 8
11 4−2−7
Destacando a linha 2 de B, temos D=5*B21 +0*B22+1*B23+3*B24

[ ]
16 0
B21=(-1) * 5 18 =-411
3

4−2−7

[ ]
260
B22=(-1) * −21 8 =462
4

11−2−7

[ ]
2 10
B23=(-1) * −2 5 8 =60
5

11 4−7

[ ]
21 6
B24=(-1) * −2 51 =-399
6
(28)
11 4−2
D= 5*(-4110+0*462+1*60+3*(-399)
D=-2055+0+60-1197
D=-3192

2.1.2.8 Método de Gauss-Jordan


O metodo que vamos usar para resolver sistemas lineares consiste na
aplicação de operações elementares µas linhas da matriz aumentada do
sistema até que obtenhamos uma matriz numa forma em que o sistema
associado a esta matriz seja de fácil resolução. Vamos procurar obter uma
matriz numa forma em que todas as linhas nao nulas possuam como
primeiro elemento nao nulo o número 1 (chamado de pivô). Além disso, se
uma coluna contém um pivô, então todos os seus outros elementos terão
que ser iguais a zero. Vamos ver no exemplo seguinte como conseguimos
isso. (SANTOS, 2002, p.33)
30

{
2 X +Y + Z=8
Dado o sistema de equações +Y + 4 Z =15 , vamos escrevê-lo na forma de
X
3 Y +2 Z=9
uma matriz completa dos coeficientes.

2 1 1 8 L1
1 1 4 15 L 2 (29)
0 3 2 9 L3

Vamos subtrair os elementos da linha 2(L2) pela metade dos elementos da


linha 1(L1).

L2 – L1*1/2 (30)
Vamos subtrair os elementos da linha 3(L3) pelo sêxtuplo dos elementos da
linha 2(L2).

L3 – 6 * L2 (31)
Ao realizarmos as operações demonstradas, conseguimos zerar alguns
elementos da matriz e, respectivamente, coeficientes do sistema de equações. Veja
o sistema simplificado que obtemos com o escalonamento da matriz completa dos
coeficientes numéricos:

{
2 X+ Y +Z=8
Y 7Z
+ =11
2 2
−19 Z=−57

–19z = –57
19z = 57
z = 57/19
z=3

y 7z
+ =11
2 2
31

y 7∗3
+ =11 (32)
2 2
y 21
+ =11
2 2

Y+21=22
Y=22-21
Y=1

2x + y + z = 8
2x + 1 + 3 = 8
2x = 8 – 4
2x = 4
x=2
O conjunto solução do sistema proposto é: x = 2, y = 1 e z = 3.
O sistema de escalonamento de matrizes completas dos coeficientes
numéricos de um sistema de equações lineares possui a finalidade de simplificar o
sistema através de operações entre os elementos pertencentes às linhas da matriz.

2.2 PROGRAMAÇÃO

Podemos comparar um computador como uma super calculadora, capaz de


fazer cálculos muito rapidamente, mas para isso devemos dizer ao computador o
que deve ser calculado. A função das linguagens de programação e exatamente
essa, ou seja, um meio de comunicação entre computadores e humanos.

Uma linguagem de programação consiste em um conjunto de normas


sintáticas e semânticas utilizadas para determinar um programa de
computador e tem um poder de criação ilimitado, que permite desenvolver
desde aplicativos de planilhas eletrônicas até jogos e editores de texto.
(ALMEIDA, 2008, p. 10).
Um conjunto de dados compostos de acordo com regras que constitui o
código-fonte, ou programa, de um software. Esse código-fonte é depois traduzido
32

para código de máquina (uma linguagem binária), que é então executado pelo
processador.

Existem dois tipos de linguagem de programação: as de baixo nível e as de


alto nível. Os computadores entendem tudo como numeros binários, ou seja, só
entendem zero e um. As linguagens de baixo nível são interpretadas diretamente
pelo computador, obtendo um rápido resultado, mas sendo difícil de se trabalhar
com elas. Já as linguagens de alto nível são mais fáceis de se entender, as ações
são representadas por palavras de ordem geralmente em inglês, sendo criadas
assim para facilitar a memorização e a logica, elas não são interpretadas
diretamente pelo computador, sendo necessário transforma-las para linguagem
binaria utilizando-se um programa chamado compilador.

2.2.1 Algoritmo
“Um algoritmo pode ser definido como uma seqüência de passos que visam a
atingir um objetivo bem definido”(FORBELONE,EBERSPÄCHER,2005,p.25).

Os algoritmos são utilizados em todas os tipos de programação, a mesma é


uma sequência de passos que devem ser fielmente cumpridos, coo exemplo um
exemplo de bolo que deve ser feito passo a passo, um algoritmo é um forma de
descrever cada passo que se deve fazer para executar alguma certa tarefa.

2.2.2 Java
A linguagem utilizada foi a Java, a mesma e baseada em C++ e foi criada por
James Gosling e financiada pela Sum Microsystems, James a chamou de Oak, mas
logo descobriu-se que já havia uma linguagem de computador com esse nome. E
quando a equipe da Sun visitou uma cafeteria com o nome Java o mesmo foi
sugerido; e o nome pegou.

A Sun anunciou o Java formalmente em uma conferência do setor em maio de


1995. O Java chamou a atenção da comunidade de negócios por causa do enorme
interesse na Web, pois o mesmo tinha potencial para adicionar conteúdo dinâmico,
como interatividade e animações, as páginas da Web. E agora o mesmo é utilizado
para desenvolver aplicativos corporativos de grande porte, aprimorar a
33

funcionalidade da Web, fornece aplicativos para dispositivos voltados para o


consumo popular e para muitos outros propósitos.

Programas Java consistem em partes chamadas classes. As classes


incluem partes chamadas métodos que realizam tarefas e retornam
informações quando as tarefas são concluídas. Você pode criar cada parte
necessária para formar seus programas Java. Entretanto, a maioria dos
programadores Java tira proveito das ricas coleções de classes existentes
nas bibliotecas de classe Java, que também são conhecidas como Java
APIs(Application Programming Interfaces). (DEITEL,2010,p.7).

2.2.3 NetBeans
O NetBeans possui um vasto conjunto de bibliotecas, módulos e
API’s(Application Program Interface), sendo que disponibiliza uma ampla
documentação de forma bem organizada. Com estes recursos, a IDE auxilia no
desenvolvimento de maneira com que escreva o software mais rapidamente.
Atualmente está disponível em vários idiomas, sendo muito popular, facilitando o
acesso a iniciantes em programação e possibilitando o desenvolvimento de diversas
aplicações.

O NetBeans IDE permite que você desenvolva de maneira rápida e fácil


aplicativos de área de trabalho, móveis e da Web em Java, bem como
aplicativos HTML5 com HTML, JavaScript e CSS. O IDE também fornece
um ótimo conjunto de ferramentas para desenvolvedores PHP e C / C ++. É
gratuito e de código aberto e tem uma grande comunidade de usuários e
desenvolvedores em todo o mundo.(NETBEANS, 2018).

CAPÍTULO 3 - ANÁLISE E RESULTADOS

No capítulo 3 apresenta-se a análise e os resultados obtidos ao decorrer


do projeto. Serão mostradas imagens com suas respectivas descrições sobre o que
feito e como.
34

Na figura 1 apresenta-se por meio de uma caixa de combinação a seleção da


quantidade de linhas para a matriz A ou a matriz B.

Figura 1 - Selecionando linhas

Na figura 2 apresenta-se por meio de uma caixa de combinação a seleção da


quantidade de colunas para a matriz A ou a matriz B.

Na figura 3 apresenta-se por meio de um botão a geração da matriz A


utilizando a quantidade de linhas e colunas selecionadas nas caixas de combinação.

Na figura 4 apresenta-se por meio de um botão a geração da matriz B


utilizando a quantidade de linhas e colunas selecionadas nas caixas de combinação.

Figura 2 - Gerando matriz B

Na figura 5 apresenta-se a seleção do tipo da operação aritmética que será


realizada, contendo as seguintes operações: somar, subtrair, multiplicar, inversa,
determinante, transposta e identidade.
35

Figura 3 - Selecionando cálculo

Na figura 6 apresenta-se o cálculo de somar efetuado via o botão Calcular,


sendo somada a matriz A mais a matriz B.
36

Figura 4 - Efetuando cálculo

Na figura 7 apresenta-se a função Limpar, que limpa todos os números da


matriz A, matriz B e a matriz Resultado.
37

Figura 5 - Função Limpar

Na figura 8 é demonstrado o método para efetuar a operação de soma das


matrizes utilizando a linguagem de programação Java. Quando o método é chamado
trás as matrizes A e B, após é efetuado uma verificação para saber se as linhas e
colunas da matriz A são diferentes da matriz B então disparando uma mensagem de
aviso e uma exceção. Então dentro de um laço for é efetuado o cálculo percorrendo
cada linha e coluna das matrizes e somando-as.

Figura 6 - Método somar

Na figura 9 é demonstrado o método para efetuar a operação de subtração


das matrizes. Quando o método é chamado trás as matrizes A e B, após é efetuado
38

uma verificação para saber se as linhas e colunas da matriz A são diferentes da


matriz B então disparando uma mensagem de aviso e uma exceção. Então dentro
de um laço for é efetuado o cálculo percorrendo cada linha e coluna das matrizes e
subtraindo-as.

Figura 7 - Método subtrair

Na figura 10 é demonstrado o método para efetuar a operação de


multiplicação das matrizes. E como no método de somar matrizes, quando o método
é chamado trás as matrizes A e B, após é efetuado uma verificação para saber se as
linhas e colunas da matriz A são diferentes da matriz B então disparando uma
mensagem de aviso e uma exceção. Então dentro de um laço for é efetuado o
cálculo percorrendo cada linha e coluna das matrizes e multiplicando-as.

Figura 8 - Método multiplicar

Na figura 11 demonstra-se o método para efetuar a operação de determinante


de uma matriz. Quando o método é chamado trás a matriz A, após é efetuado uma
39

verificação para saber se o número de linhas e colunas são diferentes disparando


assim uma mensagem e uma exceção. Então é efetuado os cálculos.

Figura 9 - Método determinante

Na figura 12 demonstra-se o método para efetuar a operação de inversa de


uma matriz. Quando o método é chamado traz a matriz A, após é efetuado uma
verificação para saber se o número de linhas e colunas são diferentes disparando
assim uma mensagem e uma exceção. Após é efetuado a inversa da matriz.

Figura 10 - Método inversa


40

Na figura 13 apresenta-se o método para calcular a transposta de uma matriz.


Quando o método é chamado traz a matriz A, após é efetuado uma verificação para
saber se o número de linhas e colunas são diferentes disparando assim uma
mensagem e uma exceção. Após dentro de um laço for é percorrido as posições da
matriz A e reescrevendo suas posições, sendo a primeira linha como a primeira
coluna, a segunda linha como a segunda coluna até chegar ao final da matriz.

Figura 11 - Método transposta

Na figura 14 apresenta-se o método para transformar uma matriz em sua


identidade. Quando o método é chamado traz a matriz A, após é efetuado uma
verificação para saber se o número de linhas e colunas são diferentes disparando
assim uma mensagem e uma exceção. Após com o auxílio do laço for, é percorrido
as posições da matriz A e substituído sua diagonal principal por 1 e o restante das
posições com 0.
41

Figura 12 - Método identidade


42

CONCLUSÃO

O estudo teórico e prático realizado durante o desenvolvimento do software


para resolução de matrizes apresentou como hipóteses a resolução de matriz de
tamanho 50 por 50 em um segundo e a exatidão dos resultados obtidos nos
cálculos. De acordo com os testes realizado o software realizou cálculos em um
segundo com matrizes 50 por 50 ou superior e mostrando exatidão nos resultados,
sendo assim as hipóteses se confirmaram.

Os objetivos propostos foi o desenvolvimento de um software desktop com o


objetivo de resolver operações aritméticas de matrizes. Sendo alcançados os
objetivos propostos como o desenvolvimento e a modelagem do software com o
auxílio da ferramenta NetBeans IDE 8.2, a análise e testes da aplicação.

Com a análise feita, foi desenvolvido o software pra resolução de matrizes


utilizando de seus conceitos, sendo aplicado o uso do software NetBeans IDE 8.2
para o desenvolvimento do código fonte e implementação da parte visual,
aprimorando sua interface gráfica. Foi possível verificar que as expectativas
atendem as funcionalidades para a qual foi criado, sendo elas, agilizar a resolução
de matrizes com de diferentes tamanhos, difícil resolução e alta demanda de tempo.

Com o seguinte projeto foi possível o aprofundamento em cálculos de


matrizes, no desenvolvimento de software utilizando a linguagem de programação
Java, adquirindo mais conhecimento sobre o funcionamento prático da programação
orientada a objetos e a sua implementação em conjunto de uma interface gráfica.
43

REFERÊNCIAS

ALMEIDA, Marilene. 2008. Curso essencial de Lógica de Programação. São


Paulo: Digerati Books. ISBN 978-85-60480-88-3

DEITEL, Harvey M; DEITEL, Paul; Java como programar. Tradução: Edson


Furmankiewicz; Revisão técnica: Fabio Luiz Picelli Lucchini. São Paulo: Person
Prentice Hall, 2010. ISBN 978-85-7605-194-7
FERREIRA, Joana. 2011. Álgebra Linear. Natal. UFRN. ISBN 978-85-7273-888-0

FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de


programação: a construção de algoritmos e estruturas de dados. São Paulo:
Prentice Hall, 2005. ISBN 85-7605-024-2

GIL, Antonio Carlos. 2008. Métodos de Pesquisa Social. São Paulo: Atlas. ISBN
978-85-224-5142-5.

GÜLLICH, Roque Ismael da Costa; LOVATO, Adalberto; EVANGELISTA, Mário Luiz


dos Santos. 2007. Metodologia da Pesquisa – Pesquisa qualitativa. Três de Maio.
SETREM. ISBN: 8599020013
LAKATOS, Eva Maria; MARCONI M. de Andrade. Metodologia do trabalho
científico: procedimentos básicos, pesquisa bibliográfica, projeto e relatório
publicações e trabalhos científicos. São Paulo: Atlas, 1986.

LAKATOS, Eva Maria; MARCONI, Marina de Andrade. 2012. Técnicas de


pesquisa. 7. ed. São Paulo: Atlas. ISBN 9788522457588

LOVATO, Adalberto. 2007. Metodologia da Pesquisa. Três de Maio: SETREM.


ISBN 85-99020-01-3

______. 2013. Metodologia da Pesquisa. Três de Maio: SETREM. ISBN


9788599020050

MENDES, Douglas Rocha. 2009. Programação Java com Ênfase em Orientação


a Objetos. São Paulo: Novatec. ISBN 978-85-7522-176-1
44

NETBEANS, 2018. NetBeans IDE Features. [Online]. Disponível em:


https://netbeans.org/features/index_pt_BR.html. Acesso em: 13 de Nov. de 2018.
SANTOS, Reginaldo J. 2013. Matrizes, Vetores e Geometria Analítica. Belo
Horizonte: UFMG. ISBN 85-7470-014-2

SIMONSEN, ROBERTO. 2016. Pesquisa bibliográfica. [Online]. http://www.


tccmonografiaseartigos.com.br/pesquisa-bibliografia-metodologia. Acesso em: 18 de
Set de 2018.

ZANELLA, Liane Carly Hermes. 2011. Metodologia de Pesquisa. Florianópolis:


UFSC. ISBN 978-85-7988-111-3.

Você também pode gostar