por Piva » Qua Abr 11, 2012 15:10
Boa tarde a todos,
Estou com um pequeno problema em Cálculo numérico. Estou com um programa que rodo no force para a função do SENO. Só que estou com dificuldades para passá-la para COSSENO. Sou iniciante em cálculo numérico, se alguém puder me explicar como eu mudo para o COSSENO eu agradeceria. Eu ja entendi todo o funcionamento do código, porém estou errando em trocar a função.
Segue abaixo o código.
c #############################################################
c Este programa calcula o erro percentual da Serie de Taylor da
c funcaoo sen(bx), expandida no ponto x0
implicit double precision(a-h,o-z)
dimension a(50)
open(5,file='taylor01.1',status='old')
open(6,file='taylor200510.2',status='unknown')
c Ponto de expansao da s‚rie
read(5,*)x0
c Grau da s‚rie polinomial + 1
read(5,*)n_termos
c Coeficiente multiplicador do angulo x
read(5,*)b
c Numero de abscissas
read(5,*)n_x
c Impressao do cabecalho
write(6,5)
c determinacao dos coeficientes da serie de Taylor
do n=1,n_termos
i=1
if(mod(n-1,2).eq.0) then !par
j=1
k=0
if(mod(n-1,4).eq.0) then !múltiplo de 4
i=2
endif
else !ímpar
j=0
k=1
if(mod((n-2),4).eq.0) then !múltiplo de 4 + 1
i=2
endif
endif
a(n)=(-1.d0)**i*b**(n-1)*sin(b*x0)**j*cos(b*x0)**k
enddo
do icont=1,n_x
c Leitura das abscissas em arquivo
read(5,*) x
fxt=0.d0
do n=1,n_termos
c solucao num‚rica
fxt=fxt+a(n)*(x-x0)**(n-1)/fat(n-1)
enddo
c solução analítica
fxa=sin(b*x)
c erro percentual
if(fxa.ne.0.d0) then
erro_p=abs((fxt-fxa)/fxa)*100.d0
write(6,15)x,fxa,fxt,erro_p
else
write(6,20)x,fxa,fxt
endif
enddo
5 format(14x,'x',26x,'f(x)',23x,'F(x)',23x,'E(%)')
15 format(3(f25.14,2x),e25.15)
20 format(3(f25.14,2x),' - ')
stop " Fim "
end
c ##############################################################
function fat(n)
implicit double precision(a-h,o-z)
integer n
fat=dfloat(n)
do i=n,2,-1
xi=dfloat(i)
fat=fat*(xi-1.d0)
enddo
if(n.eq.0) fat=1.d0
return
end
c ##############################################################
Creio que o que tenho que mudar está nessa linha:
a(n)=(-1.d0)**i*b**(n-1)*sin(b*x0)**j*cos(b*x0)**k
Entendo pouco de série de Taylor, mas se me explicarem alguma coisa eu acho que entendo!
Desde já, Obrigado pela ajuda!
-
Piva
- Novo Usuário

-
- Mensagens: 6
- Registrado em: Qua Jun 29, 2011 18:51
- Formação Escolar: GRADUAÇÃO
- Área/Curso: Engenharia Mecânica
- Andamento: cursando
por LuizAquino » Qui Abr 12, 2012 11:58
Piva escreveu:Boa tarde a todos,
Estou com um pequeno problema em Cálculo numérico. Estou com um programa que rodo no force para a função do SENO. Só que estou com dificuldades para passá-la para COSSENO. Sou iniciante em cálculo numérico, se alguém puder me explicar como eu mudo para o COSSENO eu agradeceria. Eu ja entendi todo o funcionamento do código, porém estou errando em trocar a função.
Segue abaixo o código.
c #############################################################
c Este programa calcula o erro percentual da Serie de Taylor da
c funcaoo sen(bx), expandida no ponto x0
implicit double precision(a-h,o-z)
dimension a(50)
open(5,file='taylor01.1',status='old')
open(6,file='taylor200510.2',status='unknown')
c Ponto de expansao da s‚rie
read(5,*)x0
c Grau da s‚rie polinomial + 1
read(5,*)n_termos
c Coeficiente multiplicador do angulo x
read(5,*)b
c Numero de abscissas
read(5,*)n_x
c Impressao do cabecalho
write(6,5)
c determinacao dos coeficientes da serie de Taylor
do n=1,n_termos
i=1
if(mod(n-1,2).eq.0) then !par
j=1
k=0
if(mod(n-1,4).eq.0) then !múltiplo de 4
i=2
endif
else !ímpar
j=0
k=1
if(mod((n-2),4).eq.0) then !múltiplo de 4 + 1
i=2
endif
endif
a(n)=(-1.d0)**i*b**(n-1)*sin(b*x0)**j*cos(b*x0)**k
enddo
do icont=1,n_x
c Leitura das abscissas em arquivo
read(5,*) x
fxt=0.d0
do n=1,n_termos
c solucao num‚rica
fxt=fxt+a(n)*(x-x0)**(n-1)/fat(n-1)
enddo
c solução analítica
fxa=sin(b*x)
c erro percentual
if(fxa.ne.0.d0) then
erro_p=abs((fxt-fxa)/fxa)*100.d0
write(6,15)x,fxa,fxt,erro_p
else
write(6,20)x,fxa,fxt
endif
enddo
5 format(14x,'x',26x,'f(x)',23x,'F(x)',23x,'E(%)')
15 format(3(f25.14,2x),e25.15)
20 format(3(f25.14,2x),' - ')
stop " Fim "
end
c ##############################################################
function fat(n)
implicit double precision(a-h,o-z)
integer n
fat=dfloat(n)
do i=n,2,-1
xi=dfloat(i)
fat=fat*(xi-1.d0)
enddo
if(n.eq.0) fat=1.d0
return
end
c ##############################################################
Creio que o que tenho que mudar está nessa linha:
a(n)=(-1.d0)**i*b**(n-1)*sin(b*x0)**j*cos(b*x0)**k
Piva escreveu:Entendo pouco de série de Taylor, mas se me explicarem alguma coisa eu acho que entendo!
Esse é o verdadeiro problema: você não sabe expandir (usando a Série de Taylor) a função

em torno de x0.
Você precisa primeiro saber fazer essa expansão antes de querer mexer no código. Ou seja, você precisa primeiro estudar sobre a Série de Taylor.
Há um vasto material disponível na internet sobre essa assunto. Eu recomendo que você faça uma pesquisa sobre ele.
Vamos então considerar uma função f que possa ser expandida em Série de Taylor. A sua aproximação em torno de x0 será dada por:

Nesse caso, a expansão foi feita até o termo na posição n. Note que você precisa calcular a derivada de f até a ordem n.
Por exemplo, no caso de

, temos que:






(...)
Agora tente determinar o formato geral. Isto é, o formato para

.
-

LuizAquino
- Colaborador Moderador - Professor

-
- Mensagens: 2654
- Registrado em: Sex Jan 21, 2011 09:11
- Localização: Teófilo Otoni - MG
- Formação Escolar: PÓS-GRADUAÇÃO
- Área/Curso: Mestrado - Modelagem Computacional
- Andamento: formado
-
Voltar para Cálculo: Limites, Derivadas e Integrais
Se chegou até aqui, provavelmente tenha interesse pelos tópicos relacionados abaixo.
Aproveite a leitura. Bons estudos!
-
- calculo numerico
por ehrefundini » Qua Mai 07, 2008 10:31
- 1 Respostas
- 1990 Exibições
- Última mensagem por admin

Qua Mai 07, 2008 11:02
Pedidos de Materiais
-
- Calculo Numerico !!
por laisgomes2107 » Sex Set 19, 2008 01:06
- 2 Respostas
- 2765 Exibições
- Última mensagem por admin

Ter Set 23, 2008 18:35
Dúvidas Pendentes (aguardando novos colaboradores)
-
- calculo numerico
por ehrefundini » Sex Mar 06, 2009 10:36
- 1 Respostas
- 2561 Exibições
- Última mensagem por Molina

Sex Mar 06, 2009 13:10
Cálculo Numérico e Aplicações
-
- CALCULO NUMÉRICO I
por futuro fisico » Ter Set 27, 2011 21:04
- 1 Respostas
- 1611 Exibições
- Última mensagem por LuizAquino

Ter Set 27, 2011 22:05
Cálculo: Limites, Derivadas e Integrais
-
- Cálculo numérico
por Jhennyfer » Dom Mai 19, 2013 13:43
- 10 Respostas
- 4698 Exibições
- Última mensagem por Jhennyfer

Dom Mai 19, 2013 16:45
Álgebra Elementar
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes
Assunto:
método de contagem
Autor:
sinuca147 - Seg Mai 25, 2009 09:10
Veja este exercício:
Se A = {

} e B = {

}, então o número de elementos A

B é:
Eu tentei resolver este exercício e achei a resposta "três", mas surgiram muitas dúvidas aqui durante a resolução.
Para determinar os elementos do conjunto A, eu tive de basicamente fazer um lista de vinte dividido por todos os números naturais maiores que zero e menores que vinte e um, finalmente identificando como elementos do conjunto A os números 1, 2, 4, 5, 10 e 20. Acho que procedi de maneira correta, mas fiquei pensando aqui se não existiria um método mais "sofisticado" e prático para que eu pudesse identificar ou ao menos contar o número de elementos do conjunto A, existe?
No processo de determinação dos elementos do conjunto B o que achei foi basicamente os múltiplos de cinco e seus opostos, daí me surgiram estas dúvidas:
existe oposto de zero?
existe inverso de zero?
zero é par, certo?
sendo x um número natural, -x é múltiplo de x?
sendo z um número inteiro negativo, z é múltiplo de z?
sendo z um número inteiro negativo, -z é múltiplo de z?
A resposta é 3?
Obrigado.
Assunto:
método de contagem
Autor:
Molina - Seg Mai 25, 2009 20:42
Boa noite, sinuca.
Se A = {

} você concorda que n só pode ser de 1 a 20? Já que pertence aos naturais?
Ou seja, quais são os divisores de 20? Eles são seis: 1, 2, 4, 5, 10 e 20.
Logo, o conjunto A é
A = {1, 2, 4, 5, 10, 20}
Se B = {

} você concorda que x será os múltiplos de 5 (positivos e negativos)? Já que m pertence ao conjunto Z?
Logo, o conjunto B é
B = {... , -25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25, ...
Feito isso precisamos ver os números que está em ambos os conjuntos, que são:
5, 10 e 20 (3 valores, como você achou).
Vou responder rapidamente suas dúvidas porque meu tempo está estourando. Qualquer dúvida, coloque aqui, ok?
sinuca147 escreveu:No processo de determinação dos elementos do conjunto B o que achei foi basicamente os múltiplos de cinco e seus opostos, daí me surgiram estas dúvidas:
existe oposto de zero? sim, é o próprio zero
existe inverso de zero? não, pois não há nenhum número que multiplicado por zero resulte em 1
zero é par, certo? sim, pois pode ser escrito da forma de 2n, onde n pertence aos inteiros
sendo x um número natural, -x é múltiplo de x? Sim, pois basta pegar x e multiplicar por -1 que encontramos -x
sendo z um número inteiro negativo, z é múltiplo de z? Sim, tais perguntando se todo número é multiplo de si mesmo
sendo z um número inteiro negativo, -z é múltiplo de z? Sim, pois basta pegar -z e multiplicar por -1 que encontramos x
A resposta é 3? Sim, pelo menos foi o que vimos a cima
Bom estudo,

Assunto:
método de contagem
Autor:
sinuca147 - Seg Mai 25, 2009 23:35
Obrigado, mas olha só este link
http://www.colegioweb.com.br/matematica ... ro-natural
neste link encontra-se a a frase:
Múltiplo de um número natural é qualquer número que possa ser obtido multiplicando o número natural por 0, 1, 2, 3, 4, 5, etc.
Para determinarmos os múltiplos de 15, por exemplo, devemos multiplicá-lo pela sucessão dos números naturais:
Ou seja, de acordo com este link -5 não poderia ser múltiplo de 5, assim como 5 não poderia ser múltiplo de -5, eu sempre achei que não interessava o sinal na questão dos múltiplos, assim como você me confirmou, mas e essa informação contrária deste site, tem alguma credibilidade?
Há e claro, a coisa mais bacana você esqueceu, quero saber se existe algum método de contagem diferente do manual neste caso:
Para determinar os elementos do conjunto A, eu tive de basicamente fazer um lista de vinte dividido por todos os números naturais maiores que zero e menores que vinte e um, finalmente identificando como elementos do conjunto A os números 1, 2, 4, 5, 10 e 20. Acho que procedi de maneira correta, mas fiquei pensando aqui se não existiria um método mais "sofisticado" e prático para que eu pudesse identificar ou ao menos contar o número de elementos do conjunto A, existe?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.