魏尔斯特拉斯函数

魏尔斯特拉斯函数(Weierstrass function) 是一个处处连续但处处不可微的函数,它是一个经典的反例,颠覆了人们对连续性和可微性之间关系的直觉。 它的一般形式为:

f(x) = Σ (aⁿ cos(bⁿπx)) , n = 0 to ∞

其中:

  • 0 < a < 1: 控制函数的振幅衰减速度。a 越接近 1,函数的震荡越剧烈。
  • b 是正奇数: 控制函数的频率。b 越大,函数震荡越快。
  • ab > 1 + (3π/2): 这是魏尔斯特拉斯证明其处处不可微的条件。 这个条件保证了函数在任何点都无法找到一个确定的切线。

函数的性质:

  • 处处连续: 可以通过逐项求和证明其连续性。每个项都是连续的,并且级数在任何点上都一致收敛。

  • 处处不可微: 这是魏尔斯特拉斯函数最令人惊奇的性质。 在任何点上,函数图像的局部变化都过于剧烈,以至于无法定义一个确定的切线斜率。 证明过程比较复杂,通常需要用到三角恒等式和级数的性质。

  • 自相似性: 在不同的尺度下,魏尔斯特拉斯函数的图像都表现出相似的特征。这是分形几何的重要特征。

import numpy as np
import matplotlib.pyplot as plt

def weierstrass(x, a=0.5, b=3, N=10):
    """
    计算魏尔斯特拉斯函数的近似值。

    Args:
        x: x坐标值
        a: 振幅参数 (0 < a < 1)
        b: 频率参数 (正奇数)
        N:  级数求和项数

    Returns:
        魏尔斯特拉斯函数在 x 处的近似值。
    """
    sum = 0
    for n in range(N):
        sum += a**n * np.cos(b**n * np.pi * x)
    return sum

# 生成数据点
x = np.linspace(-2, 2, 500)  # 调整区间和点数
y = weierstrass(x)

# 绘制图像
plt.plot(x, y)
plt.title("Weierstrass Function (a=0.5, b=3, N=10)")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.grid(True)
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值