用python实现龙贝格算法
感谢@冬-梦大佬提供的源代码;感谢@天元浪子大佬的问题指导,同时感谢我的好哥们飞哥的帮忙修改完成了以下代码!!!
a=0 # 积分下限
b=1 # 积分上限
eps=10**-5 # 精度
T=[] # 复化梯形序列
S=[] # Simpson序列
C=[] # Cotes序列
R=[] # Romberg序列
def f(x): # 被积函数y=4/(1+x**2)return y
def Romberg(a,b,eps,f):h = b - aT.append(h * (f(a) + f(b)) / 2) # 定义T[0]ep=eps+1m=0while(ep>=eps):m=m+1t=0 # 每一次循环都会将t初始化for i in range(2**m):if i % 2==1:t = t + f(i/(2**m))t = t/(2**m)t=t + T[-1]/2 # T[-1]指的是数组T中倒数第一个元素T.append(t)if m>=1:S.append((4/3)*T[-1]-(1/3)*T[-2])if m>=2:C.append((16/15)*S[-1]-(1/15)*S[-2])if m>=3:R.append((64/63)*C[-1]-(1/63)*C[-2])if m>4:ep=abs(10*(R[-1]-R[-2]))
Romberg(a,b,eps,f)
print("T[ ]=",T)
print("S[ ]=",S)
print("C[ ]=",C)
print("R[ ]=",R)print("积分结果为:I = {:.5f}".format(R[-1]))
编写代码遇到的问题:关于使用python完成龙贝格算法-编程语言-CSDN问答
运算结果如下:
T[ ] = [3.0, 3.1, 3.131176470588235, 3.138988494491089, 3.140941612041389,
3.1414298931749745]
S[ ] = [3.133333333333333, 3.1415686274509795, 3.1415925024587064,
3.141592651224822, 3.1415926535528365]
C[ ] = [3.142117647058823, 3.141594094125888, 3.141592661142563,
3.141592653708037]
R[ ] = [3.1415857837618733, 3.141592638396796, 3.141592653590029]
积分结果为:I = 3.14159
用python实现龙贝格算法相关推荐
- 变步长梯形法与龙贝格算法
文章目录 1. 变步长梯形法 算法描述 流程图 代码实现 2. 龙贝格算法 算法描述 例子 代码实现 1. 变步长梯形法 提出背景: 复化求积公式虽然能提高精度,但需要给出步长,步长精度太大则精度低, ...
- c语言龙贝格积分法实验报告,数值作业:龙贝格算法计算积分C语言实现
数值作业:龙贝格算法计算积分C语言实现 数值作业:龙贝格算法计算积分C语言实现 根据Romberg算法计算定积分,和变步长的Simpson算法的输入都一样.算法基本分析:输入a,b(积分上下限),n为 ...
- 数值计算方法(三)——变步长梯形法与龙贝格算法
变步长梯形算法 提出背景: 复化求积公式虽然能提高精度,但需要给出步长,步长精度太大则精度低,步长太小则计算量大,难以找到一个合适的步长(划分成的小区间的个数) 算法描述: 1.对所有已存在的子区间进 ...
- 【数值分析实验MATLAB】数值积分:梯形公式、辛普森公式、复化梯形公式、复化辛普森公式、龙贝格算法、自适应求积方法
(1)Matlab代码: f1: if x==0y=1; else%y=exp(-x^2);y=(sin(x))/x; end 梯形公式: a=0; b=1; tx=(b-a)/2*(f1(a)+f1 ...
- 数值计算笔记之数值积分(二)龙贝格算法
龙贝格求积公式也称为逐次分半加速法.它是在梯形公式.辛普森公式和柯特斯公式之间的关系的基础上,构造出一种加速计算积分的方法. 作为一种外推算法,它在不增加计算量的前提下提高了误差的精度. 在等距基点的 ...
- 利用Matlab编写龙贝格算法(romberg)求函数积分
这次是我初次接触matlab,源于数学老师布置的一个作业:用龙贝格算法来计算函数的积分. 具体的计算原理,由于是数学的东西,不好打印,就不写了.主要把自己的代码贴下来慢慢理解. 一共写了两个文件.一个 ...
- 龙贝格算法在MATLAB的实现
一.实验内容 用龙贝格算法计算积分 二.程序清单与运行结果 M文件代码如下: function I=romberg(fun,a,b,e) % 使用龙贝格(Romberg数值求解公式) % 例如: % ...
- 龙贝格算法求解椭球周长
数值积分: 在实际应用中经常应用到计算方法去求解一些不易测量的零件的周长或面积.已知一个椭圆形边框如下图所示,试用龙贝格算法求解这个边框的周长,要求结果精确到6 位有效数字. 3.1 数学原理: 龙贝 ...
- 复化梯形公式求椭圆周长C语言,C语言编程解线性,非线性方程,龙贝格算法.docx
C语言编程解线性,非线性方程,龙贝格算法 课程设计课程名称:数值计算B 设计题目:数值计算B课程设计学号:姓名:完成时间: 2015年10月27日题目一:非线性方程求根一.题目假设人口随时间和当时人口 ...
最新文章
- 蜘蛛搜索引擎_各大搜索引擎的蜘蛛特点
- 浪潮服务器开始虚拟化,(浪潮服务器-虚拟化解决方案.ppt
- 自学python有用吗-文科专业自学python有用吗?
- 法律规则鬼畜图解||全面易懂的旅游投诉赔偿标准
- python textwrap_[Python标准库]textwrap——格式化文本段落
- es6 Promise 的基本用法
- 计算机高级技师考试题,高级技师考试题及答案.doc
- Linux 中的grep命令单引号,不加任何参数以及双引号的作用
- 5.2g信道用哪个好_记工记账软件哪个比较实用?建筑工地用哪个记工记账软件好?...
- 100行Html5+CSS3+JS代码实现元旦倒计时界面
- quarkus-contexts和DI介绍(原理)
- 如何计算均值、标准差和标准误差
- 比树莓派好的linux板子,华硕Tinker Board主打“比树莓派再好一点”的开发板
- 【Unity】 冰火 MMORPG游戏中的一些数据参考
- 对象可以创建数组吗_企业微信活码如何创建?活码可以统计渠道来源吗?
- 眼睛中的密码-虹膜识别
- 新能源汽车,车架号VIN码查询接口
- 数据结构之二叉树 一
- 记一次破解前端加密详细过程
- pytorch Fashion MNIST 数据集下载慢怎么办