Cálculo de logaritmo de um número por Série de Taylor em C
Publicado por Perfil removido (última atualização em 18/05/2012)
[ Hits: 13.439 ]
Download logaritmo-metodo-a-001.c
A descrição vai ao código.
Ainda não sei um modo simples de dizer o que seria uma derivada, que é algo a ser usado neste algoritmo.
O que faz parte da teoria sobre Séries de Taylor.
Portanto entender a fórmula da Série não é o problema, mas o porquê de ter sido escrita daquela forma.
Existe uma fórmula T(x) chamada de "Termo Geral".
Calcula-se um valor para cada número natural (0, 1, 2, 3 ... ) inteiros não-negativos nessa fórmula em ordem crescente
Os valores são somados de forma acumulativa: T(0) + T(1) + T(2) + T(3) + ...
Quanto mais se calcule e se soma, maior a precisão. Porém demora bastante. O custo computacional é maior que o de outros métodos.
Requer muitos passos para um resultado preciso.
Para se entender como foi feita essa fórmula de termo geral T(x) é que se precisa saber derivadas.
Qualquer erro encontrado ou dúvida, fiquem à vontade.
#include <stdio.h> #include <math.h> // Algoritmo "A" // Logaritmo por Serie de Taylor // Favor compilar com // gcc logaritmo-metodo-a-001.c -o logaritmo-metodo-a-001 -lm // Calcula logaritmo natural - Base "e" // Apenas para valores baixos e numa faixa estreita por causa de uma coisa chamada "divergencia" (para encurtar) // Podem ser necessarias muitas iterações // Calculos em outras bases e valores maiores requer mais passos e calculos // Nocoes de Calculo e Analise (Matematica) ajudam int main (void) { double s = 0.0; double t = 1.0; double i = 1.0; double x = .5; x -= 1; do { // printf("t= %3.1f\t i= %5.1f\t x= %15.25f\t s= %15.25f\n", t, i, x, s); s += t * (pow(x, i)/i); t = -t; i ++; } while (i<100); // printf("t= %3.1f\t i= %5.1f\t x= %15.25f\t s= %15.25f\n", t, i, x, s); printf("e^(%15.25f) = %15.25f\n", s, exp(s)); return 0; }
Converter arquivos Bitmap para ASCII-art
Jogo Super Mario Bros 3 (com gráficos)
Rotina para controle de portas paralelas em C.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
UUID da partição efi mudou, multiboot já era...e agora? (0)