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.523 ]
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; }
Pilhas C/C++ - Analisador de expressões simples
Pilhas Encadeadas Detalhadamente
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Backup de arquivos no Mint (1)
Por que programação de baixo nível e tão comum no Linux do que no wind... (2)
Limites de depósito: como ajustá-los a seu favor? (0)