Área 2: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(Uma revisão intermediária por um outro usuário não está sendo mostrada)
Linha 77: Linha 77:
Legenda para esta seção:
Legenda para esta seção:


f'(x) : derivada primeira da função f(x)
f'(x) : derivada primeira da função f(x),
h = (xb-xa)/N , xa, xb são início e fim do intervalo de intregação respectivamente e N é o número de vezes que este intervalo é dividido.
h = (xb-xa)/N , xa, xb são início e fim do intervalo de intregração respectivamente e N é o número de vezes que este intervalo é dividido.
Considere as seguintes funções
Considere as seguintes funções


f(x) = x2 + 6x
<math>f(x) = x^2 + 6x</math>


g(x) = 1/(x+3)
<math>g(x) = 1/(x+3) </math>


p(x)=ex/(x3-1)
<math>p(x)=exp(-x)/(x^3-1)</math>




Linha 93: Linha 93:


2- Use o mesmo programa feito em (1) para calcular g'(-10), g'(-2).
2- Use o mesmo programa feito em (1) para calcular g'(-10), g'(-2).
Faça h variar de h=10^-10 até h=1.
Faça h variar de <math>h=10^{-10}</math> até h=1.
O intervalo de h durante o qual g'(x) é constante é o mesmo para x=-10 e para x=-2? Como você interpreta isto?
O intervalo de h durante o qual g'(x) é constante é o mesmo para x=-10 e para x=-2? Como você interpreta isto?


Linha 111: Linha 111:




6 - Aplique o método de Simpson para diversos valores de N. Calcule o erro usando Erro(N) = |Int(N)-Int(N-1)|/|Int(N)|, onde Int(N) é o valor da integral de g(x) para um dado N. Faça este processo até que o erro atinja um valor mínimo estipulado pelo usuário.
6 - Aplique o método de Simpson para diversos valores de N. Calcule o erro usando Erro(N) = |Int(N)-Int(N-2)|/|Int(N)|, onde Int(N) é o valor da integral de g(x) para um dado N. Faça este processo até que o erro atinja um valor mínimo estipulado pelo usuário.




Linha 121: Linha 121:
2- expanda a expressão f(x) na expressão do trapézio E na expressão do valor exato
2- expanda a expressão f(x) na expressão do trapézio E na expressão do valor exato


3- compare termo a termo as duas expressões. Você verá que os termos são idênticos até a ordem h2. A partir de h3 eles têm uma diferença.
3- compare termo a termo as duas expressões. Você verá que os termos são idênticos até a ordem <math>h^2</math>. A partir de <math>h^3</math> eles têm uma diferença.




PS: O algoritmo de Simpson tem um erro da ordem de h5*f(4). O procedimento para demonstração é o mesmo, mas neste é mais longo. Faça se quiser, mas o importante é que você entenda a idéia.
PS: O algoritmo de Simpson tem um erro da ordem de <math>h^5*f(4)</math> . O procedimento para demonstração é o mesmo, mas neste é mais longo. Faça se quiser, mas o importante é que você entenda a idéia.

Edição atual tal como às 09h16min de 19 de abril de 2016

A) "tecnicalidades"


O que estes programas escrevem na tela?

1)

...
j=0;
do{
j++;
i = 4*j ;
printf("i=%d j=%d \n", i, j) ;
}while(i<=10) ;
printf("\n j=%d \n", j) ; 
...

2)

...
for(j=0 ; j<3 ; j++)
{ 
printf(" j=%d \n\n", j );
for(i=j; i<3 ; i++)
{
k=i+j ;
printf("i=%d k=%d\n", i, k);
}
} 
...


3) Abaixo você encontra partes de programas. Eles contêm erros. Identifique-os e pense no que você faria para resolvê-los.

3.a) Ponto a ser observado: uso de variáreis globais e/ou locais

...
float A ;
void main()
{ 
float B ;
operações dentro da função main() ...
}
float Soma()
{
return (A+B);
}
...

Como você faria para construir uma função que retornasse a soma de dois números reais?

3.b) Ponto a ser observado: alocação estática de memória

...
main()
{ 
int i;
float mat1[ i ] ;

for (i=0; i<10; i++)
mat1[ i ] = (float)rand()/RAND_MAX ; 
}
...


B) Derivação e integração numéricas


Legenda para esta seção:

f'(x) : derivada primeira da função f(x), h = (xb-xa)/N , xa, xb são início e fim do intervalo de intregração respectivamente e N é o número de vezes que este intervalo é dividido. Considere as seguintes funções


1- Usando o método da derivada à direita, calcule f'(x) nos pontos x=-2 e 2. Como você sabe se o valor encontrado é correto sem calcular o valor analítico de f'(x) ?


2- Use o mesmo programa feito em (1) para calcular g'(-10), g'(-2). Faça h variar de até h=1. O intervalo de h durante o qual g'(x) é constante é o mesmo para x=-10 e para x=-2? Como você interpreta isto?


3- Informação: o erro associado ao método da derivada à direita é linear em h, enquanto o método da derivada centrada tem um erro da ordem de h2.

3a - O que significa isto?

3b - Mostre analiticamente (dica: se baseia no que está feito na complex-wiki e foi discutido em aula)


4 - Use o método da derivada centrada para calcular a derivada da função p(x) nos pontos x: -2, 0.5, 2 e 5. Para cada um destes pontos, faça "h" variar bastante (digamos, entre 10-10 e 1) e compare os resultatos num gráfico feito em gnuplot. Faça um gráfico com as curvas p'(x) em todos os pontos pedidos com seus respectivos valores analíticos comparativos. Note que o intervalo para o qual a derivada numérica converge para o seu valor analítico depende da proximidade do valor de x ao ponto de divergência da função g(x). Por quê?


5 - Construa um programa usando o método de Simpson para calcular a integral de g(x) entre -10 e -4. Compare a precisão do resultado obtido com o programa feito em aula onde aplicamos o método do trapézio.


6 - Aplique o método de Simpson para diversos valores de N. Calcule o erro usando Erro(N) = |Int(N)-Int(N-2)|/|Int(N)|, onde Int(N) é o valor da integral de g(x) para um dado N. Faça este processo até que o erro atinja um valor mínimo estipulado pelo usuário.


7 - Mostre analiticamente que o método do trapézio tem um erro da ordem de f(x)*h3. Dica para fazer esta demonstração:

1- escreva a expressão da regra do trapézio para a f(x) E compare-a com o valor exato de uma integral da f(x)

2- expanda a expressão f(x) na expressão do trapézio E na expressão do valor exato

3- compare termo a termo as duas expressões. Você verá que os termos são idênticos até a ordem . A partir de eles têm uma diferença.


PS: O algoritmo de Simpson tem um erro da ordem de . O procedimento para demonstração é o mesmo, mas neste é mais longo. Faça se quiser, mas o importante é que você entenda a idéia.