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

如何迭代计算依赖前序结果的get_wf函数(t∈(0,π),步长0.05)

迭代调用get_wf的简便实现方法

方法一:基于Numpy生成序列的循环(最直观)

利用numpy.arange直接生成所有需要的t值,通过循环迭代更新波函数,同时可将所有结果存入列表方便后续使用:

import numpy as np

# 初始化初始波函数
current_wf = get_wf_0(xmin, xmax, Nx, neigs, t=0)
# 存储所有迭代结果,先存入初始值
wf_results = [current_wf]

# 生成0.05到π(不包含π)、步长为0.05的t序列
t_steps = np.arange(0.05, np.pi, 0.05)

for t in t_steps:
    # 用当前波函数调用get_wf,更新current_wf
    current_wf = get_wf(xmin, xmax, Nx, neigs, t=t, wf=current_wf)
    wf_results.append(current_wf)

方法二:纯Python循环(无需Numpy)

如果不想依赖Numpy,可通过while循环手动累加t值,注意处理浮点数精度问题:

import math

current_wf = get_wf_0(xmin, xmax, Nx, neigs, t=0)
wf_results = [current_wf]

t = 0.05
# 加1e-8容差避免浮点数精度导致的提前终止
while t < math.pi + 1e-8:
    current_wf = get_wf(xmin, xmax, Nx, neigs, t=t, wf=current_wf)
    wf_results.append(current_wf)
    t += 0.05

额外提示

  • 如果不需要保留所有历史波函数结果,仅需跟踪当前值,可去掉wf_results列表,直接更新current_wf即可,节省内存。
  • 浮点数累加可能存在精度误差,多次累加0.05后最终值可能略大于π,添加容差判断(如+1e-8)可避免漏掉接近π的最后一次迭代。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:35:55