Remusco
- 30
- 3
- TL;DR
- I have a velocity function of radius r, that I would like to write a Fourier Series expansion to approximate.
I have a velocity function U_theta(r), where r is radius from the origin. This function is defined as:
The plot of U_theta as a function of R is shown as:
How can I write a Fourier series to approximate this curve?
I have a start on this, but am not getting a satisfactory result, as shown below:
My code that does this:
def U_theta(r): s=2.5 R=1*s U=1 if r<=R: U_theta=r*U/R if r>R: U_theta=R*U/r return U_thetaThe plot of U_theta as a function of R is shown as:
How can I write a Fourier series to approximate this curve?
I have a start on this, but am not getting a satisfactory result, as shown below:
My code that does this:
from scipy.integrate import quadimport numpy as npdef U_theta(r): s=2.5 R=1*s U=1 if r<=R: U_theta=r*U/R if r>R: U_theta=R*U/r return U_thetaL=5def fourier(r): A0=(1/L)*quad(lambda r: U_theta(r),0,L)[0] An=0 Bn=0 for n in range(100): An+=np.cos(n*np.pi*r/L)*(2/L)*quad(lambda r: U_theta(r)*np.cos(n*np.pi*r/L),0,L)[0] Bn+=np.sin(n*np.pi*r/L)*(2/L)*quad(lambda r: U_theta(r)*np.sin(n*np.pi*r/L),0,L)[0] return (A0/2)+An+Bnfourier_x_vals=np.linspace(0,L,200)fourier_y_vals=fourier(fourier_x_vals)plt.plot(fourier_x_vals,fourier_y_vals)U_theta_y_vals=[U_theta(r) for r in fourier_x_vals]plt.plot(fourier_x_vals,U_theta_y_vals)