.gitignore + some other changes to lab1

This commit is contained in:
Egor 2024-09-09 03:11:23 +03:00
parent d09088648f
commit 513acbbef3
5 changed files with 98 additions and 44 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
.pdf

View file

@ -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)
}

Binary file not shown.

View file

@ -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)

View file

@ -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)