Diferencia entre revisiones de «Series de Fourier SAL»

De MateWiki
Saltar a: navegación, buscar
Línea 7: Línea 7:
  
  
[[Archivo: Poster_SeriesSFourier.png|800px]]
+
[[Archivo: Póster_SeriesSFourier.png|800px]]
[[Archivo: Poster_SeriesFourier SAL.pdf]]
+
[[Archivo: Póster_SeriesFourier SAL.pdf]]
  
 
En la sección siguiente se pueden leer los códigos utilizados para generar las gráficas observadas en el póster.  
 
En la sección siguiente se pueden leer los códigos utilizados para generar las gráficas observadas en el póster.  

Revisión del 01:52 19 feb 2026

Trabajo realizado por estudiantes
Título Series de Fourier. Grupo SAL
Asignatura EDP
Curso 2025-26
Autores Sergio Maccanin

Ángela Marquet

Luis Zulueta

Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura



800px Archivo:Póster SeriesFourier SAL.pdf

En la sección siguiente se pueden leer los códigos utilizados para generar las gráficas observadas en el póster.

1 CÓDIGO 1

import math
import matplotlib.pyplot as plt
import numpy as np
Nmax=1000 #si se quiere ver mejor el error tomar números muy grandes de Nmax y pequeños de esp.
esp=20
cmap = plt.cm.viridis
colors = cmap(np.linspace(0, 1, Nmax//esp))
lin=1000
listax=[]
x = np.linspace(-math.pi, math.pi, lin)
N=0
Fsum=0
plt.figure(figsize=(10,6), dpi=600)
ldiff=[]
ftr = np.piecewise(x,
                 [x < -np.pi/2, (x >= -np.pi/2) & (x < 0), (x >= 0) & (x < np.pi/2),(x >= np.pi/2) & (x < np.pi)],
                 [1,-1,1,-1])
lista2=[]

for i in ftr:
    lista2+=[i]
for j in range(Nmax//esp):
    N+=esp
    for i in range(N-1):
        n=i+1
        bn = 2*(1+(-1)**(n)-2*math.cos(n*math.pi/2))/n
        Fsum=bn*np.sin(n*x) + Fsum
    Fsum=Fsum/np.pi
    plt.plot(x, Fsum, color=colors[j])
    lista1=[]
    if N>20000:
        for i in Fsum:
            lista1+=[i]
        diff=0
        for i in range(len(lista1)):
            diff+=abs(lista1[i]-lista2[i])
        ldiff+=[diff]
        listax+=[N]
    Fsum=0
plt.plot(x,ftr,color="red")
plt.show()
plt.figure(figsize=(10,6), dpi=600)
plt.plot(listax,ldiff)
plt.xlabel("Número de elementos de la serie")
plt.ylabel('|Sn-f|')
plt.show



2 CÓDIGO 2

import math
import matplotlib.pyplot as plt
import numpy as np
Nmax=1000
esp=20
cmap = plt.cm.viridis
colors = cmap(np.linspace(0, 1, Nmax//esp))
lin=1000
listax=[]
x = np.linspace(-math.pi, math.pi, lin)
N=0
Fsum=0
plt.figure(figsize=(10,6), dpi=600)
ldiff=[]
ftr = abs(x)
lista2=[]
for i in ftr:
    lista2+=[i]
for j in range(Nmax//esp):
    N+=esp
    for i in range(N-1):
        n=i+1
        bn = 2*(np.cos(np.pi*n)-1)/(n**2)
        Fsum=bn*np.cos(n*x) + Fsum
    Fsum=Fsum/np.pi +np.pi/2
    plt.plot(x, Fsum, color=colors[j])
    lista1=[]
    if N>20000:
        for i in Fsum:
            lista1+=[i]
        diff=0
        for i in range(len(lista1)):
            diff+=abs(lista1[i]-lista2[i])
        ldiff+=[diff]
        listax+=[N]
    Fsum=0
plt.plot(x,ftr,color="red")
plt.show()
plt.figure(figsize=(10,6), dpi=600)
plt.plot(listax,ldiff)
plt.xlabel("Número de elementos de la serie")
plt.ylabel('|Sn-f|')
plt.show


3 CÓDIGO 3

import math
import matplotlib.pyplot as plt
import numpy as np
Nmax=5000
esp=10
cmap = plt.cm.viridis
colors = cmap(np.linspace(0, 1, Nmax//esp))
lin=1000
listax=[]
x = np.linspace(-math.pi, math.pi, lin)
N=0
Fsum=0
plt.figure(figsize=(10,6), dpi=600)
ldiff=[]
ftr = x
lista2=[]
for i in ftr:
    lista2+=[i]
for j in range(Nmax//esp):
    N+=esp
    for i in range(N-1):
        n=i+1
        bn = (2*np.pi*(-1)**(n+1))/n
        Fsum=bn*np.sin(n*x) + Fsum
    Fsum=Fsum/np.pi
    plt.plot(x, Fsum, color=colors[j])
    lista1=[]
    if N>80:
        for i in Fsum:
            lista1+=[i]
        diff=0
        for i in range(len(lista1)):
            diff+=abs(lista1[i]-lista2[i])
        ldiff+=[diff]
    Fsum=0
plt.plot(x,ftr,color="red")
plt.show()
plt.figure(figsize=(10,6), dpi=600)
plt.plot(listax,ldiff)
plt.xlabel("Número de elementos de la serie")
plt.ylabel('|Sn-f|')
plt.show