Why is the output of my function infinity?

3 次查看(过去 30 天)
I'm doing code for the trapezoidal rule. I checked my code with simple functions at first to make sure it was outputting correctly. However when I am attempting what I need to do, my output says it's infinity, when it should not be. The solution I got from Wolfram Alpha and my TI89 was 0.00958. Could it be the "1/n" in the x definition? I needed 10 steps for the trapezoids I'm setting up.
The function being applied is: cos^2((pi*cos(x))/2)*csc(x).
n = 10;
x = 0:1/n:1/2;
y=cos((pi*cos(x))/2).^2.*csc(x);
z=trapz(x,y)

回答(2 个)

Star Strider
Star Strider 2019-4-7
The cosecant is , so at integral multiples of π (such as 0, π, ...) the cosecant will approach .
  4 个评论
Nicholas Gillam
Nicholas Gillam 2019-4-7
Hmm, there must be something I can do to simplify it, especially if Wolfram Alpha and my TI89 are giving me a finite number.

请先登录,再进行评论。


Torsten
Torsten 2019-4-8
Since your function tends to 0 as x -> 0 by L'Hospital, you can integrate
y = cos((pi*cos(x))/2).^2.*csc(x).*(x > 0);

类别

Help CenterFile 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!

Translated by