• ベストアンサー

C++を使ってのテイラー展開

C++を使って,sinとcosのテイラー展開をしたいのです。 プログラムを作ってはみたのですが,こんな感じでよろしいのでしょうか? #include<stdio.h> int main(void) {  int i,n;  double xb,x,sinx=0,cosx=0,hu;  xb=1.0;  hu=1.0;  printf("どこまで計算しますか?");  scanf("%d",&n);  printf("xはいくらですか?(1以下!)");  scanf("%lf",&x);  for(i=1;i<n;i++)  {  xb=xb*(x/i);  if(i%2==0)  { sinx=sinx+(hu*xb); hu=hu*(-1.0); }  else  { cosx=cosx+(hu*xb); hu=hu*(-1.0); }  }  if(i%2==0)  { printf("答え:%f\n",sinx); }  else  { printf("答え:%f\n",cosx); }  return 0; }

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#include<stdio.h> int main(void) { int i,n; double xb,x,sinx=0,cosx=1.0,hu; xb=1.0; hu=1.0; printf("どこまで計算しますか?"); scanf("%d",&n); printf("xはいくらですか?(1以下!)"); scanf("%lf",&x); for(i=1;i<n;i++){ xb=xb*(x/i); if(i%2!=0){ sinx=sinx+(hu*xb); hu=hu*(-1.0); } else { cosx=cosx+(hu*xb); } } if(i%2==0) { printf("答えsinx:%10.9f\n",sinx); } else { printf("答えcosx:%10.9f\n",cosx); } return 0; }

hatomura
質問者

お礼

これです(^^) ちゃんと答えになりました。 ありがとうございました。 助かりました(^^ゞ

その他の回答 (2)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

すみません。 どこまで計算しますかで、100 xはいくらですかで、 0.5 を入力すると 答え:-0.127626 となるのですが、この答えは、なにを意味しているのでしょうか? sin(0.5)の値でしょうか?

hatomura
質問者

お礼

回答ありがとうございます。 ここでのxはラジアンで,sin(0.5)は0.479・・・になるみたいなんです(T_T) う~ん。。。 どこが違うのやら・・・

回答No.1

こんな感じとは? 期待する値が返ってきてるなら、いいんじゃないかしら。

hatomura
質問者

お礼

回答ありがとうございます(^^) Cがさっぱり分からない  + そもそも数学が分からない こんな私ですのでちょっと(というかかなり)不安だったので(^_^;) 多分期待する値が返ってきていたはず・・・

関連するQ&A