Integrate with Simpson's Rule
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Danny Helwegen
am 13 Jan. 2019
Bearbeitet: David Goodmanson
am 14 Jan. 2019
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 Kommentare
Akzeptierte Antwort
Matt J
am 14 Jan. 2019
Bearbeitet: Matt J
am 14 Jan. 2019
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 Kommentar
David Goodmanson
am 14 Jan. 2019
Bearbeitet: David Goodmanson
am 14 Jan. 2019
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.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differential Equations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!