ユーザーから値xと整数nを取得するプログラムを作成しました。このプログラムは、arcsinのテイラー級数を使用してarcsin(x)を出力します http://tedmuller.us/Math/img/Taylor-arcsin.gif
しかし、何らかの理由でそれは機能していません。x = 1と入力すると、pi/2ではなく1.19の出力が得られます。
これが私のコードです:
#include <stdio.h>
#include <conio.h>
void main()
{
int i,n;
double x,sum,last;
printf("Please enter the x you wish to calculate arcsin(x) for \n");
scanf("%lf",&x);
printf("Enter n\n");
scanf("%d",&n);
last=x;
sum=last;
for(i=1;i<=n;i++)
{
last*=((x*x)*(2*i-1))/((2*i)*(2*i+1));
sum+=last;
}
printf("arcsin(%lf) = %lf",x,sum);
getch();
}
基本的な考え方は次のとおりです。最後と合計は両方ともxの値で始まります。それから私は最後に進んでシリーズの次の番号になり、それを合計に追加し、最後にもう一度進み、合計に追加します...すすぎ、n回繰り返します。