除了“幂级数”,另一类非常重要的函数项级数级数就是“三角(函数)级数”(trigonometric series)。《微积分B》第8-6节主要介绍:什么是三角级数?三角函数系的正交性?三角级数与Fourier级数的关系?函数如何进行Fourier级数展开?Fourier级数的收敛条件?正弦级数(余弦级数)与函数奇偶性的关系?一般周期函数的Fourier级数展开?

一、三角级数

  顾名思义,三角(函数)级数就是被加项为sine或cosine函数的一种函数项级数。从几何上来理解就是无穷多条sine或cosine曲线的叠加。
1,正弦函数
  sine函数是一种常见而简单的周期函数,典型的就是描述简谐振动(simple harmonic oscillation)的函数:

y=Asin(ωt+φ)

y = Asin(\omega t + \varphi)
其中,周期 T=2πω T = \frac{2\pi}{\omega}
2,正弦级数
  对于比较复杂的周期函数,我们按照幂级数展开的思想,使用正项函数展开如下:

f(t)=A0+∑n=1∞Ansin(nωt+φ0)

f(t) = A_0 + \sum_{n=1}^{\infty} A_nsin(n\omega t + \varphi_0)
注:幂级数展开式中的项是 x 的幂,即 xnx^n ;而三角级数展开式中的项是 x 的倍数,即 nx 。这是因为,通过三角函数的幂和三角函数的倍角可以互相转换。也正因为如此,三角级数更易于计算,将“幂的关系”变为“倍数的关系”,这事实上就是一种“降维”
3,三角级数
  对上面的正弦级数进行如下变换

Ansin(nωt+φ0)=Ansin(φ0)cos(nωt)+Ancos(φ0)sin(nωt)

A_nsin(n\omega t + \varphi_0) = A_nsin(\varphi_0)cos(n\omega t) + A_ncos(\varphi_0)sin(n\omega t)
对常数项进行换元:

a02=A0,an=Ansin(φ0),bn=Ancos(φ0),ω=πl

\frac{a_0}{2} = A_0,\; a_n = A_nsin(\varphi_0), \; b_n = A_ncos(\varphi_0), \; \omega = \frac{\pi}{l}
其中,l=T2 l = \frac{T}{2} 是半周期
换元后可得

a02+∑n=1∞(ancosnπtl+bnsinnπtl)

\frac{a_0}{2} + \sum_{n=1}^{\infty}(a_ncos\frac{n \pi t}{l} + b_nsin\frac{n \pi t}{l})
这就是“三角级数”
令 πtl=x\frac{\pi t }{l} = x ,也可以写成如下形式

a02+∑n=1∞[ancos(nx)+bnsin(nx)]

\frac{a_0}{2} + \sum_{n=1}^{\infty}[a_ncos(nx) + b_nsin(nx)]

二、三角函数系的正交性

1,三角函数系
  三角函数系简单来说就是构成三角级数的各个基本项,如下:

1,cos(x),sin(x),cos(2x),sin(2x),⋅⋅⋅,cos(nx),sin(nx),⋅⋅⋅

1, \; cos(x), \; sin(x), \; cos(2x), \; sin(2x), \; \cdot \cdot \cdot , \; cos(nx), \; sin(nx), \; \cdot \cdot \cdot
  对比幂级数的基本项

x0,x1,x2,x3,⋅⋅⋅,xn,⋅⋅⋅

x^0, \; x^1, \; x^2, \; x^3, \; \cdot \cdot \cdot , \; x^n, \; \cdot \cdot \cdot
  其实也很好理解,只不过三角函数系用倍角取代幂。此外,1=cos(0∗x) 1 = cos(0 * x)
2,正交性
  三角函数系的正交性(trigonometric orthogonality)指的就是上述三角函数基本项中的任意不同的两项的乘积在对称区间 [−π,π] [-\pi, \pi] 上的积分等于零。如下:

∫π−πcos(nx)dx=0,(n=1,2,3,...)

\int_{-\pi}^{\pi}cos(nx) \mathrm{d} x = 0 \;, \; (n = 1,2,3,...)

∫π−πsin(nx)dx=0,(n=1,2,3,...)

\int_{-\pi}^{\pi}sin(nx) \mathrm{d} x = 0 \;, \; (n = 1,2,3,...)

∫π−πsin(kx)cos(nx)dx=0,(k,n=1,2,3,...)

\int_{-\pi}^{\pi}sin(kx)cos(nx) \mathrm{d} x = 0 \;, \; (k,n = 1,2,3,...)

∫π−πcos(kx)cos(nx)dx=0,(k,n=1,2,3,...,k≠n)

\int_{-\pi}^{\pi}cos(kx)cos(nx) \mathrm{d} x = 0 \;, \; (k,n = 1,2,3,..., k \ne n)

∫π−πsin(kx)sin(nx)dx=0,(k,n=1,2,3,...,k≠n)

\int_{-\pi}^{\pi}sin(kx)sin(nx) \mathrm{d} x = 0 \;, \; (k,n = 1,2,3,..., k \ne n)
  此外,任意相同两项的乘积在对称区间 [−π,π] [-\pi, \pi] 上的积分不等于零。如:

∫π−π12dx=2π,

\int_{-\pi}^{\pi}1^2 \mathrm{d} x = 2\pi \;,

∫π−πsin2(nx)dx=π,∫π−πcos2(nx)dx=π,(n=1,2,3,...)

\int_{-\pi}^{\pi}sin^2(nx) \mathrm{d} x = \pi \;, \int_{-\pi}^{\pi}cos^2(nx) \mathrm{d} x = \pi \;, \; (n = 1,2,3,...)
注1:两个函数 f(x) 和 g(x) 在区间 [−π,π][-\pi, \pi] 正交的一般定义是,它们的乘积的定积分等于零,即

∫π−πf(x)g(x)dx=0

\int_{-\pi}^{\pi} f(x)g(x) \mathrm{d}x = 0
注2:三角函数系正交公式的证明要到了以下两个定积分,可以从面积的角度来直观地理解 —— x轴上方和x轴下方的面积相互抵消

∫π−πsin(x)dx=0,∫π−πcos(x)dx=0

\int_{-\pi}^{\pi}sin(x) \mathrm{d} x = 0 \; , \; \int_{-\pi}^{\pi}cos(x) \mathrm{d} x = 0

三、Fourier级数

  幂级数的展开是借助于“Taylor公式”,而三角级数的展开则需要借助“Fourier级数”,不同的是“Taylor级数”是唯一的幂级数展开式,而“Fourier级数”不一定是唯一的三角级数展开式。(???)
  回顾“Taylor公式”的推导过程,先假设函数f(x)可以展开成一个多项式:

f(x)=C0+C1x+C2x2+⋅⋅⋅+Cnxn

f(x) = C_0 + C_1x + C_2x^2 + \cdot \cdot \cdot + C_nx^n
  然后通过对上式在 x=a x = a 这一点进行逐级求导,来确定系数数列 {Cn}\{ C_n \} 与 导数数列 {f(n)(a)}\{ f^{(n)}(a) \} 之间的关系。
  同样地,也可以这样来确定“Fourier级数”。
1,假设
  设f(x)是周期为 2π2\pi 的周期函数,且能展开成三角级数:

a02+∑n=1∞[ancos(nx)+bnsin(nx)]

\frac{a_0}{2} + \sum_{n=1}^{\infty}[a_ncos(nx) + b_nsin(nx)]
  注意这个假设的两个条件 —— 周期函数和区间,后面将对这两个条件进行扩展。
2,逐项积分,求各个系数
  有趣的是,“Taylor公式”推导时是求导,这里是积分。三角函数积分,很容易想到要利用“三角函数系的正交性”来简化运算。
1)第一次积分

∫π−πf(x)dx=∫π−πa02dx+∑n=1∞[an∫π−πcos(nx)dx+bn∫π−πsin(nx)dx]

\int_{-\pi}^{\pi}f(x) \mathrm{d} x = \int_{-\pi}^{\pi} \frac{a_0}{2} \mathrm{d} x + \sum_{n=1}^{\infty}[a_n\int_{-\pi}^{\pi}cos(nx) \mathrm{d} x + b_n\int_{-\pi}^{\pi}sin(nx) \mathrm{d} x]
  根据三角函数系的正交性,很明显,后面部分的积分都为零,故有

a0=1π∫π−πf(x)dx

a_0 = \frac{1}{\pi}\int_{-\pi}^{\pi}f(x) \mathrm{d} x
2)求 ana_n

∫π−πf(x)cos(nx)dx=a02∫π−πcos(nx)dx+∑k=1∞[ak∫π−πcos(kx)cos(nx)dx+bk∫π−πsin(kx)cos(nx)dx]

\int_{-\pi}^{\pi}f(x)cos(nx) \mathrm{d} x = \frac{a_0}{2}\int_{-\pi}^{\pi} cos(nx) \mathrm{d} x + \sum_{k=1}^{\infty}[a_k\int_{-\pi}^{\pi}cos(kx)cos(nx) \mathrm{d} x + b_k\int_{-\pi}^{\pi}sin(kx)cos(nx) \mathrm{d} x]
  根据三角函数系的正交性,消去积分为零的项,故有

an=1π∫π−πf(x)cos(nx)dx,(n=1,2,3,...)

a_n = \frac{1}{\pi}\int_{-\pi}^{\pi}f(x)cos(nx) \mathrm{d} x \;, \; (n = 1,2,3,...)
3)同理可求 bnb_n

bn=1π∫π−πf(x)sin(nx)dx,(n=1,2,3,...)

b_n = \frac{1}{\pi}\int_{-\pi}^{\pi}f(x)sin(nx) \mathrm{d} x \;, \; (n = 1,2,3,...)
  此外,需要注意的是,当 n = 0 时,an=a0 a_n = a_0 ,这个公式可以统一

an=1π∫π−πf(x)cos(nx)dx,(n=0,1,2,3,...)

a_n = \frac{1}{\pi}\int_{-\pi}^{\pi}f(x)cos(nx) \mathrm{d} x \;, \; (n = 0,1,2,3,...)
3,总结和扩展
  想象一下,如果一个函数既可以展开成幂级数,也可以展开成Fourier级数,那么这两种展开式有没有什么联系呢?
  答案是:有的!这就要用到Euler公式。
  将 x=eiθ x = e^{i \theta} 代入

f(x)=C0+C1x+C2x2+⋅⋅⋅+Cnxn

f(x) = C_0 + C_1x + C_2x^2 + \cdot \cdot \cdot + C_nx^n
  可得

f(x)=C0+C1eiθ+C2ei∗2θ+⋅⋅⋅+Cnei∗nθ

f(x) = C_0 + C_1e^{i \theta} + C_2e^{i * 2\theta} + \cdot \cdot \cdot + C_ne^{i * n \theta}
  代入Euler公式

f(x)=C0+C1[cos(θ)+isin(θ)]+C2[cos(2θ)+isin(2θ)]+⋅⋅⋅+Cn[cos(nθ)+isin(nθ)]

f(x) = C_0 + C_1[cos(\theta) + isin(\theta)] + C_2[cos(2\theta) + isin(2\theta)] + \cdot \cdot \cdot + C_n[cos(n\theta) + isin(n\theta)]
  写成和式

f(x)=C0++∑n=1∞Cn[cos(nθ)+isin(nθ)]

f(x) = C_0 + + \sum_{n=1}^{\infty}C_n[cos(n\theta) + isin(n\theta)]
  这也是“三角级数”,事实上,它是“复Fourier级数”

四、奇拓展与偶拓展

1,正弦级数与余弦级数
  上面已推导:通过积分的方法,可以求出Fourier级数的各个系数

an=1π∫π−πf(x)cos(nx)dx,(n=0,1,2,3,...)

a_n = \frac{1}{\pi}\int_{-\pi}^{\pi}f(x)cos(nx) \mathrm{d} x \;, \; (n = 0,1,2,3,...)

bn=1π∫π−πf(x)sin(nx)dx,(n=1,2,3,...)

b_n = \frac{1}{\pi}\int_{-\pi}^{\pi}f(x)sin(nx) \mathrm{d} x \;, \; (n = 1,2,3,...)
  仔细观察这个两个公式,你会得到两个有趣的发现:
1)如果f(x)为奇函数,ana_n 中积分恒等于零,而 bnb_n 中的积分不等于零;
2)如果f(x)为偶函数,bnb_n 中积分恒等于零,而 ana_n 中的积分不等于零;
  也就是说:f(x)为奇函数时,它的Fourier级数中只剩下正弦项,即“正弦级数”;f(x)为偶函数时,它的Fourier级数中只剩下余弦项,即“余弦级数”。
2,周期拓展
  前面我们在推导Fourier级数时,作了两个假设,即“设f(x)是周期为 2π2\pi 的周期函数”,现在我们破除其中一个“假设”:f(x)不是周期函数。
  先看一个简单的:f(x)是区间 [−π,π][{-\pi}, {\pi}]上的函数。
  我们回想一下函数项级数的几何意义 —— “无穷多条曲线叠加”,如下图。很明显,它在每一小段(区间)内,还是“无穷多条曲线小段的叠加”。

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3 * np.pi, 3 * np.pi, 1024)
y0 = 0.5 * np.ones(x.size)
y1 = 0.673 * np.cos(x);
y2 = -0.212 * np.cos(3 * x)
y3 = 0.127 * np.cos(5 * x)
y = y0 + y1 + y2 + y3
plt.plot(x, y0, 'g:')
plt.plot(x, y1, 'y:')
plt.plot(x, y2, 'm:')
plt.plot(x, y3, 'c:')
plt.plot(x, y, 'r')
plt.show()

  逆向思维一下:我想像有一个周期为 2π2\pi 的周期函数g(x),它在区间 [−π,π][{-\pi}, {\pi}]上与f(x)重合。根据上面的结论,g(x)可以展开成Fourier级数,那么在区间 [−π,π][{-\pi}, {\pi}] 上g(x)这条曲线仍然是同样的哪些“无穷多条曲线的叠加”。
  换句话说,f(x)也可以展开成与周期函数g(x)相同的Fourier级数,只是展开后再截取,即把区间限定在 [−π,π][{-\pi}, {\pi}]上 。这种展开方法就叫周期拓展。
3,半周期
  再深入一步:f(x)只是是区间 [0,π][0, {\pi}]上的函数呢?
  很简单,我们再进行周期拓展之前,先进行一次对称区间的扩展 —— 在区间 [−π,0][{-\pi}, 0] 上为f(x)生成一个镜像。然后按上面的方法进行周期拓展,再Fourier级数展开,最后截取的时候,只截取 区间 [0,π][0, {\pi}] 的部分即可。
  需要注意的是:生成镜像的方法有两种 —— 奇函数镜像和偶函数镜像。举个例子来说明吧。
例: f(x),x∈(0,π)f(x), \; x \in (0, \pi)
这个函数可以有“正弦级数展开”(奇拓展)和“余弦级数展开”(偶拓展)两种Fourier级数展开式,如下图

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
x0 = np.arange(-3 * np.pi, -np.pi, 0.01)
x1 = np.arange(-np.pi, np.pi, 0.01)
x2 = np.arange(np.pi, 3 * np.pi, 0.01)
y0 = x0 + 2 * np.pi
y1 = x1
y2 = x2 - 2 * np.pi
t = np.array([-3 * np.pi, -2 * np.pi, -np.pi, -np.pi, 0, np.pi, np.pi, 2 * np.pi, 3 *np.pi])
y = np.array([-np.pi, 0, np.pi, -np.pi, 0, np.pi, -np.pi, 0, np.pi])
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(9, 4))
axes[0].plot(x0,y0, 'g')
axes[0].plot(x1,y1, 'g')
axes[0].plot(x2,y2, 'g')
axes[0].plot(t, y, 'ko', markerfacecolor='none')
axes[0].grid()
axes[1].plot(x0,abs(y0), 'g')
axes[1].plot(x1,abs(y1), 'g')
axes[1].plot(x2,abs(y2), 'g')
axes[1].plot(t, abs(y), 'ko', markerfacecolor='none')
axes[1].grid()
plt.show()

  如上图所示,左边是奇拓展,右边是偶拓展。
1)正弦级数展开

f(x)=∑n=1∞bnsin(nx)=∑n=1∞(−1)n2nsin(nx),x∈(0,π)

f(x) = \sum_{n=1}^{\infty}b_nsin(nx) = \sum_{n=1}^{\infty}(-1)^n \frac{2}{n}sin(nx)\; , \; x \in(0, \pi)
2)余弦级数展开

f(x)=a02+∑n=1∞ansin(nx)=π2+∑k=1∞(−4π)1(2k+1)2cos(2k+1)x,x∈(0,π)

f(x) = \frac{a_0}{2} + \sum_{n=1}^{\infty}a_nsin(nx) = \frac{\pi}{2} +\sum_{k=1}^{\infty}(- \frac{4}{\pi}) \frac{1}{(2k+1)^2}cos(2k+1)x\; , \; x \in(0, \pi)

五、一般周期函数的Fourier级数

  前面我们在推导Fourier级数时,作了两个假设,即“设f(x)是周期为 2π2\pi 的周期函数”,现在我们破除另一个“假设”:f(x)的周期不是 2π2\pi ,而是一般的周期 T=2l T = 2l 。
1,周期变换
  前面对于非周期函数我们用的方法是“周期拓展”,现在对于一般周期,我们用“周期换元” —— 它本质上是一种坐标系变换

2lx∼2πt⇒x=lπt

\frac{2l}{x} \; \sim \; \frac{2\pi}{t} \; \; \Rightarrow \; \; x = \frac{l}{\pi}t
  则有 f(x)=f(lπt)=φ(t) f(x) = f(\frac{l}{\pi}t) = \varphi(t)

φ(t)=a02+∑n=1∞[ancos(nt)+bnsin(nt)]

\varphi(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty}[a_ncos(nt) + b_nsin(nt)]
2,新的Fourier系数
  将 t=πlx t = \frac{\pi}{l}x 代入,可得

an=1π∫π−πφ(t)cos(nt)dt=1l∫l−lf(x)cos(nπxl)dx,(n=0,1,2,3,...)

a_n = \frac{1}{\pi}\int_{-\pi}^{\pi}\varphi(t)cos(nt) \mathrm{d} t = \frac{1}{l}\int_{-l}^{l}f(x)cos(\frac{n \pi x}{l}) \mathrm{d} x\;, \; (n = 0,1,2,3,...)

bn=1π∫π−πφ(t)sin(nt)dt=1l∫l−lf(x)sin(nπxl)dt,(n=1,2,3,...)

b_n = \frac{1}{\pi}\int_{-\pi}^{\pi}\varphi(t)sin(nt) \mathrm{d} t = \frac{1}{l}\int_{-l}^{l}f(x)sin(\frac{n \pi x}{l}) \mathrm{d} t \;, \; (n = 1,2,3,...)

六、Dirichlet收敛定理

  Dirichlet收敛定理是一个关于Fourier级数收敛性判断的充分条件。内容如下:
  f(x)在 [−π,π]内分段单调,且最多只有有限个第一类间断点,则fx)的形式Fourier级数点点收敛,并且[-\pi,\pi]内分段单调,且最多只有有限个第一类间断点,则fx)的形式Fourier级数点点收敛,并且
1)连续点

a02+∑n=1∞[ancos(nx0)+bnsin(nx0)]=f(x0)

\frac{a_0}{2} + \sum_{n=1}^{\infty}[a_ncos(nx_0) + b_nsin(nx_0)] = f(x_0)
2)间断点

a02+∑n=1∞[ancos(nx0)+bnsin(nx0)]=12[f(x0−0)+f(x0+0)]

\frac{a_0}{2} + \sum_{n=1}^{\infty}[a_ncos(nx_0) + b_nsin(nx_0)] = \frac{1}{2}[f(x_0-0)+f(x_0+0)]
注1:这里说的是点收敛,不是一致收敛
注2:这个收敛的条件比幂级数收敛的条件宽泛得多。

用Python学《微积分B》(Fourier级数)相关推荐

  1. python 微积分_《用 Python 学微积分》笔记 2

    <用 Python 学微积分>原文见参考资料 1. 13.大 O 记法 比较两个函数时,我们会想知道,随着输入值 x 的增长或减小,两个函数的输出值增长或减小的速度究竟谁快谁慢.通过绘制函 ...

  2. 《用 Python 学微积分》笔记 3

    <用 Python 学微积分>原文见参考资料 1. 16.优化 用一个给定边长 4 的正方形来折一个没有盖的纸盒,设纸盒的底部边长为 l,则纸盒的高为 (4-l)/2,那么纸盒的体积为: ...

  3. python 微积分 函数_用Python学微积分(2)---复合函数

    函数的复合(Composition) 定义:设函数y=f(u)和u=g(x)u=g(x),则函数y=f[g(x)]称为由y=f(u)和u=g(x)复合而成的复合函数,其中函数y=f(u)常常称为外函数 ...

  4. python用泰勒级数计算圆周率_用Python学微积分(4)---泰勒级数

    泰勒级数(Taylor Sries) 现在是时候说明指数函数和三角函数那些奇妙的多项式形式了. 这些多项式实际为这些函数在x=0处展开的泰勒级数. 下面我先不加预告地列出函数f(x)在x=0处展开地泰 ...

  5. python计算微积分_用Python学微积分---函数

    一.什么是函数? 广义上说下面这个就叫函数,因为每当我们向机器提供豆子,这台机器便会输出豆浆. 所有输入的集合(集合的本质特点:无序重合)称为定义域(domain),其所有可能输出的集合称为值域(ra ...

  6. python求级数的值_如何在Numpy中计算Fourier级数?

    这是一个老问题,但是由于我必须编写代码,所以我在这里发布了使用numpy.fft模块的解决方案,这可能比其他手工编制的解决方案更快. DFT是计算函数Fourier级数系数(定义为参数的解析表达式或某 ...

  7. 《从问题到程序:用Python学编程和计算》——第3章 基本编程技术 3.1 循环程序设计...

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第3章,第3.1节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第3 ...

  8. python @符号_用Python学数学之Sympy代数符号运算

    在我们初.高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在反复解题.不断运算上,计算方法.运算技巧.笔算能力以及数学公式的记忆仿佛成了我们学习数 ...

  9. python数学符号代码_用Python学数学之Sympy代数符

    在我们初.高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在反复解题.不断运算上,计算方法.运算技巧.笔算能力以及数学公式的记忆仿佛成了我们学习数 ...

  10. 用Python学数学之Sympy代数符号运算

    在我们初.高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在反复解题.不断运算上,计算方法.运算技巧.笔算能力以及数学公式的记忆仿佛成了我们学习数 ...

最新文章

  1. Caffe 学习笔记1
  2. 你正在用左脑还是右脑思考,请测试下就清楚了。
  3. UE4中FString转UTF8及UTF8转FString
  4. Java之JavaBean
  5. POJ - 3250 Bad Hair Day 单调栈
  6. SLIC超像素分割的算法介绍和源码分析(C++)
  7. Python练习题10道(含答案)
  8. steam用移动网不显示头像
  9. 分享100个好看且实用的PPT模板
  10. RS485转HART协议转换模块 MODBUS转HART转换器
  11. jmail组件 java,asp空间如何判断jmail组件已经安装?是否支持呢?
  12. visio2010绘制思维导图方法
  13. 十年前与十年后的我们,流着泪看完的经典语录!
  14. dedecms---一个简单酷站的构建及解析
  15. BZOJ2827 千山鸟飞绝 (离散+treap)
  16. Ubuntu 设置合上笔记本盖子休眠的方法
  17. 欠债还钱,天经地义: 开发团队如何还技术债?
  18. 基于微信小程序的毕业设计选题
  19. 简单上手理解Dav框架
  20. 计算机邀请函操作,Word计算机二级MS office常考内容——用邮件合并技术制作邀请函...

热门文章

  1. windows11iis如何安装?
  2. DDOS入门介绍(一):DDOS简介
  3. EJB - 环境设置
  4. teechart的addarray_TeeChart经验总结 6.Series之1:Line
  5. windows98远程桌面连接
  6. 系统分析师真题__专项:计算机系统与配置 2
  7. 基于Mac制作iPhone铃声教程,iTunes定制铃声
  8. win7下开启梦幻桌面
  9. 计算机所有相关系统设置,关于win7系统5种电脑实用设置技巧
  10. Tomcat发布项目时,更改浏览器地址栏图标