Use o botão abaixo para reportar erros ou dar sugestões.

Computação Científica - Um Livro Colaborativo

10.2 Exercícios


E 10.2.1. Implemente um programa de com as seguintes características:

  • lê N números inteiros na linha de comando, a1, a2, ... aN.
  • Calcule a soma S = a1 + a2 + ⋯ + aN.
  • Faça o seguinte teste:

      Se a divisão de S por 3 tiver resto 0, então aloque dinamicamente memória para o vetor de 2N posições com as entradas V i = ai, i = 1,2,...,N e V i = a2N−i, i = N,N + 1,...,2N.

      Se a divisão de S por 3 tiver resto 1, então aloque dinamicamente memória para o vetor de N2 posições com as entradas V (i+N(j−1)) = ai + aj, i = 1,2,...,N e j = 1,2,...,N.

      Se a divisão de S por 3 tiver resto 2, então aloque dinamicamente memória para o vetor de N posições com as entradas V i = ai, i = 1,2,...,N.

E 10.2.2. Considere o seguinte problema −dI1 dy + I1 = 1 8 I1 + I2 ,0 < y < 1 dI2 dy + I2 = 1 8 I1 + I2 ,0 < y < 1 I1(1) = 1 I2(0) = 1

Observações:

  • Embora o problema possua solução analítica, vamos resolvê-lo numericamente.
  • Esse problema não é um problema de valor inicial, portanto, os métodos de Runge-Kutta, Adams, BDF’s não se aplicam.
  • Discretize o domínio y, yk = k∕N, k = 0,⋯,N, e resolva o problema dI1 dy − I1 = −Sk+1∕2,y k < y < yk+1 dI2 dy + I2 = Sk+1∕2,y k < y < yk+1

    supondo que Sk+1∕2 é um valor conhecido no intervalo [yk,yk+1]. Assim: d(I1e−y) dy = −e−ySk+1∕2,y k < y < yk+1 d(I2ey) dy = eySk+1∕2,y k < y < yk+1.

    Agora, integramos no intervalo [yk,yk+1]: I1e−y ykyk+1 = Sk+1∕2 e−y ykyk+1 I2ey ykyk+1 = Sk+1∕2ey ykyk+1 .

    Assim, temos: I1k+1e−yk+1 − I1ke−yk = Sk+1∕2 e−yk+1 − e−yk I2k+1eyk+1 − I2keyk = Sk+1∕2 eyk+1 − eyk .

    Finalmente, temos o seguinte algoritmo: I1k = I 1k+1eyk−yk+1 + Sk+1∕2 1 − eyk−yk+1 ,k = N − 1,N − 2,⋯,1,0, I2k+1 = I 2keyk−yk+1 + Sk+1∕2 1 − eyk−yk+1 ,k = 0,1,2,⋯,N − 1, I1N = 1, I20 = 1.

    onde a primeira aproximação Sk+1∕2 é zero e, depois de calcular I1k e I2k, calculamos uma nova aproximação Sk+1∕2 = 1 16 I1k + I 2k + 1 16 I1k+1 + I 2k+1 .

Atualizamos Sk+1∕2 até o processo iterativo converjir.

E 10.2.3. Resolva o seguinte problema de transporte −dI1 dy + I1 = 1 24 I1 + 2I2 + 2I3 + I4 ,0 < y < 1 −1 3 dI2 dy + I2 = 1 24 I1 + 2I2 + 2I3 + I4 ,0 < y < 1 1 3 dI3 dy + I3 = 1 24 I1 + 2I2 + 2I3 + I4 ,0 < y < 1 dI4 dy + I4 = 1 24 I1 + 2I2 + 2I3 + I4 ,0 < y < 1 I1(1) = 0.5 I2(1) = 0.5 I3(0) = 0.5 I4(0) = 0.5

Observação: Use o algoritmo introduzida do exercício 10.2.2.

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 19/8/2020 às 17:33:17.

Informe erros ou edite você mesmo!