Python 需要帮助使用Numpy计算导数和积分吗

Python 需要帮助使用Numpy计算导数和积分吗,python,methods,difference,integral,derivative,Python,Methods,Difference,Integral,Derivative,我需要帮助计算导数和积分的函数使用有限差分法和Numpy不使用循环 整个任务:将高斯函数f(x)=(1./(sqrt(2.*pi)*s))*e**(-0.5*((x-m)/s)**2)在m=0和s=[0.5,5]的区间[-10,10]上制成表格。使用有限差分法计算函数的导数和积分,而不使用循环。创建函数及其导数的绘图。使用Numpy和Matplotlib 以下是节目的开始: def f(x、s、m): def main(): 通过使用numpy数组,您可以使用代数表示法直接应用该操作: resu

我需要帮助计算导数和积分的函数使用有限差分法和Numpy不使用循环

整个任务:将高斯函数f(x)=(1./(sqrt(2.*pi)*s))*e**(-0.5*((x-m)/s)**2)在m=0和s=[0.5,5]的区间[-10,10]上制成表格。使用有限差分法计算函数的导数和积分,而不使用循环。创建函数及其导数的绘图。使用Numpy和Matplotlib

以下是节目的开始:

def f(x、s、m):

def main():


通过使用numpy数组,您可以使用代数表示法直接应用该操作:

result = (1./(np.sqrt(2.*np.pi)*s))*np.exp(-0.5*((x-m)/s)**2)
在我看来,最简单的方法(不使用SciPy)似乎是对导数的积分和中心差分法直接求和:

import numpy as np
import pylab

def gaussian(x, s, m):
    return 1./(np.sqrt(2.*np.pi)*s) * np.exp(-0.5*((x-m)/s)**2)

m = 0
s = np.linspace(0.5,5,3)
x, dx = np.linspace(-10,10,1000, retstep=True)

x = x[:,np.newaxis]
y = gaussian(x,s,m)

h = 1.e-6
dydx = (gaussian(x+h, s, m) - gaussian(x-h, s, m))/2/h
int_y = np.sum(gaussian(x, s, m), axis=0) * dx
print(int_y)

pylab.plot(x, y)
pylab.plot(x, dydx)
pylab.show()

您需要在代码中添加1个选项卡才能正确显示它。
result = (1./(np.sqrt(2.*np.pi)*s))*np.exp(-0.5*((x-m)/s)**2)
import numpy as np
import pylab

def gaussian(x, s, m):
    return 1./(np.sqrt(2.*np.pi)*s) * np.exp(-0.5*((x-m)/s)**2)

m = 0
s = np.linspace(0.5,5,3)
x, dx = np.linspace(-10,10,1000, retstep=True)

x = x[:,np.newaxis]
y = gaussian(x,s,m)

h = 1.e-6
dydx = (gaussian(x+h, s, m) - gaussian(x-h, s, m))/2/h
int_y = np.sum(gaussian(x, s, m), axis=0) * dx
print(int_y)

pylab.plot(x, y)
pylab.plot(x, dydx)
pylab.show()