48
CURSO de NIVELAMENTO CURSO de NIVELAMENTO Métodos Computacionais Métodos Computacionais Data : 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ÇÃO PROGRAMAÇÃO

CURSO de NIVELAMENTO

  • Upload
    wendi

  • View
    27

  • Download
    0

Embed Size (px)

DESCRIPTION

CURSO de NIVELAMENTO. Métodos Computacionais Data : 10 a 12 de fevereiro de 2009 e 17 a 19 de fevereiro de 2009. PARTE I - INTRODUÇÃO À PROGRAMAÇÃO. Rogério Pagano ( MatLab ) Eduardo Lemos ( Maple e EMSO). INTRODUÇÃO À PROGRAMAÇÃO. - PowerPoint PPT Presentation

Citation preview

Page 1: CURSO de NIVELAMENTO

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

Page 2: CURSO de NIVELAMENTO

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.

Page 3: CURSO de NIVELAMENTO

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]

Page 4: CURSO de NIVELAMENTO

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.

Page 5: CURSO de NIVELAMENTO

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)

Page 6: CURSO de NIVELAMENTO

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).

Page 7: CURSO de NIVELAMENTO

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.

Page 8: CURSO de NIVELAMENTO

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

Page 9: CURSO de NIVELAMENTO

INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO

PSEUDOCÓDIGO EXEMPLO

TESTE DE MESA EXEMPLO

X = 5 Y = 9

SOMA = 5 + 9

ESCREVA SOMA = 14

Page 10: CURSO de NIVELAMENTO

INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO

ALGORITMOS EXEMPLOS

Page 11: CURSO de NIVELAMENTO

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

Page 12: CURSO de NIVELAMENTO

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.

Page 13: CURSO de NIVELAMENTO

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)

Page 14: CURSO de NIVELAMENTO

INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO

Page 15: CURSO de NIVELAMENTO

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.

Page 16: CURSO de NIVELAMENTO

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

Page 17: CURSO de NIVELAMENTO

INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO

Estruturas de Decisão e Repetição

SE ... ENTÃO / IF ... THEN

Page 18: CURSO de NIVELAMENTO

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

Page 19: CURSO de NIVELAMENTO

INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO

Estruturas de Decisão e Repetição

SE ... ENTÃO ... SENÃO/ IF ... THEN ... ELSE

Page 20: CURSO de NIVELAMENTO

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

Page 21: CURSO de NIVELAMENTO

INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO

SE ... ENTÃO ... SENÃO/ IF ... THEN ... ELSE

Page 22: CURSO de NIVELAMENTO

INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO

Estruturas de Decisão e Repetição

ENQUANTO ... PROCESSAR / DO WHILE ... LOOP

Page 23: CURSO de NIVELAMENTO

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

Page 24: CURSO de NIVELAMENTO

INTRODUÇÃO À PROGRAMAÇÃOINTRODUÇÃO À PROGRAMAÇÃO

Estruturas de Decisão e Repetição

PARA ... ATÉ ... PROCESSAR / DO ... UNTIL ... LOOP

Page 25: CURSO de NIVELAMENTO

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

Page 26: CURSO de NIVELAMENTO
Page 27: CURSO de NIVELAMENTO

Leia altura

Leia sexo

início

Se sexo=M

P = 72.7*altura - 58P = 62.1*altura – 44.7

Escreva P

fim

Page 28: CURSO de NIVELAMENTO

Leia idade

início

Se id<5

Sem classificaçãoSe id<=7

Infantil ASe id<=11

Infantil B

Se id<=18

Adulto

fim

Page 29: CURSO de NIVELAMENTO

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

Page 30: CURSO de NIVELAMENTO

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.

Page 31: CURSO de NIVELAMENTO

MATLABMATLAB

Page 32: CURSO de NIVELAMENTO

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

Page 33: CURSO de NIVELAMENTO

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

Page 34: CURSO de NIVELAMENTO

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

Page 35: CURSO de NIVELAMENTO

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

Page 36: CURSO de NIVELAMENTO

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

Page 37: CURSO de NIVELAMENTO

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

Page 38: CURSO de NIVELAMENTO

Formato numérico

format short

format short e

format long

format long e

format hex

MATLABMATLAB

Page 39: CURSO de NIVELAMENTO

Operadores MATLABMATLAB

aritiméticos

elemento a elemento

lógicos

Page 40: CURSO de NIVELAMENTO

Funções intrínsecas

MATLABMATLAB

Page 41: CURSO de NIVELAMENTO

Otimização

MATLABMATLAB

EDO

Page 42: CURSO de NIVELAMENTO

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])

Page 43: CURSO de NIVELAMENTO

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

Page 44: CURSO de NIVELAMENTO

Gráficos

MATLABMATLAB

Outros tipos:

Page 45: CURSO de NIVELAMENTO

MATLABMATLAB

Outros tipos:

Page 46: CURSO de NIVELAMENTO

Gráficos

MATLABMATLAB

X = 0:0.05:1; subplot(121), plot(X,X.^2,’k*’) subplot(122), plot(X,X.^2,’b --‘)

Page 47: CURSO de NIVELAMENTO

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)

Page 48: CURSO de NIVELAMENTO

MATLABMATLAB

Outros tipos de Gráficos 3D: