Esempio di una funzione continua difficile da approssimare con i polinomi


16

Ai fini dell'insegnamento avrei bisogno di una funzione continua di una singola variabile che è "difficile" per approssimarsi con i polinomi, vale a dire uno avrebbe bisogno di potenze molto elevate in una serie di potenze per "adattarsi" bene a questa funzione. Intendo mostrare ai miei studenti i "limiti" di ciò che può essere raggiunto con le serie di potenze.

Ho pensato di inventare qualcosa di "rumoroso", ma invece di fare il mio mi chiedo solo se esiste una sorta di "funzione difficile" standard che le persone usano per testare algoritmi di approssimazione / interpolazione, in qualche modo simile a quelle funzioni di test di ottimizzazione che hanno numerose minimi locali in cui gli algoritmi ingenui si bloccano facilmente.

Si scusa se questa domanda non è ben formata; per favore abbi pietà di un non matematico.

Risposte:


14

Perché non mostrare semplicemente la funzione di valore assoluto?

L'approssimazione con ad esempio l'espansione Legendre-polinomiale funziona, ma piuttosto male :

Approssimazione sequenziale della funzione del valore assoluto da parte dei polinomi

L'espansione di Taylor è ovviamente completamente inutile qui, dando sempre solo una funzione lineare, o sempre in diminuzione o sempre in aumento (a seconda che il punto attorno al quale si espande sia negativo o positivo).


Puoi interpolare | x | usando l'interpolazione di Chebyshev, vedi nbviewer.jupyter.org/github/cpraveen/na/blob/master/… che converge abbastanza velocemente. Ad esempio, è possibile modificare N = 2 * i nel codice in N = 15 + i e testare un grado più grande. Non è un metodo di espansione ma ancora basato su polinomi.
cpraveen,

@PraveenChandrashekar Chebyshev funziona "meglio" perché mette più peso sulle parti esterne dell'intervallo, dove la funzione è fluida. Pertanto si evita l'eccessiva oscillazione, ma dire che si avvicina meglio alla funzione è dubbio: in particolare cattura la virata acuta a anche peggio dei punti uniformi discreti o della minimizzazione di L 2 . Se il tuo obiettivo è evitare componenti ad alta frequenza, utilizzare meglio una trasformazione integrale che smorza correttamente questi componenti. x=0L2
lasciato circa il

È perfettamente bene avere punti non uniformi come nell'interpolazione di Chebyshev. Con una laurea di circa 20 anni, fornisce un'approssimazione molto più accurata di Legendre che mostri nel tuo post. Misura gli errori per essere più quantitativi. Puoi anche eseguire l'approssimazione della serie di Chebyshev di | x | che è più preciso dell'espansione di Legendre.
cpraveen,

@PraveenChandrashekar il punto è che i polinomi non sono in linea di principio in grado di approssimare una funzione come propriamente. Esistono diversi metodi, ognuno dei quali fallisce un po 'più o meno in modo spettacolare, ma nessuno di questi funziona bene nel senso di "solo pochi termini danno qualcosa che potrebbe essere scambiato per la funzione originale". Se devi usare i polinomi, devi considerare quali tipi di errore sono più problematici, Legendre e Chebyshev hanno entrambi i loro casi d'uso ma non c'è un proiettile d'argento. In definitiva, un approccio con ad esempio spline è in genere più efficace. x|x|
leftaroundabout

Sappiamo che non esiste un metodo perfetto. La domanda è: quali funzioni sono difficili da approssimare per i polinomi. Quindi si devono vedere tutti i possibili metodi che coinvolgono i polinomi per concludere che nessuno di loro fa un buon lavoro. Il Legendre non è il modo migliore per approssimare | x | e quindi dà un'impressione piuttosto falsa che i polinomi siano troppo cattivi per | x |. Con Chebyshev hai convergenza e approssimazioni molto migliori rispetto a Legendre, non oscillano così male come Legendre, anche se convergono lentamente vicino a x = 0, dove la funzione non è abbastanza fluida.
cpraveen,

10

È un caso patologico, ma puoi sempre ricorrere alla funzione mostro di Weierstrass . Illustra un punto più ampio, vale a dire che le funzioni che non sono fluide - ad esempio, che hanno un nodo - sono difficili da approssimare perché le stime di errore di interpolazione richiedono che la funzione che viene interpolata sia differenziabile più volte. In altre parole, se non ti piace troppo la funzione Weierstrass, puoi sempre scegliere|x|


Grazie, questo è esattamente ciò che intendevo per "Ho pensato a qualcosa di 'rumoroso'". Ottimo esempio IMO.
Laryx Decidua,

6

L'approssimazione non è solo resa difficile dalla funzione da approssimare, ma dall'intervallo in cui l'approssimazione dovrebbe essere un "buon adattamento". E dovresti definire la misura per un "buon adattamento", ovvero qual è l'errore massimo (assoluto o relativo) che desideri tollerare?

exp(x)[0,10]sin(x)[0,2π]inserisci qui la descrizione dell'immagineinserisci qui la descrizione dell'immagine


Mostro tali esempi nel mio corso per sottolineare che l'espansione di Taylor non è un buon metodo per approssimare le funzioni.
cpraveen,

6

I polinomi sono sorprendentemente efficaci all'approssimazione della funzione [1]. Se hai almeno la continuità di Lipschitz, convergeranno le approssimazioni di Chebyshev. Naturalmente, la convergenza può essere lenta e questo è il prezzo che paghiamo per gestire una funzione non regolare.

Oggi, i computer sono molto più veloci dei tempi in cui sono stati scritti molti libri di analisi numerica e algoritmi intelligenti hanno aumentato ulteriormente la velocità, quindi dover usare più termini potrebbe non essere così male come una volta.

Gli esempi patologici come la funzione dei mostri di Weierstrass sono interessanti da un punto di vista teorico, ma non sono rappresentativi della maggior parte dei contesti applicativi reali.

|x|x=0

È importante insegnare le difficoltà in approssimazione con i polinomi, ma è anche importante dire agli studenti che possiamo costruire stime di errori e algoritmi adattativi in ​​grado di affrontare questi problemi.

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

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


+1 per aver collegato il "documento mitico" di Lloyd Trefethen, un ottimo sondaggio sull'argomento IMO, grazie.
Laryx Decidua,

2

f(x)=1x2+1

1x2+1=1x2+x4x6+x8x10+x12

1<x<1x=0x=2


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.