1 / 48

CURSO de NIVELAMENTO

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.

wendi
Download Presentation

CURSO de NIVELAMENTO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 Programa de Engenharia Química/COPPE/UFRJ LMSCP • Formas de Apresentação DESCRIÇÃO NARRATIVA • EXEMPLO • Receita de Bolo: • Providencie manteiga, ovos, 2 Kg de massa, etc. • Mistureosingredientes • Despeje a mistura na fôrma de bolo • Leve a fôrma ao forno • Espere 20 minutos • Retire a fôrma do forno • Deixeesfriar • 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).

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

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

  9. INTRODUÇÃO À PROGRAMAÇÃO Programa de Engenharia Química/COPPE/UFRJ LMSCP PSEUDOCÓDIGO • EXEMPLO TESTE DE MESA • EXEMPLO

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

  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 OperadoresRelacionais 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 OperadoresLó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 Programa de Engenharia Química/COPPE/UFRJ LMSCP • Estruturas de Decisão e Repetição SE ... ENTÃO / IF ... THEN

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

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

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

  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 Programa de Engenharia Química/COPPE/UFRJ LMSCP • Estruturas de Decisão e Repetição ENQUANTO ... PROCESSAR / DO WHILE ... LOOP

  23. 50 > 40??? i > 10 ??? Condição Enquanto i < 10 Executa Caso contrário Executa se verdade Estrutura de Repetição Simples Programa de Engenharia Química/COPPE/UFRJ LMSCP Exemplos: ..... n = 10 %Número de peças compradas!!!! preço = 5 %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

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

  25. i > 10 ??? 50 > 40??? Condição Para i < 10 Executa se verdade Executa Caso contrário Estrutura de Repetição Simples Programa de Engenharia Química/COPPE/UFRJ LMSCP Exemplos: ..... n = 10 %Número de peças compradas!!!! preço = 5 %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

  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. CURSO de NIVELAMENTO Métodos Computacionais PARTE II - INTRODUÇÃO AO MATLAB Rogério Pagano (MatLab)

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

  32. 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 clearvariable; clearall; Comando lookfor: lookfor [-all] inverse

  33. 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 [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.

  34. 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 zeros(n) = constrói uma matriz de dimensão n com zeros

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

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

  38. 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. MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP lógicos • Operadores aritiméticos elemento a elemento

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

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

  42. MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Gráficos 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])

  43. 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) plot(x,y) Lembrar as funções hold on e hold off

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

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

  46. 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. 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. MATLAB Programa de Engenharia Química/COPPE/UFRJ LMSCP Outros tipos de Gráficos 3D:

More Related