Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 10.

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
INFORMAÇÕES COMPLEMENTARES
A busca das mulheres para alcançar seu espaço dentro das organizações
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Capa Disciplina: Ajustamento de Observações
Investor Relations4Q07 | 1. Investor Relations4Q07 | 2 2.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 12.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 5.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 11.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 5.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 9.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 3.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 4.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 10.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 6.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 13.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 9.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 4.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 6.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 7.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 10.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 2.
Integração Numérica – Áreas e Equações
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004 Variáveis, matrizes e séries 2.1 Octave Variáveis, Matrizes e Séries.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 11.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 4.
Curso de ADMINISTRAÇÃO
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
EXPRESSÕES ARITMÉTICAS
FUNÇÃO MODULAR.
Aula 4 Nomes, Vinculações, Tipos e Escopos
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
Mecânica dos Sólidos não Linear
Nossa Velha - Nova Cruz Alta Parte 31.
Provas de Concursos Anteriores
APRESENTAÇÃO Está prevista a utilização de 6 aulas (6 blocos de 90 minutos) para o ensino do Subtema das Funções Quadráticas. Todas as aulas servirão.
Renda até 2 SM.
MECÂNICA - ESTÁTICA Cabos Cap. 7.
Diagnósticos Educativos = Diagnósticos Preenchidos 100% = 1.539
(CESPE/ Técnico Judiciário do TRT 17ª Região/ES) O Superior Tribunal de Justiça entende que o candidato aprovado em concurso público dentro do limite.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
1 CENTRO DE DESENVOLVIMENTO E PLANEJAMENTO REGIONAL – 2006 P Ó S-GRADUA Ç ÃO EM ECONOMIA Microeconomia I Prof.: Edson Domingues Cap í tulo II: Escolha.
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
LINHAS MAIS RECLAMADAS Ranking Negativo para Fiscalização Direcionada Conservação - Frota ANO IV – Nº 06.
Veículos e Sustentabilidade Ambiental
Lemas (Sudkamp)  .
Trabalho sobre Cor Thiago Marques Toledo.
LINHAS MAIS RECLAMADAS Ranking Negativo para Fiscalização Direcionada Conservação - Frota ANO IV – Nº 08.
Coordenação Geral de Ensino da Faculdade
Tributação da Exportação nas Empresas optantes pelo Simples Nacional
Estudo dos Gases Prof. Fabio Costa.
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
Projeto Medindo minha escola.
C ORROPIOS, C ARDINCHAS E C ÃES G RANDES O LIVRO de José Paixão em imagens – com pistas de leitura propostas por por www.joraga.net.
Nossa Velha - Nova Cruz Alta Parte 21.
Estatística.
Estatística Aula 9 – 28/02/2011.
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
Equipe Bárbara Régis Lissa Lourenço Lucas Hakim Ricardo Spada Coordenador: Gabriel Pascutti.
AM020C A interface entre Meio Ambiente, Sociedade e Economia Indicadores de produtividade e empregabilidade da agricultura do Brasil. Aluna Andressa Santos.
Transcrição da apresentação:

Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 10

Ludwig Krippahl, Ficha 7 Não é para entregar Mas é para fazer... Aula de compensação? Turnos P3-6

Ludwig Krippahl, Na aula de hoje... Resolução do trabalho 1 Integração de funções de uma variável. Integração de equações diferenciais. Osciladores químicos.

Ludwig Krippahl, Trabalho 1 Discussões do trabalho Não entregaram intermédia, ou muito incompleta Não tivemos oportunidade de acompanhar Muito diferente do que foi dado... Lista a afixar, depois contactem o docente das práticas. Se possível, será na aula prática

Ludwig Krippahl, Objectivo Acertar reacções químicas ?H 2 + ?O 2 ?H 2 O

Ludwig Krippahl, Objectivo Acertar reacções químicas ?H 2 + ?O 2 ?H 2 O Reacções simples (não redox, etc) Nenhum termo com parêntesis Ca(NO 3 ) 2 fica CaN 2 O 6.

Ludwig Krippahl, Objectivo Acertar reacções químicas ?H 2 + ?O 2 ?H 2 O 2H 2 + O 2 2H 2 O

Ludwig Krippahl, Partir o problema Ler o ficheiro Estruturar cada reacção Procurar coeficientes Testar se acertou Gravar resultados

Ludwig Krippahl, Tirar os espaços function t=semespacos(s) t=""; for f=1:length(s) if s(f)>" " t=[t,s(f)]; endif endfor endfunction

Ludwig Krippahl, Tirar os espaços Menos intuitivo, mas mais sucinto: function t=semespacos(s) t=s(s> " " ); endfunction

Ludwig Krippahl, Testar coeficientes ?H 2 + ?O 2 ?H 2 O Vector de coeficientes: [1 1 1] Codificar em vectores tb H: [2 0 -2] O: [0 2 -1] (produtos a negativo) Testar se sum(co.*el)==0

Ludwig Krippahl, Testar coeficientes Estrutura com.esteq.el A estequiometria para o teste O elemento para podermos organizar a estequiometria

Ludwig Krippahl, Testar coeficientes function r=testa(esteq,lista) r=true; for f=1:length(lista) if sum(esteq.*lista(f).esteq)!=0 r=false; break endif endfor endfunction

Ludwig Krippahl, Procurar coeficientes 0: [1 1 1] 1: [2 1 1] [1 2 1] [1 1 2] 2: [3 1 1] [2 2 1] [2 1 2] [2 2 1] [1 3 1] [1 2 2] [2 1 2] [1 2 2] [1 1 3] 3:...

Ludwig Krippahl, Procurar coeficientes testatodos.m

Ludwig Krippahl, Criar os coficientes Lista de termos.termo.produto Cada termo, decompor Cada elemento, acrescentar a lista de elementos.el.esteq

Ludwig Krippahl, Criar os coficientes acrescentar.m Acrescentar cada elemento à lista crialista.m Percorre lista de termos Decompõe e acrescenta

Ludwig Krippahl, Processar cada reacção Partir em termos Tirar os coeficientes Gerar o vector com.termo.produto

Ludwig Krippahl, Processar cada reacção tiranumero.m Devolve o número (ou 1) e o resto do termo separatermos.m Recebe a reacção e devolve o vector com.termo.produto Devolve também a estequiometria inicial

Ludwig Krippahl, Processar cada reacção Com uma reacção Separar os termos [ltermos,esteq]=separatermos(reac); Criar o vector com as estequiometrias lelems=crialista(ltermos); Testar o inicial e depois todos [encontra,esteq]=testatodos... acerta.m

Ludwig Krippahl, Juntar tudo Percorre ficheiro de entrada Cada reacção acerta(r,maximo); Se vazio, não conseguiu, Caso contrário, escreve reacção acertada acertada.m acertatudo.m

Ludwig Krippahl, Trabalhos práticos Começar com tempo Aproveitar as aulas práticas e teóricas

Ludwig Krippahl, Integração numérica. y = exp(-x 3 )

Ludwig Krippahl, Integração numérica Aproximar a função considerando cada rectângulo dx*y

Ludwig Krippahl, Integração numérica Quanto menor dx mais aproximado dx*y

Ludwig Krippahl, Integração numérica function int=intexpxcubo(dx,x0,x1); int=0; for x=x0:dx:x1-dx int=int+dx*exp(-x^3); endfor endfunction

Ludwig Krippahl, Integração numérica octave:114> intexpxcubo(0.2,0,2) ans = octave:115> intexpxcubo(0.02,0,2) ans = octave:116> intexpxcubo(0.002,0,2) ans = octave:117> intexpxcubo(0.0002,0,2) ans =

Ludwig Krippahl, Integração numérica Aproximar melhor pela regra do trapézio

Ludwig Krippahl, Integração numérica Àrea: base*(a+b)/2 a b base

Ludwig Krippahl, Integração numérica Implementação: Método ingénuo: calcular os dois y em cada iteração. Método mais eficiente: calcular o y2 e guardá- lo no y1 para a próxima y1 y2

Ludwig Krippahl, Integração numérica function int=intexcubot(dx,x0,x1) int=0; y1=exp(-x0^3); for x=x0+dx:dx:x1 y2=exp(-x^3); int=int+dx*(y1+y2)/2; y1=y2; endfor endfunction

Ludwig Krippahl, Integração numérica octave:180> intexcubot(0.2,0,2) ans = octave:181> intexpxcubo(0.2,0,2) ans = octave:182> intexcubot(0.002,0,2) ans = octave:183> intexpxcubo(0.002,0,2) ans =

Ludwig Krippahl, Integração numérica Implementação mais genérica: Separar a função que calcula o y da função que integra.

Ludwig Krippahl, Integração numérica Implementação mais genérica: Cálculo y em função de x function y = nome(x) function y=expxcubo(x) y=exp(-x.^3); endfunction

Ludwig Krippahl, Integração numérica Implementação mais genérica: Integração, chamando a função com feval function int=trapezio(funcao,dx,x0,x1) int=0; y1=feval(funcao,x0); for x=x0+dx:dx:x1 y2=feval(funcao,x); int=int+dx*(y1+y2)/2; y1=y2; endfor endfunction

Ludwig Krippahl, Integração numérica Implementação mais genérica: octave:185> trapezio("expxcubo",0.2,0,2) ans = Nota: expxcubo em vez de expxcubo!

Ludwig Krippahl, E se não podemos traçar a função? Exemplo: A + B C d[C]/dt = K [A] [B] d[A]/dt = -K [A] [B] d[B]/dt = -K [A] [B] Não podemos calcular a área geometricamente pelo gráfico da função.

Ludwig Krippahl, E se não podemos traçar a função? Exemplo: A + B C d[C]/dt = K [A] [B] d[A]/dt = -K [A] [B] d[B]/dt = -K [A] [B] Mas podemos usar um método semelhante: método de Euler

Ludwig Krippahl, Integrar um sistema de equações diferenciais. Inicio, t 0 [A] 0 [B] 0 [C] 0 Passo 1 Usar valores em t 0 para calcular derivada em t 0 Usar derivada para extrapolar t 1 : [A] 1 = [A] 0 + d[A]/dt * passo

Ludwig Krippahl, Integrar um sistema de equações diferenciais. Inicio, t 0 [A] 0 [B] 0 [C] 0 Passo 1 Usar valores em t 0 para calcular derivada em t 0 Usar derivada para extrapolar t 1 : [A] 1 = [A] 0 + d[A]/dt * passo Próximo valor

Ludwig Krippahl, Integrar um sistema de equações diferenciais. Inicio, t 0 [A] 0 [B] 0 [C] 0 Passo 1 Usar valores em t 0 para calcular derivada em t 0 Usar derivada para extrapolar t 1 : [A] 1 = [A] 0 + d[A]/dt * passo Valor anterior

Ludwig Krippahl, Integrar um sistema de equações diferenciais. Inicio, t 0 [A] 0 [B] 0 [C] 0 Passo 1 Usar valores em t 0 para calcular derivada em t 0 Usar derivada para extrapolar t 1 : [A] 1 = [A] 0 + d[A]/dt * passo Derivada vezes passo.

Ludwig Krippahl, Integrar um sistema de equações diferenciais. function tcs=reacabc(cis,dt,tmax,k) tcs=[0,cis]; %valores em t0 for t=dt:dt:tmax abk=cis(1)*cis(2)*k*dt; calcular a derivada % A e B cis(1)=cis(1)-abk; cis(2)=cis(2)-abk; % C cis(3)=cis(3)+abk;actualizar concentrações % guarda o novo ponto tcs=[tcs;t,cis]; endfor endfunction

Ludwig Krippahl, Integrar um sistema de equações diferenciais. function tcs=reacabc(cis,dt,tmax,k) tcs=[0,cis]; %valores em t0 for t=dt:dt:tmax abk=cis(1)*cis(2)*k*dt; calcular a derivada % A e B cis(1)=cis(1)-abk; cis(2)=cis(2)-abk; % C cis(3)=cis(3)+abk;actualizar concentrações % guarda o novo ponto tcs=[tcs;t,cis]; endfor endfunction

Ludwig Krippahl, Integrar um sistema de equações diferenciais. cis=[1,1.5,0] k=1; pontos=reacabc(cis,0.1,10,k); hold off axis plot(pontos(:,1),pontos(:,2:columns(pontos))) Plot: primeira coluna é o tempo, as restantes colunas são as concentrações

Ludwig Krippahl, Integrar um sistema de equações diferenciais.

Ludwig Krippahl, Generalizando: cinética com método de Euler Exemplo A + B C Reacção reversível: kd e ki Velocidade = [C]ki - [A][B]kd

Ludwig Krippahl, Generalizando: cinética com método de Euler Recebe Estequiometria, Concentrações iniciais Kd, Ki, dt e tmax. Caso geral Veloc. = kd*reagentes esteq - ki*produtos esteq Alterar as concentrações d[A]/dt= velocidade*esteq(A) cs=cs+derivada*dt

Ludwig Krippahl, Generalizando: cinética com método de Euler Devolve Matriz com tempo (1ª coluna) e concentração por iteração (para fazer o gráfico). Estequiometria, 2 vectores, reagentes e produtos Exemplo: A + B 2C er=[1, 1, 0] ep=[0, 0, 2]

Ludwig Krippahl, Generalizando: cinética com método de Euler Exemplo: A + B 2C er=[1, 1, 0] ep=[0, 0, 2] A 1 *B 1 *kdv directa C 2 *kiv inversa

Ludwig Krippahl, Cinética com método de Euler Função function tconcs=cinetica(er,ep,cis,kd,ki,dt,tmax)

Ludwig Krippahl, Cinética com método de Euler Integração: tconcs=[0,cis]; for t=dt:dt:tmax v=prod(cis.^er)*kd-prod(cis.^ep)*ki; deriv=v*ep-v*er; cis=cis+deriv*dt; tconcs=[tconcs;t,cis]; endfor Velocidade da reacção Produto concentrações elevadas à estequiometria

Ludwig Krippahl, Cinética com método de Euler Integração: tconcs=[0,cis]; for t=dt:dt:tmax v=prod(cis.^er)*kd-prod(cis.^ep)*ki; deriv=v*ep-v*er; cis=cis+deriv*dt; tconcs=[tconcs;t,cis]; endfor Calcula derivadas e actualiza concentrações

Ludwig Krippahl, Cinética com método de Euler Integração: tconcs=[0,cis]; for t=dt:dt:tmax v=prod(cis.^er)*kd-prod(cis.^ep)*ki; deriv=v*ep-v*er; cis=cis+deriv*dt; tconcs=[tconcs;t,cis]; endfor Guarda valores na matriz

Ludwig Krippahl, Cinética com método de Euler Reacção do tipo A + B C kd=1;constante directa ki=0.5;constante inversa cis=[1,2,0];concentrações t 0 er=[1,1,0]esteq. reagentes ep=[0,0,1]esteq. produtos pontos=cinetica(er,ep,cis,kd,ki,0.1,5);

Ludwig Krippahl, Cinética com método de Euler Reacção do tipo A + B C hold off axiseixo automático plot(pontos(:,1),pontos(:,2:columns(pontos)))

Ludwig Krippahl, Cinética com método de Euler

Ludwig Krippahl, Sistema de reacções. Mesma abordagem, mas a estequiometria é uma matriz (uma linha por reacção) e cada constante cinética um vector (um valor por reacção)

Ludwig Krippahl, Sistema de reacções. Alterações: Na iteração é preciso calcular primeiro todas as derivadas tendo em conta todas as reacções (um ciclo pelas linhas das matrizes). Só depois de ter todas as derivadas é que se actualiza todas as concentrações.

Ludwig Krippahl, Sistema de reacções. Função function tconcs=cineticas(ers,eps,cis,kds,kis,dt,tmax) (para fazer na aula)

Ludwig Krippahl, Sistema de reacções. Exemplo: Oscilador químico (Lotka) Não se conhece nenhuma assim, mas esta é simples de modelar. A + X 2X X + Y 2Y Y Q

Ludwig Krippahl, Sistema de reacções. ers=[ ; ; ]; eps=[ ; ; ]; kds=[0.05,1,1]; kis=[0,0,0]; cis=[50,1,1,0]; t=cineticas(ers,eps,cis,kds,kis,0.01,50); plot(t(:,1),t(:,2:columns(t))); A + X 2X X + Y 2Y Y Q

Ludwig Krippahl, Sistema de reacções.

Ludwig Krippahl, Sistema de reacções.

Ludwig Krippahl, Resumo Integração numérica Se podemos calcular o y Calcular pontos, y, multiplicar pelo dx Melhor ainda, trapézio Equações diferenciais Método de Euler, calcular derivada em t, usar valores em t e extrapolar para t+dt. Cinética Estequiometria e constantes.

Ludwig Krippahl, Dúvidas