Matematică în universitate

Rezolvarea sarcinilor de învățare în Maple.
Coeficienți ai seriei Fourier.

Obținerea formulelor pentru coeficienții seriilor Fourier în Maple 6 (tm)

În probleme de învățare pe seria Fourier, este uneori necesar să se obțină formula pentru termenul general al seriei. În special, acest lucru poate fi necesar pentru a clarifica comportamentul asimptotic al amplitudinilor armonicilor mai înalte.







Programele cunoscute din cărțile Maple dau numai sume parțiale (polinoamele Fourier) cu un număr dat de termeni, dar nu dau formule pentru termeni cu numere arbitrare. Acest program se distinge prin faptul că dă forma generală a coeficienților, și nu doar amploarea unora dintre primii dintre ei.

Ie program oferă formule explicite Coeficienți An = a (n) și Bn = b (n) în extinderea f (x) = A0 + suma (An * Cos (n * (2 * Pi * (x-x1) / (x2 -X1) pi)) + Bn * Sin (n * (2 * Pi * (x-x1) / (x2-x1) pi), unde x = 1..infinity).

ATENȚIE. Calculul integralelor cu parametrii din Maple are o singularitate: Maple nu este atât de perfectă, din proprie inițiativă, pentru a explora gama de valorile parametrilor. Prin urmare, programul propus are un mic defect, dacă este extins într-o funcție Fourier f cuprinde o multitudine de termeni sinusoidale având lungimea perioadei perioadei predeterminate de căutare (adică mai mulți termeni în f (x) au aceeași formă ca și termenii unui titlu serii Fourier), formula corespunzătoare coeficienții a (n) și b (n) „nu observă“ acești termeni (adică prin formula Mapl'om în acest caz, va fi invalid pentru anumite valori ale lui n). De exemplu, extinderea funcției f = x și o funcție f = x + sin (x) în intervalul [pi, Pi] în seria Fourier a sistemului x), sin (n * x)> olichayutsya unul față de celălalt de un singur coeficient - la termen sin (x). Formula b (n), generate de program, va fi valabil pentru orice n> 1, dar incorect când n = 1.

Motivul specific pentru aceasta este că Maple ia bine integralitatea formei

la valori numerice ale k și n. Dar, în general, Maple 6 nu știe că situația k = n trebuie tratată separat. Maple 6 nu știe că integralul scris mai sus nu este zero, ci "delta" lui Kronecker (într-un factor, desigur). În special, pentru funcția sin (x) + sin (2 * x) pe intervalul [-Pi, Pi], acest program dă un (n) = 0 și b (n) = 0 tocmai din acest motiv.







Pentru a crea un program care recunoaște automat sumele sinusoidale cu perioada L ca parte a funcției f (x) este dificil și nu este necesar.

În primul rând, având în vedere ancheta comportamentului unui n (n) și b (n) ca n → infinit, putem fi siguri că numărul finit de termeni de la începutul secvenței nu afectează comportamentul asimptotic. Și funcțiile care conțin mulți astfel de termeni nu se întâlnesc de multe ori.

În al doilea rând, la urma urmei, noi înșine știm dacă am formulat un astfel de termen în formula pentru f (x), nu-i așa?

Al treilea capăt al programului adăugat verificare formulele obținute a (n) și b (n) numărul la care o sumă parțială Sn (x) este diferit de numărul dorit de f (x), cu mai puțin de epsilon * || f (x) || (dar nu mai mult decât numărul Nmax, care poate fi schimbat). Desigur, dacă vă întrebați f (x) = x + 0,00001 * Sin (1000 * x) și epsilon = 0,1, atunci cecul nu ajunge la n = 1000 pentru orice Nmax. Dar, la urma urmei, puteți vedea acest summand fără să verificați și să înțelegeți că Maple vă oferă coeficienții funcției FĂRĂ A FI.

Am stabilit f (x) intervalul funcției de delimitare [x1, x2] și epsilon eroarea relativă pentru selectarea numărului de termeni din suma parțială Sn (x) a seriei Fourier.

Sarcina lui f (x) ca funcție, mai degrabă decât ca o expresie, este explicată prin faptul că în versiunile mai tinere ale lui Maple s-au întâmplat probleme în formule care conțin atât funcții, cât și expresii simultan. Maple 6 pare să fie liber de aceste probleme, dar. - a se vedea apendicele 2.

Acum construim graficele unei funcții date și suma parțială a unei serii Fourier cu sumele N.

Dacă doriți să vedeți formula unei sume private - puneți punct și virgulă în loc de colon.

2. Acum vom face același lucru sub forma unui număr numeric (coeficienții într-un număr numeric exact, estimările într-un număr aproximativ numeric). Încercăm să luăm numărul sumei n în suma parțială Sn astfel încât Sn diferă de f (x) de cel mult eps * || f (x) || în norma patratică (din cauza cerinței că numărul de sume n

> Eps3: = evalf ((epsilon ^ 2-1) * normaf2): delta: = evalf (Int (Sn * (Sn-2 * f (x)), x = x1..x2)):

Partea de închidere a instrucțiunii din buclă "nu" este "sfârșitul"; și în versiunile Maple înainte de a 6-a - "od".

> k: = 'k': n: = 'n': flag: = 0: pentru k din 1 în timp ce delta> eps3 și k<=Nmax do: n: =k; An: =int(f(x)*cos(n*(koef*x-x0)),x=x1..x2)*2/L: Bn: =int(f(x)*sin(n*(koef*x-x0)),x=x1..x2)*2/L: Sn: =Sn+An*cos(k*(koef*x-x0))+Bn*sin(n*(koef*x-x0)): delta: =evalf(Int(Sn*(Sn-2*f(x)),x=x1..x2)): if (An<> a (n)), apoi tipăriți ("Formula a (n) este nevalidă pentru n` = n): flag: = 1:<> b (n)) apoi tipăriți ("Formula b (n) nu este valabilă pentru n` = n): pavilion: = 1:

> print ('se verifică formulele de coeficienți până la numărul n` = n);

> dacă pictograma = 0 atunci se imprimă ("graficul funcției date și suma parțială până la n` = n) alt tipar (" graficul funcției date și suma parțială fixă ​​la n` = n)

> D: = sqrt (evalf (Int ((Sn-f (x)) ^ 2, x = x1..x2)) / normaf2): print ( `diferență între Sn (x) și f (x) se caracterizează printr-un număr | | Sn-f (x) || / || f (x) || `= d); imprimare (`pentru eps` dat = epsilon);







Articole similare

Trimiteți-le prietenilor: