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.590 ]
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; }
Algoritmo de ordenação Quick Sort
3 EP - Poli USP - Angry Birds (angry bixos)
Jogo da Velha com IA invencivel
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Aplicativo simples para gravar tela
Quebra de linha na data e hora no Linux Mint
Firefox não abre em usuário não administradores (0)
Sempre que vou baixar algum pacote acontece o erro dpkg (8)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (8)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)