ページ 11

三角関数の問題

Posted: 2015年9月30日(水) 22:27
by w center 13th
C言語です。

2つの実数a,bと分割数nの3つを入力すると、
積分 ∫sin(x)dx   ←範囲はa~bです
の近似値
S≡ ∑ wsin(a+wi)   ←i=0からn-1までです   (w≡b‐a/n)

を計算して出力するプログラムを作成したいです。入力された値がa>bのとき、aとbを入れ替えてから計算するようにします。また、表示は小数点以下2ケタです。


C言語を勉強し始めて1か月程の初心者です。角度を入力すると三角関数の値を計算して出力するプログラムを作るなどして勉強していますが、上記の問題が全く分かりません。提出は明後日までなのですが、どなたか教えていただけないでしょうか。初投稿ですが、いきなり課題の質問となってしまい、大変申し訳ありません。

Re: 三角関数の問題

Posted: 2015年10月01日(木) 13:31
by usao
>上記の問題が全く分かりません

本当に”全く”なんでしょうか.わかるところとわからないところとがあるのでは?
わからない事柄を具体的に質問できませんか.

例えば,全体をいくつかの処理に細分して考えたらどうでしょうか.

(1)aとbとnの値を入力する という処理
(2)a>b だったら aとbの値を入れ替える という処理
(3)wの値を計算する処理
(4){a,b,n,w}の値を用いて,Sの値を算出する処理
 (4-1)あるiの値に対して, w * sin( a + w*i )  の値を計算する
 (4-2)上記の値を i=0からn-1 までの範囲で合算する
(5)Sの値を小数点以下2ケタで表示する処理

これが,(やたら穴部分がたくさんある)穴埋め問題なのだと思って,
わかるところを埋めてみたらどうなりますか.

コード:

//(0)必要なヘッダのincludeを書く

int main()
{
  double a,b,w,S;
  int i,n;

  //(1)aとbとnの値を入力する という処理

  //(2)a>b だったら aとbの値を入れ替える という処理

  //(3)wの値を計算する処理

  //(4){a,b,n,w}の値を用いて,Sの値を算出する処理

  //(5)Sの値を小数点以下2ケタで表示する処理

  //
  return 0;
}

Re: 三角関数の問題

Posted: 2015年10月01日(木) 14:35
by w center 13th
ご回答ありがとうございます。
全体像が分からなかったので、困っていました。
手順を教えていただき、助かります。

積分の計算と近似が分かりません。
math.hでどうにかやってみます。

Re: 三角関数の問題

Posted: 2015年10月01日(木) 14:50
by usao
>積分の計算と近似が分かりません。

近似値Sを計算するプログラムを作る という課題ですから,
とりあえずその近似式の通りの計算さえすれば(その意味は解らずとも)課題としてはクリアできるような気もします.


>積分 ∫sin(x)dx
に対して,Sの式がどういう近似をしているのか,については
「積分 長方形近似」等で検索するといろいろとそういう話が見つかるかと思います.