Cálculo NuméricoRodolfo Maduro Almeida
Cálculo Numérico Introdução ao SciLabRodolfo Maduro Almeida
Visão GeralScientific Laboratory é um ambiente computacionalpara a resolução de problemas numéricos evisualização.
Histórico• Criado em 1990 por pesquisadores do INRIA  (Institut National de Recherche en Informatique  et en Automatique) ...
Onde obter?http://www.scilab.org/
Características Possui ambiente interativo com uma linguagem de programação simples e de alto nível cujos recursos permite...
CaracterísticasSeu ambiente de desenvolvimento permite: – Desenvolvimento de toolboxes: extensões de sua   linguagem para ...
Inicializando o SciLab• Ambiente padrão:    Iniciar > Programas > scilab-5.3.3 > scilab-5.3.3• Ambiente modo console:    I...
Ambiente gráfico do SciLab
Ambiente gráfico do SciLab       Prompt de comandos: onde as instruções são inseridas.
Ambiente gráfico do SciLab       Comando clc (ou F2): limpa a janela de comandos
Ambiente gráfico do SciLab       Comando pwd: mostra o diretório de trabalho atual
Ambiente gráfico do SciLab      Menu File > Change current directory...
Ambiente gráfico do SciLab• Os comandos do SciLab são definidos em  uma linguagem própria.• Suas instruções podem ser inte...
Primeiros passos...1. Inicie o SciLab2. Escolha um diretório de trabalho de sua   preferência para guardar as atividades  ...
Declaração de variáveis• Variável: Elemento de um programa que é declarado  e armazenado na memória, cujo valor pode ser  ...
Declaração de variáveisRegras para nomes das          Comentário e exemplosvariáveis declaradasCase sensitive             ...
Comando who              Comando who: exibe as variáveis              definidas no ambiente
Variáveis do ambiente              %i: unidade imaginária de números complexos              %pi: valor de =3.1415...      ...
Declaração de variáveis• Declarando matrizes:  – Os elementos devem ser declarados entre [ ]  – Os elementos de uma mesma ...
Operadores aritméticos               Operação   Símbolo     Adição                 +     Subtração               -     Mul...
Operadores aritméticosOperador ponto-a-ponto: atuam sobre os elementos dasmatrizes                      Operação   Símbolo...
Exercícios--> A = 1;             a variável A recebe o valor 1--> b = 2;             a variável b recebe o valor 1--> A + ...
Exercícios-->u = 2 - 3 * %i            as variáveis u e v são declaradas u =                         como números complexo...
Exercícios--> A = [1 2; 3 4]   --> C2 = A^(-1)A =                  C2 =     1     2            -2.0000    1.0000     3    ...
Exercícios--> A = [1 2; 3 4]   --> D1 = A/BA =                  C3 =     1     2              3.0000   -2.0000     3     4...
Operador dois-pontos (:)• É um dos operadores mais úteis do SciLab.• Cria vetores e serve para manipular índices de  matri...
Exercícios--> C = 1:2:11C =   1   3   5   7   9   11--> E = [1:1:3;4:1:6;7:1:9]E =     1     2     3     4     5     6    ...
Exercícios--> A =   [1 : 2 : 15]           --> B(1,3)A =                              ans = 1   3     5   7   9 11 13 15  ...
Exercícios--> A = ones(3,3)         --> C = rand(3,3)A =                        C =     1     1      1        0.0683740 0....
Exercícios--> A = ones(3,3)          -->rand(seed,0)A =                        --> B = rand(3,3)     1     1      1       ...
Exercícios• Defina as matrizes e efetue as operações:                                 6, para i par e j ímpar             ...
Exercícios-->   A = 3 * ones(9,9)-->   A(2:2:$,1:2:$)=6-->   A(1:2:$,2:2:$)=2-->   disp(A)       3     2     3      2   3 ...
Exercícios-->   B = 3 * ones(9,9)-->   B(2:2:$,2:2:$)=1-->   B(1:2:$,1:2:$)=2-->   disp(B)       2     3     2      3   2 ...
Funções elementares      Função     Descrição      abs(x)     módulo de x      sin(x)     seno de x      cos(x)     cossen...
Exercícios-->x = -5:1:5 x =   - 5. - 4. - 3. - 2. - 1.         0.   1.    2.    3.    4.    5.-->y = abs(x) y =     5.    ...
Programando em SciLab• O que é um script?  – Conjunto de instruções do SciLab que podem ser    executadas sistematicamente...
Editando scripts                     Menu Applications > Editor  comando scinotes
Entrada e Saída (prompt)• Comando de entrada: input  Sintaxe: variavel = input(“mensagem”)  -->R = input(“Forneca o valor ...
Exercício
Exercício            Para executar o script:            Executar > Salvar e executar            ou pressione a tecla F5
Operadores lógicos erelacionais    p    q    p|q       p&q    T    T     T         T    T    F     T         F    F    T  ...
Operadores lógicos erelacionais       Operador lógico   Símbolo    Operador relacional   Símbolo   E                      ...
Exercícios-->   2 == 3ans   = F-->   2 <= 3ans   = T-->   (2 == 3) & (2 <= 3)ans   = F-->   ~(2 == 3) & (2 <= 3)ans   = T-...
Controladores de fluxoif: cria caminhos alternativos na execução de um script.if expressao_1                if expressao_1...
Exercícios
Exercícios
Controladores de fluxo for: permite que um grupo de instruções se repitam por um número especificado de vezes.  for variav...
Exercícios• Script que cria a matriz:                   A   (aij ) N   N   2i 3 j
Controladores de fluxo                           6, para i par e j ímpar        A   (aij ) 9   9                          ...
Controladores de fluxo while: permite que um grupo de instruções se repitam enquanto uma determinada expressão de controle...
ExercíciosAnalisando o código acima, o while é executado enquanto que 1+EPS > 1. Conformepodemos observar, EPS começa com ...
Controladores de fluxo break: encerra a execução de um laço de repetição (for ou while).EPS = 1;                          ...
Funções• Scripts podem ser transformados em funções.• Funções são um conjunto de instruções que  executam determinada tare...
Exercícios
Exercícios
Como aprender mais?• Acessando sua documentação  – Comando help: help comando_do_scilab  – Exemplo:    --> help plot2d• Ac...
Upcoming SlideShare
Loading in …5
×

Cálculo Numérico - Aula 02: Introdução ao SCILAB

1,698 views
1,606 views

Published on

Published in: Education
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,698
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Cálculo Numérico - Aula 02: Introdução ao SCILAB

  1. 1. Cálculo NuméricoRodolfo Maduro Almeida
  2. 2. Cálculo Numérico Introdução ao SciLabRodolfo Maduro Almeida
  3. 3. Visão GeralScientific Laboratory é um ambiente computacionalpara a resolução de problemas numéricos evisualização.
  4. 4. Histórico• Criado em 1990 por pesquisadores do INRIA (Institut National de Recherche en Informatique et en Automatique) da França.• Atualmente é mantido e desenvolvido pelo consórcio SciLab, composto por instituições de ensino/pesquisa e empresas, criado em maio de 2003.• Distribuído gratuitamente com código-fonte aberto desde 1994. Atualmente na versão 5.3.3.
  5. 5. Onde obter?http://www.scilab.org/
  6. 6. Características Possui ambiente interativo com uma linguagem de programação simples e de alto nível cujos recursos permitem desenvolver aplicações para soluções específicas.
  7. 7. CaracterísticasSeu ambiente de desenvolvimento permite: – Desenvolvimento de toolboxes: extensões de sua linguagem para solução de problemas específicos. – O uso de seus recursos por meio de outras linguagens de programação como C/C++, Java, Fortran. Ajuste de curvas Equações diferenciais Simulação de sistemas mecânicos
  8. 8. Inicializando o SciLab• Ambiente padrão: Iniciar > Programas > scilab-5.3.3 > scilab-5.3.3• Ambiente modo console: Iniciar > Programas > scilab-5.3.3 > Scilab Console
  9. 9. Ambiente gráfico do SciLab
  10. 10. Ambiente gráfico do SciLab Prompt de comandos: onde as instruções são inseridas.
  11. 11. Ambiente gráfico do SciLab Comando clc (ou F2): limpa a janela de comandos
  12. 12. Ambiente gráfico do SciLab Comando pwd: mostra o diretório de trabalho atual
  13. 13. Ambiente gráfico do SciLab Menu File > Change current directory...
  14. 14. Ambiente gráfico do SciLab• Os comandos do SciLab são definidos em uma linguagem própria.• Suas instruções podem ser interpretadas: • via janela de comandos • via arquivos com um conjunto de instruções (script) editado com o SciPad Editor e salvo em um arquivo de extensão “.sce”.• O bom uso do SciLab exige um certo domínio da sintaxe de sua linguagem.
  15. 15. Primeiros passos...1. Inicie o SciLab2. Escolha um diretório de trabalho de sua preferência para guardar as atividades desenvolvidas durante o mini-curso. – Sugestão: C:Meus DocumentosSciLabObservações: – Utilizar o mesmo computador no decorrer do mini- curso, pois algumas vezes poderemos recorrer ao conteúdo desenvolvido nas aulas anteriores. – Guardar o conteúdo desenvolvido nas aulas em alguma mídia de armazenamento.
  16. 16. Declaração de variáveis• Variável: Elemento de um programa que é declarado e armazenado na memória, cujo valor pode ser modificado ao longo de sua execução.• Declaração de uma variável: usa-se o operador atribuição “=”. – --> variavel = valor;• Tipos de valores: Podem ser numérico (real, inteiro ou complexo) e string de caracteres.• Obs.: Pela sintaxe da linguagem do SciLab, o ponto-e- vírgula significa o final da instrução.
  17. 17. Declaração de variáveisRegras para nomes das Comentário e exemplosvariáveis declaradasCase sensitive Custo, CustO, CuStO e CUSTO são variáveis diferentesDevem conter no máximo 24 CustoTotalAnoAnterior = 10caracteresNão deve começar com Valor_Estimado = 3número e nem conter Valor1 = 9.2pontuações ou espaços X123 = 2.5Nome diferente das variáveis Podem ser acessadas com o comando who noreservadas do ambiente prompt.
  18. 18. Comando who Comando who: exibe as variáveis definidas no ambiente
  19. 19. Variáveis do ambiente %i: unidade imaginária de números complexos %pi: valor de =3.1415... %e: valor do número de Euler e = 2.7182... SCI: caminho onde o SciLab foi instalado home: caminho do diretório padrão do usuário
  20. 20. Declaração de variáveis• Declarando matrizes: – Os elementos devem ser declarados entre [ ] – Os elementos de uma mesma linha numa matriz são separados por espaço(s) ou vírgula – ponto-e-vírgula(;) indica o final de uma linha de uma matriz ou final de uma expressão 1 4 8 A 6 0 9 A = [1 4 8; 6 0 9; 2 4 5] 2 5 4
  21. 21. Operadores aritméticos Operação Símbolo Adição + Subtração - Multiplicação * Divisão / Potenciação ^ Matriz transposta ‘
  22. 22. Operadores aritméticosOperador ponto-a-ponto: atuam sobre os elementos dasmatrizes Operação Símbolo Multiplicação .* Divisão ./ Potenciação .^
  23. 23. Exercícios--> A = 1; a variável A recebe o valor 1--> b = 2; a variável b recebe o valor 1--> A + b Adição entre A e b ans = Obs.: Note que se o “;” for 3. omitido, o resultado da instrução é mostrado no prompt--> A * b ans = Produto de A por b 2.-->c = b^5 A variável c recebe o valor b elevado a 5ª potência c = 32. a variável nome recebe o valor--> nome = “scilab”; “scilab” (variável tipo string)
  24. 24. Exercícios-->u = 2 - 3 * %i as variáveis u e v são declaradas u = como números complexos 2. - 3.i Obs.: %i representa unidade-->v = 5 + 4 * %i imaginária v = 5. + 4.i-->u + v Soma entre u e v ans = 7. + i-->u * v Produto de u por v ans = 22. - 7.i-->u/v Divisão de u por v ans = - 0.0487805 - 0.5609756i
  25. 25. Exercícios--> A = [1 2; 3 4] --> C2 = A^(-1)A = C2 = 1 2 -2.0000 1.0000 3 4 1.5000 -0.5000--> B = [5 6; 7 8] --> C3 = A/BB = C3 = 5 6 3.0000 -2.0000 7 8 2.0000 -1.0000--> C = A + B --> C4 = A^2 + B^2C = C4 = 6 8 74 88 10 12 106 128--> C1 = A – B --> C5 = A’C1 = C5 = -4 -4 1 3 -4 -4 2 4
  26. 26. Exercícios--> A = [1 2; 3 4] --> D1 = A/BA = C3 = 1 2 3.0000 -2.0000 3 4 2.0000 -1.0000--> B = [5 6; 7 8] --> D2 = A./BB = D1 = 5 6 0.2000 0.3333 7 8 0.4286 0.5000--> C1 = A * B --> E1 = A^3C = E1 = 19 22 37 54 43 50 81 118--> C1 = A .* B --> E2 = A.^3C2 = E2 = 5 12 1 8 21 32 27 64
  27. 27. Operador dois-pontos (:)• É um dos operadores mais úteis do SciLab.• Cria vetores e serve para manipular índices de matrizes.• Criando vetores com o operador colon (:):--> vetor = valor_inicial:incremento:valor_final--> vetor = valor_inicial:valor_final (incremento=1)
  28. 28. Exercícios--> C = 1:2:11C = 1 3 5 7 9 11--> E = [1:1:3;4:1:6;7:1:9]E = 1 2 3 4 5 6 7 8 9--> D = 0 : 0.5 : 3D = 0 0.5 1.0 1.5 2.0 2.5 3.0
  29. 29. Exercícios--> A = [1 : 2 : 15] --> B(1,3)A = ans = 1 3 5 7 9 11 13 15 9--> B = [1:1:3;2:2:6;5:2:9] --> B(1:3,2)B = ans = 1 2 3 2 2 4 6 4 5 7 9 7--> b = [10 20 30] --> B(3,:)b = ans = 10 20 30 5 7 9--> B = [B;b] --> B([2 3],[1 2])B = ans = 1 2 3 2 4 2 4 6 5 7 5 7 9 --> B($,:) 10 20 30 ans = 10 20 30
  30. 30. Exercícios--> A = ones(3,3) --> C = rand(3,3)A = C = 1 1 1 0.0683740 0.7263507 0.2320748 1 1 1 0.5608486 0.1985144 0.2312237 1 1 1 0.6623569 0.5442573 0.2164633--> B = zeros(4,3) --> rand(seed,0)B = -->D = rand(3,3) 0 0 0 D = 0 0 0 0.4812332 0.6187285 0.2372657 0 0 0 0.9481247 0.3414719 0.6183197 0 0 0 0.4177657 0.1770553 0.8246736--> I = eye(4,4) -->E = diag(D)I = E = 1 0 0 0 0.4812332 0 1 0 0 0.3414719 0 0 1 0 0.8246736 0 0 0 1
  31. 31. Exercícios--> A = ones(3,3) -->rand(seed,0)A = --> B = rand(3,3) 1 1 1 B = 1 1 1 0.2113249 0.3303271 0.8497452 1 1 1 0.7560439 0.6653811 0.6857310--> dimA = size(A) 0.0002211 0.6283918 0.8782165dimA = -->C1 = triu(B) 3 3 C1 =--> A1 = diag(A) 0.2113249 0.3303271 0.8497452A1 = 0.0000000 0.6653811 0.6857310 1 0.0000000 0.0000000 0.8782165 1 -->C2 = tril(B) 1 C2 =--> maxdimA = length(A1) 0.2113249 0.0000000 0.0000000maxdimA = 0.7560439 0.6653811 0.0000000 3 0.0002211 0.6283918 0.8782165
  32. 32. Exercícios• Defina as matrizes e efetue as operações: 6, para i par e j ímpar A (aij ) 9 9 2, para i ímpar e j par 3, para os demais índices 1, para i e j pares B (bij ) 9 9 2, para i e j ímpares 3, para os demais índices a) A * A’ d) A * B b) B^2 e) A .^B c) B.^2 f) A./B
  33. 33. Exercícios--> A = 3 * ones(9,9)--> A(2:2:$,1:2:$)=6--> A(1:2:$,2:2:$)=2--> disp(A) 3 2 3 2 3 2 3 2 3 6 3 6 3 6 3 6 3 6 3 2 3 2 3 2 3 2 3 6 3 6 3 6 3 6 3 6 3 2 3 2 3 2 3 2 3 6 3 6 3 6 3 6 3 6 3 2 3 2 3 2 3 2 3 6 3 6 3 6 3 6 3 6 3 2 3 2 3 2 3 2 3
  34. 34. Exercícios--> B = 3 * ones(9,9)--> B(2:2:$,2:2:$)=1--> B(1:2:$,1:2:$)=2--> disp(B) 2 3 2 3 2 3 2 3 2 3 1 3 1 3 1 3 1 3 2 3 2 3 2 3 2 3 2 3 1 3 1 3 1 3 1 3 2 3 2 3 2 3 2 3 2 3 1 3 1 3 1 3 1 3 2 3 2 3 2 3 2 3 2 3 1 3 1 3 1 3 1 3 2 3 2 3 2 3 2 3 2
  35. 35. Funções elementares Função Descrição abs(x) módulo de x sin(x) seno de x cos(x) cosseno de x tan(x) tangente de x asin(x) inversa da função seno acos(x) inversa da função seno atan(x) inversa da função tangente log2(x) logaritmo de x na base 2 log10(x) logaritmo de x na base 10 log(x) logaritmo natural de x sqrt(x) raiz quadrada de x exp(x) exponencial de x
  36. 36. Exercícios-->x = -5:1:5 x = - 5. - 4. - 3. - 2. - 1. 0. 1. 2. 3. 4. 5.-->y = abs(x) y = 5. 4. 3. 2. 1. 0. 1. 2. 3. 4. 5.-->theta = -%pi: %pi/3 : %pi theta = -3.1415927 -2.0943951 -1.0471976 0.0 1.0471976 2.0943951 3.1415927-->z1 = sin(theta) z1 = -1.225D-16 -0.8660254 -0.8660254 0. 0.8660254 0.8660254 1.225D-16 -->z2 = cos(theta) z2 = - 1. - 0.5 0.5 1. 0.5 - 0.5 - 1.-->w = sqrt(x) w =2.236068i 2.i 1.7320508i 1.4142136i i 0 1. 1.4142136 1.7320508 2. 2.236068
  37. 37. Programando em SciLab• O que é um script? – Conjunto de instruções do SciLab que podem ser executadas sistematicamente. – Os scripts são salvos em arquivos de extensão “.sce”. – São executados pelo comando: exec(nome_do_script). – Evite acentos, espaços e pontuações no nome do script.• Para que serve? – Sintetiza os comandos freqüentemente digitados em um único arquivo. – Aplicável a problemas mais extensos onde é exigido mais comandos.
  38. 38. Editando scripts Menu Applications > Editor comando scinotes
  39. 39. Entrada e Saída (prompt)• Comando de entrada: input Sintaxe: variavel = input(“mensagem”) -->R = input(“Forneca o valor de entrada: ") Forneca o valor de entrada: 1 R = 1.• Comando de saida: disp Sintaxe: disp(“mensagem”) ou disp(variavel) -->disp(" Hello World! ") Hello World!
  40. 40. Exercício
  41. 41. Exercício Para executar o script: Executar > Salvar e executar ou pressione a tecla F5
  42. 42. Operadores lógicos erelacionais p q p|q p&q T T T T T F T F F T T F F F F F p ~p T F F T
  43. 43. Operadores lógicos erelacionais Operador lógico Símbolo Operador relacional Símbolo E & Igual == Ou | Diferente ~= Não ~ Maior > Menor < Maior ou igual >= Menor ou igual <=1 ou T (true) – Verdadeiro0 ou F (false) – Falso
  44. 44. Exercícios--> 2 == 3ans = F--> 2 <= 3ans = T--> (2 == 3) & (2 <= 3)ans = F--> ~(2 == 3) & (2 <= 3)ans = T--> (2 ~= 3) & (2 <= 3)ans = T
  45. 45. Controladores de fluxoif: cria caminhos alternativos na execução de um script.if expressao_1 if expressao_1 instrucoes_1 instrucoes_1else elseif expressao_2 instrucoes_2 instrucoes_2end else instrucoes_3 end
  46. 46. Exercícios
  47. 47. Exercícios
  48. 48. Controladores de fluxo for: permite que um grupo de instruções se repitam por um número especificado de vezes. for variavel = valor_inicial:passo:valor_final instrucoes; end
  49. 49. Exercícios• Script que cria a matriz: A (aij ) N N 2i 3 j
  50. 50. Controladores de fluxo 6, para i par e j ímpar A (aij ) 9 9 2, para i ímpar e j par 3, para os demais índices
  51. 51. Controladores de fluxo while: permite que um grupo de instruções se repitam enquanto uma determinada expressão de controle for verdadeira.while (expressao de controle) instrucoes;end
  52. 52. ExercíciosAnalisando o código acima, o while é executado enquanto que 1+EPS > 1. Conformepodemos observar, EPS começa com o valor 2, e a cada laço de repetição do while, seuvalor é dividido por dois. Teoricamente, o valor de EPS tende a zero com infinitos laçosde repetição. Logo, a execução do SCRIPT nunca terminaria. Porém, após certaquantidade de laços de repetição, o while encerra e o seu valor é mostrado no console.Isso acontece porque o computador utiliza um utiliza número FINITO de dígitos pararepresentar os números. O SciLab usa 16 dígitos de precisão, nesse caso o valor de EPS éda ordem de 10-16 (1.110D-16 ). Se formos no console e executarmos a operação lógica:--> 1 + EPS == 1ans = TVeremos que EPS é entendido como ZERO para o SCILAB.
  53. 53. Controladores de fluxo break: encerra a execução de um laço de repetição (for ou while).EPS = 1; EPS = 1;for num = 1 : 1000 while (1+EPS) > 1 EPS = EPS / 2; EPS = EPS/2; if ~((1+EPS) > 1) end break disp(EPS) endenddisp(EPS) Podemos representar um while por um for ou vice-versa. for: o laço de repetição é executado enquanto uma variável é incrementada até um valor máximo while: o laço de repetição é executado enquanto uma condição é verdadeira O comando break tem o poder de encerrar qualquer um desses dois tipos de laços.
  54. 54. Funções• Scripts podem ser transformados em funções.• Funções são um conjunto de instruções que executam determinada tarefa.• Uma função pode receber parâmetros de entrada e retorna valores.• Sintaxe:function var_retorno = nome_da_funcao(pars_entrada) instrucoes para obter variavel_retorno;endfunction
  55. 55. Exercícios
  56. 56. Exercícios
  57. 57. Como aprender mais?• Acessando sua documentação – Comando help: help comando_do_scilab – Exemplo: --> help plot2d• Acessando a documentação: – ? > Ajuda do Scilab – Ou aperte a tecla F1• Acessando scripts demonstrativos – Comando scilab_demos: --> scilab_demos

×