sinxの数値計算

解決済みの質問

sinxの数値計算

sinxの数値計算
sinxの数値計算
任意のxに対するsinxの値をマクローリン展開を利用して近似し、誤差の限界(n番目の値が1*10^-8)になるまでもとめよ。


という問題なんですが、for文でいろいろやってみたのですが、n番目の値が1*10^-8までというのがどうしてもできません。
C言語です。
ヒントだけでもいいので教えてください。

明後日の試験にこれの類題が出るようなので、よろしくお願いします。

投稿日時 - 2009-07-15 19:58:04

QNo.5128221

すぐに回答ほしいです

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

マクローリン展開を行うと、添付した式の赤枠内の部分式の値の絶対値が徐々に0に近付きます。

これは「分数式の分母がどんどん大きくなる」からです。

プログラムは、きっと
double sinx(double x)
{
double ans=0.0;
double an;
int n;
n = 1;
while (1) {
an = 赤枠の部分式;
if ((an < 1e-8) && (an > -1e-8)) break; //誤差の限界
ans += an;
}
return ans;
}
と言う感じになります。

投稿日時 - 2009-07-15 21:44:43

0人が「このQ&Aが役に立った」と投票しています

回答(5

ANo.5

(-1)^n x^(2n+1)/(2n+1)! = [(-1)^(n-1) x^(2n-1) / (2n-1)!] × -x^2/[(2n)(2n+1)]
だから, 1つ前の項の値がわかればいい, だけだよね?
ま, 実際にはこんなふうにすると誤差が出てしょうがないんだけど.

投稿日時 - 2009-07-15 23:35:17

補足

式の意味は分かるのですが、プログラムにすることができません。

投稿日時 - 2009-07-16 08:21:16

ANo.4

><Math.h>などは使わない方法を教えていただきたいです。

#3さんの回答には、どこにもmath.hを使う場面は出てきません。

>プログラムを全部載せていただいた方が助かります。

sinx関数のソースは提示されているのですから、
後は、それをmain関数(あなたが作ります)から
どのように呼び出すか、だけです。

# マクローリン展開そのものは理解されているのですよね?

投稿日時 - 2009-07-15 22:27:32

補足

数学は得意なのでマクローリンは理解しています。赤枠の中の表記の仕方がわからないです。

投稿日時 - 2009-07-15 22:53:21

ANo.3

訂正。

double sinx(double x)
{
double ans=0.0;
double an;
int n;
n = 1;
while (1) {
an = 赤枠の部分式;
if ((an < 1e-8) && (an > -1e-8)) break; //誤差の限界
ans += an;
n += 2; //nを増やすの忘れたので追加
}
return ans;
}

投稿日時 - 2009-07-15 21:47:08

補足

すみません。まだ授業でもそれほど高度なことはやっていないので、<Math.h>などは使わない方法を教えていただきたいです。プログラムを全部載せていただいた方が助かります。

投稿日時 - 2009-07-15 21:56:49

ANo.1

>for文でいろいろやってみた

その、いろいろやってみた、というソースを示してください。

投稿日時 - 2009-07-15 21:41:37

補足

for(i=-10;i<=10;i++){
v=(-1);
sinx=0;
k=1;
l=1;
x=i*0.1;
for(j=1,m=1;j<=10,m<=10;j++,m++){

l=x*l;
k=j*k;
d=l/k;

if (m%2!=0 && d>0.000001){
v=v*(-1);
sinx=sinx+v*d;
}

if(d>0.000001){ printf("x=%g sinx=%g\n",x,sinx); break;
}else if(d==0){printf("x=0 sinx=0\n");}

投稿日時 - 2009-07-15 21:52:37

新着

あなたの愛車は今いくら?

愛車無料査定Q&A特集

ニキビケアQ&A特集

スッピンでも輝くモテ美肌に。

教えて!みんなの婚活Q&A特集

みんなの婚活体験談、秘訣がいっぱい!

お部屋探しはCHINTAI

マチから探せる新しいお部屋探し!

注目ピックアップ

OKちゃんねる

OKWaveからみなさんに質問!

OKWave2009年ランキング

話題のQ&Aをランキングでご紹介!

スタッフブログ

知って得する!お得な情報をお届け!

おすすめリンク