尝试使用泰勒公式生成 cos x 的值
Trying to generate the value of cos x using taylor's formula
用户需要给出 "x" 和 "n" 的值,以便使用泰勒级数近似计算 cos x(您可以在此处查看其公式:http://campusdematematicas.com/wp-content/uploads/2012/05/serie-taylor-funcion-coseno.gif)其中 "k" 值是下面代码中的 "i"。
问题是我不知道我做错了什么,因为它没有给我正确的 cos x 值。
我刚试过的输入是x=3.14,n=6。
它应该给我的结果是 cosx = -1.00
相反,它给了我:1.14
顺便说一下,它对 0 不起作用,因为它应该给出 cos (x) = 1.00,
它给出了 0.000000
#include <stdio.h>
int main(){
double x, n, m;
int i = 0, j, l, k = -1;
double g = 0.0;
unsigned long long p = 1;
printf("Introduce the value of x (real): ");
scanf("%lf%*c", &x);
m = x;
printf("\nIIntroduce the value of n (natural): ");
scanf("%lf%*c", &n);
while (i <=n){
for (l=1; l < (i*2); l++){
m *= x;
}
for (j=1; j <= (2*i); j++){
p *=j;
}
if (i%2 == 0){
k = 1;
}
g += (double) (m/p)*(k);
p = 1;
k = -1;
m = x;
i++;
}
printf("\ncos(%.2lf) = %lf\n", x, g);
}
m
的初始化错误。代码求和 x
的奇数次方,而不是偶数次方。
// m = x;
m = 1.0;
输出
cos(0.00) = 1.000000
cos(1.05) = 0.500460 // cos(60 degrees) --> 0.5
cos(1.57) = 0.000796 // cos(90 degrees) --> 0.0
cos(3.14) = -0.999899
用户需要给出 "x" 和 "n" 的值,以便使用泰勒级数近似计算 cos x(您可以在此处查看其公式:http://campusdematematicas.com/wp-content/uploads/2012/05/serie-taylor-funcion-coseno.gif)其中 "k" 值是下面代码中的 "i"。
问题是我不知道我做错了什么,因为它没有给我正确的 cos x 值。
我刚试过的输入是x=3.14,n=6。 它应该给我的结果是 cosx = -1.00 相反,它给了我:1.14
顺便说一下,它对 0 不起作用,因为它应该给出 cos (x) = 1.00, 它给出了 0.000000
#include <stdio.h>
int main(){
double x, n, m;
int i = 0, j, l, k = -1;
double g = 0.0;
unsigned long long p = 1;
printf("Introduce the value of x (real): ");
scanf("%lf%*c", &x);
m = x;
printf("\nIIntroduce the value of n (natural): ");
scanf("%lf%*c", &n);
while (i <=n){
for (l=1; l < (i*2); l++){
m *= x;
}
for (j=1; j <= (2*i); j++){
p *=j;
}
if (i%2 == 0){
k = 1;
}
g += (double) (m/p)*(k);
p = 1;
k = -1;
m = x;
i++;
}
printf("\ncos(%.2lf) = %lf\n", x, g);
}
m
的初始化错误。代码求和 x
的奇数次方,而不是偶数次方。
// m = x;
m = 1.0;
输出
cos(0.00) = 1.000000
cos(1.05) = 0.500460 // cos(60 degrees) --> 0.5
cos(1.57) = 0.000796 // cos(90 degrees) --> 0.0
cos(3.14) = -0.999899