首先,u积分和z积分可以精确求解。结果是一个相当复杂的函数,包括指数、伽马函数和广义超几何级数。它的优点是它只在一个变量上,因此可以很容易地用图形来检查。以下是一些不同值的\nu曲线:

下面是一个表达式:

集成这个函数很方便,因为这样做更快、更精确。但是,这是第二点,由于机器精度如x->\inf,这受到了数值问题的影响。下面是几个图表,清楚地显示了这些问题:

当以任意工作精度绘图时,问题消失了:

因此,数值问题也必须解决,在Python下使用任意精度库,如mpmath,和/或忽略/丢弃积分区间的上段,即在本例中,通过0和19/20之间的积分,而不是0和\inf

下面是一个Python程序,它使用mpmath,在x=0和x=20之间集成上面的表达式(等效表达式)#!/usr/bin/env python3

#encoding: utf

from mpmath import mp, mpf, sqrt, besselk, exp, quad, pi, hyper, gamma

maxprecision = 64 # significant digits

maxdegree = 3 # maximum degree of the quadrature rule

mp.dps = maxprecision

# z0 = mpf(1.e7)

# H = mpf(1.e15)

a = mpf(1.e-19)

b = mpf(1.e-9)

sqrt3 = sqrt(3.)

sqrt10 = sqrt(10.)

inf = mpf('inf')

epsilon=10.**-maxprecision

def integrand(z, x, u):

value = 1./sqrt(x) * besselk(5./3, u) * (a*z*nu/x - 1./2) * exp(-b * sqrt(z*nu/x))

return value

def integrand3(x):

value = 1. / (960. * b**4 * x**(19./6) * (nu / x)**(3./2)) * exp(-10000000. * sqrt10 * b * sqrt(nu/x)) * (-b**2 * x * (1000. * sqrt10 * b * (-10000. + exp(9999000. * sqrt10 * b * sqrt(nu/x))) * nu + (-1. + exp(9999000. * sqrt10 * b * sqrt(nu/x))) * x * sqrt(nu/x)) + 4. * a * (3000. * sqrt10 * b * (-10000. + exp(9999000. * sqrt10 * b * sqrt(nu/x))) * x * nu + 5000000000. * sqrt10 * b**3 * (-1000000000000. + exp(9999000. * sqrt10 * b * sqrt(nu/x))) * nu**2 + 3. * (-1. + exp(9999000. * sqrt10 * b * sqrt(nu/x))) * x**2 * sqrt(nu/x) + 15000000. * b**2 * (-100000000. + exp(9999000. * sqrt10 * b * sqrt(nu/x))) * x * nu * sqrt(nu/x))) * (-320. * sqrt3 * pi * x**(2./3) + 960. * 2.**(2./3) * gamma(2./3) * hyper([-1./3], [-2./3, 2./3], x**2 / 4.) + 27. * 2.**(1./3) * x**(10./3) * gamma(-2./3) * hyper([4./3], [7./3, 8./3], x**2 / 4.))

return value

for e in range(0, 19):

nu = mpf(10**e)

# I1 = quad(lambda x: quad(lambda u, z: integrand(z, x, u), [x, inf], [z0, H], method='tanh-sinh', maxdegree=maxdegree), [0., inf], method='tanh-sinh', maxdegree=maxdegree)

# print("ν = 10^%d: NI(x, u, z) = %f" % (e, I1))

I3 = quad(lambda x: integrand3(x), [0., 20.], method='tanh-sinh', maxdegree=maxdegree)

print("ν = 10^%d: NI(x) = %f" % (e, I3))

# print("ν = 10^%d: error = %.2f%% " % (e, (I3-I1)/(I1+epsilon)*100.))

结果如下:

^{pr2}$

python求三重积分_三重积分的Python数值计算相关推荐

  1. python求平均值_如何用python求平均值

    学习了Python相关数据类型,函数的知识后,利用字符串的分割实现了输入任意多个数据,并计算其平均值的小程序.思路是接收输入的字符串,以空格为分隔符,将分割的数据存入列表(lst1)中,将lst1中的 ...

  2. python求加速度_如何利用Python 为自然语言处理加速度

    自去年发布 Python 的指代消解包(coreference resolution package)之后,很多用户开始用它来构建许多应用程序,而这些应用与我们最初的对话应用完全不同. 利用 spaC ...

  3. python求图形面积_如何使用python语言中的if语句实现求取图形面积

    在python设计语言中,逻辑运算符和判断语句结合起来使用,可以实现不同的功能.一般情况下,如果知道三角形的三边,可以利用三边计算出它的面积:规范的四边形知道对角的两边,就可以计算出对应的面积.下面利 ...

  4. 怎么用python求导_如何使用Python求导?

    展开全部 通过符号e69da5e6ba903231313335323631343130323136353331333365633865计算 from sympy import *x=Symbol(&q ...

  5. python求加速度_【掌控】mpython-加速度-水平仪 - DF创客社区 - 分享创造的喜悦

    本帖最后由 rzyzzxw 于 2018-12-21 17:35 编辑 截图201812211735084048.png (227.42 KB, 下载次数: 4) 2018-12-21 17:35 上 ...

  6. python递归函数例题_递归案例python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 而对应的中文翻译 "递归" 却表达了两个意思:"递 ...

  7. 文科生自学python要多久_怎么自学python,大概要多久?

    都让开!本人文科生,自学Python 2年半,作为一个曾经完全0基础,啥都不懂纯靠自学学会python的文科生,有一些不成熟的小建议可以分享一下. 首先不要觉着编程难,只要你认识26个英文字母,有一点 ...

  8. python 判断类型_青少年之Python编程课程安排lt;第一季gt;

    第一章    开启Python之旅 1.   你将了解什么是Python 2.   在电脑上安装并简单使用Python 3.   开始通过Python与计算机进行交流(编程) 第二章    变量 1. ...

  9. python len函数_知识清单Python必备的69个函数,你掌握了吗?

    本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...

  10. python优化网站_[练习] 用PYTHON来优化网站中的图片

    我到公司以来,第一次加班,哇,加一晚上加一上午,现在还没下班的迹象,555,困. 对于网站中的一些关键的页面,多重缓存.静态化.程序代码优化--之外,为了提高用户打开页面的速度,图片是必须要优化的. ...

最新文章

  1. .f90文件批量转为dll文件_办公必备神器DropIt V8.5.1Portable文件整理分类工具
  2. 局域网无法访问本地apache
  3. 更新两个WPF开源项目
  4. jdk12源代码文件_在JDK 11中启动单文件源代码程序
  5. 两台服务器之间mysql数据库怎么做同步_mysql数据库占满磁盘导致服务器无法运行...
  6. 使用TFS存储项目文档
  7. 地平线后端开发实习面经
  8. maven 单独构建多模块项目中的单个模块
  9. 用FastDFS一步步搭建文件管理系统
  10. 『PyTorch』第十五弹_torch.nn.Module的属性设置查询
  11. 还在这样学 Python?怪不得白费力!
  12. 083 conllections模块
  13. 卓岚zlan系列串口服务器,卓岚信息技术隔离型串口服务器ZLAN5143BI概述
  14. c# 代码编辑器 支持多种语言,支持多种编程语言与系统的跨平台代码编辑器——微软 Visual Studio Code...
  15. 计算机鼠标是怎么工作的,嚣张的数字生活指南 篇一:罗技G604上手谈,多侧键鼠标会怎样提升我们的工作效率...
  16. Github最新客户端的简单使用教程
  17. 北京邮电计算机课程表,北京邮电大学课表管理规定
  18. 【手眼标定】ROS + usb_cam + aruco_ros + easy_handeye_demo
  19. 使用麦克风和Arduino测量以dB为单位的声音/噪声水平
  20. Decode函数的基本理解与简单应用

热门文章

  1. k2-fsa differentiable Finite State Acceptor(Dan 的 toturial总结)
  2. 阿里云 ADAM 迁移工具测试问题记录
  3. 爬虫第六式:链家房源爬取
  4. 计算机游戏图形是什么意思,专业图形显卡和游戏显卡区别
  5. 《连线》杂志主编Kevin Kelly 给年轻人的99条人生建议
  6. 计算机技术与软件专业技术资格考试(初级程序员)(一)
  7. wnmp mysql 密码_WNMP(Windows + Nginx + PHP + MySQL) 安装
  8. ups机房动环监控系统方案
  9. 期刊不收版面费,天下寒士俱欢颜
  10. 基于SpringBoot的毕业设计题目