※ ChatGPTを利用し、要約された質問です(原文:sinの値を求めるプログラムで質問です。)
sin(x)の値を求めるプログラムの変更方法について
このQ&Aのポイント
sin(x)の値を求めるプログラムの変更方法について教えてください。
cos(x)の値をcosのテーラー展開の式から求めるプログラムを作成し、無限級数の項の絶対値が0.00001以下になったら打ち切って、コンピュータで定義されるcos(x)の値との差を0.0≦x≦0.1の範囲で0.01刻みに求めるプログラムがありますが、これをsin(x)についての計算に変更するにはどの部分を変える必要がありますか?
現在のプログラムではcos(x)の値を計算していますが、sin(x)の値を求めるプログラムに変更したいです。どのような変更が必要でしょうか。
sin(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)についてだった場合、上記の最初に書いてある条件もまったく同じでプログラムを作ったとすると、上記のプログラムのどこを変えればいいのでしょうか。どなたか教えてください。