typst-itmo/chastotnie-methods/lab1/Егор_Капралов_5_1.typ

78 lines
3.3 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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