python实现数值积分的Simpson方法实例分析

yipeiwu_com6年前Python基础

本文实例讲述了python实现数值积分的Simpson方法。分享给大家供大家参考。具体如下:

#coding = utf-8
#simpson 法计算积分,数值积分,效果非常理想
from math import *
def func(x): 
 """
 定义被积分函数
 """
 return x*sin(x)
def Get_N(a,b,width):
 # width为步长
 N=int((b-a)/width + 1)
 if N%2 == 0:
  N=N+1
 return N
def GenerateData(a,b,n,width):
 datas = []
 r=a
 for i in range(0,n):
  datas.append(func(r))
  r = r+width
 return datas
def simpson_integral(datas,width,n):
 sum = datas[0]+datas[n-1]
 for i in range(2,n):
  if i%2== 0:
   sum = sum +4*datas[i-1]
  else:
   sum = sum +2*datas[i-1]
 return sum*width/3.0
if __name__ == "__main__":
 a=1.0 #积分上限
 b=3.0 #积分下限
 width=0.0625 #步长
 N=Get_N(a,b,width)
 datas = GenerateData(a,b,N,width)
 print simpson_integral(datas,width,N)

希望本文所述对大家的Python程序设计有所帮助。

相关文章

pycharm的console输入实现换行的方法

pycharm的console输入实现换行的方法

有时输出内容很多,没有自动换行,如下图所示: 可以点击下图按钮,即可自动换行: 以上这篇pycharm的console输入实现换行的方法就是小编分享给大家的全部内容了,希望能给大家一...

Python处理菜单消息操作示例【基于win32ui模块】

Python处理菜单消息操作示例【基于win32ui模块】

本文实例讲述了Python处理菜单消息操作。分享给大家供大家参考,具体如下: 一、代码 # -*- coding:utf-8 -*- #! python3 import win32u...

Python多线程学习资料

一、Python中的线程使用: Python中使用线程有两种方式:函数或者用类来包装线程对象。 1、 函数式:调用thread模块中的start_new_thread()函数来产生新线程...

python+matplotlib演示电偶极子实例代码

python+matplotlib演示电偶极子实例代码

使用matplotlib.tri.CubicTriInterpolator.演示变化率计算: 完整实例: from matplotlib.tri import ( Triang...

Python中的自定义函数学习笔记

Python中的自定义函数学习笔记

定义一个什么都不做的函数 复制代码 代码如下: >>> def a(): ... pass ... >>> def printHello(): ......