Pergunta

Eu estou tendo um tempo difícil entender por que seria útil utilizar a série de Taylor para uma função, a fim de obter uma aproximação de uma função, em vez de usar apenas a função em si, durante a programação.Se eu posso dizer o meu computador para calcular e^(.1) e ele vai me dar um valor exato, por que eu iria tomar uma aproximação em vez disso?

Foi útil?

Solução

A série de Taylor são geralmente não é utilizado para aproximar funções.Geralmente, alguma forma de minimax polinômio é usado.

A série de Taylor converge lentamente (leva-se muitos termos para obter a precisão desejada) e são ineficientes (elas são mais precisas, perto do ponto em torno do qual eles são centralizados e menos precisas longe dela).O maior uso da série de Taylor é provável que em matemática classes e papéis, onde eles são úteis para examinar as propriedades de funções e para a aprendizagem de cálculo.

Para aproximar funções, minimax polinômios são frequentemente usados.Um minimax polinˆ omio tem o mínimo possível de erro máximo para uma determinada situação (intervalo de uma função a ser aproximada, grau disponíveis para o polinˆ omio).Normalmente, não há solução analítica para encontrar um minimax polinomial.Eles são encontrados numericamente, usando o Algoritmo de Remez.Minimax polinômios podem ser adaptados para atender necessidades específicas, tais como minimizar o erro relativo ou absoluto do erro, com a aproximação de uma função através de um determinado intervalo, e assim por diante.Minimax c ao precisa de menos condições do que a série de Taylor para obter resultados aceitáveis, e eles o "spread" o erro sobre o intervalo em vez de ser melhor no centro e a pior no fim.

Quando você chamar o exp função para calcular ex, provavelmente, você está usando um minimax polinômio, é porque alguém fez o trabalho para você e construída uma biblioteca de rotina que avalia o polinômio.Para a maior parte, a única aritmética processadores de computador pode fazer é a adição, a subtração, a multiplicação e a divisão.Assim, outras funções devem ser construídos a partir dessas operações.As três primeiras dar-lhe polinômios, e polinômios são suficientes para aproximar muitas funções, tais como seno, co-seno, logaritmo, e exponenciação (com algumas operações adicionais de coisas que se movem para dentro e para fora do expoente do campo de valores de ponto flutuante).Divisão adiciona funções racionais, o que é útil para funções como o arco-tangente.

Outras dicas

Por dois motivos. Em primeiro lugar - a maioria dos processadores não possui implementações de hardware de operações complexas, como exponenciais, logaritmos, etc ... Em tais casos, a linguagem de programação pode fornecer uma função de biblioteca para calcular aqueles - em outras palavras, alguém usou uma série de Taylor ou outra aproximação ou outra aproximação Para você.

Segundo, você pode ter uma função que nem mesmo o idioma suporta.

Eu recentemente queria usar tabelas de pesquisa com interpolação para obter um ângulo e depois calcular o pecado () e cos () desse ângulo. O problema é que é um DSP sem ponto flutuante e sem funções trigonométricas para que essas duas funções sejam realmente lentas (implementação de software). Em vez disso, coloco o pecado (x) na tabela em vez de x e usei a série Taylor para y= sqrt (1-x * x) para calcular o cos (x) a partir disso. Esta série Taylor é exata sobre o intervalo que eu precisava com apenas 5 termos (os denominadores são todos os poderes de dois!) E podem ser implementados no ponto fixo usando CLAIN C e geram código mais rápido que qualquer outra abordagem que eu pudesse pensar. .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top