CURSO de NIVELAMENTO Métodos Computacionais Data: 10 a 12 de fevereiro de 2009 e 17 a 19 de...

Preview:

Citation preview

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:

Recommended