Reimann sum and numerical integration

조회 수: 31 (최근 30일)
DM
DM 2015년 1월 25일
댓글: Star Strider 2015년 1월 25일
I am trying to solve the functions below numerically using MATLAB
This is my code where I have used "integral" command to solve for the second integral, while I used Reimann sum to solve for the first. Take for example c=1/128.
x= -1/128:0.0001:1/128;
for j=1:length(x)
den= @(y) pi^2.* sqrt(1- (x(j)+y).^2) .* sqrt(1- y.^2);
fun= @(y) 1./den(y);
ymin= max(-0.999,-0.999-x(j));
ymax= min(0.999,0.999-x(j));
pdfX(j)=integral(fun,ymin,ymax);
end
sum1=0;
for j=1:length(omegat)
func1(j)=pdfX(j)*0.0001;
sum1=sum1+func1(j);
end
F=sum1;
Do you think it is correct? Are there any other ways to make it more accurate?
Thanks

채택된 답변

Star Strider
Star Strider 2015년 1월 25일
I would likely use either trapz or cumtrapz to calculate ‘F’, but otherwise I see no problems.
  댓글 수: 3
DM
DM 2015년 1월 25일
Also did you notice I have 0.999 instead of 1, so as to avoid the singularity point, is that OK ?
Star Strider
Star Strider 2015년 1월 25일
Personal preference, really. The trapz function is designed for numerical integration:
F = trapz(x, pdfX)
Avoiding the singularity is likely a good move. I doubt that substituting -0.999 would produce significant error. You might want to experiment with (1-1E-8) instead if you are curious.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Numerical Integration and Differentiation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by