1 / 53

Curso de modelagem numérica computacional com o software livre (Octave)

Curso de modelagem numérica computacional com o software livre (Octave). Instituto Federal de Educação, Ciência e Tecnologia do Piauí –IFPI, campus Parnaíba Prof. Msc. Henrique do Nascimento Camelo. O que é o Octave?

rene
Télécharger la présentation

Curso de modelagem numérica computacional com o software livre (Octave)

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 modelagem numérica computacional com o software livre (Octave) Instituto Federal de Educação, Ciência e Tecnologia do Piauí –IFPI, campus Parnaíba Prof. Msc. Henrique do Nascimento Camelo

  2. O que é o Octave? • Resumidamente, é um software livre capaz de resolver cálculos numéricos e também pode ser usado como linguagem de programação de alto nível. O GNU/Octave é uma linguagem de alto nível basicamente voltada para computação gráfica. Esse programa na maioria de seus comandos é compatível com o Matlab (que é um programa comercial). O programa pode ser utilizado também em modo script (textos de programação) e permite incorporar módulos escritos nas linguagens C++, C, Fortran e outras. O GNU/Octave foi escrito por John W. Eaton e muitos outros, estando disponível na forma GPL. O GNU Octave utiliza o GNUPLOT.

  3. Sumário • Comandos básicos • Matrizes • Gráficos em 2D e 3D • Criando script • Estatística • Polinômios • Calculo integral • Vetores

  4. 1. Comandos básicos • Operações aritméticas : Exemplos: Obs:Para remover da área de trabalho uma variável já atribuída, usa-se o comando clear, seguido do nome da variável, como em: > clear c Para apagar todas as variáveis, digita-se: > clear all

  5. Comandos especiais Trigonometria sin(x): Seno de x cos(x): Cosseno de x tan(x): Tangente de x asin(x): Seno inverso de x acos(x): Cosseno inverso de x atan(x): Tangente inverso de x sinh(x): Seno hiperbólico de x cosh(x): Cosseno hiperbólico de x tanh(x): Tangente hiperbólico de x asinh(x): Seno hiperbólico inverso de x acosh(x): Cosseno hiperbólico inverso de x atanh(x): Tangente hiperbólico inverso de x Arredondamento: floor(x): Arredonda x para baixo ceil(x): Arredonda x para cima round(x): Arredonda x para o inteiro mais próximo

  6. Exemplos das funções citadas: Observação importante: você pode digitar “;” (Ponto-e-vírgula) após uma certa linha de comando. Isto serve para o programa não dar a resposta do ‘cálculo’ na tela. Ele apenas armazena na memória dele a informação. E, para exibir o valor de uma variável, basta escrever o nome da variável desejada que o Octave exibirá o seu valor logo abaixo.

  7. As variáveis são criadas por você, durante o uso deste programa, e podem assumir valores numéricos (ou seja, reais ou complexos), matrizes, vetores, strings (seria um ‘vetor de caracteres’) entre outros. Para criar variáveis basta digitá-la no programa, assumir um valor para ela e pronto! Veja uns exemplos:

  8. Uma variável c = 9 + 5i (um número complexo) após declaramos a e b e c = a + 2b. Percebe-se que apareceu um erro. O Octave indica (^) em qual lugar está o erro. E foi a falta de asterisco (*) pra indicar a multiplicação de 2*b. Então, este programa não aceita a omissão deste sinal de multiplicação.

  9. Uma coisa interessante é que você pode escolher a quantidade de casas que você quer que apareça quando digitar a constante, ou melhor, você pode formatar o tipo da constante. Assim, vemos que há o format long, que apresenta 15 casas decimais. O format short, que aparece duas casas decimais, o format que nos dá 4 casas após a vírgula e, também, há format bank, com duas casas após a vírgula e com números complexos, não aparece a parte imaginária. Mais algumas constantes:

  10. O Comando disp( ) serve para exibir somente o valor final da entrada do usuário. >format long >disp(“Ovalor do numero eh:”),disp(e) O valor do numero eh: 2.71828182845905 Agora com dois ‘disp()’. Perceba que há uma vírgula entre eles! Num utilizei uma string e em outro coloquei o número ‘e’.

  11. Para definir funções, usa-se o comando “function” e em seguida a declaração da função y=f(x), por exemplo, seguida da função: >function y=f(x) >y=x^2; >endfunction >f(3) ans= 9

  12. 2. Matrizes • Para criar uma matriz, basta você inserir os valores destes entre colchetes: [ ]. Sendo que valores na mesma linha são separados por vírgula, e valores na mesma coluna são separados com ponto-e-vírgula

  13. Podemos adicionar, subtrair, achar a transposta de matrizes, entre outras operações. >a=[1,2;2,1]; >b=[2,1;1,2]; >a+b ans = 3 3 3 3

  14. >a*b ans= 4 5 5 4 >transpose(a) ans= 1 2 2 1 >c=[1 2; 2 3] ans= 1 2 2 3 >inverse(c) ans= -3 2 2 -1

  15. Para multiplicar uma matriz M =[1,2,3] por um escalar n, como n=3, fazer: 3*M: >M=[1,2,3] ans= 1 2 3 >3*M ans= 3 6 9 Para achar o determinante duma matriz, utilizar comando det(x) . >x=[1,2;2,1] ans= 1 2 2 1 >det(x) ans= 0

  16. Também há comandos prontos para matrizes. Tais como: • 1. ones(N,M) para construir uma matriz N × M com elementos de valor 1. • 2. zeros(N, M) para construir uma matriz N ×M com elementos de valor 0. • 3. eye(N,M) para construir uma matriz com elementos de valor 1 na diagonal. • 4. rand(N,M) para construir uma matriz N × M com elementos de valor.

  17. Resolução de sistemas lineares Para a resolução deste sistema é necessário, termos Ax=B, onde

  18. x=A\B, é conceitualmente equivalente a usar (A−1)B, o que dá a resolução deste tipo de problema.

  19. Outra forma de operação com matrizes é feita diretamente:

  20. No octave assim como no matlab é possível gerar vetores, vejamos:

  21. 3. Gráficos em 2D e 3D • Abaixo segue o gráfico do seno e o comando utilizado no Octave para plota o gráfico seno, o gráfico do cosseno e gráfico do seno junto com o do cosseno( veja páginas seguintes). >x=(0:0.01:2*pi); >y=sin(x); >plot(x,y) >title(“grafico do seno”) >xlabel(“eixo x”) >ylabel(“eixo y”) >grid on >print(’nome.png’,’-dpng’) % para salvar em PNG

  22. >clearplot >x=[0:0.01:2*pi]; >y1=sin(x); >y2=cos(x); >plot(y1,x) >title(“grafico seno”) >clearplot >plot(y2,x) >title(“grafico do cosseno”)

  23. O octave também pode plotar gráficos somente conhecendo os valores, ou seja, sem a função

  24. legend( 'texto1', 'texto2', 'location', 'pos' ): Coloca as legendas na posição indicada por pos, que podem ser: north, south, east, weast, northeast, northwest, southeast, southwest).

  25. Gráficos em 3D

  26. mesh( x, y, z ): Plota uma malha em 3D. Superfícies tipo do mesh são úteis para gerar grácos de funções de duas variáveis. O primeiro passo para plotar uma função de 2 variáveis z=f(x,y) é gerar matrizes x e y contendo linhas e colunas repetidas, respectivamente, para funcionarem como o domínio da função. A função meshgrid transforma o domínio especificado por dois vetores em duas matrizes x e y. Essas matrizes então são usadas para avaliar a função de 2 variáveis. O exemplo gera o gráfico referente à função O comando eps no exemplo representa a precisão da máquina e evita uma divisão por zero na linha 3.

  27. contour( z, w ): Plota linhas de contorno em duas dimensões. Se z depender de x e y, e w for uma constante, o resultado é a projeção de um gráfico em 3D no plano xy com w curvas de nível. O cotorno em 2D da função do exemplo anterior.

  28. contour3( x, y, z, n ): Plota contorno em 3D com n iso-linhas. Na figura tem-se o contorno 3D da função do exemplo passado. >contour3(x,y,z,40)

  29. surf( x, y, z ): Plota superfície 3D. A superfície 3D da função do exemplo passado. >surf(x,y,z)

  30. surface( x, y, z ): Plota a superfície de contorno 2D de um gráfico 3D. Vejamos o exemplo passado A cor de cada ponto do gráfico é proporcional ao valor que ele possui. Isso é feito distribuindo-se cores para as faixas de valores assumidos pela função.

  31. O comando subplot, com ele é possível fazer diversos gráficos em uma mesma tela, vejamos:

  32. Obs.: exitem formas mais diretas de se plotar um gráfico > fplot(‘1/(1+x.^2), [-5 5])

  33. Para introduzir barras em um gráfico, temos o comando colorbar(‘east’)

  34. 4. Criando script • No octave é possível criar um scritp para que não seja mais necessário repetir comandos. Basta escrever os comandos em um editor de texto e em seguida salvar com a extensão arquivo.m. Ou então, colocar: > edit Exemplo: resolução de equação do segundo graus.

  35. Basta escrever o nome do arquivo, e então aparece as raízes da equação do segundo graus.

  36. 5. Estatística • Abaixo temos um exemplo de cálculo de média e desvio padrão

  37. Outra variável importante em estatística é o coeficiente de correlação (que mede o grau da correlação entre duas variáveis).

  38. 6. Polinômios • Para se encontrar as raízes reais de um polinômio, basta utilizar a função roots( v ), que retorna em um vetor coluna, as raízes de um polinômio, cujos coeficientes das potências em ordem decrescente são os elementos do vetor v. As raízes do polinômio x2 + 3x - 4 são -4 e 1.

  39. Outra forma de representação de polinômios é a seguinte:

  40. Com o comando polyder é possível calcular a derivada de um dado polinômio.

  41. Para calcular integral de um polinômio, segue o comando: É possível ainda calcular o valor do polinômio, segue o comando:

  42. Para o produto e o quociente,

  43. 7. Calculo integral (integral definida)

  44. Outra forma de resolver uma integral definida é através do método trapezoidal. Utilizando o comando trapz(x,y)

More Related