MATLAB Interpreting Matlab function simp

  • Thread starter Thread starter Ein Krieger
  • Start date Start date
  • Tags Tags
    Function Matlab
AI Thread Summary
The discussion centers around the use of the Matlab function `simp`, which implements Simpson's rule for numerical integration. Users clarify that `simp` is not a built-in Matlab function, and its implementation can be found in the Matlab file exchange. The integration process involves defining the initial and final boundaries, the number of intervals, and the function to be integrated. It is confirmed that the command `I1=simp(0.0,r0,nr,u1d)` integrates the array `u1d` from 0 to `r0` using `nr` intervals. The conversation concludes with the understanding that `simp` can be applied to various types of variables as long as the input order is maintained.
Ein Krieger
Messages
32
Reaction score
0
Hello, guys

Hey guys,

Got stuck with function integration using Simpson's rule and need your help.

Please first refer to picture attached for full idea of my question:

The Matlab command related to it is:

for i=1:nr

u1d(i)=4.0*pi*r(i)^2*u(it,i)

end

I1=simp(0.0,r0,nr,u1d)/(4.0/3.0*pi*r0^3)

I1 is

nr=21

r0=1.0;

Does it mean that I1 is integrated 21 times between boundaries 0 and r0?
 

Attachments

  • 2.jpg
    2.jpg
    36.9 KB · Views: 533
Physics news on Phys.org
Can you post more information? The code you posted references variables that you never define. Make it so that your code block can be copy/pasted into matlab.
 
Yes. Sure

I have attached all commands with order from Pic.1 to Pic.3
 

Attachments

  • Pic 1.jpg
    Pic 1.jpg
    6.9 KB · Views: 470
  • Pic 2.jpg.png
    Pic 2.jpg.png
    22.4 KB · Views: 554
  • pic 3.jpg
    pic 3.jpg
    26.9 KB · Views: 487
simp() is not a MATLAB function, so the information about the input arguments is not available in the documentation. I suggest looking at the function file for simp() to find this info.
 
EDIT: I found information about this function in the MATLAB file exchange.

Code:
function s = simp(f, a, b, h)
x1 = a + 2 * h : 2 * h : b - 2 * h;
sum1 = sum(feval(f, x1));
x2 = a + h : 2 * h : b - h;
sum2 = sum(feval(f, x2));
s = h / 3 * (feval(f, a) + feval(f, b) + ...
           2 * sum1 + 4 * sum2);

It appears that the inputs are:

f=function, a=initial value, b=end value, h=interval size
 
Last edited:
I have found it as separate m.file. Here are the commands:

function uint=simp(xl,xu,n,u)
h=(xu-xl)/(n-1);
uint(1)=u(1)-u(n);
for i=3:2:n
uint(1)=uint(1)+4.0*u(i-1)+2.0*u(i);
end
uint=h/3.0*uint;
But why here different variables are used such as xl and xu?

It seems to me that we use r in integration?
 
At a glance it looks like

xl = beginning of interval
xu = end of interval
n = number of slices
u = function

So in your case of
Code:
I1=simp(0.0,r0,nr,u1d)

You are integrating u1d from 0 to r0 with nr intervals
 
kreil said:
At a glance it looks like

xl = beginning of interval
xu = end of interval
n = number of slices
u = function

So in your case of
Code:
I1=simp(0.0,r0,nr,u1d)

You are integrating u1d from 0 to r0 with nr intervals

So you mean simp can be uniformly used for every type of variable assuming their correct order?
 

Similar threads

Replies
2
Views
3K
Replies
3
Views
17K
Replies
2
Views
4K
Replies
2
Views
4K
Replies
3
Views
5K
Replies
3
Views
4K
Back
Top