diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c9c16aa --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.pdf diff --git a/chastotnie-methods/lab-template.typ b/chastotnie-methods/lab-template.typ index 88f4fbd..67c182e 100644 --- a/chastotnie-methods/lab-template.typ +++ b/chastotnie-methods/lab-template.typ @@ -4,7 +4,7 @@ doc ) = [ #set document( - title: [Частотные методы - Лабораторная работа №#num], + title: "Егор_Капралов_1.5_" + str(num), author: "Капралов Егор" ) @@ -16,39 +16,35 @@ #set text( font: "Liberation Serif", - size: 14pt, + size: 12pt, lang: "ru", region: "RU" ) #set par( justify: true, - leading: 1.5em, - first-line-indent: 1.25cm ) - // remove leading dot from the heading numbering - #set heading( - numbering: (..nums) => nums.pos().map(str).join(".") - ) + #set heading(numbering: (..nums) => { + let level = nums.pos().len() + if level == 1 { + numbering("Задание 1.", ..nums) + } else { + numbering("1.", ..nums) + } + }) #show heading: it => { - set text(weight: "bold") - // format non-numbered headings differently - if it.numbering == none { - set align(center) - set text(size: 16pt) - block(below: 2.5em, above: 2.5em, upper(it)) - } else { - set text(size: 14pt) - block(below: 2em, above: 2em, it) - } + set text(size: 14pt, weight: "bold") + block(above: 1.5em, below: 1.5em, it) } - #show raw.where(lang: "matlab"): it => { - set text(size: 11pt, font: "Courier Prime") - set par(leading: 1.15em) - it + #show outline: it => { + show heading: it => { + set align(center) + upper(it) + } + block(below: 2.5em, it) } #import "../title.typ": itmo_title @@ -60,12 +56,7 @@ ) #outline(title: [Содержание]) - + #pagebreak() #doc ] -#let chapter(title) = { - pagebreak(weak: true) - heading(numbering: none, title) -} - diff --git a/chastotnie-methods/lab1/lab1.pdf b/chastotnie-methods/lab1/lab1.pdf deleted file mode 100644 index 43e9bdf..0000000 Binary files a/chastotnie-methods/lab1/lab1.pdf and /dev/null differ diff --git a/chastotnie-methods/lab1/lab1.typ b/chastotnie-methods/lab1/lab1.typ deleted file mode 100644 index db49b18..0000000 --- a/chastotnie-methods/lab1/lab1.typ +++ /dev/null @@ -1,16 +0,0 @@ -#import "../lab-template.typ" -#import lab-template: lab -#import lab-template: chapter - -#show: doc => lab( - num: 1, - name: [Ряды Фурье], - doc -) - -#chapter[wawwa] - -= АААААААА - -#lorem(100) - diff --git a/chastotnie-methods/lab1/Егор_Капралов_5_1.typ b/chastotnie-methods/lab1/Егор_Капралов_5_1.typ new file mode 100644 index 0000000..5a40eb8 --- /dev/null +++ b/chastotnie-methods/lab1/Егор_Капралов_5_1.typ @@ -0,0 +1,78 @@ +#import "../lab-template.typ" +#import lab-template: lab +#import "@preview/cetz:0.2.2": canvas, plot + +#show: doc => lab( + num: 1, + name: [Ряды Фурье], + doc +) + += Вещественные функции +Придумайте числа $a, b, t_0, t_1, t_2$ такие, что $a, b > 0$ и $t_2 > t_1 > t_0$. Рассмотрите следующие функции $f : RR -> RR$ и для каждой из функции: + +- Постройте график $f(t)$ + +- Рассмотрите частичные суммы Фурье $F_N$ и $G_N$ вида +$ F_N (t) = a_0/2 + sum^N_(n=1) (a_n cos(omega_n t) + b_n sin(omega_n t)) $ +$ G_N (t) = sum^N_(n=-N) c_n e^(i omega_n t) $ +где $omega_n = (2 pi n)/T$ + +- Приведите формулы для вычисления коэффициентов $(a_n, b_n)$ и $c_n$ для каждого случая. Если значения некоторых из них очевидны, укажите это. Для первой функции (квадратная волна) и $n=0, 1, 2$ вычислите значения указанных коэффициентов вручную. + +- Напишите программу, которая ывчисляет коэффициениты Фурье $(a_n, b_n)$ и $c_n$ для произвольного $N$. Приведите в отчёте коэффициенты для случая $N = 3$. + +- Постройте графики $F_N (t)$ и $G_N (t)$ для пяти различных значений $N$. Сравните их друг с другом и с графиком исходной функции $f(t)$. + +- Проверьте выполнение оавенства Парсеваля для коэффициентов $(a_n, b_n)$ и $c_n$. + +1. *Квадратная волна*. Периодическая функция с периодом $T = t_2 - t_0$ такая, что +$ f(t) = cases( + a\, & t in [t_0, t_1), + b\, & t in [t_1, t_2) +) $ + +Пусть $a = 1, b = 2$ и $t_0 = 0, t_1 = 1, t_2 = 2$. В таком случае конечная функция будет вида: + +$ f(t) = cases( + 1\, & t in [0, 1), + 2\, & t in [1, 2) +) $ + +Построим график данной функции: + +#figure( + canvas(length: 1.5cm, { + plot.plot(size: (3, 3), + x-tick-step: 1, y-tick-step: 1, + x-min: -3, x-max: 3, + y-min: -3, y-max: 3, + x-grid: true, y-grid: true, + { + plot.add(domain: (-3, 3), t => { + let (t0, t1, t2) = (0, 1, 2) + let T = t2 - t0 + let abs_rem = calc.rem(calc.abs(t), T) + if abs_rem >= t0 and abs_rem <= t1 { + return 1 + } else { + return 2 + } + }) + } + ) + }) +) + +2. Любая *чётная* периодическая функция по вашему выбору. + +#lorem(50) + +3. Любая *нечётная* периодическая функция по вашему выбору. + +#lorem(50) + +4. Любая периодическая функция по вашему выбору, график которой состоит не только из прямых линий, и которая не является *ни чётной, ни нечётной*. + +#lorem(50) +