Solving Simpson's 3/8 Rule Problems with Matlab SV7

  • Thread starter Thread starter arizonian
  • Start date Start date
Click For Summary
The discussion revolves around issues with implementing Simpson's 3/8 rule in Matlab for numerical integration. The original code provided by the user has a misunderstanding regarding the weights assigned to the endpoints and middle points, specifically that the final sum should be multiplied by 3/8 instead of 1/8. A user pointed out that the code does not yield the correct answer, prompting a clarification on the weight distribution. Additionally, there are inquiries about errors related to the variable initialization in the code. Overall, the conversation highlights common pitfalls in coding numerical methods and the importance of correctly applying mathematical principles.
arizonian
Messages
18
Reaction score
2
I am having problems in Numerical Methods with Simpson's 3/8 rule of integration. Of course, this is computer driven. The code that I have written for Matlab (SV7) goes as such:

1) function simpson38(f,n,a,b)
2) h = (b-a)/n;
3) x = a;
4) sum = f(x);
5) for i = 1:3:(n-3)
6) x = x + h;
7) sum = sum + 3 * f(x);
8) x = x + h;
9) sum = sum + 3 * f(x);
10) x = x + h
11) sum = sum + 2* f(x);
12) end
13) x = x + h;
14) sum = sum + 3 * f(x);
15) x = x + h;
16) sum = sum + 3 * f(x);
17) x = x + h
18) sum = sum + f(b);
19) I = (b-a) * sum/(8*n)


f = the function to be integrated, n = number of points, h = the stepsize, i is a counter, and sum is the sum of the values. a and b are the endpoints. I = the final integrated value.

If I am reading the book right, the middle points are given a weight of 3/8 each, with the end points given a weight of 1/8. With that in mind, line 11 should be weighted 2/8 (end point from 2 directions) unless it is the final endpoint.

What am I missing?

Thanks
Bill
 
Physics news on Phys.org
Tell me the problem. The code does not give correct answer?
I think you need to multiply your final sum by 3/8 not just 1/8 (hence the name 3/8 rule).
 
kakarukeys,

Thank you, you are spot on.

Bill
 
why is x=a; showing an error when i tried to use this code
 
Hello people i m looking or Simpsons 3/8th rule which can be used for Normal table calculation in C++...need urgent help
 
Thread 'Earthed plates confusion'
So, we know that since the 3rd plate is grounded that means the potential from the right side of the third plate to infinity should be 0, i.e no work should be required to bring a test charge from infinity to the right side of plate 3. Similarly the left side of plate 3's potential should also be 0, i.e no work is done when moving a test charge from infinity to the left side of plate 3. This should mean the fields in these regions should either cancel out or be 0. My teacher told me that...

Similar threads

  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 2 ·
Replies
2
Views
811
  • · Replies 25 ·
Replies
25
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 29 ·
Replies
29
Views
3K
  • · Replies 97 ·
4
Replies
97
Views
6K
  • · Replies 3 ·
Replies
3
Views
1K
Replies
5
Views
929
  • · Replies 8 ·
Replies
8
Views
1K