Apresentação da disciplina e
Representação gráfica de funções
BC-0005
Bases Computacionais da Ciência
Prof. Rodrigo de Alencar Hausen
hausen@ufabc.edu.br
http://bcc.compscinet.org
http://bcc2.compscinet.org
O curso
Objetivo: apresentar algumas ferramentas computacionais
úteis para o desenvolvimento de ciência e tecnologia.
1) Introdução
2) Representação e Análise de Dados
Representação gráfica de funções
Noções de estatística Correlação e regressão Base de dados
3) Algoritmos
Introdução
Computação em todos os lugares
Cada vez mais, diversas áreas do conhecimento utilizam
conceitos e recursos de Computação.
De fato, atualmente é praticamente impensável fazer ciência ou tecnologia sem o uso da Computação:
Presença de instrumentos computadorizados coletando
dados o tempo todo em todo lugar;
Computação em todos os lugares
Na indústria projetos de máquinas, processos e produtos são inicialmente desenvolvidos em ambientes controlados de
O computador
Um sistema de computação é:
uma coleção de componentes que realizam operações
lógicas e aritméticas (transformação);
sobre um conjunto de dados (entrada) e fornecem uma
saída (os dados transformados);
Um computador é uma máquina capaz de executar
automaticamente alguma transformação no conjunto de
Atividade 01 : Tidia-ae
Faça um resumo das seções 1.1, 1.2 e 1.3 (~11 páginas) do Capítulo 1 do livro texto.
O resumo não deve conter mais de 500 palavras. Pode usar qualquer editor (Word, LibreOffice, …) Submissão: copie e cole o texto no Tidia
Pode usar a ferramenta de contagem de palavras do seu editor ou http://www.wordcounttool.com/
Atenção para o prazo máximo de submissão! Matutino: 17h da véspera da próxima aula
Representação Gráfica
De Funções
Função
O estudo de funções decorre da necessidade de:
Analisar fenômenos, visualizando o comportamento de
um sistema.
Interpretar interdependências, entendendo como uma variável comporta-se com relação à outra.
Encontrar soluções de problemas. Descrever regularidades.
Representação de uma função
Uma função pode ser representada das seguintes formas:
Verbalmente (descrevendo-a com palavras);
Ex.: “considere f a função que transforma números naturais nos seus quadrados.”
Numericamente (através de tabela de valores);
Ex.: “f é tal que f(0) = 0, f(1) = 1, f(2) = 4, f(3) = 9, f(4) = 16, f(5) = 25, ...”
Visualmente (através de gráficos);
(próximo slide)
Algebricamente (utilizando-se uma fórmula explícita);
Representação de uma função
Ex.: gráfico da função f(n) = n², onde n ∈ ℕ
5 10 15 20 25 30
Ferramentas de visualização
Existem diversas ferramentas utilizadas em cálculos matemáticos avançados: Matlab; Maple; Octave; Scilab; Rlab (r-project); SciPy (python);
Linguagens de programação de uso geral: C/C++, Fortran, etc.
Geralmente contam com bibliotecas de funções matemáticas prontas e recursos avançados.
Scilab
É um software utilizado para resolução de problemas numéricos. É gratuito e distribuído com código fonte:
http://www.scilab.org;
Permite trabalhar com diversos objetos matemáticos (matrizes, polinômios, equações, etc);
Ambiente de programação que permite a criação de novas
Scilab - ambiente
Console:
Scilab - ambiente
Prompt de comando:
Indicação do Scilab de que está pronto para receber uma instrução
Scilab - expressões
O Scilab pode ser usado como uma calculadora: 2 + (1,5² + 3) 5⨯
Scilab - expressões
O Scilab pode ser usado como uma calculadora: 2 + (1,5² + 3) 5⨯
Scilab: 2 + (1.5^2 + 3)*5
Parte inteira é separada da parte fracionária por ponto (notação americana)
exponenciação: ^
Scilab - expressões
O Scilab pode ser usado como uma calculadora: 2 + (1,5² + 3) 5⨯
Scilab: 2 + (1.5^2 + 3)*5
Scilab:
15+75
Scilab - expressões
O Scilab pode ser usado como uma calculadora: 2 + (1,5² + 3) 5⨯
Scilab: 2 + (1.5^2 + 3)*5
Scilab: (15 + 75)/(2^5 – sqrt(3)) + 8 Cuidado com os parênteses!
15+75
25−
√
3 +8 divisão: /Raiz quadrada:
Scilab - variáveis
Digitando o comando:
estaremos criando uma variável real chamada x cujo valor é igual a 2.
ATENÇÃO: o símbolo = na linha de comando significa
atribuição (dar um valor a uma variável)
O ponto-e-vírgula ao final da instrução não é obrigatório.
Caso ele não seja colocado, a atribuição atual da variável é apresentada na tela:
Scilab - variáveis
Veremos agora como, cada vez que mencionarmos o nome de uma variável, estaremos na verdade utilizando o seu
conteúdo
Esta operação define y como sendo uma
variável com valor igual ao valor de x mais cinco, ou seja, y terá um valor igual a 7
Neste caso, z será igual à multiplicação dos valores guardados em x e y, ou seja, z será igual
a 14
Aqui, w será igual à divisão dos valores guardados em z e x, ou seja, w
Scilab – constantes
●
Algumas constantes mais comuns já estão definidas
no Scilab.
--> %pi
%pi =
3.1415927
--> %e // número de Euler
%e =
2.7182818
Scilab - funções
● Exponencial
e
x: exp(x)● Logaritmos: log(x) (natural), log10(x) (base 10) ● Raiz quadrada: sqrt(x)
● Trigonométricas: ângulo em radianos
sin(x) , cos(x), sec(x), csc(x), tan(x), cotg(x)
● Trigonométricas inversas: asin(x) , acos(x), … ● Módulo ou valor absoluto
|x|
: abs(x)Obs1.: , no Scilab: (x)^(1/n) Obs2.: log(x) = y, onde y é tal que ey = x
n
√
x=(x )1
Scilab: Exercício 00
Vamos considerar a função:
-->x = [1,2,3,4,5,6]
-->y = x .^ 2
Scilab: Exercício 00
Vamos considerar a função:
-->x = [1,2,3,4,5,6]
-->y = x .^ 2
-->plot (x,y)
Operador de exponenciação
elemento-a-elemento.
Outros operadores elemento-a-elemento:
.* multiplicação ./ divisão
Scilab: Exercício 00
Vamos considerar a função:
-->x = [1,2,3,4,5,6]
-->y = x .^ 2
-->plot (x,y,
'ro-'
)
Onde 'ro-' é: r=cor (red)
Scilab: Exercício 00
Vamos considerar a função:
-->x = [-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6];
-->y = x .^ 2
-->plot (x,y,
'bx-'
)
Onde 'bx-' é: b=cor (blue) x=cruz -=linha sólidaScilab: Exercício 00
Vamos considerar a função:
-->x =
-100:0.1:100;
-->y = x .^ 2
Scilab: Exercício 01
Vamos considerar a função:
y = sen(x)
No intervalo x ∈ [0;2π]
Existem duas formas para se definir os valores do domínio:
Definindo diretamente os pontos x nos quais queremos
Scilab: Exercício 01
● Tal instrução criará um vetor x cujo primeiro valor será
igual ao primeiro valor do intervalo.
● O segundo valor será dado pelo valor anterior somado ao
valor do passo.
Scilab: Exercício 01
Vamos considerar a função:
-->x = 0:
1
:2*%pi
-->y = sin(x)
Scilab: Exercício 01
Vamos considerar a função:
-->x = 0:
0.1
:2*%pi
-->y = sin(x)
Scilab: Exercício 01
●Para colocar nomes nos eixos dos gráficos podemos usar:
Scilab: Exercício 02
Identifique visualmente as raízes da seguinte função (onde a função “toca” o eixo do x):
Scilab: Exercício 02
x = 1:0.01:4; y = x.^2-5.*x+6; plot(x,y) plot(2,0,'r*') plot(3,0,'g*') Raizes: x=2 e x=3Scilab: Exercício 03
no intervalo x = [0; 40] Desenhe a função
Scilab: Exercício 03
no intervalo x = [0; 40] Desenhe a função-->x=0:
0.1
:40;
-->y = x
./
(1+x
.^
2);
-->plot(x,y);
Scilab: Exercício 03
Determine os pontos de intersecção entre as
funções:
2x e −x² + 4x
Desenhe as funções e identifique a interseção entre
ambas funções.
Scilab: Exercício 03
Quais os pontos de intersecção entre as funções e ? >clf() >x = 5:0.1:5; >y1 = 2.*x; >y2 = x.^2+4*x; >plot(x,y1,'r') >plot(x,y2,'b')
Scilab: Exercício 03
Quais os pontos de intersecção entre as funções e ? find(abs(y1y2) < 0.01) ans = 51. 71. tolerância pequena
Scilab: Exercício 03
Quais os pontos de intersecção entre as funções e ? find(abs(y1y2) < 0.01) ans = 51. 71.
Que valores são estes? índices do vetor x
Scilab: Exercício 03
Quais os pontos de intersecção entre as funções e ? find(abs(y1y2) < 0.01) ans = 51. 71. x(find(abs(y1y2) < 0.01)) ans =
Observações sobre o Scilab
●
Maiúsculas e minúsculas: nomes de variáveis com
maiúsculas são diferentes de nomes com
minúsculas.
Ex. 1: variável a é diferente da variável A.
--> a = 3
--> A = 4
--> a + A
Ex. 2: são todas variáveis diferentes:
●banana
●
Banana
●BANANA
Observações sobre o Scilab
● Limpar o ambiente (esquecer variáveis):
comando clear nome --> a = 3; --> b = 5; --> a, b a = 3. b = 5. --> clear a --> a !--error 4 Variável indefinida: a --> clear // esquece tudo --> b !--error 4 Variável indefinida: b
Atividade 02 : Tidia-ae
Identifique visualmente e com a função find os pontos de intersecção entre as funções f(x) e g(x) no intervalo x [0;5]∊ ?
Submeter ao Tidia-ae um documento PDF (mini-relatório) contendo: Título: Atividade 2 - Gráficos
Nome do grupo, nomes completos e RA dos integrantes
A sequência de instruções em Scilab, com explicações, para
desenhar ambas funções, e desenhar uma marca (colorida) em cada ponto de intersecção.
Captura de tela do gráfico.
f(x) = sen(x) + cos(1 + x²) − 1
g ( x)=
1
2
x−1
Precisão:
Metodologia
Aulas práticas
A parte de teoria deve ser lida antes da aula
Os alunos desenvolverão atividades e exercícios
extraclasse:
Individuais e em grupo
Uso da Biblioteca e da Internet
Os alunos contarão com apoio de monitores (em horários pré-determinados)
Avaliação
Em grupos de 2 (mas não adianta “ser carregado” pelo colega)
A avaliação será composta por:
2 provas (obrigatórias) + projeto (opcional)
Média = (3 P1 + 4 P2 + 3 Projeto)/10 + Bônus ou Média = (4 P1 + 6 P2) / 10 + Bônus
Prova 1: 19/outubro
Proposta de projeto: entregar até 3/novembro Prova 2: 30/novembro
Projeto e prova substitutiva: 7/novembro Rec: 12/dezembro
Avaliação e honestidade
COLA = F na disciplina (sem chororô!)
PLÁGIO = F na disciplina
Cuidado com o plágio:
jamais peça para ver o trabalho de outros
grupos!
não mostre o seu trabalho para integrantes de
outros grupos
plágio “não intencional” é plágio de qualquer
jeito (resulta em conceito F)
Considerações sobre a aprendizagem
Ler o capítulo do livro antes da aula.
Estar presente nas aulas e atento ao material apresentado; Fazer os exercícios em aula e em casa;
Consultar os monitores;
Procurar entender, refletir e questionar;
Associar o conteúdo com sua própria experiência; Associar com o conteúdo das aulas anteriores;
Bibliografia
Livro texto: Bases Computacionais da Ciência (Marietto et al., 2013) – No repositório do Tidia-ae.
Forbellone, A. L. V.; Eberspächer, H. F.; Lógica de
Programação - A Construção de Algoritmos e Estruturas
de Dados; 3a edição, Editora Pearson Prentice-Hall, 2005
Sebesta, R. W.; Conceitos de Linguagens de
Programação; 5a edição, Editora Bookman, 2003
Informações adicionais
Site do curso:
http://bcc.compscinet.org
ou