Diferencia entre revisiones de «Series de Fourier SAL»
De MateWiki
| Línea 7: | Línea 7: | ||
| − | [[Archivo: | + | [[Archivo: Poster_SeriesSFourier.png|800px]] |
| − | [[Archivo: | + | [[Archivo: Poster_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 | |
Archivo:Poster 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