1. 神奇现象:彩虹的形成

你是否曾在雨后天空中见过彩虹?那绚丽的色彩是如何形成的呢?其实,彩虹的形成是由于太阳光经过雨滴时发生了折射、反射和再次折射的过程。当太阳光射入雨滴时,白光会分解成红、橙、黄、绿、蓝、靛、紫七种颜色。这些颜色在雨滴内部发生反射,然后再折射出来,最终形成了我们看到的彩虹。

import matplotlib.pyplot as plt
import numpy as np

# 定义一个函数来模拟彩虹的形成
def simulate_rainbow(n_bands=7):
    # 定义彩虹的颜色
    colors = [(255, 0, 0), (255, 127, 0), (255, 255, 0), (0, 255, 0),
              (0, 0, 255), (75, 0, 130), (148, 0, 211)]

    # 创建一个图像
    fig, ax = plt.subplots()
    ax.set_xlim(0, 1)
    ax.set_ylim(0, 1)

    # 绘制彩虹
    for i, color in enumerate(colors):
        x = np.linspace(0, 1, n_bands)
        y = np.linspace(0, 1, n_bands)
        ax.fill_betweenx(x, y, color=color)

    # 显示图像
    plt.show()

# 调用函数模拟彩虹
simulate_rainbow()

2. 神奇现象:磁铁的相互作用

磁铁是一种能够吸引或排斥其他物体的材料。那么,磁铁之间的相互作用是怎样的呢?实际上,磁铁的相互作用是由磁场引起的。同名磁极(即南极和南极或北极和北极)会相互排斥,而异名磁极(即南极和北极)会相互吸引。

import numpy as np
import matplotlib.pyplot as plt

# 定义一个函数来模拟磁铁的相互作用
def simulate_magnet_interaction():
    # 创建一个磁场
    field = np.zeros((100, 100))

    # 在磁场中放置两个磁铁
    magnet1 = np.array([50, 50, 1])
    magnet2 = np.array([70, 70, 1])

    # 计算磁场中每个点的磁场强度
    for i in range(100):
        for j in range(100):
            x, y, z = np.array([i, j, 0])
            field[i, j] = np.linalg.norm(magnet1 - x) - np.linalg.norm(magnet2 - x)

    # 绘制磁场
    plt.imshow(field, cmap='viridis', origin='lower')
    plt.colorbar()
    plt.show()

# 调用函数模拟磁铁的相互作用
simulate_magnet_interaction()

3. 神奇现象:声音的传播

声音是一种机械波,它通过空气、水或其他介质传播。那么,声音是如何传播的呢?实际上,声音是通过介质中的分子振动传播的。当声源振动时,它会压缩和稀疏周围的介质,形成声波。

import numpy as np
import matplotlib.pyplot as plt

# 定义一个函数来模拟声音的传播
def simulate_sound_wave():
    # 创建一个声源
    source = np.zeros(100)
    source[50] = 1

    # 传播声音
    for _ in range(100):
        source = np.roll(source, 1)
        source[0] = 0

    # 绘制声音波形
    plt.plot(source)
    plt.xlabel('时间')
    plt.ylabel('振幅')
    plt.show()

# 调用函数模拟声音的传播
simulate_sound_wave()

通过这些简单的示例,我们可以了解到科学奥秘的奇妙之处。希望这些内容能激发你对科学的兴趣,让你更加热爱探索这个神秘的世界!