A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 12.

Apresentações semelhantes


Apresentação em tema: "Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 12."— Transcrição da apresentação:

1 Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 12

2 Ludwig Krippahl, 2007 2 Na aula de hoje... Como vai ser o exame. Exemplos de perguntas. O que deve ficar depois do exame. Dúvidas e revisões.

3 Ludwig Krippahl, 2007 3 Pergunta simples Escreva as duas linhas que definem um ciclo em que a variável f toma todos os valores inteiros entre 1 e 20

4 Ludwig Krippahl, 2007 4 Pergunta simples Escreva as duas linhas que definem um ciclo em que a variável f toma todos os valores inteiros entre 1 e 20 for f=1:20 endfor

5 Ludwig Krippahl, 2007 5 Pergunta simples Qual o resultado de xpto(12,1) function x=xpto(num,flag) if flag x=num*2 else x=num/2 endif endfunction

6 Ludwig Krippahl, 2007 6 Pergunta simples Qual o resultado de xpto(12,1) 24

7 Ludwig Krippahl, 2007 7 Pergunta média Escreva uma função que devolve dois valores e recebe três argumentos. Os argumentos são números, o primeiro valor devolvido é o produto dos dois primeiros argumentos, o segundo valor devolvido é a soma do segundo argumento com o terceiro.

8 Ludwig Krippahl, 2007 8 Pergunta média Escreva uma função que devolve o produto dos dois primeiros argumentos e a soma do segundo argumento com o terceiro. function [pr,sm]=prodsum(n1,n2,n3) pr=n1*n2; sm=n2+n3; endfunction

9 Ludwig Krippahl, 2007 9 Pergunta média Qual o resultado de procvec([1,2,3,4],2)? function v=procvec(vin,lim) v=zeros(1,length(vin)); for f=1:length(v) if vin(f)>lim v(f)=vin(f); endif endfor endfunction

10 Ludwig Krippahl, 2007 10 Pergunta média Qual o resultado de procvec([1,2,3,4],2)? [0,0,3,4]

11 Ludwig Krippahl, 2007 11 Pergunta de desenvolvimento Considere as funções erro2AB cinetica minfn interpol

12 Ludwig Krippahl, 2007 12 Pergunta de desenvolvimento function r=erro2AB(vals,k) esteq=[-2,1]; cis=[1,0]; xy=cinetica(esteq,cis,k,0,0.01,vals(rows(vals),1) +1); int=interpol(xy,vals(:,1)); r=sum((vals(:,2)-int).^2); endfunction

13 Ludwig Krippahl, 2007 13 Pergunta de desenvolvimento function tconcs=cinetica(esteq,cis,kd,ki,dt,tmax) rs=find(esteq<0); ps=find(esteq>0); tconcs=[0,cis]; for t=0:dt:tmax dps=prod(cis(ps).^esteq(ps))*ki; drs=prod(cis(rs).^-esteq(rs))*kd; deriv=(drs-dps)*dt; cis=cis+deriv*esteq; tconcs=[tconcs;t,cis]; endfor endfunction

14 Ludwig Krippahl, 2007 14 Pergunta de desenvolvimento function yi=interpol(matxy,xi) yi=0*xi; for f=1:length(xi) for g=2:rows(matxy) if matxy(g,1)>=xi(f); x1 = matxy(g-1,1); x2 = matxy(g,1); y1 = matxy(g-1,2); y2 = matxy(g,2); d = x2-x1; yi(f) = (y1*(x2-xi(f))+y2*(xi(f)-x1))/d; break endif endfor

15 Ludwig Krippahl, 2007 15 Pergunta de desenvolvimento function xm=minfn(func,params,x1,xm,x2,prec) c1=0.618; c2=1-c1; ym=feval(func,params,xm); while abs(x2-x1)>prec if abs(x1-xm)>abs(x2-xm) xn=c1*xm+c2*x1; yn=feval(func,params,xn); if yn<ym x2=xm; xm=xn; ym=yn; else x1=xn; endif else xn=c1*xm+c2*x2; yn=feval(func,params,xn); if yn<ym x1=xm; xm=xn; ym=yn; else x2=xn; endif endwhile endfunction

16 Ludwig Krippahl, 2007 16 Pergunta de desenvolvimento Alínea A: Como calcular a constante cinética para a reacção 2A->B com os dados experimentais ([A] em função do tempo): vals=[0.5,0.5;2,0.2;6,0.07;9,0.055]; Sabendo que a constante está entre 0 e 2, e a precisão desejada é de 0.001.

17 Ludwig Krippahl, 2007 17 Pergunta de desenvolvimento Alínea A: Resposta: k=minfn("erro2AB",vals,0,1,2,0.001)

18 Ludwig Krippahl, 2007 18 Pergunta de desenvolvimento Alínea B: O que tinha que alterar para considerar o modelo de reacção A->B em vez de 2A->B.

19 Ludwig Krippahl, 2007 19 Pergunta de desenvolvimento Alínea B: O que tinha que alterar para considerar o modelo de reacção A->B em vez de 2A->B. Resposta Na função erro2AB, a linha esteq=[-2,1]; passar a esteq=[-1,1];

20 Ludwig Krippahl, 2007 20 Perguntas Excel Onde colocar o $ Funções simples (SUM, SUMIF, etc... as que vêm mencionadas nos slides). Como fazer série de números 1,2,3,... tabuada...

21 Ludwig Krippahl, 2007 21 O importante Para o exame: Funções Argumentos, valores de saída. Ciclos, condições If, while, for, ==, &, &&,... Variáveis Atribuição, trocar valores, incrementar, criar vectores e matrizes incrementalmente Excel: Nomes de células, $, funções simples, funções com vectores e matrizes

22 Ludwig Krippahl, 2007 22 O importante Para depois Noções básicas de programação imperativa Ciclos, condições, variáveis Modularidade e reutilização (funções) Métodos numéricos Integração, mínimos, zeros, Modelação de processos Ajuste de modelos


Carregar ppt "Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 12."

Apresentações semelhantes


Anúncios Google