※ ChatGPTを利用し、要約された質問です(原文:sinの値を求めるプログラムでお聞きします。)
sin(x)の値を求めるプログラム
このQ&Aのポイント
cos(x)のテーラー展開の式からsin(x)の値を求めるプログラムを作成
無限級数の項の絶対値が0.00001以下になったら打ち切る
0.0≦x≦0.1の範囲で0.01刻みにsin(x)とcos(x)の差を求め、ファイルに書き出す
cos(x)の値をcosのテーラー展開の式から求めるプログラムを作り、無限級数の項の絶対値が0.00001以下になったら打ち切って、コンピュータで定義されるcos(x)の値との差を 0.0≦x≦0.1 の範囲で0.01刻みに求めよ。ただし、結果はファイルに書き出すこと。
という問いがあり、プログラムは下記のようなものだったのですが、
#include <stdio.h>
#include <math.h>
double COS(double x);
int main(void)
{
double a;
FILE *fout;
fout=fopen("file1.txt","w");
for(a=0;a<0.1;a=a+0.01)
{
fprintf(fout,"a=%f COS=%e cos=%e error=%e\n",a,COS(a),cos(a),COS(a)-cos(a));
}
return 0;
}
double COS(double x)
{
double t;
double y;
int n;
y=1.0;
t=1.0;
n=1;
while(1)
{
t=-t*x*x/((2*n)*(2*n-1));
if(fabs(t)<=0.00001) break;
y=y+t;
n++;
}
return y;
}
これが、例えば、cos(x)ではなくsin(x)についてだった場合、上記の最初に書いてある条件もまったく同じでプログラムを作ったとすると、上記のプログラムのどこどのように変えればいいのでしょうか。
分からなくて困っています。助けてください。
お礼
申し訳ありません。先ほどの質問で分からなかったので改めて聞かせていただいたのですが、先に伝えておくべきでした。本当に申し訳ありませんでした。