matlab 定步长积分,数值积分:基于牛顿-柯茨公式的定步长和自适应积分方法 [MATLAB]...
#先上代码后补笔记#
#可以直接复制粘贴使用的MATLAB函数!#
1. 定步长牛顿-柯茨积分公式
function [ integration ] = CompoInt( func, left, right, step, mode )
% 分段积分牛顿-柯茨公式;
% 输入5个参数:被积函数(FUNCTIONHANDLE)'func',积分上下界'left'/'right',步长'step',
% 模式mode共三种('midpoint','trapezoid','simpson');
% 返回积分值;
switch mode
% 仅仅是公式不同
case 'midpoint'
node = left; integration = 0;
while (node + step <= right) % 按照给定步长开始分段积分
pieceInt = step*(func(node + step/2)); % 使用中点积分公式
integration = integration + pieceInt; node = node + step;
end
if (node < right) % 补齐最后一段积分
pieceInt = (right - node)*(func((node + right)/2));
integration = integration + pieceInt;
end
case 'trapezoid'
node = left; integration = 0;
while (node + step <= right)
pieceInt = step*(func(node) + func(node + step))/2; % 使用梯形公式
integration = integration + pieceInt; node = node + step;
end
if (node < right)
pieceInt = (right - node)*(func(node) + func(right))/2;
integration = integration + pieceInt;
end
case 'simpson'
node = left; integration = 0;
while (node + step <= right)
pieceInt = step*(func(node) + 4*func(node + step/2) + func(node + step))/6; % 使用辛普森公式
integration = integration + pieceInt; node = node + step;
end
if (node < right)
pieceInt = (right - node)*(func(node) + 4*func((node + right)/2) + func(right))/6;
integration = integration + pieceInt;
end
end
2. 自适应分段积分方法
通过函数内调用自身的方法使得积分函数显得简洁明快。因为需要调用自身计算原积分的一段,必须传入参数length标识原积分上下限总长,通过left, right和length三个参数才能够得到某一段的要求精度。
function [ integration ] = AdaptInt( func, left, right, prec, length )
% 自适应分段积分函数AdaptInt;
% 输入五个参数:被积函数(句柄)func,积分上下限right,left,要求精度prec,积分总长length;
% 输出一个参数:积分值integration;
trapeInt = (right - left)*(func(left) + func(right))/2;
midInt = (right - left)*func((left + right)/2);
err = (trapeInt - midInt)/3; % 由中点公式和梯形公式差估算误差
if (abs(err) < prec && (right - left) < length/5) % 如果误差符合要求,则使用辛普森公式计算较精确结果
integration = (right - left)*(func(left) + 4*func((left + right)/2) + func(right))/6;
else % 否则,二分该段,分别进行自适应分段积分
integration = AdaptInt(func, left, (left + right)/2, prec/2, length) + AdaptInt(func, (left + right)/2, right, prec/2, length);
end
end
matlab 定步长积分,数值积分:基于牛顿-柯茨公式的定步长和自适应积分方法 [MATLAB]...相关推荐
- 复化柯特斯matlab,基于牛顿‑柯特斯公式构造背景值的GM(1,1)模型预测方法与流程...
本发明涉及数据预测技术领域,具体涉及一种基于牛顿-柯特斯公式构造背景值的GM(1,1)模型预测方法. 背景技术: 货物周转量预测方法较多,其中较为常见的方法有:时间序列法.BP神经网络.回归分析法.灰 ...
- 【数学】积分(integration)的定义,黎曼和,黎曼积分,牛顿.莱布尼茨公式,微分三大中值定理
[积分的定义] 本文将详细的描述积分的定义和牛顿.莱布尼茨公式.感谢此文:如何简单地证明.理解牛顿-莱布尼兹公式? 在上面四个图中,我们可以看到,使用等分矩形的形式来计算曲线与坐标轴所围的面积,则当细 ...
- 基于双层优化的微电网系统规划设计方法matlab程序(yalmip+cplex)
基于双层优化的微电网系统规划设计方法matlab程序(yalmip+cplex) 参考文献:基于双层优化的微电网系统规划设计方法 摘要:规划设计是微电网系统核心技术体系之一.从分布式电源的综合优化(组 ...
- 高阶系统怎么用matlab降阶,一种基于非线性规划的高阶系统最优降阶方法
一种基于非线性规划的高阶系统最优降阶方法 [技术领域] [0001] 本发明涉及一种基于非线性规划的高阶系统最优降阶方法,它是一种线性时不变 系统的最优降阶方法,是针对单输入单输出系统给出的一种使得降 ...
- matlab碎纸拼接相似函数,基于蒙特卡洛算法构建能量函数的碎纸图片拼接方法
基于蒙特卡洛算法构建能量函数的碎纸图片拼接方法 [专利摘要]本发明提供了一种基于蒙特卡洛算法构建能量函数的碎纸图片拼接方法,主要涉及双面打印文件的拼接及复原问题,通常由于图片较多,信息量较大,故通常为 ...
- 距离矢量算法matlab实现,一种基于最小费用距离模型的城市生态网络构建方法与流程...
本发明涉及生态网络构建技术领域,特别是涉及一种城市网络的构建方法. 背景技术: 最小费用距离是网络分析的一种计算方法,这种方法被用于物种保护.自然保护区功能规划.动物栖息地的确定.区域生态安全格局设计 ...
- 牛顿--莱布尼茨公式
牛顿--莱布尼兹公式 定义 注 注1 注2 注3 例题 开胃小菜 难度加深 定义 注 注1 注2 注3 例题 开胃小菜 难度加深
- 基于Seam+Carving和显著性分析的图像缩放方法MATLAB仿真
本课题的主要工作是使用seam+carving算法对图像进行非等比例缩放以及无缝拼接,关于seam+caring算法的理论,这里不再重复,主要见如下的参考文献(已经提供). 下面介绍本系统的主要操作方 ...
- 数值积分之牛顿——科斯特公式:梯形、辛普森、辛普森3/8和布尔 高斯积分公式:勒让德、切比雪夫、拉盖尔和埃尔米特
https://blog.csdn.net/sinat_21591675/article/details/86242577
- 高等数学——手撕牛顿莱布尼茨公式
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是高等数学专题的第13篇文章,我们来看看定积分究竟应该怎么计算. 定积分的实际意义 通过之前的文章,我们基本上熟悉了定积分这个概念和它的 ...
最新文章
- 深蓝学院的深度学习理论与实践课程:第二章
- 学霸网站-Beta版本发布说明
- 如何找到SAP Spartacus UI可以扩展的outlet
- TPC-C中跑赢Oracle的OceanBase,最近有何惊艳?
- Python学习笔记之While循环(一)
- java中访问权限的设置
- JavaAPI之Runtime类以及bat文件开启应用程序
- drupal.behavior 和 document.ready 没有直接的关系
- 构造方法、toString、Object类、String类
- 百兆电口Lan Bypass实例
- MySQL数据库学习路径 链接汇总
- 学渣上手 LaTeX 完成毕业论文
- 云桌面终端CT3200,硬件与信号连接
- Python爬虫-IP隐藏技术与代理爬取
- 计算机二级有没有年龄,九龄童通过全国计算机二级 创年龄最小纪录(图)_新闻中心_新浪福建_新浪网...
- 大数据告诉你,其实中国电影票房的最强锦鲤,不是吴京
- java16进制字符串与字符串互相转换
- MATLAB批量读取航摄相片EXIF信息和GNSS信息以及MATLAB批量经纬度坐标转换空间直角坐标
- 王者荣耀怎么删除在服务器上建立的账号,王者荣耀账号怎么注销 王者荣耀账号注销方法...
- 树莓派简单教程(二)(下)