我是靠谱客的博主 细心魔镜,最近开发中收集的这篇文章主要介绍python使用scipy.integrate模块进行数值积分:一维积分quad(),二维积分dblquad()基本介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基本介绍

一般而言,使用求解微积分可以分为两大类:符号积分(即求出解析解)和数值积分(即求出数值解)。在计算机的处理当中,数值解往往更有意义。
使用python求解数值解的模块:scipy.integrate;常用的有一维积分方法quad()和二维积分quad()。本文也是主要介绍这两种方法的使用。

一维数值积分

from scipy import integrate
# 基本使用格式:integrate(func, a, b)
# func是一个函数名,a是积分下限,b是积分上限
# 值得注意的是,使用该积分函数,需要将被积表达式封装在函数内,比如被积表达式是2*x,积分上下限分别为
# 1和2,口算可得,积分结果为:3;那么编程实现怎么做呢
  • 定义一个普通的函数
def func(x)
	return 2*x  # 值得注意的是,一定要将表达式return出来
integrate(func, 1, 2)   # 出结果 3
  • 使用lambda表达式
integrate(lambda x : 2*x, 1, 2)  # 结果 3

值得注意的是,由于是数值积分,因此一维是不允许有不定积分的,只能是定积分,而且不能是变限积分

二维函数

# 基本使用格式:integrate(func, a, b,afunc, bfunc)
# func是一个函数名,a是外积分下限,b是外积分上限, afunc是内积分下限,bfunc是内积分下限
# 比如下图的一个二维积分

在这里插入图片描述

  • 普通函数法
# 被积函数
def func(y, x)
	return x*y
# 虽然下限是常数,但是还是写成函数形式
def afunc(x)
	return 0
# 上限x
def bfunc(x)
	return x

# 需要注意,func的参数顺序需要对应被积变量的顺序,比如本例就是先积分y,再积分x。
integrate(func, 1, 2, afunc, bfunc)
  • lambda表达式法
integrate(lambda y, x : x*y, 1, 2, lambda x : 0, lambda, x : x)

总体而言,使用lambda会简节一点,但是当积分函数和上下限很复杂时,使用普通函数会好一点

最后

以上就是细心魔镜为你收集整理的python使用scipy.integrate模块进行数值积分:一维积分quad(),二维积分dblquad()基本介绍的全部内容,希望文章能够帮你解决python使用scipy.integrate模块进行数值积分:一维积分quad(),二维积分dblquad()基本介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部