首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于辛普森规则的离散数据数值积分

基于辛普森规则的离散数据数值积分
EN

Stack Overflow用户
提问于 2012-03-27 07:40:12
回答 4查看 13.8K关注 0票数 2

我正在寻找与matlab的数值积分。我知道matlab中有一个trapz函数,但精度不够高。通过在线搜索,我发现有一个四元函数,它似乎只接受符号表达式作为输入。我的数据都是离散的和一维的。这是在我的数据上使用quad的方法吗?谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-27 08:35:22

你的问题的答案是否定的。在Matlab语言中,对没有表达式的数据进行数值积分的唯一方法是使用trapz函数。如果它对你来说不够精确,试着像Li-aung所说的那样编写你自己的四元函数,这很简单,this可能会有所帮助。

你可以尝试的另一种方法是使用功能强大的曲线拟合工具cftool进行拟合,然后使用可以对cfit对象进行操作的integrate函数(它有一个奇怪的约定,上限是第一个参数!)。我认为你不会得到比trapz更准确的答案,这取决于适合度。

票数 1
EN

Stack Overflow用户

发布于 2013-02-28 01:12:21

使用MATLAB中的样条函数对数据进行插值,然后对该数据进行积分。这是以离散形式集成数据的标准方法。

票数 0
EN

Stack Overflow用户

发布于 2014-11-27 20:02:04

如果您首先创建一个插值数据的函数,则可以使用quadl()集成数据。

代码语言:javascript
复制
function f = int_fun(x,xdata,ydata)
f = interp1(xdata,ydata,x);

然后将其提供给quadl()函数:

代码语言:javascript
复制
integral = quadl(@int_fun,A,B,[],[],x,y) % syntax to pass extra arguments
                                         % to the function
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9881430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档