You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非积分法计算分段常函数与psi_j_n乘积的有符号面积

计算分段函数与psi_j_n乘积的有符号面积

我用Python定义了分段函数step_function,它接收数组a和x值,返回分段函数f,同时定义了辅助函数rect和psi_j_n。我希望不使用积分计算step_function与psi_j_n(x, -10, 0)乘积的有符号面积——因为图形是矩形,所求就是该矩形的面积。

我的初始尝试代码:

signed_area = 0
for x_values in x:
    signed_area += step_function(x_values, a) * psi_j_n(x_values, -10, 0)

signed_area

这段代码不正确,原因是遗漏了矩形的底边长(即x数组的步长),手动计算的正确结果应为0.012。


代码定义更新

分段函数step_function实现

import numpy as np
import matplotlib.pyplot as plt

# 定义分段函数
def step_function(x, a):
    def rect(x):
        return np.where((x >= 0) & (x < 1), 1, 0)
    
    f = np.sum([a[k-1] * rect(x - k) for k in range(1, len(a) + 1)], axis=0)
    return f

# 设置随机种子保证结果可复现
np.random.seed(42)

# 生成a_k的随机值
N = 10
a = np.array([-0.25091976,  0.90142861,  0.46398788,  0.19731697, -0.68796272,
       -0.68801096, -0.88383278,  0.73235229,  0.20223002,  0.41614516])
#a = np.random.uniform(-1, 1, size=N)

# 定义绘图用的x值序列
x = np.arange(0, N + 1, 0.01)

# 在x序列上计算分段函数值
y = step_function(x, a)

# 绘制分段函数图像
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.title('分段函数图像')
plt.grid(True)
plt.show()

上述代码生成的分段函数图像:
分段函数图像

psi_j_n(x, j, n)函数实现

def psi(x):
    if 0 <= x < 0.5:
        return 1
    elif 0.5 <= x < 1:
        return -1
    else:
        return 0

def psi_j_n(x, j, n):
    return 2**(j/2) * psi(2**j * x - n)

我需要计算step_function(x, a)与psi_j_n(x, j, n)乘积的有符号面积。


内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:27:38