1 / 88

CÁLCULO NUMÉRICO

Universidade Federal do Rio Grande do Norte Departamento de Informática e matemática Aplicada. CÁLCULO NUMÉRICO. Prof.: Dario José Aloise Auxiliares: Werner K. S. Soares Fábio Fontes. Natal / 2005. Unidade I - Introdução ao Scilab. Werner K. S. Soares

hidi
Télécharger la présentation

CÁLCULO NUMÉRICO

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. Universidade Federal do Rio Grande do Norte Departamento de Informática e matemática Aplicada CÁLCULO NUMÉRICO Prof.: Dario José Aloise Auxiliares:Werner K. S. Soares Fábio Fontes Natal / 2005

  2. Unidade I - Introdução ao Scilab Werner K. S. Soares Engenheiro Eletricista

  3. Introdução • O objetivo desta apresentação é proporcionar um primeiro contato com a ferramenta matemática Scilab utilizando-o como uma sofisticada calculadora. • Scilab é um pacote de computação numérica científica com ambiente amigável. Este software é desenvolvido e mantido pelo INRIA, na França.

  4. Tópicos de discussão • Vantagens • Características • Objetos do Scilab • Operações • Polinômios • Triangularização de Matrizes • Graficos Bi-dimensionais • Fontes (Apostila e Software)

  5. Vantagens • A última versão do software está sempre disponível, geralmente via internet; • O software pode ser legalmente utilizado, copiado, distribuído, modificado; • Os resultados obtidos podem ser divulgados sem nenhuma restrição; • Os programas desenvolvidos podem ser transferidos para outras pessoas sem imposições de qualquer natureza;

  6. Vantagens • O acesso ao código fonte, evitando surpresas desagradáveis; • O acesso a informação de alta qualidade; • A certeza de estar participando de uma comunidade cujo valor principal é a irrestrita difusão do conhecimento.

  7. Características • Algumas características: • - Estruturas de dados elaboradas (matrizes polinomiais, racionais e alfanuméricas, listas, sistemas lineares com múltiplas variáveis...); • - Linguagem de programação e interpretadores sofisticados com sintaxe próxima à do Matlab;

  8. Características • - Centenas de funções matemáticas já incorporadas (novas rotinas podem ser facilmente adicionadas); • - Completa biblioteca gráfica (2d, 3d, animação); • - Estrutura Aberta (interface fácil com Fortran e C, através de links dinâmicos);

  9. Características • - Muitas bibliotecas incluídas: • Álgebra linear (incluindo matrizes esparsas, forma de Kronecker, LQ solver); • Controle (Clássico, LQG, "H-infinito"); • Pacote para otimização LMI (Linear Matrix Inequalities); • Processamento de sinais; • Simulação (várias EDO's, dassi); • Otimização (irrestritas: diferenciável e não-diferenciável); • LQ solver; • Scicos, um ambiente interativo para modelagem e simulação de sistemas híbridos; • Metanet (Análise e otimização de redes); • Interface com o Maple.

  10. Objetos do Scilab • Escalares: • -->a=1 //real constant • a = • 1. • -->1==1 //boolean • ans = • T

  11. Objetos do Scilab • -->'string' //character string • ans = • string • -->z=poly(0,'z') // polynomial with variable 'z' and with one root at zero • z = • z

  12. Objetos do Scilab • -->p=1+3*z+4.5*z^2 //polynomial • p = • 2 • 1 + 3z + 4.5z

  13. Objetos do Scilab • -->r=z/p //rational • r = • z • ------------- • 2 • 1 + 3z + 4.5z

  14. Objetos do Scilab • Matrizes: -->A=[a+1 2 3 --> 0 0 atan(1) --> 5 9 -1] //3 x 3 constant matrix A = ! 2. 2. 3. ! ! 0. 0. 0.7853982 ! ! 5. 9. - 1. !

  15. Objetos do Scilab -->b=[%t,%f] //1 x 2 boolean matrix b = ! T F !

  16. Objetos do Scilab -->Mc=['this','is'; --> 'a' ,'matrix'] //2 x 2 matrix of strings Mc = !this is ! !a matrix !

  17. Objetos do Scilab -->Mp=[p,1-z; --> 1,z*p] //2 x 2 polynomial matrix Mp = ! 2 ! ! 1 + 3z + 4.5z 1 - z ! ! ! ! 2 3 ! ! 1 z + 3z + 4.5z !

  18. Operações • --> A = 5 + 2 * %i • A = • 5. + 2.i • -->B = sqrt (-2); // “;” suprime a apresentação do resultado • -->B • B = • 1.4142136i

  19. Operações • --> m = 1; n = 2; a = 4.5; //vários comandos em uma mesma linha • --> A = m^2 + ... //um comando em várias linhas • --> n + 2 + ... • --> a + 1 • A = • 10.5

  20. Operações • --> J = 1:3 // vetor • J = • ! 1. 2. 3. !

  21. Operações -->v=1:5;W=v'*v //constant matrix multiplication W = ! 1. 2. 3. 4. 5. ! ! 2. 4. 6. 8. 10. ! ! 3. 6. 9. 12. 15. ! ! 4. 8. 12. 16. 20. ! ! 5. 10. 15. 20. 25. !

  22. Operações -->W(1,:) //extracting first row ans = ! 1. 2. 3. 4. 5. ! -->W(:,$) //extracting last column ans = ! 5. ! ! 10. ! ! 15. ! ! 20. ! ! 25. !

  23. Polinômios • Definição pelas raízes: • -->p = poly([1 2], ‘s’) • p = • 2 • 2 – 3s + s

  24. Polinômios • Raízes de um polinômio: • --> roots(p) • ans = • ! 1. ! • ! 2 . !

  25. Polinômios • Definição pelos coeficientes: • q = poly([1 2], ‘s’, ‘coeff’) • q = • 1 + 2s • Raízes: • --> roots(q) • ans = • -0.5

  26. Polinômios • Podem ser multiplicados (*), divididos(/), somados(+) e subtraídos (-).

  27. Polinômios • Matrizes com polinômios: • --> M = [p, p-1; p+1; 2]; • --> A = det(M); //determinante

  28. Triangularização de Matrizes • Matriz Simbólica: • A = [‘x’ ‘y’; ‘z’ ‘w+v’] // variáveis sem valor definido • At = trianfml(A) // Matriz triangular

  29. Triangularização de Matrizes • Valor das Matrizes Simbólicas: • x=1; y=2; z=3; w=4; v=5; //atribuindo valores às variáveis • evstr(A) • evstr(At)

  30. Gráficos Bi-dimensionais • -->// Definindo abcissas e ordenadas • --> t = (0: 0.05 : 1); • --> y = sin (2 * %pi * t); • --> // Comando para traçar o gráfico • --> plot ( t, y); • --> xtitle (“nome do gráfico”);

  31. Programação em Scilab • Apesar de simples, o Scilab disponibiliza a maioria das estruturas das linguagens convencionais de programação. • O Scilab é um interpretador, os programas escritos em Scilab são, normalmente, executados em um tempo maior do que o de uma linguagem compilável como o C, por exemplo.

  32. Programação em Scilab • Declaração de Variáveis: • Ao contrário da maioria das linguagens de programação, no Scilab, NÃO É NECESSÁRIO declarar variáveis.

  33. Programação em Scilab • Comandos para iterações • “Para” (for): • Para i de 1 até n faça • comandos • Fim_para Os comandos dentro do bloco Para se repetirão até que i seja igual a n.

  34. Programação em Scilab • Exemplo: • a = 2 • n = 5 • Para i de 1 até n faça • a = 2*a • Fim_para

  35. Programação em Scilab • Progressão dos valores das variáveis:

  36. Programação em Scilab • Exemplo da Estrutura no Scilab: • --> a = 2; • --> n = [1 2 3 4 5] • --> for i = n, ... a = 2*a, ... end

  37. Programação em Scilab • Comandos para iterações • “Enquanto” (while): • Enquanto i < n faça • comandos • Fim_enquanto Os comandos dentro do bloco Enquanto se repetirão enquanto i for menor que n.

  38. Programação em Scilab • Exemplo: • a = 2 • i = 1 • n = 6 • Enquanto i < n faça • a = 2*a • i = i+1 • Fim_enquanto Atenção!!! É preciso que o i mude de alguma forma dentro do laço senão o programa ficará rodando infinitamente.

  39. Programação em Scilab • Progressão dos valores das variáveis:

  40. Programação em Scilab • Exemplo da Estrutura no Scilab: • --> a = 2; • --> i = 1; • --> n = 6; • --> while i < n, ... a = 2*a, ... i = i + 1, ... end

  41. Programação em Scilab • Comandos Condicionais • “Se” (if) • Se (condição) então • comandos • Senão • comandos • Fim_se

  42. Programação em Scilab • Outra forma: • Se (condição1) então • comandos • Senão-se (condição2) então • comandos • Senão • comandos • Fim_se

  43. Programação em Scilab • Exemplo: • Se (a=2) então • a = 2*a • Senão-se (a=3) então • a = 4*a • Senão • a = a + a • Fim_se

  44. Programação em Scilab • Exemplo da Estrutura no Scilab: • --> a = 2; // ou a= 3 ou a= outro número • --> if a=2 then, ... • a = 2*a, ... • elseif a=3 then, ... • a = 4*a, ... • else, ... • a = a + a • end

  45. Programação em Scilab • Comandos Condicionais • “Escolha” (select-case) • Escolha x • Caso expressão1 • comandos • Caso expressão2 • comandos • .. • Caso expressãon • comandos • Senão • comandos • Fim_Escolha

  46. Programação em Scilab • Exemplo: • Escolha a • Caso a=2 • a = 2*a • Caso a=3 • a = 4*a • Senão • a = a + a • Fim_Escolha

  47. Programação em Scilab • Exemplo da Estrutura no Scilab: • --> a = 2; // ou a= 3 ou a= outro número • --> select a, ... • Case 2, ... • a = 2*a, ... • Case 3, ... • a = 4*a, ... • else, ... • a = a + a, ... • end

  48. Programação em Scilab • Os códigos apresentados podem ser colocados em arquivos e puxados conforme a necessidade. • A única diferença é que não será necessário colocar as vírgulas e reticências.

  49. Fontes • Apostila Introdutória (suficiente para a cadeira de Cálculo Numérico) • www.dca.ufrn.br/~pmotta • Software Scilab (aproximadamente 16 MB) • www.rocq.inria.fr/scilab/

  50. UNIDADE II – Sistemas Numéricos e Erros Solução Problema Físico Modelagem Modelo Matemático Resolução • A tentativa de se expressar um determinado problema real de uma forma numérica muitas vezes pode levar a erros, pois existem muitos valores que não se encaixam dentro de determinados limites. • O controle dos erros no decorrer do processo tem por objetivo prevenir a propagação destes. A propagação de erros pode levar a resultados absurdos de acordo com os cálculos realizados no processo. • Para facilitar a apresentação das fontes de erros, o processo de solução de um problema físico, de um modo geral, pode ser representado pelas seguintes fases: Introdução e definições

More Related