segunda-feira, 22 de junho de 2015

Aproximação númerica por séries (projeto 3)

Sabe-se que diversas funções matemáticas podem ser aproximadas através de séries infinitas. Utilizando as definições a seguir,desenvolva um (ou vários) programa(s) em Python para calcular o valor das seguintes funções num ponto x. Tanto x quanto n (número de termos) devem ser conhecidos.
  • a) exp(x) = 1 + x + x^2/2! + x^3/3! + x^4/4! + ...
  • b) cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! + x^8/8! - ...
  • c) sen(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9! - ...
  • d) integral de 0 a x exp{-t^2} dt = x - x^3/3*1! + x^5/5*2! - x^7/7*3! + x^9/9*4! - ...
Sabendo disso compute a integral de
  0 a 1 de 1/sqrt(pi) exp{-t^2} dt
o que significa isso em termos de probabilidade (se t é uma VA normal)? 

RESOLUÇÃO

CÓDIGOS INSERIDOS NO PYTHON + COMENTÁRIO E EXECUÇÃO

(os códigos podem ser copiados no final dessa postagem)

 

Comandos ao lado esquerda das imagens e execução ao direito. Clique na imagem para ampliá-la.

 

Figura 1: Fatorial e exponencial


 
Figura 2: Cosseno

 
Figura 3: Seno

Figura 4: Integral da função



Figura 5: Cálculo da integral definida


 

COMANDOS PARA SEREM COPIADOS:

 

import math as math #importando a biblioteca necessária para o programa

#criando a função para calcular fatorial
def fat(n):
    if n <= 1:
        return 1
    return fat(n-1) * n

#################################################################   
#criando a função chamada "expoente" para calcular e^x

def expoente():

    #pedindo ao usuário o valor de x e o nº de termos para a série do cálculo
    x = float(input('informe o valor do numero real X: '))
    n = int(input('informe o número inteiro de termos usados no cálculo: '))

    #definindo como 0 o valor inicial da série, para que a soma da série
    #nao entre num loop infinito durante seu cálculo
    s = 0
   
    if (x==0): #caso seja pedido e^0
        print('O resultado é 1')
    else:

        #calculando e^x
        for i in range(n):
            s = x**i/ fat(i) + s
            #aqui é calculado cada termo da série e somado ao anterior,
            #sucessivamente até atingir os N termos
           
    #expressando o resultado final, com algarismos depois da vírgula
    print('O resultado é %5f' %s)
    return

#################################################################
# criando uma função que calcula cos(x)

def cosseno():

    x = float(input('informe o valor do numero real X: '))
    n = int(input('informe o número inteiro de termos usados no cálculo: '))

    s = 0
   
    #calculando o valor de cos(x)
    for i in range(n):
        s = ( (x**(2*i))*((-1)**(i)) )/(fat(i*2)) + s
               
    print('O resultado é %5f' %s)
    return

##################################################################
# criando uma função para calcular sen(x)

def seno():

    x = float(input('informe o valor do numero real X: '))
    n = int(input('informe o número inteiro de termos usados no cálculo: '))

    s = 0
   
    #calculando o valor de cos(x)
    for i in range(n):
        s = ( (x**(2*i+1))*((-1)**(i)) )/(fat(2*i+1)) + s
               
    print('O resultado é %5f' %s)
    return
   
###################################################################
# criando uma função que retorna a integral de 0 a X de exp{-t^2}dt

def integral(x,n):#aqui o usuário deverá informar o X e N logo que
                  #chamar a função
       
    s = 0
   
    #calculando o valor da integral
    for i in range(n):
        s = ( (x**(2*i+1))*((-1)**(i)) )/((2*i+1)*fat(i)) + s

    #aqui a função retorna diretamente o valor do resultado final           
    return(s)

###################################################################
#computando a integral de 0 a 1 de (1/sqrt(pi))*exp{-t^2} dt
                                              
y = (1/math.sqrt(math.pi))*integral(1,500)



#em termos de probabilidade, se t é um variável aleatória da distribuição Normal
#esta possui média=0 e variância=1/2, e então
#o valor y significa a probabilidade de um valor estar entre 0 e 1

#fim


Nenhum comentário:

Postar um comentário