为什么 sin(x²)+sin(y²)=1 的图像这么复杂?

目 录
Contents
一维正弦波
单个正弦波
多个正弦波
正弦波变成随机数字
二维正弦波
三维正弦波

  本文中的图像来自于为什么 sin(x2)+sin(y2)=1 的图像这么复杂? 给出的图像。

 

§01 维正弦波


  周期震荡的正弦波当做组成任何信号的基础是傅里叶分析的核心内容,这一点实际上并不非常直观。相关的理论直到十九世纪初期(1807年)才被法国数学家 Fourier 正式提出,并经历了大约一个世纪相关数学基础在逐步完善起来。

1.1 单个正弦波

  下图是 y ( t ) = sin ⁡ ( t + θ ) y\left( t \right) = \sin \left( {t + \theta } \right) y(t)=sin(t+θ) 在不同相位 θ \theta θ 对应的函数波形。

▲ 图1.1  正弦波图像

▲ 图1.1 正弦波图像

1.2 多个正弦波

  下面显示多个正弦波叠化后的图像。函数具有八个正弦波叠加而成,它们的幅值与频率成反比。

y ( t ) = sin ⁡ ( t + θ ) + 1 2 sin ⁡ [ 2 ( t + θ ) ] + 1 4 sin ⁡ [ 4 ( t + θ ) ] + 1 8 sin ⁡ [ 8 ( t + θ ) ] + y\left( t \right) = \sin \left( {t + \theta } \right) + {1 \over 2}\sin \left[ {2\left( {t + \theta } \right)} \right] + {1 \over 4}\sin \left[ {4\left( {t + \theta } \right)} \right] + {1 \over 8}\sin \left[ {8\left( {t + \theta } \right)} \right] + y(t)=sin(t+θ)+21sin[2(t+θ)]+41sin[4(t+θ)]+81sin[8(t+θ)]+ 1 16 sin ⁡ [ 16 ( t + θ ) ] + 1 32 [ 32 ( t + θ ) ] + 1 64 [ 64 ( t + θ ) ] + 1 128 [ 128 ( t + θ ) ] {1 \over {16}}\sin \left[ {16\left( {t + \theta } \right)} \right] + {1 \over {32}}\left[ {32\left( {t + \theta } \right)} \right] + {1 \over {64}}\left[ {64\left( {t + \theta } \right)} \right] + {1 \over {128}}\left[ {128\left( {t + \theta } \right)} \right] 161sin[16(t+θ)]+321[32(t+θ)]+641[64(t+θ)]+1281[128(t+θ)]

▲ 图1.2  具有多个谐波周期波形图像

▲ 图1.2 具有多个谐波周期波形图像

  下面将所有的频率分量的幅度修改成一致。

y ( t ) = sin ⁡ ( t + θ ) + sin ⁡ [ 2 ( t + θ ) ] + sin ⁡ [ 4 ( t + θ ) ] + sin ⁡ [ 8 ( t + θ ) ] + y\left( t \right) = \sin \left( {t + \theta } \right) + \sin \left[ {2\left( {t + \theta } \right)} \right] + \sin \left[ {4\left( {t + \theta } \right)} \right] + \sin \left[ {8\left( {t + \theta } \right)} \right] + y(t)=sin(t+θ)+sin[2(t+θ)]+sin[4(t+θ)]+sin[8(t+θ)]+ sin ⁡ [ 16 ( t + θ ) ] + [ 32 ( t + θ ) ] + [ 64 ( t + θ ) ] + [ 128 ( t + θ ) ] \sin \left[ {16\left( {t + \theta } \right)} \right] + \left[ {32\left( {t + \theta } \right)} \right] + \left[ {64\left( {t + \theta } \right)} \right] + \left[ {128\left( {t + \theta } \right)} \right] sin[16(t+θ)]+[32(t+θ)]+[64(t+θ)]+[128(t+θ)]

  下面显示了波形形状,大家也需注意到这个波形似乎随着相位补赛,波形在变化。

▲ 图1.4  正弦波图像

▲ 图1.4 正弦波图像

  这实际上是个错觉。上面的波形是成将原来信号采集了512个点进行显示,由于采集频率过低使得采集到的的序列波形不能够很好的反映出原来信号幅度。下面是采集两10000个点进行显示,可以看到波形非常稳定。

▲ 图1.2.3  多个正弦波叠加

▲ 图1.2.3 多个正弦波叠加

1.3 正弦波变成随机数字

  虽然整体上,正弦波是周期可预测的,但从局部来看,改数字的小数部分则呈现随机特性。

    sint = (sin(tt)*1000000.0) % 1.0

  将 sin ⁡ ( t ) \sin \left( t \right) sin(t) 乘以 1 0 6 10^6 106 取小数部分,绘制波形可以看到这几乎就是一个随机小数。

y ( t ) = [ sin ⁡ ( t + θ ) ⋅ 1 0 6 ] % 1.0 y\left( t \right) = \left[ {\sin \left( {t + \theta } \right) \cdot 10^6 } \right]\% 1.0 y(t)=[sin(t+θ)106]%1.0

▲ 图1.3.1  数字小数部分取值

▲ 图1.3.1 数字小数部分取值

  下面是某些程序用于产生随机数的公示。至于其中为什么出现 12.9898 和 43758.5453123 这两个参数,也许大神的思维不是我们凡人能够理解的。

y ( t ) = [ sin ⁡ ( t ∗ 12.9898 ) ⋅ 43758.5453123 ] % 1.0 y\left( t \right) = \left[ {\sin \left( {t*12.9898} \right) \cdot 43758.5453123} \right]\% 1.0 y(t)=[sin(t12.9898)43758.5453123]%1.0

t = linspace(0, 20, 10000)

for id,phase in tqdm(enumerate(linspace(0, 2*pi, 10))):

    tt = t + phase
    sint = (sin(tt)*1000000.0) % 1.0

    plt.clf()
    plt.figure(figsize=(10,6))
    plt.plot(t, sint)
    plt.xlabel('t')
    plt.ylabel('sin(t)')
    plt.axis([0, 20, -.2, 1.2])
    plt.grid(True)
    plt.tight_layout()
    savefile = os.path.join(gifpath, '%03d.jpg'%id)
    plt.savefig(savefile)
    plt.close()

 

§02 维正弦波


   y ( t ) = sin ⁡ ( x ) y\left( t \right) = \sin \left( x \right) y(t)=sin(x) 扩展到以下几个函数:

z ( x , y ) = sin ⁡ ( x ) + sin ⁡ ( y ) z\left( {x,y} \right) = \sin \left( x \right) + \sin \left( y \right) z(x,y)=sin(x)+sin(y)

▲ 二维函数波形

▲ 二维函数波形

z ( x , y ) = sin ⁡ ( x + y ) z\left( {x,y} \right) = \sin \left( {x + y} \right) z(x,y)=sin(x+y)

▲ 二维函数波形

▲ 二维函数波形

z ( x , y ) = sin ⁡ ( x ) ⋅ sin ⁡ ( y ) z\left( {x,y} \right) = \sin \left( x \right) \cdot \sin \left( y \right) z(x,y)=sin(x)sin(y)

▲ 二维函数波形

▲ 二维函数波形

z ( x , y ) = sin ⁡ ( x ⋅ y ) z\left( {x,y} \right) = \sin \left( {x \cdot y} \right) z(x,y)=sin(xy)

▲ 二维函数波形

▲ 二维函数波形

z ( x , y ) = sin ⁡ ( x 2 + y 2 ) z\left( {x,y} \right) = \sin \left( {x^2 + y^2 } \right) z(x,y)=sin(x2+y2)

▲ 二维函数波形

▲ 二维函数波形

z ( x , y ) = sin ⁡ ( x 2 ) + sin ⁡ ( y 2 ) z\left( {x,y} \right) = \sin \left( {x^2 } \right) + \sin \left( {y^2 } \right) z(x,y)=sin(x2)+sin(y2)

▲ 图2.6 二维函数图像

▲ 图2.6 二维函数图像

from headm import *                 # =
from mpl_toolkits.mplot3d import Axes3D

ax = Axes3D(plt.figure(figsize=(12,8)))

x = linspace(-5,5, 50)
y = linspace(-5,5, 50)
xx,yy = meshgrid(x,y)
z = sin(xx * yy)
ax.plot_surface(xx,yy,z,
                rstride=1,
                cstride=1,
                cmap=plt.cm.Blues)
ax.contourf(xx,yy,z,
            zdir='z',
            offset=-1,
            cmap=plt.cm.BuGn)

plt.savefig('/home/aistudio/stdout.jpg')
plt.show()

 

§03 维正弦波


  下一个问题,对于三维正弦波该如何绘制呢?

W ( x , y , z ) = sin ⁡ ( x ) + sin ⁡ ( y ) + sin ⁡ ( z ) W\left( {x,y,z} \right) = \sin \left( x \right) + \sin \left( y \right) + \sin \left( z \right) W(x,y,z)=sin(x)+sin(y)+sin(z)

  对于这个问题我现在还不知道,下面是

  给出的体素绘制图片,搬运到这儿一起欣赏一下。

▲ 图3.1 三维函数图像

▲ 图3.1 三维函数图像

▲ 图3.2 三维函数图像

▲ 图3.2 三维函数图像

▲ 图3.3 三维函数等高面

▲ 图3.3 三维函数等高面

▲ 图3.4 三维函数等高面

▲ 图3.4 三维函数等高面

w ( x , y , z ) = sin ⁡ ( x 2 ) + sin ⁡ ( y 2 ) + sin ⁡ ( z 2 ) w\left( {x,y,z} \right) = \sin \left( {x^2 } \right) + \sin \left( {y^2 } \right) + \sin \left( {z^2 } \right) w(x,y,z)=sin(x2)+sin(y2)+sin(z2)

▲ 图3.5 三维函数等高面

▲ 图3.5 三维函数等高面

▲ 图3.6 三维函数

▲ 图3.6 三维函数

▲ 图3.7 三维函数

▲ 图3.7 三维函数

▲ 图3.8 三维函数

▲ 图3.8 三维函数

▲ 图3.9 三维函数

▲ 图3.9 三维函数

▲ 图3.10 三维函数

▲ 图3.10 三维函数

▲ 图3.11 三维函数

▲ 图3.11 三维函数


■ 相关文献链接:

● 相关图表链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值