ここから本文です

C言語の、sinxのテイラー(マクローリン)展開を求めるプログラムを教えて下さい。

shotta292さん

2015/5/2821:12:31

C言語の、sinxのテイラー(マクローリン)展開を求めるプログラムを教えて下さい。

sinx=x-(x^3)/3!+(x^5)/5!-(x^7)/7!+(x^9)/9!・・・
となっており、
整数nと実数xを入力すると
第n項までの和を求めるプログラムを作らないといけません。
以下は、私が作ったプログラムです。
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,n;
double x,kotae,tmp;

printf("n=? \n");
scanf("%d",&n);
printf("x=? \n");
scanf("%lf",&x);

kotae=x;
tmp=1;
for(i=1;i<n;i++)
{
tmp=tmp*(-1)*x*x/(2*i)/(2*i+1);
kotae=kotae+tmp;
}
printf("sin%fのテイラー展開第%d項までの和は%f \n",x,n,kotae);
return 0;
}
作ったのですが、うまくいきません
n=2、x=2にすると1.3333・・・とかになってしまいます
どうすればいいでしょうか?
分かる方、お願いします。

閲覧数:
9,143
回答数:
1

違反報告

ベストアンサーに選ばれた回答

k032yfさん

2015/5/2821:48:16

shotta292さん

2行修正

#include<stdio.h>
#include<math.h>
int main(void)
{
int i,n;
double x,kotae,tmp;

printf("n=? \n");
scanf("%d",&n);
printf("x=? \n");
scanf("%lf",&x);

kotae=x;
tmp=x;//1;
for(i=1;i<n;i++)
{
tmp=tmp*(-1)*x*x/((2.0*i)*(2.0*i+1.0));//
kotae=kotae+tmp;
}
printf("sin%fのテイラー展開第%d項までの和は%f \n",x,n,kotae);
return 0;
}

質問した人からのコメント

2015/6/4 19:14:22

ありがとうございます。
助かりました。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。