Why is the output of my function infinity?

3 ビュー (過去 30 日間)
Nicholas Gillam
Nicholas Gillam 2019 年 4 月 7 日
回答済み: Torsten 2019 年 4 月 8 日
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.
Star Strider
Star Strider 2019 年 4 月 8 日
Wolfram Alpha and your Ti89 are wrong.

サインインしてコメントする。


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 Center および File ExchangeNumerical 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