Exemplo de função contínua difícil de aproximar com polinômios

16

Para fins de ensino, eu precisaria de uma função contínua de uma única variável "difícil" de aproximar com polinômios, ou seja, seria necessário um poder muito alto em uma série de potências para "encaixar" bem essa função. Pretendo mostrar aos meus alunos os "limites" do que pode ser alcançado com as séries de potências.

Pensei em inventar algo "barulhento", mas, em vez de fazer o meu próprio, estou me perguntando se existe algum tipo de "função difícil" padrão que as pessoas usam para testar algoritmos de aproximação / interpolação, de maneira semelhante às funções de teste de otimização que possuem numerosas funções. mínimos locais onde algoritmos ingênuos ficam presos facilmente.

Desculpas se esta pergunta não for bem formada; tenha piedade de um não matemático.

Laringe Decidua
fonte

Respostas:

14

Por que não mostrar simplesmente a função de valor absoluto?

Aproximação com, por exemplo, expansão Legendre-polinomial funciona, mas muito mal :

Aproximação seqüencial da função de valor absoluto por polinômios

A expansão de Taylor é obviamente completamente inútil aqui, sempre dando apenas uma função linear, sempre diminuindo ou sempre aumentando (dependendo se o ponto em que você expande é negativo ou positivo).

leftaroundabout
fonte
Você pode interpolar | x | usando a interpolação Chebyshev, consulte nbviewer.jupyter.org/github/cpraveen/na/blob/master/…, que converge rapidamente. Por exemplo, você pode alterar N = 2 * i no código para N = 15 + ie testar um grau maior. Não é um método de expansão, mas ainda é baseado em polinômios.
precisa
O @PraveenChandrashekar Chebyshev funciona “melhor” porque coloca mais peso nas partes externas do intervalo, onde a função é suave. Assim, a oscilação excessiva é evitada, mas dizendo que aproxima a função é duvidosa melhor - ele faz em particular captura a curva acentuada em até pior do que uniformes-discreto pontos ou L 2 -minimisation. Se seu objetivo é evitar componentes de alta frequência, use melhor uma transformação integral que amortece adequadamente esses componentes. x=0 0eu2
usar o seguinte comando
É perfeitamente bom ter pontos não uniformes como na interpolação de Chebyshev. Com um grau de cerca de 20, fornece uma aproximação muito mais precisa do que o Legendre que você mostra em sua postagem. Meça os erros para serem mais quantitativos. Você também pode fazer a aproximação da série Chebyshev de | x | que é mais preciso que a expansão Legendre.
cpraveen
@PraveenChandrashekar, o ponto é que os polinômios não são, em princípio, capazes de aproximar uma função como devidamente. Existem métodos diferentes, cada um dos quais falha um pouco mais ou menos espetacularmente, mas nenhum deles funciona bem no sentido de "apenas alguns termos dão algo que pode ser confundido com a função original". Se você precisar usar polinômios, precisará considerar quais tipos de erro são mais problemáticos. Legendre e Chebyshev têm seus casos de uso, mas não há uma bala de prata. Por fim, uma abordagem com, por exemplo, splines é tipicamente mais eficaz. x|x|
usar o seguinte comando
Sabemos que não existe um método perfeito. A questão é quais funções são difíceis de serem aproximadas pelos polinômios. Portanto, é preciso ver todos os métodos possíveis envolvendo polinômios para concluir que nenhum deles faz um bom trabalho. O Legendre não é a melhor maneira de aproximar | x | e, portanto, dá uma impressão bastante falsa de que os polinômios são muito ruins para | x |. Com Chebyshev, você tem convergência e aproximações muito melhores que o Legendre, elas não oscilam tanto quanto o Legendre, embora converjam lentamente perto de x = 0, onde a função não é suave o suficiente.
precisa saber é
10

|x|

Wolfgang Bangerth
fonte
Obrigado, é exatamente isso que eu quis dizer com "pensei em algo 'barulhento'". Muito bom exemplo IMO.
Laryx Decidua
6

A aproximação não é dificultada apenas pela função a ser aproximada, mas pelo intervalo no qual a aproximação deve ser um "bom ajuste". E você deve definir a medida para um "bom ajuste", ou seja, qual é o erro máximo (absoluto ou relativo) que você deseja tolerar?

exp(x)[0 0,10]pecado(x)[0 0,2π]insira a descrição da imagem aquiinsira a descrição da imagem aqui

GertVdE
fonte
Mostro esses exemplos no meu curso para enfatizar que a expansão de Taylor não é um bom método para aproximar funções.
precisa saber é
6

Polinômios são surpreendentemente eficazes na aproximação de funções [1]. Se você tiver pelo menos continuidade de Lipschitz, as aproximações de Chebyshev convergirão. Obviamente, a convergência pode ser lenta, e esse é o preço que pagamos por lidar com uma função não suave.

Hoje, os computadores são muito mais rápidos do que os dias em que muitos livros de análise numérica foram escritos e algoritmos inteligentes aumentaram ainda mais a velocidade, de modo que ter que usar mais termos pode não ser tão ruim quanto costumava ser.

Os exemplos patológicos como a função de monstro de Weierstrass são interessantes do ponto de vista teórico, mas não são representativos da maioria dos contextos de aplicação reais.

|x|x=0 0

É importante ensinar as dificuldades de aproximação com os polinômios, mas também é importante dizer aos alunos que podemos construir estimativas de erro e algoritmos adaptativos que possam lidar com esses problemas.

[1] https://people.maths.ox.ac.uk/trefethen/mythspaper.pdf

[2] http://www.chebfun.org

cpraveen
fonte
+1 por vincular o "artigo sobre mitos" de Lloyd Trefethen, uma pesquisa muito boa sobre o tópico IMO, obrigado.
Laryx Decidua
2

f(x)=1 1x2+1 1

1 1x2+1 1=1 1-x2+x4-x6+x8-x10+x12-...

-1 1<x<1 1x=0 0x=2

Christopher Wells
fonte
0

y=sEun(x)

Aniruddha Acharya
fonte
y=pecado(1 1x)