Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouCauê Ferreiro Alterado mais de 10 anos atrás
1
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 5
2
Ludwig Krippahl, 2007 2 Na aula de hoje... Trabalho prático 1 Calcular concentrações de equilíbrio para um sistema de reacções químicas
3
Ludwig Krippahl, 2007 3 Objectivo Calcular concentrações de equilíbrio para um sistema de reacções químicas.
4
Ludwig Krippahl, 2007 4 Objectivo Calcular concentrações de equilíbrio para um sistema de reacções químicas. A função recebe: CH 3 COOH H + + CH 3 COO - H 2 O H + + OH - Concentrações iniciais Constantes
5
Ludwig Krippahl, 2007 5 Objectivo Calcular concentrações de equilíbrio para um sistema de reacções químicas. A função devolve: Concentrações de equilíbrio
6
Ludwig Krippahl, 2007 6 Objectivo Exemplo: octave:7> mat=['CH3COOH = H+ + CH3COO-';'H2O = H+ + OH-']; octave:8> eks=[1.78e-5,1.8e-16]; octave:9> esps=['CH3COOH';'H+';'CH3COO-';'H2O';'OH-']; octave:10> cis=[0.01,0,0,55.346,0]; octave:11> res=sistema(mat,esps,eks,cis,1e-8) res = 9.5869e-03 4.1309e-04 4.1308e-04 5.5346e+01 6.4431e-09
7
Ludwig Krippahl, 2007 7 Objectivo (exemplo) octave:11> res=sistema(mat,esps,eks,cis,1e-8) Matriz de strings descrevendo o sistema de reacções: mat=['CH3COOH = H+ + CH3COO-';'H2O = H+ + OH-'] CH3COOH = H+ + CH3COO- H2O = H+ + OH-
8
Ludwig Krippahl, 2007 8 Objectivo (exemplo) octave:11> res=sistema(mat,esps,eks,cis,1e-8) Matriz de strings com lista das espécies: esps=['CH3COOH';'H+';'CH3COO-';'H2O';'OH-'] CH3COOH H+ CH3COO- H2O OH-
9
Ludwig Krippahl, 2007 9 Objectivo (exemplo) octave:11> res=sistema(mat,esps,eks,cis,1e-8) Vector com constantes de equilíbrio: eks=[1.78e-5,1.8e-16] 1.7800e-05 1.8000e-16
10
Ludwig Krippahl, 2007 10 Objectivo (exemplo) octave:11> res=sistema(mat,esps,eks,cis,1e-8) Nota: k=1.8e-16 para auto dissociação da água porque inclui [H2O]:
11
Ludwig Krippahl, 2007 11 Objectivo (exemplo) octave:11> res=sistema(mat,esps,eks,cis,1e-8) Vector com concentrações iniciais (mesma ordem que na lista de espécies) cis=[0.01,0,0,55.346,0]
12
Ludwig Krippahl, 2007 12 Objectivo (exemplo) octave:11> res=sistema(mat,esps,eks,cis,1e-8) Precisão do cálculo (10 -8 ) Nota: XeY é o mesmo que X 10 Y
13
Ludwig Krippahl, 2007 13 Objectivo (exemplo) octave:11> res=sistema(mat,esps,eks,cis,1e-8) Função sistema devolve: 9.5869e-03 4.1309e-04 4.1308e-04 5.5346e+01 6.4431e-09 Na mesma ordem: CH3COOHH+ CH3COO-H2OOH-
14
Ludwig Krippahl, 2007 14 Execução (resumo) Parte 1: equilíbrio de uma reacção Parte 2: equilíbrio de um sistema Parte 1 e 2 lidam só com argumentos numéricos: estequiometria, constantes... Parte 3: converter strings em matriz de estequiometria Parte 4: juntar tudo.
15
Ludwig Krippahl, 2007 15 Parte 1 – estequiometria Reacção genérica: 2A + B 2D Desloca-se x para o equilíbrio: [A]=C i A-2x [B]=C i B-1x [D]=C i D+2x
16
Ludwig Krippahl, 2007 16 Parte 1 – estequiometria Reacção genérica: 2A + B 2D Usar estes coeficientes: [A]=C i A-2x [B]=C i B-1x [D]=C i D+2x
17
Ludwig Krippahl, 2007 17 Parte 1 – estequiometria Reacção genérica: 2A + B 2D Vector: [-2, -1, 2] [A]=C i A-2x [B]=C i B-1x [D]=C i D+2x
18
Ludwig Krippahl, 2007 18 Parte 1 – estequiometria Reacção genérica: 2A + B 2D Se também há C: [-2, -1, 0, 2] [A]=C i A-2x [B]=C i B-1x [C]=C i C +0x [D]=C i D+2x
19
Ludwig Krippahl, 2007 19 Parte 1 – concentrações Concentrações iniciais dadas por outro vector, com a mesma dimensão, pela mesma ordem (A, B, C, D): cis= [2, 2, 1, 0]
20
Ludwig Krippahl, 2007 20 Parte 1 - resultado Dados: esteq=[-2, -1, 0, 2] cis= [2, 2, 1, 0] k=1 precisao=1e-8 Função devolve 0.54660, que é o valor de x.
21
Ludwig Krippahl, 2007 21 Parte 1 - resultado Função devolve 0.54660, que é o valor de x: [A]=C i A-2x [B]=C i B-1x [C]=CiC +0x [D]=C i D+2x
22
Ludwig Krippahl, 2007 22 Parte 1 - algoritmo Calcular o valor de x que dá uma distância de zero ao equilíbrio 2A + B 2D
23
Ludwig Krippahl, 2007 23 Parte 1 - algoritmo Distância ao equilíbrio: positivo se reagentes a mais negativo se produtos a mais zero no equilíbrio
24
Ludwig Krippahl, 2007 24 Parte 1 - algoritmo Basta encontrar o valor de x para o qual a distância se anula, sabendo que: concentrações = cis+x*coeficientes
25
Ludwig Krippahl, 2007 25 Parte 1 - algoritmo Encontrar o zero de uma função. Mas precisamos do intervalo onde está o zero...
26
Ludwig Krippahl, 2007 26 Parte 1 – algoritmo (limites) 2A + B 2D Desloca-se x para o equilíbrio: [A]=C i A-2x [B]=C i B-1x [D]=C i D+2x Quais são os limites de x? O menor de C i A/2, C i B -C i D/2
27
Ludwig Krippahl, 2007 27 Parte 1 – algoritmo (limites) Quais são os limites de x? Positivo: o menor valor da concentração dos reagentes a dividir pelos coeficientes (atenção: os coeficientes dos reagentes são guardados como negativos). Negativo: o maior valor (é negativo) da concentração dos produtos a dividir pelo simétrico dos coeficientes (os coeficientes dos produtos são positivos na matriz)
28
Ludwig Krippahl, 2007 28 Parte 2 - algoritmo Dado um conjunto de reacções definido numa matriz (uma por linha): Calcular o x para a primeira, actualizar concentrações. Usar essas concentrações para a segunda, etc.. Guardar o maior valor absoluto de x Parar quando for menor que a precisão
29
Ludwig Krippahl, 2007 29 Parte 3 Criar a matriz de coeficientes estequimétricos a partir das matrizes de strings com reacções e espécies.
30
Ludwig Krippahl, 2007 30 Parte 3 - reacções O sinal + com um espaço antes e um espaço depois separa as espécies. Os espaços distinguem este uso do sinal + do caso em que faz parte do nome da espécie. E.g.: H+ + OH-
31
Ludwig Krippahl, 2007 31 Parte 3 - reacções O sinal + com um espaço antes e um espaço depois separa as espécies. Os espaços distinguem este uso do sinal + do caso em que faz parte do nome da espécie. E.g.: H+ + OH- Nome da espécie (não tem espaço antes do +)
32
Ludwig Krippahl, 2007 32 Parte 3 - reacções O sinal + com um espaço antes e um espaço depois separa as espécies. Os espaços distinguem este uso do sinal + do caso em que faz parte do nome da espécie. E.g.: H+ + OH- Separa espécies (tem espaços antes e depois do +)
33
Ludwig Krippahl, 2007 33 Parte 3 - reacções O sinal = que separa reagentes e produtos também tem um espaço antes e um espaço depois. E.g.: H2O = H+ + OH-
34
Ludwig Krippahl, 2007 34 Parte 3 - reacções Números no inicio de cada espécie indicam a estequiometria: 2NH4Cl + 2CaO = CaCl2 + Ca(OH)2 + 2NH3
35
Ludwig Krippahl, 2007 35 Parte 3 - reacções Números no inicio de cada espécie indicam a estequiometria: 2NH4Cl + 2CaO = CaCl2 + Ca(OH)2 + 2NH3 Quando não há número o coeficiente estequiométrico é 1.
36
Ludwig Krippahl, 2007 36 Parte 3 - espécies A lista de espécies é dada por uma matriz de strings. E.g.: NH4Cl CaO CaCl2 Ca(OH)2 NH3 Atenção que o Octave alinha as strings preenchendo com espaços.
37
Ludwig Krippahl, 2007 37 Parte 3 - espécies É preciso encontrar a espécie na lista para saber em que posição vem. A ordem da lista determina a ordem dos coeficientes de estequiometria. Para isso é preciso comparar strings: strcmp
38
Ludwig Krippahl, 2007 38 Parte 3 – comparar strings octave:7> strcmp('texto','texto') ans = 1 octave:8> strcmp('texto','outro texto') ans = 0 octave:9> 'texto'=='outro texto' error: operator ==: nonconformant arguments. octave:9> 'texto'=='texto' ans = 1 1 1 1 1
39
Ludwig Krippahl, 2007 39 Parte 3 – comparar strings Cuidado com os espaços: octave:10> strcmp('texto','texto ') ans = 0 Usar o deblank: remove espaços do fim
40
Ludwig Krippahl, 2007 40 Parte 3 – comparar strings Cuidado com os espaços: Usar deblank: octave:14> ['texto ','|'] ans = texto | octave:15> [deblank('texto '),'|'] ans = texto|
41
Ludwig Krippahl, 2007 41 Parte 3 – algoritmo (para cada reacção) Partir em reagentes e produtos Partir cada um em espécies Separar os nomes e os coeficientes de estequiometria. Encontrar a posição de cada reagente e produto na matriz de espécies Criar o vector de estequiometria (com 0 nos que não participam)
42
Ludwig Krippahl, 2007 42 Parte 3 – exemplo Reacções CH3COOH = H+ + CH3COO- H2O = H+ + OH- Lista CH3COOH H+ CH3COO- H2O OH- Resultado -1, 1, 1, 0, 0 0, 1, 0,-1, 1
43
Ludwig Krippahl, 2007 43 Parte 3 – exemplo Reacções CH3COOH = H+ + CH3COO- H2O = H+ + OH- Lista CH3COOHprimeiro da lista H+ CH3COO- H2O OH- Resultado -1, 1, 1, 0, 0 0, 1, 0,-1, 1
44
Ludwig Krippahl, 2007 44 Parte 3 – exemplo Reacções CH3COOH = H+ + CH3COO- H2O = H+ + OH- Lista CH3COOH H+segundo da lista CH3COO- H2O OH- Resultado -1, 1, 1, 0, 0 0, 1, 0,-1, 1
45
Ludwig Krippahl, 2007 45 Parte 3 – exemplo Reacções CH3COOH = H+ + CH3COO- H2O = H+ + OH- Lista CH3COOH H+ CH3COO-terceiro H2O OH- Resultado -1, 1, 1, 0, 0 0, 1, 0,-1, 1
46
Ludwig Krippahl, 2007 46 Parte 3 – exemplo Reacções CH3COOH = H+ + CH3COO- H2O = H+ + OH- Lista CH3COOH H+ CH3COO- H2Oquarto OH- Resultado -1, 1, 1, 0, 0 0, 1, 0,-1, 1
47
Ludwig Krippahl, 2007 47 Parte 3 – exemplo Reacções CH3COOH = H+ + CH3COO- H2O = H+ + OH- Lista CH3COOH H+ CH3COO- H2O OH-quinto Resultado -1, 1, 1, 0, 0 0, 1, 0,-1, 1
48
Ludwig Krippahl, 2007 48 Parte 4 – juntar tudo Recebe as matrizes de strings com reacções e espécies, os vectores com constantes de equilíbrio e concentrações iniciais, e valor para a precisão. Devolve a constante de equilibrio. Chamar função da parte 3, usar o resultado para a função da parte 2, devolver o resultado desta.
49
Ludwig Krippahl, 2007 49 Execução Grupos de 2 alunos. 2 aulas práticas + o tempo que for preciso. Em cada aula entregam uma ficha com o progresso até essa altura. Entrega da versão final: até 23 de Abril às 9:00 am.
50
Ludwig Krippahl, 2007 50 Fraudes Não tirem dúvidas com os colegas. Não copiem. Os trabalhos vão ser comparados, incluindo as fichas com as versões intermédias. Copiar prejudica quem copia e quem deixa copiar.
51
Ludwig Krippahl, 2007 51 Dúvidas durante o trabalho Aproveitem as aulas para tirar dúvidas. Horário de dúvidas. Email.
52
Ludwig Krippahl, 2007 52 Dúvidas
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.