文件交换

图像缩略图

辛普森的规则集成

版本1.6.0.0(1.71 kB) Juan Camilo Medina
在区间[a,b]内用n+1等距点计算积分“I”
3.5
10评级

82下载

更新2011年4月29日

查看版本历史记录

查看许可证

该函数通过Simpson法则计算区间[a,b]内n+1个等间隔点的积分I

语法:i =辛普森一家(f,a,b,n)

在哪里,
f =可以是匿名函数(例如f = @(x)sin(x))或包含要集成的函数的同等间隔值的向量
a=区间的初始点
B =最后的时间点
子间隔(面板)的N = #,必须是整数

作者胡安卡米洛梅迪纳-圣母大学
09/2010(版权所有SIMPSON博士)

示例1:

假设您希望在间隔[-1,1]中集成函数f(x)。
您还需要3个集成点(2面板)均匀分布
域(您可以选择更多的点以获得更好的准确性)。
因此:
f = @ (x) (x (x - 1) * / 2)。* (* x (x - 1) / 2);
我=辛普森一员(f,-1,1,2)

示例2:

假设您希望在间隔[-1,1]中集成函数f(x)。
您知道给定间隔之间的函数f(x)的一些值,
那些是 - {1,0.518,0.230,0.078,0.014,0,0.006,0.014,0.014,0.006,0}
因此:
(1 0.518 0.230 0.078 0.014 0 0.006 0.014 0.014 0.006 0];
i =辛普森一家(fi,-1,1,[])
注意,不需要提供间隔(面板)的数量“n”,
由于它们由矢量fi中的元素数隐含地指定

引用

胡安·卡米洛·梅迪纳(2021年)。辛普森的规则集成(//www.tatmou.com/matlabcentral/fileexchange/28726-simpson-s-rule-integration), MATLAB中央文件交换。检索

意见及评分(19.

安德烈亚斯•霍普

Hari Govind H Panicker

RIJOHN K庇护

Zhr Khsrvi

安东尼炮手

在函数中,当它用4*sum(f(2:2:end)求和偶数项时,这一部分,我认为,需要是4*sum(f(2:2:end-1),否则你是在迭代函数[即:]时对最后一项求和两次。4 *(结束)+ f(结束)。当这个函数与单个积分一起使用时,这几乎是察觉不到的,因为错误只发生一次;然而,我使用这个函数两次进行二重积分与for循环,导致累积误差。

不管怎样,谢谢你提供这些!如果我说错了,请纠正我。用Matlab做非常有用;教科书通常将第一个变量作为f(o),但由于Matlab的语法,其中的第一个数组值是f(1),这提供了一个很好的例子,说明了需要如何执行代码。

阮Huu可以

亲爱的Juan Camilo Medina,
谢谢你的好代码。
但是当a = b时没有功。
我编辑了它,包括一些新的东西,我也引用了你的工作。
祝一切顺利

raúlibáñezcouoh

Excelente !!!!

帕特里克塞纳斯

复合规则是通过将应用于子区间“对”的Simpson规则的实例相加来构造的。这意味着辛普森法则需要偶数个子区间。所以如果n是奇数,那么你就不会得到偶数个子区间你就不能对它应用辛普森法则。

mar

嘿!非常感谢你的代码。你能准确地说它必须是这样的吗
i = h / 3 *(f(xi(1))+ 2 * sum(f(xi(3:2:结束-2))+ 4 * sum(f(xi(2:2:结束-1))))+ f(xi(end))));

其中4 * sum(f(xi(2:2:结束-1))包括终止1

Alok Prasad.

关于我之前的评论,区间内的每个值意味着'我要取= 0.04。

Alok Prasad.

我尝试了这个代码i =辛普森一= simpsons(fi,0,1,[]),间隔中的每个值都有相应的f值,存储在矢量fi中。
我运行程序和它显示未定义的函数'simpsons'输入参数。我该怎么办?
谢谢

詹姆斯风林

我刚刚使用此代码来帮助我编写自己的辛普森的规则集成估算。我注意到,当我在使用SIMPSON的规则的代码中仔细观察时,该公式不适用于n的奇数值,但是当您使用SIMPSON的规则,您可以设置H =(b-a)/ n。如果您要将其设置为等于(B-A)/(2N),则公式将适用于N的所有值。

雅各布戴维斯

当我第一次开始使用它时,它工作得很好,但现在只要我尝试使用函数,它就会给我一个错误地说出“未定义的函数或变量”x'。“我究竟做错了什么?

杰恩·克恩

Maxime Boudreau.

如果n是奇数,算法是否有可能没有完成?在这种情况下,我认为该公式不会考虑最后一个子interval。

要看到它,你可以尝试:
辛普森一家(@ sin,0,pi,100)
辛普森一家(@ SIN,0,PI,101)
辛普森一家(@ sin,0,pi,102)
......

伊万

戈登

Juan Camilo Medina

请在这里留言。

MATLAB版本兼容性
用R2010A创建
与任何版本兼容
平台兼容性
窗户 苹果系统 Linux.

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!