1 / 51

Programação para as Ciências Experimentais 2007/8

Programação para as Ciências Experimentais 2007/8. Teórica 1. Informação. Página de PCE: http://ssdi.di.fct.unl.pt/pce/ Lista de discussão: https://mail.di.fct.unl.pt/mailman/listinfo/di-pce. Na aula de hoje. Objectivos, trabalhos e avaliação Aulas teóricas e práticas Octave. Objectivos.

jacoba
Download Presentation

Programação para as Ciências Experimentais 2007/8

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. Programação para as Ciências Experimentais2007/8 Teórica 1 Ludwig Krippahl, 2008

  2. Informação • Página de PCE: • http://ssdi.di.fct.unl.pt/pce/ • Lista de discussão: • https://mail.di.fct.unl.pt/mailman/listinfo/di-pce

  3. Na aula de hoje... • Objectivos, trabalhos e avaliação • Aulas teóricas e práticas • Octave

  4. Objectivos • Conceitos básicos de programação em Octave/MATLAB. • Métodos numéricos e de simulação. • Processamento de dados com Octave e Excel.

  5. Avaliação Prática • Obrigatória. • Máximo 4 faltas. • Mínimo 9.5 de nota (9.49999 reprova). • Conta 25% da nota final. • Quem tem frequência não se inscreve • Excepto se quiser prescindir da nota do ano passado. • Só conta nota de 06-07.

  6. Avaliação Prática: Trabalhos • Fichas das aulas: • Conta 1/6 da prática. • Uma por aula de exercícios. • Avaliadas em conjunto no final do semestre, como parte da avaliação do desempenho e participação de cada aluno.

  7. Avaliação Prática: Trabalhos • Primeiro trabalho prático (Octave): • 1/3 da nota prática. • Data a anunciar, 2 aulas + trabalho em casa. • Resolução de problemas numéricos (simulação e/ou integração) com programação em Octave.

  8. Avaliação Prática: Trabalhos • Segundo trabalho (Octave+Excel): • 1/2 da nota prática. • A anunciar, 2-3 aulas + trabalho em casa. • Resolução de problemas com programação Octave e folha de cálculo (Excel). Inclui manipulação de ficheiros e partilha de dados entre as duas aplicações.

  9. Avaliação Teórica • Exame individual escrito, aproximadamente: • ¾ Octave. • ¼ Excel.

  10. Nota final • Prática: • (Fichas+2*TP1+3*TP2)/6 • Se Prática >= 9.5, Exame (e frequência) • Nota final 0.25 * Prática + 0.75 * Exame • Arredondada ao inteiro mais próximo. • Sem excepções.

  11. Aulas Práticas • Praticar e tirar dúvidas. • Fazer parte dos trabalhos. • Todos os trabalhos e fichas para enviar como attachment para praticaspce@di.fct.unl.pt • Não enviem nada no corpo do email (não o vamos ler...)

  12. Aulas Práticas • Login: alunopcePassword: pce!2008 • Um dos elementos do grupo deve ter uma conta de email com webmail. • Trabalhar no My Documents; no fim copiar tudo para o pendisk. • O que deixarem no PC do laboratório é apagado assim que fizerem log off.

  13. Aulas Teóricas • Não é para decorar. • Alguma flexibilidade: • Rever matéria • Abordar um problema específico • Dúvidas... • Mas com uma aula de antecedência... • 60 minutos + 20 para dúvidas

  14. Octave • Versão gratuita e open-source do Matlab

  15. Octave • Alguns comandos: • pwd (present working directory) • ls (list), ou dir • cd (change directory)

  16. Octave • Exemplo octave.exe:1> pwd ans = C:\Program Files\Octave octave.exe:2> dir . Octave-Forge.url doc libexec share .. README.txt include license tools GNU Octave.url bin lib msys uninst.exe octave.exe:3> cd bin octave.exe:4> pwd ans = C:\Program Files\Octave\bin octave.exe:5>

  17. Octave • Comando, resultado, comando... octave:10> 2+3 ans = 5 octave:11> ans+5 ans = 10 octave:12>

  18. Octave • ; se não queremos ver o resultado octave:12> 12*5; octave:13> 23+1; octave:14>

  19. Octave • Operações básicas: • + - * / ^ • Variáveis: • Nome começa com letra, pode conter letras, números, ou underscore ( _ ) • Var1, var1, x, xpto, XPTO, uma_variavel • = atribui um valor à variável: x = 0 • Atenção à maiúsculas e minúsculas... • ans é uma variável

  20. Octave • Exemplos • X=2 atribui 2 à variável X • A=x erro. • A=X OK.

  21. Exemplo • Cálculo de concentração. • NaCL: massa molar 58.4 g/mol • Concentração de 2g em 125ml?

  22. Exemplo • Cálculo de concentração. • NaCL: massa molar 58.4 g/mol • Concentração de 2g em 125ml? mmNaCl=58.4 v=0.125 q=2/mmNaCl c=q/v

  23. Exemplo • Sequências de comandos: • Usem o editor. Corre com o comando edit no octave. • Escrevam no editor. Depois seleccionam, copy (ctrl+c) e paste no Octave (shift+ins).

  24. Gestão de Variáveis • who lista as variáveis definidas • clear “esquece-se” delas

  25. Vectores e matrizes • Números entre [ ] • Espaço ou virgula representa coluna nova. • Ponto e vírgula representa linha nova. • Vector coluna: • [1;2;3] • Vector linha: • [1 2 3] ou [1 2 3]

  26. Vectores e matrizes • Matriz: [1,2,3;4,5,6;7,8,9] octave:14> m=[1,2,3;4,5,6;7,8,9] m = 1 2 3 4 5 6 7 8 9 octave:15>

  27. Composição de vectores e matrizes octave:15> m=[1,2;3,4] m = 1 2 3 4 octave:16> m2=[5,6;7,8] m2 = 5 6 7 8

  28. Composição de vectores e matrizes octave:17> [m;m2] ans = 1 2 3 4 5 6 7 8 octave:18> [m,m2] ans = 1 2 5 6 3 4 7 8 octave:19>

  29. Composição de vectores e matrizes • Atenção: tem que “encaixar” • Matriz 2x2 com uma de 3x3 não dá

  30. Transposta: ‘ (plica) octave:19> v=[1,2,3] v = 1 2 3 octave:20> v' ans = 1 2 3 octave:21>

  31. Produto de matrizes m1 = 1 2 3 4 m2 = 2 2 2 2 m1*m2 = 6 6 14 14

  32. Produto de matrizes, . m1 = 1 2 3 4 m2 = 2 2 2 2 m1.*m2 = 2 4 6 8

  33. Operação elemento a elemento • O ponto antes do operador indica que a operação é elemento a elemento. • M1.*M2: multiplicar cada elemento de M1 pelo correspondente em M2 • M1.^M2: elevar cada elemento de M1 pelo correspondente em M2 • Os dois operadores têm que ter as mesmas dimensões

  34. Operação elemento a elemento • Exemplos l=[1,2,3,4,5] c=[1;2;3;4;5] l*c c*l l.*c l.*c’

  35. Séries • No Octave podemos criar um vector linha com uma série indicando: • Inicio: [passo:] fim • O passo é opcional. • E.g. 1:2:5 [1,3,5]

  36. Séries octave:29> 1:0.5:3 ans = 1.0000 1.5000 2.0000 2.5000 3.0000 octave:30> 3:-1:0 ans = 3 2 1 0 octave:31> 1:10 ans = 1 2 3 4 5 6 7 8 9 10 octave:32> 1:9.5 ans = 1 2 3 4 5 6 7 8 9 (termina no último que não ultrapassa)

  37. Para que é que isto serve? • Cada casal de coelhos tem 4 filhos. Quantos coelhos em 10 gerações? • Dez gerações, de 1 a 10 • Em cada geração temos 2, 4, 8, 16 • Ou seja 21, 22, 23, 24.

  38. Para que é que isto serve? octave:33> G=1:10 G = 1 2 3 4 5 6 7 8 9 10 octave:34> Coelhos=2.^G Coelhos = 2 4 8 16 32 64 128 256 512 1024

  39. Aceder parte da matriz • M(linhas, colunas) • Linhas e colunas pode ser vector, e pode ser definido por uma série.

  40. Aceder parte da matriz octave:35> m=[1,2;3,4] m = 1 2 3 4 octave:36> m(2,2) ans = 4 octave:37> m([1,2],2) ans = 2 4

  41. Aceder parte da matriz octave:38> m(:,:) ans = 1 2 3 4 octave:39> m(2:-1:1,1) ans = 3 1

  42. Aceder parte da matriz octave:40> m([2,1],1) ans = 3 1

  43. Aceder parte da matriz • Elementos par da segunda linha • M( 2 , 2:2:30 ) 2, 4, 6, 8.... • Duas em duas linhas, todas as colunas • M(1:3:50, : ) 1, 3, 5... : quer dizer tudo

  44. Funções e operador p/ matrizes • det determinante • inv inversa • \ M \ V : resolve sistema • 2x+y=0 (Eliminação de Gauss) • x-y=2

  45. Funções e operador p/ matrizes • \ M \ V : resolve sistema 2x+y=0 x-y=2 octave:8> m=[2,1;1,-1] m = 2 1 1 -1 octave:9> r=[0;2] r = 0 2 octave:10> m\r ans = 0.66667 -1.33333

  46. Funções para matrizes (ou não) • eye identidade • zeros • ones • rand aleatório, entre 0 e 1.

  47. Funções para matrizes (ou não) • Sem argumentos: um escalar: octave:51> eye ans = 1 octave:52> rand ans = 0.22768 octave:53> zeros ans = 0

  48. Funções para matrizes (ou não) • Um argumento: matriz quadrada. octave:54> eye(2) ans = 1 0 0 1 octave:55> rand(3) ans = 0.854082 0.101465 0.290800 0.510179 0.018994 0.088951 0.716649 0.855890 0.813545

  49. Funções para matrizes (ou não) • Dois argumentos: linhas, colunas octave:56> zeros(2,3) ans = 0 0 0 0 0 0 octave:57> ones(1,10) ans = 1 1 1 1 1 1 1 1 1 1 octave:58>

  50. Funções para matrizes (ou não) • Regra geral: funções que o Octave fornece servem para escalares e matrizes. octave:58> sin(2) ans = 0.90930 octave:59> sin([1,2;3,4]) ans = 0.84147 0.90930 0.14112 -0.75680

More Related