Fourier Series, An Example

Table of Contents

  1. Plot de uma série de Fourier
    1. Função à descrever
    2. Solução analítica
    3. Implementação em Julia
    4. Plot

Plot de uma série de Fourier

Função à descrever

\begin{equation}
\begin{aligned}
f(x) =
\begin{cases}
1, \quad 0\leq\text{x}<\pi\\
0, \quad -\pi\leq\text{x}<0\\
\end{cases}\\
\text{periodic with period T}=2\pi
\end{aligned}
\end{equation}

\begin{equation} \begin{aligned} f(x) = \begin{cases} 1, \quad 0\leq\text{x}<\pi\\ 0, \quad -\pi\leq\text{x}<0\\ \end{cases}\\ \text{periodic with period T}=2\pi \end{aligned} \end{equation}

Solução analítica

Usando,

\begin{equation} \begin{aligned} f(x) = \dfrac{1}{2}a_0 + \sum_{n=1}^\infty \left[a_n \cos(\dfrac{n \pi x}{L}) + b_n \sin(\dfrac{n \pi x}{L})\right] \end{aligned} \end{equation}

Chegamos em,

\begin{equation} \begin{aligned} \begin{cases} a_0 &= 1\\ a_n &= 0, \quad \forall n \in \mathbb{K}\\ b_k &= \dfrac{2}{(2k-1)\pi} \end{cases} \end{aligned} \end{equation}

O que significa que

\begin{equation} \begin{aligned} f(x) = \frac{1}{2} + \sum_{k=1}^{\infty}{\left(\dfrac{2}{(2k-1)\pi}\sin{((2k-1)x)}\right)} \end{aligned} \end{equation}

Implementação em Julia

A função aproximação da série de Fourier

function f(x,N)
  g = 1/2
  for k in 1:1:N
      g += (2/((2*k -1)*π))*sin((2*k-1)*x)
  end
  return g
end

Mapeamos os valores para o intervalo que queremos estimar a função periódica

values = map(x -> f.(-4*π:0.01:4*π,x), 1:1:100)

Por fim, definimos a função real, a qual queremos aproximar

function f_actual(x)
    if abs(x)<π
	if 0<=x<π 
	    return 1
	elseif -π<=x<0
	    return 0
	end
    else 
	y = (x/2π -floor(x/2π))*2π
	if π<=y<2π 
	    return 0
	elseif 0<=y<π
	    return 1
	end
    end
end

Gerando os valores literais

values_actual = f_actual.(-4*π:0.01:4*π)

Plot

Usaremos a biblioteca PlotlyJS.jl, para gerarmos um gráfico de alta qualidade,

trace = PlotlyJS.scatter(;x=xs, y=values[10])

trace2 = PlotlyJS.scatter(;x=xs, y=values[100])

trace3 = PlotlyJS.scatter(;x=xs, y=values_actual)


PlotlyJS.plot([trace,trace3])

Fourier com 10 termos de aproximação img

PlotlyJS.plot([trace2,trace3])

Fourier com 100 termos de aproximação img


Tags: science fourier series inequality julia fourier periodic series analysis modeling


Copyright © 2024 BuddhiLW
Powered by Cryogen
Initially themed by KingMob
Extended by BuddhiLW
🅭🅯🄎
🅭🅯🄎