Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_KhIO_I_semestr_-_shpori.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.07 Mб
Скачать

2.Розкладання періодичної функції в ряд Фур'є (теорія)

Ряд Фур’є дає змогу представити періодичний процес сумою гармонічних коливань, частоти яких є кратні основній частоті .

(1)

де – кругова частота.

У фізиці коливань і хвиль для означення простих рухів, поряд із терміном гармоніка, використовують термін мода .

Для визначення коефіцієнтів ряду помножимо вираз (1) на ( – ціле число) і проінтегруємо його на відрізку [0, TP]. Враховуючи ортогональність системи функцій { }, одержимо:

(2)

(3)

Помножимо (1) на і проінтегруємо добуток на відрізку [0, TP]. Одержимо:

, де k = 1,2,3... (4)

Ряд (7.2.1) можна записати по іншому:

, (5)

де , (6)

. (7)

Набори величин { } i { } залежать від . Їх називають, відповідно, амплітудним і фазовим спектром функції .

Графіки залежностей i від є дискретними. Їх зображають на площині відрізками ліній, які розташовані перпендикулярно до осі абсцис у точках, кратних . Наприклад, для функції

, (8)

графік якої зображено на рис. 1, амплітудний спектр набуде вигляду, як на рис. 2.

Рис. 1. Графік функції Рис. 2. Амплітудний спектр функції

Примітки. 1. Якщо значення періоду ТР збільшувати, то частота зменшується і густина ліній зростає. При дискретний спектр стає неперервним і ряд Фур’є переходить в інтеграл Фур’є.

2. У спектрі функції (8) відсутні парні гармоніки (їхні амплітуди дорівнюють 0, оскільки функція (8) є парною).

Виходячи з поняття визначеного інтеграла і властивості парності чи непарності функції, можна довести, що для парних функцій ряд (1) містить тільки косинусні гармоніки, а для непарних – тільки синусні.

Інтеграли (2), (3) і (4) обчислимо, застосовуючи формулу правих прямокутників. Позначимо через – крок дискретизації функції на періоді . Дискретизацію виконаємо шляхом табулювання заданої функції. Тоді в масив будуть записані дискретні значення аргументу (тобто ), а в масив – дискретні значення функції . Враховуючи сказане, із виразу (2) одержимо:

. (9)

Відповідно

; (10)

. (11)

Частинна сума членів ряду (1) (гармонік) набуде вигляду:

, . (12)

3.Написати программу методу половинного ділення за блок-схемою:

Рис. 2.21. Блок-схема алгоритму МПД

Program XIO_MPD;{Навчальна програма (див. рис. 2.21)}

Uses Crt ; {Пўдключення стандартного модуля Crt }

Label 1 ;

Var Eps,a,b,c,Fa,Fb,Fc : Real;{Eps - Точнiсть обчислень

a b - Межi локалiзацi∙ кореня;

с - Середина ўнтервалу [a, b];

Fa Fb Fc - Значення функцi∙ в точках a b c}

Lich : Integer; { Lich - Лiчильник повторень}

Function f(x : Real) : Real ;

Begin

f := x * x - 4 { Рўвняння x*x-4 = 0 }

End;

BEGIN {Початок головно∙ програми }

Lich := 0; {Занулення лўчильника спроб вводу даних}

ClrScr; { Очищення екрана}

Repeat {Повторення введення значень a b Eps, доки не виконаються умови,

якў задано у виразў Until (див. нижче)}

Write ('Введiть коректнi межi a b i точнiсть Eps=');

Readln (a, b, Eps) ; { Введення з клавўатури a b Eps}

Fa := f(a) ;

Fb := f(b) ;

If Abs (Fa) <= Eps then { Чи лўва межа ўнтервалу а - корўнь?}

Begin

c := a ;

Goto 1

End else

If Abs (Fb) <= Eps then { Чи права межа ўнтервалу b - корўнь?}

Begin

c := b ;

Goto 1

End ;

If Lich > 2 then { Чи вичерпана максимальна кўлькўсть (2)

спроб введення початкових умов?}

Begin

Writeln ('Протабулюйте функцiю. Good Bye !');

Readln ;

Exit { Закўнчення роботи ў вихўд з програми }

End ;

Lich := Lich + 1; { Збўльшення лўчильника спроб введення даних}

Until ( b > a ) and ( Fa * Fb < 0 ) and ( Eps > 0 ) ;

Lich := 0; { Занулення лўчильника подўлу ўнтервалу [a, b] навпўл }

While (b-a) > Eps do {Цикл подўлу ўнтервалу [a,b] пополам}

Begin

c := a + 0.5*(b - a) ;

Lich := Lich + 1; {Збўльшення лўчильника подўлу ўнтервалу [a,b] }

Fc := f(c);

If Abs (Fc) < Eps then Goto 1 ; {Чи середина ўнтервалу c - корўнь ?}

If Fa * Fc > 0 then

Begin

Fa := Fc ; a := c

End else

b:=c

End;

c := a + 0.5 * (b - a) ;

1: Writeln ('Знайдено коpiнь х=', c:10:3 ,' за N=', Lich ,' подiлiв') ;

Writeln ('Tочнўсть Ерs=',Eps);

Repeat Until KeyPressed {Затримання показу вўкна Output}

END.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]