Matlab实现——Adaptive Quadrature Using Simpson’s Rule

MATLAB 与 C 语言的混合编程实战之辛普森积分法、自适应辛普森积分 题目要求 题目大意是让你用c系语言实现辛普森积分法对定积分的粗略估计,所谓辛普森积分法即为: 定义:辛普森法则(Simpson's rule)是一种数值积分方法,是牛顿-莱布尼茨公式的特殊形式,以二次曲线逼近的方式取代矩形或梯形积分公式,以求得定积分的数值近似解。其近似值如下: ... 阅读详情

欢迎前往个人博客 驽马点滴 和视频空间 哔哩哔哩-《挨踢日志》

%Input - f is the integrand input as a string ¡¯f¡¯
%    - a and b are upper and lower limits of integration
%   - tol is the tolerance
% Output  - SRmat is the table of values
%                - quad is the quadrature value
%                - err is the error estimate
%Initialize values
SRmat = zeros(30, 6);
iterating=0;
done=1;
SRvec=zeros(1, 6);
SRvec=srule(f, a, b, tol);
SRmat(1, 1:6)=SRvec;
m=1;
state=iterating;
while(state==iterating)
     n=m;
     for j=n:-1:1
         p=j;
         SR0vec=SRmat(p,:);
         err=SR0vec(5);
         tol=SR0vec(6);
if (tol<=err)
      %Bisect interval,apply Simpson¡¯s rule
      %recursively, and determine error
       state=done;
       SR1vec=SR0vec; SR2vec=SR0vec;
       a=SR0vec(1); b=SR0vec(2); c=(a+b)/2;
       err=SR0vec(5); tol=SR0vec(6); tol2=tol/2;
       SR1vec=srule(f,a,c,tol2);
       SR2vec=srule(f,c,b,tol2);
       err=abs(SR0vec(3)-SR1vec(3)-SR2vec(3))/10;
%Accuracy test
if (err<tol)
     SRmat(p, :)=SR0vec;
     SRmat(p,4)=SR1vec(3)+SR2vec(3);  SRmat(p,5)=err;
else
     SRmat(p+1:m+1,:)=SRmat(p:m,:);
     m=m+1;
     SRmat(p,:)=SR1vec;  SRmat(p+1,:)=SR2vec;
     state=iterating;
end
end
     end
end
quad=sum(SRmat(:,4));
err=sum(abs(SRmat(:,5)));
SRmat=SRmat(1:m,1:6);

 

srule.m

 

%Program7.5(Simpson's Rule)

function Z=srule(f,a,b,tol)

%Input- f is the integrand input as a string ??f??

%- a and b are upper and lower limits of integration

%- tol is the tolerance

% Output - Z is a 1x6 vector [a b < xmlnamespace prefix ="st1" ns ="urn:schemas-microsoft-com:office:smarttags" />S S2 err tol1]

h=(b-a)/2;

C=zeros(1,3);

C=feval(f,[a (a+b)/2 b]);

S=h*(C(1)+4*C(2)+C(3))/3;

S2=S;

tol1=tol;

err=tol;

Z=[a b S S2 err tol1];

 

 

 

fun.m

 

function f=fun(x)

f=sin(4*x).*exp(-2*x);

 

 

 

Untitled.m

 

a=0;

b=3;

tol=0.00001;

f='fun';

[SRmat, quad, err]=adapt(f, a, b, tol)
欢迎前往个人博客  驽马点滴 和视频空间 哔哩哔哩-《挨踢日志》
自适应Simpson法&&P4525 【模板】自适应辛普森法1 何为自适应Simpson法 自适应辛普森算法(Adaptive Simpson′s rule)是一类近似算法(Approximation algorithm),主要用于在信息计算时求较难反导的函数的定积分。其思想是利用二次函数曲线来不断**拟合(Overfitting)所求曲线(显然这传统的直接用矩形或直边梯形作为微元更精准),而所谓的Adapative(自适应)**则是用于优化时间复杂度的方法。 ----wikipedia 在计算几何里,显然可在特殊情 阅读详情

相关推荐

Python:实现simpson rule辛普森法则算法(附完整源码)

Python:实现simpson rule辛普森法则算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1200

Python小白数据科学教程:SciPy精讲

点击“简说Python”,选择“置顶/星标公众号”福利干货,第一时间送达!本文作者:王圣元转载自:王的机器本文预计阅读时间30分钟,实用性高,老表建议先收藏,然后转发朋友...

简说Python的博客 2794

simpsonQuadrature:使用辛普森求积计算函数的积分-matlab开发

% x = simpsonQuadrature(fun,tLow,tUpp,n) % % 此函数在 n 个均匀段中的每一个上使用辛普森正交来% 在区间 tLow <= t <= tUpp 上近似 fun(t) 的积分% % 输入: % fun = 函数句柄% f = 乐趣(t) % t = [1, nt] = [a,b] 上的时间查询点% f = [nx, nt] = 查询点的向量函数% tLow = 时间标量下限% tUpp = 时间标量上限% n = 间隔划分的段数% % 输出: % x = [nx, 1] = 沿每个维度的积分%

Matlab adaptive quadrature

% script to perform adaptive quadrature clear all, close all global pts % function to be integrated defined in routine f f = 'integrand'; a = 1; b = 3; pts = [a;b]; tol = input('Enter error toleran

玮哥的博客 944

Simpson's 1/3 rule (Composite):复合辛普森三分之一数值积分规则的Matlab代码-matlab开发

在数值分析中,辛普森法则是一种数值积分方法,是定积分的数值近似。 辛普森法则也对应于三点牛顿-科特斯求积法则。 有关详细信息,请参见 ( https://en.wikipedia.org/wiki/Simpson's_rule )。 例子: 输入下限a:1 输入上限 b:2 输入步长 16 积分值为0.408009>>

Iterative Adaptive Simpson and Lobatto Quadrature:Iterative Adaptive Simpson and Lobatto Quadrature-matlab开发

在几乎所有关于数字求积算法的标准书籍中,如自适应 Simpson 或自适应 Lobatto 算法,都以递归方式呈现。 递归编程的好处是简洁明了的表示。 但是,递归正交算法可能会转换为迭代正交算法,而无需对算法结构进行重大修改。 我们提出了迭代自适应正交算法(adaptiveSimpson 和adaptiveLobatto),它保留了递归算法(例如quad、quadv 和quadl)的紧凑性和清晰度。 我们的迭代算法提供了积分函数的并行计算,这通常会导致运行时间的巨大收益。 一旦编程语言允许并行访问积分函数,我们的结果表明自适应求积公式的通用迭代而不是递归实现。

MATLAB运用规则,利用辛普森规则进行数值积分

Simpson's rule for numerical integrationZ = SIMPS(Y) computes an approximation of the integral of Y via the Simpson's method (with unit spacing). To compute the integral for spacing different from one...

weixin_36247910的博客 1644

人体姿态估计的强大算法

一种用于人体姿态估计的强大算法,可以检测并且定位人体的四肢及躯干和头部的位置,用于更高层次的分析。 (Pose estimation) 文件列表: parse_matlab parse_matlab\parseHorse.m parse_matlab\condenseLRResp.m parse_matlab\README parse_matlab\expected_genmodel_FHedgesN.m parse_matlab\util parse_matlab\util\imvq16.m parse_matlab\util\printSegs.m parse_matlab\util\oeFilterc.m parse_matlab\util\mydetGMc.m parse_matlab\util\assert.m parse_matlab\util\printSkel.m parse_matlab\util\sampleWithR.m parse_matlab\util\isum.m parse_matlab\util\buildHistExps.m parse_matlab\util\local_sum_zero.m parse_matlab\util\nonmax.m parse_matlab\horse001.jpg parse_matlab\partshiftZ0.m parse_matlab\GPL parse_matlab\horseModel.mat parse_matlab\expected_genmodel_FHedgecolsW.m parse_matlab\im0229.jpg parse_matlab\getSegmentsEdge.m parse_matlab\peopleModel.mat parse_matlab\sample_genmodel_FHedgecolsW.m parse_matlab\avgSegmentsEdge.m parse_matlab\HorseConvRun.mat parse_matlab\im0229.dat parse_matlab\parseim.m parse_matlab\parsePerson.m

matlab用辛普森公式求积分_标准正态分布概率密度函数的定积分计算方法及Python实现代码...

最近利用碎片时间在读Allen B.Downey的《贝叶斯思维:统计建模的Python学习法》,顺便用手机上的Pythonista写实例。因为Pythonista没有scipy科学计算包,遇上需求标准正态累积分布函数的时候就只能抓瞎,为此决定自己写一个。累积分布函数(Cumulative Distribution Function,CDF)就是概率密度函数(Probability De...

weixin_39705193的博客 4263

Simpson's 3/8 rule (Composite):用于数值积分的辛普森三八法则(复合)的 Matlab 代码。-matlab开发

Simpson 的 3/8 规则是 Thomas Simpson 提出的另一种数值积分方法。 它基于三次插值而不是二次插值。 辛普森的 3/8 规则如下: ( https://en.wikipedia.org/wiki/Simpson's_rule ) 例子: 输入下限a:1 输入上限 b:2 输入子区间数n:21 积分值为0.381665>>

Simpson-trapizoidal:Simson 1/3、3/8 和梯形规则-matlab开发

结果评估和代码之间的比较

辛普森法 matlab,MATLAB辛普森法则

梯形规则和辛普森规则是牛顿-科特规则的特例, 它们使用更高阶的函数进行数值积分。让抛物线代表图形的曲线。y =αx2+βx+γ…………。方程1 在此方法下, 间隔-h≤x≤h的面积为 曲线穿过三个点(-h, y0), (0, y1)和(h, y2)。然后, 通过等式, 我们有:现在我们可以评估系数α, β, γ并以h, y0, y1和y2表示等式2。这可以通过以下过程完成。通过将等式3的(b)代入...

weixin_39657521的博客 2940

matlab定积分的近似计算

matlab定积分的近似计算,详细介绍了利用matlab对定积分进行近似计算的步骤和方法。

matlab quadgk,(권장되지 않음) 적분의 수치적 계산, 적응적 심슨 구적법(Adaptive Simpson Quadrature)...

quad(권장되지 않음) 적분의 수치적 계산, 적응적 심슨 구적법(Adaptive Simpson Quadrature)quad는 권장되지 않습니다. integral을 대신 사용하십시오.구문q = quad(fun,a,b)q = quad(fun,a,b,tol)q = quad(fun,a,b,tol,trace)[q,fcnt] = quad(...)설명구적법은 함수의 ...

weixin_35552251的博客 390

QQ的TEA填充算法C#实现 By Red_angelX

注:本人只是从LUMA QQ的 Source Code里面把相应Java语言翻译成C#,纯技术研究,并没有对TC产品做任何逆向分析,不承担任何法律责任!转载请保持本文完整性网上有c/c++,vb,delphi,java,perl各种版本的tea填充算法,唯独没有C#的,这让我这种狂热喜爱C#的人如何承受,于是,花3天时间看了各种代码经历无数失败的挫折终于用C#完成了该填充算法,废话不多说,直接

Red_angelX的专栏 1万+

OCR开发车架号识别vin码识别系统

一、vin码识别车架号识别系统简介   vin码识别车架号识别系统,结合VIN码主机厂数据库及自身多年文字识别经验,针对机动车配置参数等信息的查询及采集业务推出的一款VIN码自动识别产品。   车架号识别vin码识别,主要应用在智能手机IOS与Android两个平台中。前端扫描查询模式,无需联网,只需扫描汽车前挡风玻璃右下角的VIN玛(车架号),即可轻松识别出车辆产地、品牌、车

OCR13512721355的博客 1433

Simpson’s Rule (辛普森法则)

  In Simpson’s Rule, we will use parabolas to approximate each part of the curve. This proves to be very efficient since it’s generally more accurate than the other numerical methods such as straight ...

liangdaojun的博客 2万+

手把手教你用NetToPLCsim搭建西门子S7-1200仿真环境(附避坑指南)

本文详细指导如何利用NetToPLCsim与PLCSIM搭建西门子S7-1200仿真环境,实现无硬件条件下的PLC程序测试与上位机通信开发。内容涵盖软件选型、环境部署、关键参数配置及通信测试,并重点提供了连接失败、数据读写错误等常见问题的深度避坑指南,帮助工程师高效构建可靠的虚拟调试工作流。

a3b4c5的博客 614

simpson积分公式

看了Simpson积分公式,惊讶于积分方法在几何问题中竟如此强大! 比如几何中的求面积、体积问题,可以用积分的方法,在某个方向上用扫描线或扫描面切过图形,求被覆盖的长度或面积,然后进行积分。 对于这类问题,如果能直接求出面积、体积,或者能列出覆盖长度(面积)关于扫描线(面)的位置的函数,然后手算积分,那当然是再好不过了。但是,如果直接用解析法、公式法比较费时费力,思考难

fengzhizi76506的博客 3万+

告别单一帧:在CFD-POST中完整加载Fluent瞬态计算结果的实战指南

本文详细介绍了在CFD-POST中完整加载Fluent瞬态计算结果的实战指南,解决工程师常见的只能看到最后一帧数据的问题。通过Fluent端的正确设置和CFD-POST端的完整加载技巧,帮助用户高效处理瞬态数据,提升后处理效率。文章还提供了常见问题排查、性能优化和高级后处理技巧,适用于Workbench环境下的流体流动分析。

weixin_29284657的博客 538

内容审核与文本安全技术综述:检测、过滤与对齐

检测质量高度依赖数据。毒性/仇恨/冒犯语言检测领域形成了一批经典数据集,但它们的标签体系差异很大:例如 OLID(OffensEval)强调“是否冒犯—冒犯类型—目标对象”三层结构;HateXplain 在“hate/offensive/normal”三分类之外,还提供目标群体与人类标注的 rationale span;RealToxicityPrompts 则不做离散标签,而是用毒性分数来研究“模型续写时的毒性退化”。ACL 汇编。

nmdbbzcl的博客 1371

Matlab实现——Recursive Trapezoidal Rule

欢迎前往个人博客驽马点滴和视频空间 哔哩哔哩-《挨踢日志》 rctrap.m %Program 7.3 (Recursive Trapezoidal Rule). function T=rctrap(f,a,b,n,tol) %Input - f is the integrand input as a string ’f’ % - a and b are upper an...

humanxing的专栏 2295

【stm32+K210项目】基于K210与STM32协同工作的智能垃圾分类系统设计与实现(完整工程资料源码)

本系统采用SG90舵机Maix Bit摄像头STM32C8T6主控板以及LX_TRIG_MP3_V6.0语音播报模块,构建了一套高效的智能垃圾分类系统,综合运用了图像识别、语音播报及精准控制技术。SG90舵机负责控制垃圾桶的开盖操作。该舵机通过接收PWM信号来实现转动,内部有一个基准电路产生周期为20ms的PWM信号,通过外部脉冲信号的控制(高电平时间在0.5ms至2.5ms之间),使得舵机的输出轴转动到指定位置。舵机内的位置反馈电位计。

嵌入式技术开发 5099
上一篇: Matlab实现——Adams-Bashforth-Method
下一篇: Matlab实现——Clamped Cubic Spline
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值