Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Інститут телекомунікацій, радіоелектроніки та електронної техніки
Кафедра теоретичної радіотехніки та радіовимірювань
Звіт з лабораторної роботи №8
Тема «Табулювання функції, заданої рядом фур’є»
з дисципліни «Інформатика та обчислювальна техніка»
Мета роботи - засвоїти методику та виробити практичні навики застосування вкладених циклів.
Варіант 10
ЗАВДАННЯ.
Протабулювати функцію y=f(t) для М значень аргумента на інтервалі [a,b]. Функція задана аналітично та у вигляді ряду Фур’є:
.
ВИКОНАННЯ ЗАВДАННЯ.
Варіанти завдань до лабораторної роботи подано. При розрахунку врахувати N перших членів ряду. Не вказані в таблиці коефіцієнти ak, bk дорівнюють нулеві.
№
f(t)
ak, bk
a
b
M
N
10
t((((t)(sign(t)
bk=
(парні k) (непарні k)
-((2
((2
20
8
ПОСТАНОВКА ЗАДАЧІ.
Необхідно перетворити функцію s(t) з урахуванням конкретних значень ak і bk, щоб привести цю функцію до зручного для обчислень вигляду. При описі виводу, чи в ескізі таблиці, передбачити виведення для кожного значення аргументу значень функції f(t) та s(t). Значення М для всіх варіантів обрані таким чином, що не виникає необхідності в поекранному виведенні даних.
РОЗРОБКА АЛГОРИТМУ
Оскільки кількість членів ряду та точок табулювання є заданою, то для програмування обчислень зручно використати вкладені цикли з параметрами: внутрішній для обчислення суми ряду і зовнішній для зміни аргументу в заданих межах та виведення аргументу і результатів. Для обчислення коефіцієнтів ak і bk, f(t) використовують підпрограми-функції.
ТЕКСТ ПРОГРАМИ.
Program L8;
uses Crt;
const
N=8;M=20;a=-pi/2;b=pi/2;
var
Ak:{array [1..N] of }real;
Bk:{array [1..N] of }real;
t,ft{y},d,s:real;
K:byte;
function sign(x:real):integer;
begin
if x<0 then sign:=-1 else sign:=1
end;
Begin
ak:=0;
d:=(abs(a)+abs(b))/m;
t:= a;
while t<=b do
begin
s:=0;
for k:=1 to n do
begin
if {k mod 2<>0} odd(k) then bk:=8/(pi/k/k/k) else bk:=0;
s:= s+(ak*cos(k*t)+bk*sin(k*t));
end;
ft:=t*(pi-t)*sign(t);
t:=t+d;
writeln('t = ',t:5:2,' y = f(t) =',ft:5:2,' s(t) = ',s:10:2)
end;
Readln;
End.
НАЛАГОДЖЕННЯ ТА РЕЗУЛЬТАТИ ТЕСТУВАННЯ.
Висновок: - на лабораторній роботі я засвоїв методику та виробив практичні навики застосування вкладених циклів.