Integrate with Simpson's Rule
2 次查看(过去 30 天)
显示 更早的评论
Hi i have, probably an easy, problem. I made a function (see the outcome below) and i need to integrate the outcome, but since the interval is small the subscript indices aren't integers. This is the problem:
f =
0.0028 0.1333 0.2667 0.4000 0.5333 0.6667 0.8000 0.9333 1.0667 1.1972
So then i use the Simpson Rule:
%interval is [0,1.2]
a = 0; b = 1.2; n =10; h = (b-a)/n
xi=a:h:b
I = h/3*(f(xi(1))+2*sum(f(xi(3:2:end-2)))+4*sum(f(xi(2:2:end)))+f(xi(end)));
But i get the error: Subscript indices must either be real positive integers or logicals.
How can I solve this?
0 个评论
采纳的回答
Matt J
2019-1-14
编辑:Matt J
2019-1-14
It doesn't look like you xi should be involved, since you already have the samples of f
I = h/3*(f((1))+2*sum(f((3:2:end-2)))+4*sum(f((2:2:end)))+f((end)));
1 个评论
David Goodmanson
2019-1-14
编辑:David Goodmanson
2019-1-14
Addressing f_i directly (assuming the x_i are equally spaced) is the right method, but the problem is that f has an even number of points. So the end point f(10) gets a weight of 5, not 1.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Numerical Integration and Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!