A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Data: 10 a 12 de fevereiro de 2009 e

Apresentações semelhantes


Apresentação em tema: "Data: 10 a 12 de fevereiro de 2009 e"— Transcrição da apresentação:

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

2 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP 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.

3 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP 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]

4 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP 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.

5 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP Características Todo 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)

6 INTRODUÇÃ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). Programa de Engenharia Química/COPPE/UFRJ LMSCP

7 INTRODUÇÃ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. Programa de Engenharia Química/COPPE/UFRJ LMSCP

8 INTRODUÇÃ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 Programa de Engenharia Química/COPPE/UFRJ LMSCP

9 INTRODUÇÃO À PROGRAMAÇÃO
PSEUDOCÓDIGO EXEMPLO TESTE DE MESA Programa de Engenharia Química/COPPE/UFRJ LMSCP X = 5 Y = 9 SOMA = 5 + 9 ESCREVA SOMA = 14

10 INTRODUÇÃO À PROGRAMAÇÃO
ALGORITMOS EXEMPLOS Programa de Engenharia Química/COPPE/UFRJ LMSCP

11 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP OPERADORES Os operadores são meios pelo avaliamos dados dentro do computador. Operadores Aritméticos Operadores Relacionais Operadores Lógicos

12 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP 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.

13 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP 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)

14 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP

15 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP Operadores Lógicos Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso.

16 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP 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

17 INTRODUÇÃO À PROGRAMAÇÃO
Estruturas de Decisão e Repetição SE ... ENTÃO / IF ... THEN Programa de Engenharia Química/COPPE/UFRJ LMSCP

18 Estrutura Condicional Simples
Programa de Engenharia Química/COPPE/UFRJ LMSCP Atribui 4 a variavel A Exemplo: .. A = 4 B = 3 SE (A > B) ENTÃO ESCREVA ‘A > B’ FIM SE A > B ??? Condição Atribui 3 a variavel B Como a resposta é verdadeira : 4 é > 3 ENTÃO (THEN) Executa comando de escrita

19 INTRODUÇÃO À PROGRAMAÇÃO
Estruturas de Decisão e Repetição SE ... ENTÃO ... SENÃO/ IF ... THEN ... ELSE Programa de Engenharia Química/COPPE/UFRJ LMSCP

20 Estrutura Condicional Composta
Programa de Engenharia Química/COPPE/UFRJ LMSCP Atribui 4 a variavel A Exemplo: .. A = 4 B = 5 SE (A > B) ENTÃO ESCREVA ‘A > B’ SENÃO ESCREVA ‘B > A’ FIM SE A > B ??? Condição Atribui 5 a variavel B Como a resposta não é verdadeira : 4 não é > 5 Executamos o caso contrário (ELSE) Executa comando de escrita

21 INTRODUÇÃO À PROGRAMAÇÃO
Programa de Engenharia Química/COPPE/UFRJ LMSCP SE ... ENTÃO ... SENÃO/ IF ... THEN ... ELSE

22 INTRODUÇÃO À PROGRAMAÇÃO
Estruturas de Decisão e Repetição ENQUANTO ... PROCESSAR / DO WHILE ... LOOP Programa de Engenharia Química/COPPE/UFRJ LMSCP

23 Executa Caso contrário
Estrutura de Repetição Simples Programa de Engenharia Química/COPPE/UFRJ LMSCP i > 10 ??? Enquanto i < 10 Exemplos: ..... n = %Número de peças compradas!!!! preço = %Preço de cada peça ENQUANTO i < n TOTAL = TOTAL + preço i = i+1 FIM ENQUANTO SE (TOTAL >= 40) ENTÃO ESCREVA ‘NÃO TENHO COMO PAGAR!!!!’ SENÃO ESCREVA ‘ACHO QUE DÁ!’ FIM SE 50 > 40??? Condição Executa se verdade Executa Caso contrário

24 INTRODUÇÃO À PROGRAMAÇÃO
Estruturas de Decisão e Repetição PARA ... ATÉ ... PROCESSAR / DO ... UNTIL ... LOOP Programa de Engenharia Química/COPPE/UFRJ LMSCP

25 Executa Caso contrário
Estrutura de Repetição Simples Programa de Engenharia Química/COPPE/UFRJ LMSCP i > 10 ??? Para i < 10 Exemplos: ..... n = %Número de peças compradas!!!! preço = %Preço de cada peça PARA i = 1 até n TOTAL = TOTAL + preço i = i +1 FIM PARA SE (TOTAL >= 40) ENTÃO ESCREVA ‘NÃO TENHO COMO PAGAR!!!!’ SENÃO ESCREVA ‘ACHO QUE DÁ!’ FIM SE 50 > 40??? Condição Executa se verdade Executa Caso contrário

26 Programa de Engenharia Química/COPPE/UFRJ
LMSCP

27 Programa de Engenharia Química/COPPE/UFRJ
LMSCP início Leia altura Leia sexo Se sexo=M P = 72.7*altura - 58 P = 62.1*altura – 44.7 Escreva P fim

28 Programa de Engenharia Química/COPPE/UFRJ
LMSCP início Leia idade Se id<5 Se id<=7 Sem classificação Se id<=11 Infantil A Infantil B Se id<=18 Adulto fim

29 Métodos Computacionais
CURSO de NIVELAMENTO Métodos Computacionais PARTE II - INTRODUÇÃO AO MATLAB Rogério Pagano (MatLab)

30 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP O Matlab é um software destinado a fazer cálculos com matrizes (Matlab = MATrix LABoratory). OBJETIVO Introduzir 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.

31 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP

32 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP O MatLab é case sensitive (a≠ A) Comandos Básicos Inserir dados (variáveis, vetores, matrizes) Manipulação de vetores e matrizes clear variable; clear all; Comando lookfor: lookfor [-all] inverse

33 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP 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 [ ]. 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.

34 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP 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

35 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP 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

36 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Polinômios f(x) = x2 – 3x + 2 p = [ ]; 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

37 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP 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 x e x2 − 2x + 3. Exercício 12 Obtenha o polinômio cujas raízes são os números inteiros 1, 2 e 3.

38 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Formato numérico format short format short e format long format long e format hex

39 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Operadores Programa de Engenharia Química/COPPE/UFRJ LMSCP lógicos aritiméticos elemento a elemento

40 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Funções intrínsecas

41 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Otimização EDO

42 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Gráficos t = 0:pi/100:2*pi; x = sin(t); plot(t,x) 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])

43 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Gráficos 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) Lembrar as funções hold on e hold off

44 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Gráficos Outros tipos:

45 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Outros tipos:

46 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Gráficos X = 0:0.05:1; subplot(121), plot(X,X.^2,’k*’) subplot(122), plot(X,X.^2,’b --‘)

47 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Gráficos 3D mesh [X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z)

48 Programa de Engenharia Química/COPPE/UFRJ
MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Outros tipos de Gráficos 3D:


Carregar ppt "Data: 10 a 12 de fevereiro de 2009 e"

Apresentações semelhantes


Anúncios Google