CURSO de CURSO de NIVELAMENTONIVELAMENTO
Métodos ComputacionaisMétodos ComputacionaisData: 10 a 12 de fevereiro de 2009 e
17 a 19 de fevereiro de 2009
Rogério Pagano (MatLab)Rogério Pagano (MatLab) Eduardo Lemos (Maple e EMSO)Eduardo Lemos (Maple e EMSO)
PARTE I PARTE I - INTRODUÇÃO À - INTRODUÇÃO À PROGRAMAÇÃOPROGRAMAÇÃO
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Lógica de Programação
Lógica de programação é a técnica de encadear pensamentos (instruções) para atingir determinado objetivo.
Instruções Instruções são regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar.
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Algoritmo[Do lat. med. algorismos, algorithmos, 'algarismo', por infl. do gr. arithmós, 'número'.]
1. Matemática. Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, regras formais para a obtenção do resultado, ou da solução do problema.
2. Informática. Conjunto de regras e operações bem definidas e ordenadas, destinadas à solução de um problema, ou de uma classe de problemas, em um número finito de etapas.
[AURÉLIO]
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Exemplos de Algoritmos
instruções para se utilizar um aparelho eletrodoméstico;
uma receita para preparo de algum prato;
guia de preenchimento para declaração do imposto de renda;
a regra para determinação de máximos e mínimos de funções por derivadas sucessivas;
a maneira como as contas de água, luz e telefone são calculadas mensalmente; etc.
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
CaracterísticasTodo algoritmo deve apresentar algumas características
básicas:
ter fim
não dar margem à dupla interpretação (não ambíguo)
capacidade de receber dado(s) de entrada
poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo
ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito)
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Formas de Apresentação
DESCRIÇÃO NARRATIVA
EXEMPLO Receita de Bolo: Providencie manteiga, ovos, 2 Kg de massa, etc. Misture os ingredientes Despeje a mistura na fôrma de bolo Leve a fôrma ao forno Espere 20 minutos Retire a fôrma do forno Deixe esfriar Prove
VANTAGENS:
o português é bastante conhecido por nós;
DESVANTAGENS:
imprecisão;
pouca confiabilidade (a imprecisão acarreta a desconfiança);
extensão (normalmente, escreve-se muito para dizer pouca coisa).
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
FLUXOGRAMA EXEMPLO
VANTAGENS:
Uma das ferramentas mais conhecidas
Figuras dizem muito mais que palavras
Padrão mundial
DESVANTAGENS:
Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los, além disso, complica-se à medida que o algoritmo cresce.
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
LINGUAGEM ALGORITMICA EXEMPLO
VANTAGENS:
Usa o português como base
Pode-se definir quais e como os dados vão estar estruturados
Passagem quase imediata do algoritmo para uma linguagem de programação qualquer
DESVANTAGENS:
Exige a definição de uma linguagem não real para trabalho
Não padronizado
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
PSEUDOCÓDIGO EXEMPLO
TESTE DE MESA EXEMPLO
X = 5 Y = 9
SOMA = 5 + 9
ESCREVA SOMA = 14
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
ALGORITMOS EXEMPLOS
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
OPERADORES
Os operadores são meios pelo avaliamos dados dentro do computador.
Operadores Aritméticos
Operadores Relacionais
Operadores Lógicos
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Operadores Aritméticos
Os operadores aritméticos são os utilizados para obter resultados numéricos. Além da adição, subtração, multiplicação e divisão, podem utilizar também o operador para exponenciação.
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Operadores Relacionais
Os operadores relacionais são utilizados para comparar String de caracteres e números. Os valores a serem comparados podem ser caracteres ou variáveis. Estes operadores sempre retornam valores lógicos (verdadeiro ou falso/ True ou False)
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Operadores Lógicos
Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso.
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
A tabela abaixo mostra todos os valores possíveis criados pelos três operadores lógicos (AND, OR e NOT)
Exemplo: Suponha que temos três variáveis A = 5, B = 8 e C =1
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Estruturas de Decisão e Repetição
SE ... ENTÃO / IF ... THEN
18
Estrutura Condicional SimplesEstrutura Condicional Simples
Exemplo:..A = 4B = 3SESE (A > B) ENTÃOENTÃO ESCREVA ‘ESCREVA ‘A > B’FIM SEFIM SE
Atribui 4 a variavel AAtribui 4 a variavel A
Atribui 3 a variavel BAtribui 3 a variavel BA > B ???A > B ???
CondiçãoCondiçãoComo a resposta é verdadeira : Como a resposta é verdadeira : 4 é > 34 é > 3
ENTÃOENTÃO (THEN)(THEN)
Executa comando de Executa comando de escritaescrita
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Estruturas de Decisão e Repetição
SE ... ENTÃO ... SENÃO/ IF ... THEN ... ELSE
20
Estrutura Condicional CompostaEstrutura Condicional Composta
Exemplo:..A = 4B = 5SESE (A > B) ENTÃOENTÃO ESCREVAESCREVA ‘A > B’SENÃOSENÃO
ESCREVA ‘ESCREVA ‘B > A’B > A’FIM SEFIM SE
Atribui 4 a variavel AAtribui 4 a variavel A
Atribui 5 a variavel BAtribui 5 a variavel BA > B ???A > B ???
CondiçãoCondição
Como a resposta não é Como a resposta não é verdadeira : 4 não é > 5verdadeira : 4 não é > 5
Executamos o caso contrário Executamos o caso contrário (ELSE)(ELSE)
Executa comando de Executa comando de escritaescrita
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
SE ... ENTÃO ... SENÃO/ IF ... THEN ... ELSE
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Estruturas de Decisão e Repetição
ENQUANTO ... PROCESSAR / DO WHILE ... LOOP
Exemplos:.....n = 10 %Número de peças compradas!!!!preço = 5 %Preço de cada peçaENQUANTOENQUANTO i < n
TOTAL = TOTAL + preçoTOTAL = TOTAL + preçoi = i+1i = i+1
FIM ENQUANTOFIM ENQUANTO
SE (TOTAL >= 40)SE (TOTAL >= 40)ENTÃOENTÃO
ESCREVA ‘NÃO TENHO COMO PAGAR!!!!ESCREVA ‘NÃO TENHO COMO PAGAR!!!!’’SENÃOSENÃO ESCREVA ‘ACHO QUE DÁ!ESCREVA ‘ACHO QUE DÁ!’’
FIM SEFIM SE23
i > 10 ???i > 10 ???
Enquanto Enquanto i < 10i < 10
50 > 40???50 > 40???CondiçãoCondição
Executa Caso Executa Caso contráriocontrário
Estrutura de Repetição SimplesEstrutura de Repetição SimplesEstrutura de Repetição SimplesEstrutura de Repetição Simples
Executa se verdadeExecuta se verdade
INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO
Estruturas de Decisão e Repetição
PARA ... ATÉ ... PROCESSAR / DO ... UNTIL ... LOOP
Exemplos:.....n = 10 %Número de peças compradas!!!!preço = 5 %Preço de cada peçaPARAPARA i = 1 até n
TOTAL = TOTAL + preçoTOTAL = TOTAL + preçoi = i +1i = i +1
FIM PARAFIM PARA
SE (TOTAL >= 40)SE (TOTAL >= 40)ENTÃOENTÃO
ESCREVA ‘NÃO TENHO COMO PAGAR!!!!ESCREVA ‘NÃO TENHO COMO PAGAR!!!!’’SENÃOSENÃO ESCREVA ‘ACHO QUE DÁ!ESCREVA ‘ACHO QUE DÁ!’’
FIM SEFIM SE 25
i > 10 ???i > 10 ???
Para i < 10Para i < 10
50 > 40???50 > 40???CondiçãoCondição
Executa Caso contrárioExecuta Caso contrário
Estrutura de Repetição SimplesEstrutura de Repetição SimplesEstrutura de Repetição SimplesEstrutura de Repetição Simples
Executa se verdadeExecuta se verdade
Leia altura
Leia sexo
início
Se sexo=M
P = 72.7*altura - 58P = 62.1*altura – 44.7
Escreva P
fim
Leia idade
início
Se id<5
Sem classificaçãoSe id<=7
Infantil ASe id<=11
Infantil B
Se id<=18
Adulto
fim
CURSO de CURSO de NIVELAMENTONIVELAMENTO
Métodos Métodos ComputacionaisComputacionais
Rogério Pagano (MatLab) Rogério Pagano (MatLab)
PARTE II PARTE II - INTRODUÇÃO AO - INTRODUÇÃO AO MATLABMATLAB
MATLABMATLAB
O Matlab é um software destinado a fazer cálculos com matrizes (Matlab = MATrix LABoratory).
OBJETIVOIntroduzir comandos básicos do MATLAB para permitir um rápido acesso às potencialidades do ambiente. O utilizador iniciante poderá dispor de uma referência rápida para algumas possibilidades de uso do MATLAB.
MATLABMATLAB
O MatLab é case sensitive (a≠ A)
Comandos BásicosInserir dados (variáveis, vetores,
matrizes)
Manipulação de vetores e matrizes
clear variable; clear all;
Comando lookfor:
lookfor [-all] inverse
MATLABMATLAB
Exercício 1 Gere uma sequência de números pares com início em 4 e a terminar no número 100.
Exercício 2 Gere uma sequência numérica decrescente com início em 5 e a terminar em -5.
Exercício 3 Gere uma sequência numérica com 100 elementos pertencentes ao intervalo [0 . . . 1].
Exercício 4 Considere uma matriz A com 20 linhas e 30 colunas. Construa um comando que permita extrair para uma matriz B uma sub-matriz de A constituída pelas linhas de 10 a 15 e as colunas de 9 a 12.
Exercício 5 Gere uma sequência de números múltiplos de 3 compreendidos entre 100 e 132, dispostos num vector por ordem decrescente.
Exercício 6 Gere uma sequência a começar em π e a acabar em −π com um passo de −π/15.
MATLABMATLAB
Comandos Básicos (matrizes especiais)
eye(n) = matriz identidade de dimensão n
ones(n) = matriz somente com elementos iguais a unidade
inv(A) = inversa da matriz A
diag(u) = constrói uma matriz diagonal com o vetor u
A’ = retorna a transposta de A
zeros(n) = constrói uma matriz de dimensão n com zeros
rand(n) = fornece uma matriz aleatória de dimensão n
zeros(n) = constrói uma matriz de dimensão n com zeros
MATLABMATLAB
Números e matrizes associadas a A
det(A) é o determinante (se A for uma matriz quadrada)
[S,E] = eig(A) fornece uma matriz diagonal E de valores característicos e uma matriz S de vetores característicos
rank(A) é o posto (número de pivôs = dimensão do espaço da linha e do espaço da coluna)
size(A) é o par de números [m n]
trace(A) é o traço = soma das entradas diagonais = soma dos valores característicos
MATLABMATLAB
Polinômios
f(x) = x2 – 3x + 2
p = [1 -3 2];
r = roots(p) raízes do polinômio
q = poly(r) calcula coeficientes com as raízes
polyval(p,r) calcula o valor de r num polinômio de coef p
MATLABMATLAB
Outras funções (Polinômios)
polyvalm - avalia o polinômio com o argumento sendo uma matriz
conv - multiplicação deconv - divisão residue - expansão em frações parciais polyder - derivada do polinômio
polyfit - ajuste do polinômio
Exercício 10 Calcule o valor da função sin(x+pi/10) ∗ cos(x) em 100 pontos do intervalo [−π . . . π].
Exercício 11 Calcule o produto dos polinómios x6 + 10 e x2 − 2x + 3. Exercício 12 Obtenha o polinômio cujas raízes são os números inteiros 1,
2 e 3.
MATLABMATLAB
Formato numérico
format short
format short e
format long
format long e
format hex
MATLABMATLAB
Operadores MATLABMATLAB
aritiméticos
elemento a elemento
lógicos
Funções intrínsecas
MATLABMATLAB
Otimização
MATLABMATLAB
EDO
Gráficos
MATLABMATLAB
t = 0:pi/100:2*pi;x = sin(t);plot(t,x)
t = 0:pi/100:2*pi;x1 = sin(t);x2 = sin(t+pi/2);x3 = x1.*x2;plot(t,x1,t,x2,t,x3)legend(‘sin’,’cos’,’asin*cos’)
fplot(‘sin(x)’,[ -pi, pi]) fplot(‘x^2+3’, [ -1, 2]) fplot(‘sin(x)’,[ -0, pi])
Gráficos
MATLABMATLAB
t = linspace(0,10*pi,1001); x = t + 3*sin(2*t); y = t + 5*cos(5*t);figure(1) plot(x,y)
t = linspace(0,5*pi,5001);x = cos(t) - cos(80*t).*sin(t);y = 2*sin(t) - sin(80*t);figure(2)plot(x,y)
Lembrar as funções hold on e hold off
Gráficos
MATLABMATLAB
Outros tipos:
MATLABMATLAB
Outros tipos:
Gráficos
MATLABMATLAB
X = 0:0.05:1; subplot(121), plot(X,X.^2,’k*’) subplot(122), plot(X,X.^2,’b --‘)
Gráficos 3D
MATLABMATLAB
mesh
[X,Y] = meshgrid(-8:.5:8);R = sqrt(X.^2 + Y.^2) + eps;Z = sin(R)./R;mesh(X,Y,Z)
MATLABMATLAB
Outros tipos de Gráficos 3D: