Python中的部分积分

问题描述

我想使用Riemann方法对Python中的部分积分进行数值计算。我想针对x进行积分并找到t的函数,但我不知道该怎么做 我的功能是:f(x) = cos(2*pi*x*t) 在[-1 / 2,1 / 2]之间的原语:f(t) = sin(pi*t)/t

def riemann(a,b,dx):
    if a > b:
        a,b = b,a
    n = int((b - a) / dx)
    s = 0.0
    x = a
    for i in range(n):
        f_i[k] = np.cos(2*np.pi*x)
        s += f_i[k]
        x += dx
    f_i = s * dx
    
    return f_i,t

解决方法

您的方法没有什么太可怕的。结果确实接近真实值:

import numpy as np


def riemann(a,b,dx):
    if a > b:
        a,b = b,a
    n = int((b - a) / dx)
    s = 0.0
    x = a
    for i in range(n):
        s += np.cos(2 * np.pi * x)
        x += dx
    return s * dx


print(riemann(0.0,0.25,1.0e-3))
print(1 / (2 * np.pi))
0.15965441949277526
0.15915494309189535

一些评论:

  • 您不会调用此 Riemann方法。这是midpoint method(数值积分)。
  • 在域的边界上多加注意。现在,您的数字域为[a - dx,b + dx]
  • 如果您要寻找速度,最好收集所有x值(也许用linspace),用所有要点评估函数一次,然后{ {1}}值上升。 (Python中的循环速度很慢。)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...