'''Numerical integration or quadrature for a smooth function f with known values at x_iThis method is the classical approch of suming 'Equally Spaced Abscissas'method 2:"Simpson Rule"'''from __future__ import print_functiondef method_2(boundary, steps):# "Simpson Rule"# int(f) = delta_x/2 * (b-a)/3*(f1 + 4f2 + 2f_3 + ... + fn)h = (boundary[1] - boundary[0]) / stepsa = boundary[0]b = boundary[1]x_i = makePoints(a,b,h)y = 0.0y += (h/3.0)*f(a)cnt = 2for i in x_i:y += (h/3)*(4-2*(cnt%2))*f(i)cnt += 1y += (h/3.0)*f(b)return ydef makePoints(a,b,h):x = a + hwhile x < (b-h):yield xx = x + hdef f(x): #enter your function herey = (x-0)*(x-0)return ydef main():a = 0.0 #Lower bound of integrationb = 1.0 #Upper bound of integrationsteps = 10.0 #define number of steps or resolutionboundary = [a, b] #define boundary of integrationy = method_2(boundary, steps)print('y = {0}'.format(y))if __name__ == '__main__':main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。