• Este é um repositório com o conteúdo das aulas de Matemática Computacional,
ministradas pelo professor Gleison Guardia, utilizando o RStudio
e a linguagem R como ferramentas de aprendizado.
Professor | Conceitos Aprendidos 1 | Conceitos Aprendidos 2 | Conceitos Aprendidos 3
Conceitos Aprendidos 4 | Conceitos Aprendidos 5 | Conceitos Aprendidos 6 | Conceitos Aprendidos 7 Conceitos Aprendidos 8.1 | Conceitos Aprendidos 8.2 | Conceitos Aprendidos 8.3 | Conceitos Aprendidos 9 Conceitos Aprendidos 10 | Conceitos Aprendidos 11 | Conceitos Aprendidos 12 | AutorGleison Guardia - Pesquisador da Matemática e Ciência de Dados | Professor de Curso Técnico e Superior | Diretor de Ensino
IFRO Campus Ji-Paraná • Atuando desde Julho de 2013
Linguagens & Tecnologias: RStudio
• R (Linguagem)
• Google Colab
• Python
Contato: gleison.guardia@ifro.edu.br
Note
Retirado da aula 01 de Matemática Computacional
Nesta aula foram aprendidos:
- Conceitos básicos para o uso do RStúdio
- Utilização do RStúdio para conceitos matemáticos
- Criação de algoritmos simples de definição de números Pares, Ímpares, Sucessores e Antecessores
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_aula01
?print( ) # <- Executa o argumento de um valor
?remove( ) # <- Remove um valor
#Exemplo: Algoritmo para descobrir número par ↴
#Todo número inteiro que é divisível por 2 é par, logo:
n = 7
par = 2*n
print(par)
remove(n) # <- Removido a variável "n"
remove(par) # <- Removido a variável "par"
Note
Retirado da aula 02 de Matemática Computacional
Nesta aula foram aprendidos:
- Operações que trabalham com deslocamento, usando o comando "abs( )"
- Conceitos de divisão de números inteiros
- Conceitos de resto da divisão
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_aula02
?abs( ) # <- Devolve o valor absoluto de um número inteiro.
#Exemplo: |3| e |−3| ↴
abs(3)
abs(-3) # <- A função sempre retornará um número positivo
#Tipos de divisão em R:
5/5 # <- "Divisão Inteira"
5/2 # <- "Divisão Exata"
5/3 # <- "Divisão Infinita"
#Na "Divisão Infinita", quando dividimos 5/3, não obtivemos
#um valor exato e inteiro, quando queremos só a parte
#inteira dessa divisão, fazemos "%/%":
5%/%3
8%/%3
11%/%3
Note
Retirado da aula 03 de Matemática Computacional
Nesta aula foram aprendidos:
- Operações que trabalham com raízes quadradas, usando o comando "sqrt( )"
- Conceitos de operação de pontências
- Conceitos de operação utilizando o π(pi)
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_aula03
?sqrt( ) # <- Determina uma raiz quadrada de um número.
#Exemplo: A raíz de 9 ↴
sqrt(9) # <- A raiz quadrada de 9 é 3, porque 3 x 3 = 9
#Mas quando precisamos encontrar uma raiz que seja maior que
#a quadrada, exemplo, cúbica, quarta e etc, podemos
#utilizar o seguinte recurso matemático:
2**(1/3) # <- Raíz cúbica de 2
2**(1/4) # <- Raíz quarta de 2
50**(1/5) # <- Raíz quíntopla de 50
1024**(1/10) # <- Raíz décima de 1024
#Operações com o π(pi):
?pi # <- O pi é uma constante que já vem dentro da linguagem R,
# não sendo necessário a sua declaração
2 + 3 * pi
Note
Retirado da aula 04 de Matemática Computacional
Nesta aula foram aprendidos:
- Operações que trabalham com números complexos, usando os comandos "Re( )" e "Im( )"
- Conceitos de operação de Adição, Subtração e Multiplicação com números complexos
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_aula04
?Re( ) # <- Extrai a parte real de um número complexo
?Im( ) # <- Extrai a parte imaginária de um número complexo
#Exemplo: z = 2+3i ↴
z1 = 2 + 3i
Re(z) # <- Retorna "2" como a parte real
Im(z) # <- Retorna "3" como a parte imaginária
?cat( ) # <- Usada para mostrar os valores na tela.
cat("z1=",z1)
Note
Retirado da aula 05 de Matemática Computacional
Nesta aula foram aprendidos:
- Operações que trabalham com a utilização de variáveis usando vetores
- Utilização de "{ }" para seleção de operações matemáticas específicas
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_aula05
{ } # <- As chaves são comumente usadas na lógica de programação para delimitar uma instrução
#As equações podem ser feitas utilizando-se de variáveis
#das quais, tem a finalidade de armazenar valor:
{
x = 2
y = 2 * x # <- Toda a equação está sendo declarada dentro das chaves, fazendo com que os
print(y) # valores de equações anteriores não se sobreponham
}
Note
Retirado da aula 06 de Matemática Computacional
Nesta aula foram aprendidos:
- Operações que trabalham com fórmula de bhaskara, usando o comando "cat( )"
- Utilização da lógica de programação "If e Else" para a criação de algoritmos matemáticos
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_06
#Equações de segundo grau podem ser feitas utilizando o software r.
#Por exemplo: x^2 − 7x + 10 = 0 ↴
{
a = 1
b = -7
c = 10
cat("a = ", a, "\n")
cat("b = ", b, "\n")
cat("c = ", c, "\n")
#Agora vamos encontrar o valor de Δ:
delta = b ** 2 - 4 * a * c
print(delta)
x_1 = (-b - (delta)**(1/2))/(2*a)
print(x_1)
x_2 = (-b + (delta)**(1/2))/(2*a)
print(x_2)
cat("x_1 = ", x_1, "x_2 = ", x_2)
#Introduzindo o conceito de "if e else":
if(delta < 0){
print("O seu número é Complexo!")
}else{
print("O seu número é Real!")
}
}
Note
Retirado da aula 07 de Matemática Computacional
Nesta aula foram aprendidos:
- Operações que trabalham com a área e volume de formas geométricas, usando o comando "readline( )"
- Criação de algoritmos com entrada e saída de valores de cálculo fornecidos pelo usuário
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_07
#Ao trabalharmos com áreas e volumes de uma forma, normalmente há aquele que irá definir
#as suas dimensões de acordo com a fórmula. Para isso, utilizamos os comandos:
?readline( ) # <- Retorna uma string para acomodar toda a linha.
?sprintf( ) # <- Formata uma string e guarda o resultado em um array.
#Exemplo: Área do Losango ↴
{
print("Digite o valor de D → diagonalmaior:")
D = as.numeric(readline())
D
print("Digite o valor de d → diagonalmenor:")
d = as.numeric(readline())
d
A = D * d / 2
sprintf("A área da figura é %s!", A )
}
Note
Retirado da aula 08.1 de Matemática Computacional
Nesta aula foram aprendidos:
- Entendimento sobre conceitos matemáticos financeiros
- Criação de um algoritmo complexo com conceitos matemáticos financeiros de juros e porcentagem
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_08
#Reajustes Sucessivos (Algoritmo):
{
valor <- as.numeric(readline("Digite o valor do produto: "))
parcelas <- as.numeric(readline("Digite a quantidade de parcelas: "))
reajuste <- 1
for (i in 1:parcelas) {
taxa = as.numeric(readline(sprintf("Digite a %sª parcela: ", i)))
reajuste = reajuste * (1+ taxa/100)
}
novo_valor = valor * reajuste
sprintf("O novo valor do produto é R$%s!", novo_valor)
}
#O algoritmo acima ↑ faz com que sejam pedidos o valor, a quantidade de parcelas
#e o nº da parcela de um produto, resultando no valor final do produto.
Note
Retirado da aula 08.2 de Matemática Computacional
Nesta aula foram aprendidos:
- Criação de um algoritmo complexo com conceitos matemáticos financeiros de juros simples e compostos
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_08
#Juros Simples e Compostos (Algoritmo):
{
c = as.numeric(readline("Digite o valor da capital: "))
i = as.numeric(readline("Digite o valor da taxa de juros: "))
t = as.numeric(readline("Digite o tempo da aplicação: "))
sn = as.numeric(readline("Escolha entre os juros, (1)simples ou (2)composto: "))
if(sn == 1){
m = c * (1 + (i/100) * t)
sprintf("Seu montante será de R$%s!", m)
}else{
m = c * (1 + (i/100)) ^(t)
sprintf("Seu montante será de R$%s!", m)
}
}
#O algoritmo acima ↑ faz com que sejam pedidos o valor da capital, taxa de juros,
#o tempo da aplicação e a escolha entre os juros simples ou composto.
Note
Retirado da aula 08.3 de Matemática Computacional
Nesta aula foram aprendidos:
- Criação de dois algoritmos complexos com conceitos matemáticos financeiros de valores de parcelas e dívidas
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_08
#Valor Atual de uma Parcela (Vap) (Algoritmo 1):
{
vn = as.numeric(readline("Digite o valor do bem: "))
i = as.numeric(readline("Digite a taxa de juros: "))
n = as.numeric(readline("Digite o número de parcelas: "))
vap = (vn/ (1 + i/100) ^n)
sprintf("O valor atual total de uma parcela será: R$%s!", vap)
}
#Valor Atual total de uma Dívida (Vat) (Algoritmo 2):
{
r = as.numeric(readline("Digite o valor do bem: "))
i = as.numeric(readline("Digite a taxa de juros: "))
n = as.numeric(readline("Digite o número de parcelas: "))
numerador = (1 + i/100) ^n - 1
denominador = i/100 * (1 + i/100) ^n
vat = r * (numerador/denominador)
sprintf("O valor atual total de uma dívida será: R$%s!", vat)
}
#Os algoritmos acima ↑ fazem com que sejam pedidos o valor do bem,
#taxa de juros e o nº da parcela de um produto.
Note
Retirado da aula 09 de Matemática Computacional
Nesta aula foram aprendidos:
- Conceitos principais da "Teoria dos Conjuntos"
- Raciocínio de funções de análises estatísticas para manipulação de banco de dados
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_09
#A Teoria dos Conjuntos é conceito muito importante para a construção do
#raciocínio de funções e principalmente análises estatísticas.
#Suas leis são a base de funcionamento dos Banco de Dados, e
#nenhum sistema funciona sem trabalhar com este conceito.
#Exemplo: Manuseando um conjunto de variáveis ↴
A <- c(0,1,2,3)
B <- 0:3
C <- 1:5
A == B
A[A>3] # <- Nenhum valor presente no vetor A satisfaz a condição estabelecida.
# Assim dizemos que a resposta a essa solicitação será vazia.
A[A == 3] # <- Neste caso, a solicitação é classificada como unitária,
# ou seja, possui apenas um valor como retorno.
A[A < 10] # <- E neste caso, o retorno é satisfatório para todos os valores
# possíveis, com nossa resposta sendo igual o nosso conjunto universo de estudo.
Note
Retirado da aula 10 de Matemática Computacional
Nesta aula foram aprendidos:
- Conceitos de aplicação de funções
- Aplicação de funções com 1 ou 2 variáveis
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_10
#O conceito de função é a relação entre dois conjuntos.
#Temos o conjunto de entrada ou domínio da função e o
#conjunto de saída ou imagem. Em suma, caracteriza-se
#pela relação entre duas ou mais estruturas dependentes.
#Exemplo: Função com UMA variável ↴
{
par <- function(x){
calculo_par <- 2*x
sprintf("O valor par do índice %s é %s!", x, calculo_par)
}
}
par(x) # <- No final é substituido o x por qualquer valor, afim de
# apresentaro índice do valor par
#Exemplo: Função com DUAS variáveis ↴
{
area_retangulo <- function(largura, comprimento){
area_calculada <- largura*comprimento
sprintf("A área do retângulo de largura %s e comprimento %s é de %sm²", largura, comprimento, area_calculada)
}
}
area_retangulo(largura = x, comprimento = x)
Note
Retirado da aula 11 de Matemática Computacional
Nesta aula foram aprendidos:
- Conceitos de funções compostas e de retorno
- Função de equação quadrática
- Função de progressão aritmética
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_11
#Função com Retorno ↴
#Usado para situações onde o valor gerado será aproveitado por outra função.
#Ela não é uma função que vai imprimir um resultado na tela, apenas
#fará um cálculo que poderá ser utilizado em outro momento.
{
dobro <- function(x){
f_dobro <- 2*x
return(f_dobro)
}
dobro(2)
}
#Função Composta ↴
#A característica de uma função composta é poder aplicar uma função
#dentro de outra função. Por exemplo: "O Dobro do Dobro de x"
{
sprintf("O dobro do dobro de 5 é %s!", dobro(dobro(5)))
}
Note
Retirado da aula 12 de Matemática Computacional
Nesta aula foram aprendidos:
- Estrutura de equação geométrica
- Função de progressão geométrica
Demais exemplos presentes no RPubs: https://rpubs.com/Gleison_Guardia/mc_11
#Algoritmo de Progressão Geométrica:
{
an <- function(a_1, n, q){
f_an = (a_1 * q**(n-1))
return(f_an)
}
sn <- function(a_1, n, q){
f_sn = (a_1 * (((q**n)-1)/(q-1)))
return(f_sn)
}
sprintf("Calculadora do Termo Geral e da Soma dos Termos da Progressão Geométrica")
a_1 = as.numeric(readline(sprintf("Digite o valor do primeiro termo (a1): ")))
q = as.numeric(readline(sprintf("Digite o valor da razão da progressão (q): ")))
n = as.numeric(readline(sprintf("Digite o valor do termo procurado (n): ")))
sprintf("O valor do termo geral é %s e o valor da soma dos termos é %s!",an(a_1, n, q),sn(a_1, n, q))
}
#O algoritmo acima ↑ calcula o termo geral e a soma de uma "Progressão Geométrica".
#A progressão aritmética tem como formulas os seguintes valores:
#Termo Geral "An = a1 ⋅ q^n−1", onde:
a1 # <- é o primeiro termo da série.
n # <- é o termo desejado.
q # <- é a razão da progressão geométrica
|