如何在python中编写这个分段函数?

时间:2017-10-27 10:54:49

标签: python python-2.7 function

Function f(t)

Function S(t;n)

我正在编写一个针对n,t&的不同值的程序。吨。

我的尝试:

import math
def S(t, n, T):
    i=1
    res=complex(0,0)
    while i<=n:
        x=(complex(1,0)/complex(-1,2))
        y=((complex(2,0)*complex(-1,2)*complex(math.pi,0)*complex(t,0))/complex(T,0)).real
        res+=x* complex(math.sinh(y),0)
        i+=1
    res*=4/math.pi
    return res

你可以使用n = 1,t = 2(pi)(0.01)和T = 2(pi)的值

我知道这段代码可能包含错误,但实际上,我想知道如何在python 2.7中编写这个函数S(t; n)。是以复杂的形式制作所有这些都是准确的方法吗?我非常怀疑这一点。请给我一个提示。我是这个社区的新手。对不起任何问题。谢谢!

1 个答案:

答案 0 :(得分:0)

......不知道为什么我会打扰......但是:

import matplotlib.pyplot as plt
import numpy as np

def s_n(t, T, n):
    valList=[1./( 2 * i - 1 ) * np.sin( 2 * (2 * i - 1) *np.pi * t / T)  for i in range(1,n)]
    return sum(valList)


fig1 = plt.figure(1)
ax=fig1.add_subplot(1,1,1)

tList = np.linspace(-1,4,75)
y1List = np.fromiter( ( s_n(t,3,2) for t in tList ), np.float )
y15List = np.fromiter( ( s_n(t,3,15) for t in tList ), np.float )

ax.plot(tList, y1List)
ax.plot(tList, y15List)

plt.show()

Fourier

......没什么复杂的。