复合型自适应步长的Gauss型求积

先前在做数值分析实验时,把高斯型求积公式和复合型、自适应步长的求积融合到了一起,但是后来发现题目没有这个要求。。现在就把这个思路分享一下。

上题目:

实验目的:学会Gauss型求积公式,并应用该算法于实际问题.
实验内容:求定积分 ∫−44dx1+x2\int_{{\rm{ - }}4}^4 {\frac{{dx}}{{1 + {x^2}}}}∫−44​1+x2dx​
实验要求:
(1)把Gauss点的表格存入计算机,以Gauss-Legendre求积公式作为本实验的例子,要求程序可以根据不同的阶数,自动地用阶Gauss-Legendre求积公式计算上述定积分的近似值.体会Gauss型求积公式是具有尽可能高的代数精度的数值求积公式。
(2)可用MATLAB中的内部函数int求得此定积分的准确值与Gauss型求积公式求得的值进行比较。

思路是这样的:

首先是写出高斯型求积公式的代码,根据清华大学出版社出版的第五版数值分析上给出的定义:


简单来说就是求积公式具有2n+1次的代数精度,那就是高斯型求积公式。
接下来看高斯公式的代码实现(MATLAB):
这里的输入参数分别为积分的上下限,n为节点个数,epsilon为求解精度。

function S=Gauss_Legendre(a,b,n,epsilon)
syms xp=sym2poly(diff((x^2-1)^(n+1),n+1))/(2^(n+1)*factorial(n+1));tk=roots(p); % 求积节点% 计算求积系数Ak=zeros(n+1,1);for i=1:n+1xkt=tk;xkt(i)=[];pn=poly(xkt);fp=@(x)polyval(pn,x)/polyval(pn,tk(i));   % Lag基底函数Ak(i)=quad(fp,-1,1,epsilon); % 计算求积系数end% 积分变量代换,将[a,b]变换到[-1,1]xk=(b-a)/2*tk+(b+a)/2;% 检验积分函数fun有效性
%  fun1=fcnchk(fun1,'vectorize');% 计算变量代换之后积分函数的值fx=fun(xk)*(b-a)/2;% 计算积分值S=sum(Ak.*fx);

接下来的复合型高斯求积公式思路很简单,就是将所求区间分割,将多个区间套入高斯型求积公式进行求解,最后将结果相加。

那如何实现自适应步长呢?

我的思路是先将区间二分,再进行高斯型求积公式。很自然的,我们可以将二分出来的两个区间看做父区间生成的子区间,子区间再生成子区间,即可以当做二叉树进行处理。那么有些枝生成后,对应的区间函数变化幅度小,就可以不再进一步生成子区间,我们就可以把枝减去。那么进行如此迭代后即可产生我们任意指定精度的求积公式。
代码如下:
以下是主函数

%main.m
clc;clear;
a=-4;b=4;n=5;epsilon=1e-10;jd=1e-8;
syms x;global  sum
p=1;q=1;sum=0;
Binary_tree(1,1,n,jd);
sum
S1=double(int(fun(x),a,b))
diff=abs(sum-S1)

以下是所求的积分函数

function y=fun(x)
y=1./(1+x.^2);
% y=sqrt(x);
return

这是生成二叉树的迭代函数

function Binary_tree(a,b,n,jd) %a,b为数值位于二叉树的位置
global S sum;
epsilon=1e-8;
h=8/(2^(a));
if 1if a==1&&b==1S(1,1).root=Gauss_Legendre(-4,4,n,epsilon);endif 1S(a+1,2*b-1).root=Gauss_Legendre(-4+h*(2*b-2),-4+h*(2*b-1),n,epsilon);S(a+1,2*b).root=Gauss_Legendre(-4+h*(2*b-1),-4+h*(2*b),n,epsilon);S(a,b).L=S(a+1,2*b-1).root;S(a,b).R=S(a+1,2*b).root;diff=abs(S(a,b).root-S(a,b).L-S(a,b).R)*2^(a-1);if(diff<jd)S(a,b).d=1;sum=sum+S(a,b).R+S(a,b).L;elseS(a,b).d=0;Binary_tree(a+1,b*2-1,n,jd);endif(b+1<=2^(a-1)&&mod(b,2)==1)Binary_tree(a,b+1,n,jd);endend
end

运行结果如下:

效果还是很不错的。

复合型自适应步长的Gauss型求积(附代码)相关推荐

  1. 螺旋探索与自适应混合变异的麻雀搜索-附代码

    螺旋探索与自适应混合变异的麻雀搜索 文章目录 螺旋探索与自适应混合变异的麻雀搜索 1.麻雀优化算法 2. 改进麻雀算法 2.1 ICMIC 混沌初始化种群 2.2 螺旋探索策略 2.3 基于精英差分和 ...

  2. 柯西变异和自适应权重优化的蝴蝶算法-附代码

    融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 文章目录 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 柯西变异 2.2 自适应权重 2.3动态 ...

  3. 改进交叉算子的自适应人工蜂群黏菌算法-附代码

    改进交叉算子的自适应人工蜂群黏菌算法 文章目录 改进交叉算子的自适应人工蜂群黏菌算法 1.黏菌算法 2.改进黏菌算法 2.1 自适应可调节反馈因子 2.2 算数交叉算子 2.3 改进的人工蜂群搜索策略 ...

  4. 具有随机分形自适应搜索策略的蚁狮优化算法-附代码

    具有随机分形自适应搜索策略的蚁狮优化算法 文章目录 具有随机分形自适应搜索策略的蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 蚂蚁随机分形搜索方程 2.2 蚁狮自适应搜索方程 3.实 ...

  5. 具有自适应搜索策略的灰狼优化算法-附代码

    具有自适应搜索策略的灰狼优化算法 文章目录 具有自适应搜索策略的灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法 2.1 自适应调整策略 2. 2 跳出局部最优策略 2.3 最优学习搜索方程 3 ...

  6. 基于自适应t分布的麻雀搜索算法-附代码

    基于自适应t分布的麻雀搜索算法 文章目录 基于自适应t分布的麻雀搜索算法 1.自适应t分布策略 2.基于自适应t分布策略的麻雀搜索算法 3.算法结果: 4.Matlab 5.Python 1.自适应t ...

  7. 数值分析(10):数值积分之Gauss型求积公式

    Gauss型求积公式 1. 引言 2. Gauss型求积公式 2.1 Gauss型求积公式的定义 2.2 Gauss点的性质 2.3 构造Gauss型求积公式 2.4 Gauss型求积公式的余项 2. ...

  8. 图形学笔记(二十)粒子、刚体、流体的模拟—— 欧拉方法、Errors 和 Instability、中点法、自适应步长、隐式欧拉方法、Runge-Kutta方法、刚体与流体模拟(质点法、网格法、MPM)

    图形学笔记(十九)粒子.刚体.流体的模拟-- 欧拉方法.Errors 和 Instability.中点法.自适应步长.隐式欧拉方法.Runge-Kutta方法.刚体与流体模拟(质点法.网格法.MPM) ...

  9. 自适应滤波器设计及matlab实现,自适应滤波器设计及Matlab实现附程序代码

    自适应滤波器设计及Matlab实现附程序代码 维纳自适应滤波器设计及 Matlab 实现摘 要本文从随机噪声的特性出发,分析了传统滤波和自适应滤波基本工作原理和性能,以及滤波技术的现状和发展前景.然后 ...

最新文章

  1. 【tensorflow】】模型优化(一)指数衰减学习率
  2. R语言unlist函数将复杂数据(list列表、dataframe、字符串String)对象处理成简单向量vector形式:将包含dataframe和字符串的向量列表转换为单个向量(删除数据名称)
  3. python 归一化 标准化
  4. java和python哪个好就业2020-JAVA和Python哪个好就业?
  5. 新人如何快速上手项目管理
  6. 深度学习之pytorch(一) 环境安装
  7. 线段树-Mex-洛谷P4137
  8. [html] 编写一个布局,让文字环绕在图片的周围
  9. vs关于“当前不会命中断点 还没有为该文档加载任何符号”的解决方法
  10. 40行代码自己动手写pdf转word小工具(文末附工具下载)
  11. 《深入理解JVM虚拟机》读书笔记(一)
  12. 模拟电子技术基础概念
  13. R 4.0 版本安装 rtools40教程,解决 Rtools is required to build R packages but is not currently installed 问题
  14. 2020华为外包机试题目
  15. 等红灯时使用车轱辘扫描车牌
  16. 单链表的简单操作与演示
  17. tpwr886n路由器设置虚拟服务器,tl-wr886n路由器设置步骤图解 | 192路由网
  18. Im4java + ImageMagick 缩略图补白加边
  19. 中小学计算机说课稿,【附说课相关知识】中小学信息技术说课稿《认识计算机》.doc...
  20. UDT 最新源码分析(五) -- 网络数据收发

热门文章

  1. PhotoShop 之路径填充
  2. 蘑菇街16年实习生招聘-正式开始~
  3. 中台真的好可以解决一切问题?
  4. 2021年中国蜂蜜发展现状及进出口状况分析:蜂蜜进出口价差进一步扩大,产品附加值亟待提高 [图]
  5. 《python编程从入门到实践》 5-10 检查用户名
  6. 视频会议/PPT、信息图设计
  7. [小O地图 EXCEL版] 经纬度坐标 转 地址文字
  8. mysqlsum绝对值_MySQL_MySQL笔记之数学函数详解,绝对值函数ABS(x)和圆周率函数P - phpStudy...
  9. python list 转数组assay
  10. 黑马程序员:福利来袭!网络安全斗鱼直播“录像+资源”大放送