+ All Categories
Home > Documents > Objectos persistentes: pickle and shelve · 2005. 12. 9. · Objectos persistentes: pickleand...

Objectos persistentes: pickle and shelve · 2005. 12. 9. · Objectos persistentes: pickleand...

Date post: 01-Feb-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
40
Objectos persistentes: pickle and shelve Um objecto x pode ser guardado num ficheiro f, aberto para escrita usando o seguinte método do módulo pickle: pickle.dump(x,f) Para ler de novo o objecto do ficheiro basta fazer x = pickle.load(f) Computadores e Programac ¸ ˜ ao – p.245
Transcript
  • Objectos persistentes: pickle and shelve

    • Um objecto x pode ser guardado num ficheiro f, aberto paraescrita usando o seguinte método do módulo pickle:

    pickle.dump(x,f)

    • Para ler de novo o objecto do ficheiro basta fazer

    x = pickle.load(f)

    Computadores e Programação – p.245

  • Objectos persistentes: pickle and shelve

    • A serialização (conversão para string) dos objectos é feitaautomaticamente, bem como a sua reconversão no tipo original.Praticamente qualquer objecto pode ser guardado num ficheiro.Contudo há que ter o cuidado de carregar os objectos do ficheiroexactamente pela mesma ordem em que foram guardados!

    • Esta restrição é levantada no módulo shelve. Utilizando estemódulo podemos guardar os nossos objectos num ficheiro quefunciona como base de dados onde os objectos são indexadospor uma string única a cada objecto. A interface de utilizaçãodesta base de dados assemelha-se à de um dicionário, comomostra o exemplo seguinte.

    • O módulo shelve permite implementar muito facilmente umabase de dados sofisticada.

    Computadores e Programação – p.246

  • Objectos persistentes: pickle and shelve

    import shelvedb = shelve.open(’myfile’,’n’) # n = new filex,y,z = 123, ’abc’, {1:’a’,2:’bbbb’}class C:

    def __init__(self,x):self.x = x

    def __str__(self):return "C instance> %d" % (self.x)

    if ___name__ == "__main__":c = C(123)db[’x’] = xdb[’y’] = ydb[’z’] = zdb[’c instance’]= cdb[’C class’] = Cdb.close()db = shelve.open(’myfile’,’c’) # c = append datafor c in "xyz": print db[c]db.close()

    Computadores e Programação – p.247

  • Redirecção de input e output

    • Por vezes é útil redireccionar a saída de um programa do écranpara um ficheiro. Também pode ser útil que um programa passe aler os dados que normalmente entram pelo teclado a partir de umficheiro. Se o programa correr no sistema operativo Linux (ounum sistema Unix) a redirecção da entrada e saída pode fazer-sena linha de comando:

    python myprog < input.dat > output.out

    • Outros sistemas operativos não dispõem desta facilidade. Noentanto, o Python permite fazer a redirecção dos ficheirosstandard de entrada, saída e de erro de uma forma portátil. Estesficheiros estão definidos no módulo sys com os nomes stdin,stdout e stderr. Por omissão, sys.stdin aponta para oteclado, e sys.stdout e sys.stderr para o écran. Aredirecção da entrada e saída faz-se pondo estes nomes aapontar para outros ficheiros.

    Computadores e Programação – p.248

  • Redirecção de input e output

    • O pequeno programa do próximo slide mostra um equivalenteportátil da instrução Unix dada atrás. Para correr o programa,deve digitar-se na linha de comando

    python myprog input.dat output.out

    • Os ficheiros de nome “input.dat” e “output.dat” serão atribuídosno início do programa a sys.stdin e sys.stdout.

    • Notar que sys.argv é uma lista que contém as strings deevocação do programa: sys.argv[0] é o nome do programa esys.argv[1:] os argumentos do programa, neste casos osnomes dos ficheiros de input e output.

    Computadores e Programação – p.249

  • Redirecção de input e output

    #!/usr/bin/env pythonimport sys

    try:sys.stdin = open(sys.argv[1],’r’)

    except:print "Error opening input file.",sys.stdinsys.exit()

    try:sys.stdout = open(sys.argv[2],’w’)

    except:print "Error opening output file",sys.stdoutsys.exit()

    for line in sys.stdin:print line[:-1] #remove last char (CR)

    Computadores e Programação – p.250

  • Redirecção de input e output

    • Como não houve redirecção do ficheiro sys.stderr, asmensagens de erro eventualmente geradas pelo programa serãoainda enviadas para o écran. Para que estas mensagens tambémsejam enviadas para o ficheiro de saída que atribuímos asys.stdout bastava incluir a instrução sys.stderr =sys.stdout a seguir à redirecção de sys.stdout.

    Computadores e Programação – p.251

  • Derivação numérica

    Possuindo apenas duas listas de números (o valor fk de uma funçãonum conjunto discreto de pontos igualmente espaçados xk) comoobter as derivadas da função num desses pontos?

    x f(x)

    x1 f1

    x2 f2

    . . . . . .xn fn

    Computadores e Programação – p.252

  • Derivação numérica

    As várias fórmulas de derivação numérica obtêm-se fazendocombinações simples da expansão em série de Taylor da função nospontos próximos do ponto onde se pretende calcular a derivada.

    • Fórmula de 2 pontos para a primeira derivadaPartindo de

    fk+1 = fk + f′

    k(xk+1 − xk) +1

    2f ′′k (xk+1 − xk)2 + · · ·

    obtém-se, visto que h = xk+1 − xk,

    f ′k =fk+1 − fk

    h+ O(h)

    Computadores e Programação – p.253

  • Derivação numérica

    • Fórmula de 3 pontos para a primeira derivadaObtém-se subtraindo

    fk−1 = fk − f ′kh +1

    2f ′′k h

    2 + · · ·

    da expansão para fk+1

    f ′k =fk+1 − fk−1

    2h+ O(h2)

    O cancelamento dos termos em h2 nas expansões conduz a umerro que é de ordem superior ao anterior!

    Computadores e Programação – p.254

  • Derivação numérica

    • Fórmula de 5 pontos para a primeira derivada

    − fk+2(

    = fk + 2f′

    kh + 2f′′

    k h2 +

    4

    3f ′′′k h

    3 +2

    3f ′′′′k h

    4 + . . .

    )

    + 8 fk+1

    (

    = fk + f′

    kh +1

    2f ′′k h

    2 +1

    6f ′′′k h

    3 +1

    24f ′′′′k h

    4 + . . .

    )

    − 8 fk−1(

    = fk − f ′kh +1

    2f ′′k h

    2 − 16f ′′′k h

    3 +1

    24f ′′′′k h

    4 + . . .

    )

    + fk−2

    (

    = fk − 2f ′kh + 2f ′′k h2 −4

    3f ′′′k h

    3 +2

    3f ′′′′k h

    4 + . . .

    )

    = 12hf ′k + O(h5)

    Computadores e Programação – p.255

  • Derivação numérica

    • Fórmula de 5 pontos para a primeira derivada

    f ′k =fk−2 − 8fk−1 + 8fk+1 − fk+2

    12h+ O(h4)

    • Para obter a fórmula de 7 pontos é preciso calcular ainda fk+3 efk−3. A primeira derivada de f(x) é então obtida através de:

    f ′k '3

    i=−3

    cifk+i

    sendo os coeficientes ci ajustados de modo a que todos ostermos de ordem inferior a h6 se cancelem.

    Computadores e Programação – p.256

  • Derivação numérica

    • Fórmula de 3 pontos para a segunda derivada

    fk+1

    (

    = fk + f′

    kh +1

    2f ′′k h

    2 +1

    6f ′′′k h

    3 +1

    24f ′′′′k h

    4 + . . .

    )

    + fk−1

    (

    = fk − f ′kh +1

    2f ′′k h

    2 − 16f ′′′k h

    3 +1

    24f ′′′′k h

    4 + . . .

    )

    = 2fk + h2f ′′k + O(h4)

    logo

    f ′′k =fk+1 − 2fk + fk−1

    h2+ O(h2)

    Computadores e Programação – p.257

  • Derivação numérica

    • Fórmula de 5 pontos para a segunda derivada

    − fk+2(

    = fk + 2f′

    kh + 2f′′

    k h2 +

    4

    3f ′′′k h

    3 +2

    3f ′′′′k h

    4 + . . .

    )

    + 16 fk+1

    (

    = fk + f′

    kh +1

    2f ′′k h

    2 +1

    6f ′′′k h

    3 +1

    24f ′′′′k h

    4 + . . .

    )

    + 16 fk−1

    (

    = fk − f ′kh +1

    2f ′′k h

    2 − 16f ′′′k h

    3 +1

    24f ′′′′k h

    4 + . . .

    )

    − fk−2(

    = fk − 2f ′kh + 2f ′′k h2 −4

    3f ′′′k h

    3 +2

    3f ′′′′k h

    4 + . . .

    )

    = 30fk + 12h2f ′′k + O(h6)

    Computadores e Programação – p.258

  • Derivação numérica

    • Fórmula de 5 pontos para a segunda derivada

    f ′′k =−fk−2 + 16fk−1 − 30fk + 16fk+1 − fk+2

    12h2+ O(h4)

    Computadores e Programação – p.259

  • Interpolação numérica

    • Conhecendo os valores de uma função, yi ≡ f(xi) num conjuntodiscreto de pontos, {xi, i = 0, . . . , N}, é possível obter umaestimativa do valor da função num ponto x não pertencente aesse conjunto se se fizer passar uma curva pelos pontosconhecidos. A equação desta curva pode ser dada por umpolinómio (interpolação de Lagrange), um quociente depolinómios, uma combinação linear de polinómios ortogonais(polinómios de Chebushev, por exemplo), splines, etc.

    • Se x0 < x < xN o processo designa-se por interpolação.• Se x < x0 ou x > xN o processo designa-se por extrapolação.• Um processo distinto de obter o valor de f(x) é o ajuste através

    de uma minimização dos desvios quadráticos de uma curva aospontos conhecidos. Mas, neste caso, a curva não passa pelospontos. É o que acontece quando se ajusta, por exemplo, umarecta a um conjunto de resultados experimentais. . .

    Computadores e Programação – p.260

  • Interpolação numérica

    • Se se pretender obter um polinómio interpolante de 1a ordem(uma recta. . . )

    P1(x) = a + bx

    com xj < x < xj+1, os coeficientes do polinómio sãodeterminados impondo simplesmente que o polinómio passeexactamente por (xj , f(xj)) e (xj+1, f(xj+1)):

    {

    P1(xj) = f(xj)

    P1(xj+1) = f(xj+1)⇔

    {

    a + bxj = yj

    a + bxj+1 = yj+1

    Computadores e Programação – p.261

  • Interpolação numérica

    • Se se pretender obter um polinómio interpolante de 2a ordem(uma parábola. . . )

    P2(x) = a + bx + cx2

    com xj < x < xj+2, são necessárias 3 equações para determinaros 3 coeficientes do polinómio. Então estes são determinadosimpondo que o polinómio passe exactamente por (xj , f(xj)),(xj+1, f(xj+1)) e (xj+2, f(xj+2)):

    P2(xj) = f(xj)

    P2(xj+1) = f(xj+1)

    P2(xj+2) = f(xj+2)

    a + bxj + cx2j = yj

    a + bxj+1 + cx2j+1 = yj+1

    a + bxj+1 + cx2j+2 = yj+2

    Computadores e Programação – p.262

  • Interpolação numérica

    • A solução destes sistemas de equações pode ser escrita de umaforma bastante compacta:

    PN (x) =N

    i=0

    N∏

    j = 0

    j 6= i

    x − xjxi − xj

    yi

    • Com uma dúzia de pontos é possível interpolar, por exemplo, asfunções trigonométricas com uma precisão muito elevada. É esteo método usado pelas máquinas de calcular para calcular estas eoutras funções. . .

    Computadores e Programação – p.263

  • Integração numérica

    • A maneira mais simples de obter o valor numérico do integral deuma função

    I =

    ∫ b

    a

    f(x)dx

    é dividir o domínio de integração em N intervalos de largurah = (b − a)/N e considerar que o integral da função num dessesintervalos é dado simplesmente através do produto do valor dafunção no ponto médio do intervalo pela largura do intervalo:

    I 'N−1∑

    i=0

    f

    (

    xi +h

    2

    )

    h (x0 ≡ a, xN ≡ b) .

    Computadores e Programação – p.264

  • Integração numérica

    • Este método corresponde a aproximar a área abaixo da funçãopor uma série de rectângulos

    a x1 x2 x3 x4 x5 x6 x7 x8 x9 b

    Computadores e Programação – p.265

  • Integração numérica

    • Este método de cálculo do integral não é muito eficaz, pois sócom intervalos muito pequenos se comete um erro pequeno. . .

    • Para melhorar o processo, considere-se o integral apenas numdos intervalos

    Ij =

    ∫ xj+1

    xj

    f(x)dx .

    • Se se expandir f(x) em série de Taylor em torno do xj e sedesprezarem todos os termos de ordem superior à primeira, vem

    Ij '∫ xj+1

    xj

    (f(xj) + f′(xj)(x − xj)) dx

    que se pode calcular recorrendo à fórmula de 2 pontos para aderivada:

    Computadores e Programação – p.266

  • Integração numérica

    Ij '∫ xj+1

    xj

    (

    f(xj) +f(xj+1) − f(xj)

    h(x − xj)

    )

    dx =

    = hf(xj) +f(xj+1) − f(xj)

    h

    h2

    2= h

    f(xj) + f(xj+1)

    2

    • Então, o integral no intervalo [a, b] será:

    I =N−1∑

    j=0

    Ij 'h

    2

    N−1∑

    j=0

    (f(xj) + f(xj+1)) =

    =h

    2

    f(a) + 2

    N−1∑

    j=1

    f(xj) + f(b)

    Computadores e Programação – p.267

  • Integração numérica

    • Esta regra de integração é conhecida como regra do trapézio ecorresponde a aproximar a área abaixo da função por uma somadas áreas de vários trapézios:

    a x1 x2 x3 x4 x5 x6 x7 x8 x9 b

    • Na prática, a regra do trapézio consiste em aproximar a funçãoentre os extremos de cada intervalo de largura h por uma recta. . .

    Computadores e Programação – p.268

  • Integração numérica

    • Para melhorar a regra do trapézio basta melhorar a aproximação.A regra de Simpson consiste em aproximar a função entre osextremos de cada intervalo por uma parábola. Esta regra deintegração pode ser deduzida de uma forma bastante simples.Considere-se o integral apenas no intervalo entre xj−1 e xj+1(recordar que são precisos 3 pontos para definir uma parábola. . . )

    Ij =

    ∫ xj+1

    xj−1

    f(x)dx .

    • Se se expandir f(x) em série de Taylor em torno do xj e sedesprezarem todos os termos de ordem superior à segunda, vem

    Ij '∫ xj+1

    xj−1

    (

    f(xj) + f′(xj)(x − xj) +

    1

    2f ′′(xj)(x − xj)2

    )

    dx

    Computadores e Programação – p.269

  • Integração numérica

    • Este integral pode-se calcular recorrendo às fórmulas de 3 pontospara as derivadas:

    Ij '∫ xj+1

    xj−1

    (

    f(xj) +f(xj+1) − f(xj−1)

    2h(x − xj)+

    +1

    2

    f(xj+1) − 2f(xj) + f(xj−1)h2

    (x − xj)2)

    dx =

    = 2hf(xj) +f(xj+1) − f(xj−1)

    2h· 0+

    +f(xj+1) − 2f(xj) + f(xj−1)

    2h22h3

    3

    logo

    Ij ' hf(xj−1) + 4f(xj) + f(xj+1)

    3.

    Computadores e Programação – p.270

  • Integração numérica

    • Então, o integral no intervalo [a, b] será:

    I =N−1∑

    j=0

    Ij 'h

    3

    N−1∑

    j=1

    (f(xj−1) + 4f(xj) + f(xj+1) =

    =h

    3

    f(a) + 4N−1∑

    j=1, j ímparf(xj) + 2

    N−1∑

    j=2, j parf(xj) + f(b)

    • A regra de Simpson é a regra de integração unidimensional maisconhecida. Uma das razões para o seu sucesso é o facto deproduzir resultados melhores que o esperado, pois a primeiracorrecção a esta regra — a inclusão do termo de terceira ordemda série de Taylor — é nula, sendo preciso incluir o termo dequarta ordem para obter uma melhoria.

    Computadores e Programação – p.271

  • Integração numérica

    • Seguindo o processo de obtenção das regras do trapézio e deSimpson, é possível obter formas mais “precisas” para o cálculodos integrais. Mas a regra de Simpson é um bom compromissoentre simplicidade da formulação e precisão. . .

    • Há muitos outros métodos de calcular um integral (quadraturagaussiana, por exemplo). . . Um dos mais conhecidos é o métodode Monte Carlo cujo algoritmo é o seguinte◦ Gerar um par de números aleatórios (x, y), com a ≤ x ≤ b e

    0 ≤ y ≤ fmax, onde fmax é um valor superior ao máximo dafunção no intervalo [a, b]

    ◦ Se y < f(x), incrementar um contador Nin◦ Repetir o processo N vezes: o integral é dado por

    I ' NinN

    fmax(b − a) .

    Computadores e Programação – p.272

  • Integração numérica

    • Este processo de “tiro ao alvo” é pouco eficaz para integrais auma ou duas dimensões. Mas para integrais sobre um númerogrande de variáveis este método torna-se mais eficiente que aregra de Simpson. . .

    a b0

    fmax

    Computadores e Programação – p.273

  • Resolução de equações não lineares

    • Frequentemente é necessário encontrar o zero de uma funçãocomplicada resolvendo uma equação não linear. Há váriosmétodos numéricos bastante simples e poderosos para o fazer,sendo o mais robusto deles o chamado método da bissecção:◦ Seja f(x) = 0 a equação que se pretende resolver. Se houver

    um zero de f no intervalo [a, b] então, em geral, f(a) · f(b) < 0.◦ No ponto c = a + (b − a)/2 verifica-se que ou f(a) · f(c) < 0

    ou f(c) · f(b) < 0, o que permite determinar se o zero está nointervalo [a, c] ou [c, b] (se só houver um zero em [a, b]. . . ).Supondo que é a primeira condição que se verifica, pode-secalcular f(d), com d = a + (c − a)/2 e determinar se o zeroestá no intervalo [a, d] ou no intervalo [d, c]. . .

    ◦ Pode-se repetir este processo até que o intervalo onde seencontra o zero seja muito pequeno. . .

    Computadores e Programação – p.274

  • Resolução de equações não lineares

    • O método da bissecção é extremamente robusto mas não é muitorápido. . . Em muitos casos é possível melhorar o processo debusca do zero de f se o novo extremo do intervalo de procura (c,d, etc.) for encontrado fazendo passar uma recta pelos extremosdo intervalo (a e b no início do processo. . . ) e determinando oponto onde essa recta cruza o eixo dos x. Este método éconhecido por método da falsa posição e é, em geral, mais rápidoque o método da bissecção. Mas não é tão robusto, podendo nãoencontrar o zero. . .

    Computadores e Programação – p.275

  • Resolução de equações não lineares

    • Um outro método, semelhante ao método da falsa posição, é ométodo da secante: se [xn, xn+1] for o intervalo de busca do zerona enésima iteração, o intervalo para a iteração seguinte é[xn+1, xn+2] sendo xn+2 o ponto onde a recta que passa pelospontos (xn, f(xn)) e (xn+1, f(xn+1)) intersecta o eixo dos x.Neste método não há portanto garantia que o zero se encontreno intervalo de busca, ao contrário dos métodos anteriores. Talcomo o método da falsa posição, este método nem sempre é bemsucedido. . .

    Computadores e Programação – p.276

  • Resolução de equações não lineares

    • Se for possível calcular a derivada de f pode-se recorrer aométodo de Newton-Raphson para encontrar o zero. Este métodoé bastante robusto e extremamente eficiente na maioria doscasos:◦ Seja xi uma estimativa para a posição do zero de f◦ Se se expandir a função em série de Taylor em torno de xi e

    se desprezarem os termos de ordem igual ou superior a 2vem

    f(x) ' f(xi) + f ′(xi)(x − xi) ≡ f̃(x)◦ Usando esta aproximação para f o zero encontra-se no ponto

    f̃(z) = 0 ⇔ z = xi −f(xi)

    f ′(xi)

    ◦ Se f(z) 6= 0, considera-se xi+1 = z e repete-se o processo. . .

    Computadores e Programação – p.277

  • Resolução de equações não lineares

    • Um exemplo simples de aplicação do método deNewton-Raphson é o cálculo da raíz de um número ( n√c). Estecálculo pode ser transformado numa equação não linear:

    x = n√

    c ⇔ xn = c ⇔ xn − c = 0

    • Os passos do método de Newton são, neste caso:

    xi+1 = xi −xni − cnxn−1i

    • Por exemplo, para calcular 3√

    7, vem

    xi+1 = xi −x3i − 73x2i

    Computadores e Programação – p.278

  • Resolução de equações não lineares

    • Se a primeira estimativa para 3√

    7 for x1 = 2, vem

    x2 = 2 −23 − 73 × 22 = 1.91666666667

    x3 = 1.91666666667 −1.916666666673 − 73 × 1.916666666672 = 1.91293845831

    x4 = 1.91293845831 −1.912938458313 − 73 × 1.912938458312 = 1.9129311828

    obtendo-se o resultado “exacto” à terceira iteração!

    Computadores e Programação – p.279

  • Resolução de equações diferenciais

    • Todos os algoritmos de resolução de equações diferenciaispartem da mesma ideia base: obter uma boa estimativa para asderivadas na equação. Considerem-se, por enquanto, apenasequações diferenciais ordinárias de primeira ordem e escreva-sea equação da seguinte forma

    y′(t) = f(t, y(t)) .

    • O que se pretende obter (a solução da equação. . . ) é o valor dey(t) para vários valores de t. É, obviamente, necessário ter umacondição de fronteira para poder integrar a equação. Essacondição é tipicamente o valor “inicial” de y(t), y(t0).

    • Conhecendo y(t), y(t + ∆t) obtém-se simplesmente porexpansão em série de Taylor

    y(t + ∆t) = y(t) + y′(t)∆t +1

    2y′′(t)(∆t)2 + . . .

    Computadores e Programação – p.280

  • Resolução de equações diferenciais

    • Se se considerar apenas o termo de primeira ordem, obtém-se ochamado método de Euler para a integração de uma equaçãodiferencial ordinária

    y(t + ∆t) ' y(t) + y′(t)∆t =⇒ yi+1 = yi + f(ti, yi)∆t

    com y0 = y(t0).• Este método é bastante simples de implementar mas só é

    recomendável para equações muito simples. Repare-se que oerro em cada passo de integração é da ordem de (∆t)2, visto sereste o primeiro termo desprezado na série de Taylor. . .

    Computadores e Programação – p.281

  • Resolução de equações diferenciais

    • Uma maneira de obter um método melhor é melhorar a estimativada derivada y′(t). No método de Euler, esta derivada é calculada,para cada intervalo ∆t, apenas no início. A estimativa da derivadaé melhorada se se usar o valor desta para dar meio passo deEuler e se voltar a calcular a derivada no ponto ti + ∆t/2:

    yi+1 = yi + k2{

    k1 = f (ti, yi) ∆t

    k2 = f(

    ti +∆t2

    , yi +k12

    )

    ∆t

    Este método é designado por método de Runge-Kutta de 2aordem e o erro em cada passo de integração é agora da ordemde (∆t)3. Mas é necessário calcular f(t, y) duas vezes em cadapasso. . .

    Computadores e Programação – p.282

  • Resolução de equações diferenciais

    • O método mais utilizado para integrar equações diferenciaisordinárias é o método de Runge-Kutta de 4a ordem. A suapopularidade advém da sua robustez e precisão (o erro em cadapasso é da ordem de (∆t)5), obtidas sem sacrificar em demasia arapidez (só se calcula a derivada 4 vezes em cada passo). A suafórmula é:

    yi+1 = yi +1

    6(k1 + 2k2 + 2k3 + k4)

    k1 = f (ti, yi) ∆t

    k2 = f(

    ti +∆t2

    , yi +k12

    )

    ∆t

    k3 = f(

    ti +∆t2

    , yi +k22

    )

    ∆t

    k4 = f (ti + ∆t, yi + k3)∆t

    Computadores e Programação – p.283

  • Resolução de equações diferenciais

    • Para integrar equações diferenciais ordinárias de ordem superiorà primeira basta tratar as várias derivadas da função comofunções independentes e re-escrever a equação diferencial deordem n como n equações diferenciais de primeira ordemacopladas. Por exemplo, a equação de movimento de umoscilador harmónico amortecido,

    mx′′(t) = −kx(t) − γx′(t) ,

    pode ser escrita como{

    x′(t) = v(t)

    v′(t) = − km

    x(t) − γm

    v(t)

    • O sistema de equações de primeira ordem pode depois serintegrado recorrendo a qualquer dos métodos já expostos.

    Computadores e Programação – p.284

    �nog Objectos persistentes: {t pickle} and {t shelve}�nog Objectos persistentes: {t pickle} and {t shelve}�nog Objectos persistentes: {t pickle} and {t shelve}�nog Redirecção de {em input} e {em output}�nog Redirecção de {em input} e {em output}�nog Redirecção de {em input} e {em output}�nog Redirecção de {em input} e {em output}�nog Derivação numérica�nog Derivação numérica�nog Derivação numérica�nog Derivação numérica�nog Derivação numérica�nog Derivação numérica�nog Derivação numérica�nog Derivação numérica�nog Interpolação numérica�nog Interpolação numérica�nog Interpolação numérica�nog Interpolação numérica�nog Integração numérica�nog Integração numérica�nog Integração numérica�nog Integração numérica�nog Integração numérica�nog Integração numérica�nog Integração numérica�nog Integração numérica�nog Integração numérica�nog Integração numérica�nog Resolução de equações não lineares�nog Resolução de equações não lineares�nog Resolução de equações não lineares�nog Resolução de equações não lineares�nog Resolução de equações não lineares�nog Resolução de equações não lineares�nog Resolução de equações diferenciais�nog Resolução de equações diferenciais�nog Resolução de equações diferenciais�nog Resolução de equações diferenciais�nog Resolução de equações diferenciais


Recommended