gpt4 book ai didi

c - 此泰勒级数代码不适用于 n=1 或 0 以外的任何值。为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 06:53:57 24 4
gpt4 key购买 nike

首先,让我告诉你,我正在学习编程。

今天,我试着用泰勒级数求余弦的近似值。当我输入 n=0 时,我的代码会给出正确的结果 1。但是当我输入 n=1 或其他任何内容时,我的代码不会给出正确的结果。

我无法理解问题出在哪里。谁能帮忙?

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
float xnot = atof(argv[1]);
float n = atof(argv[2]);
float cosine = cos(xnot*(3.14159265/180));
float result;
printf("%.4f\n", cosine);
float min;


float d, c, b;
c = 1;
d = 2 * n;
for(b = 1; b <= d; b++){
c = c * b; /*value of the factorial is in c*/
}
c = c;
float power;
power = pow((-1), n);
xnot = pow(xnot, 2*n);


for(min = 0; min <= n; min++)
{

result += ((power * xnot) / c);
}
printf("%.4f", result);
}

最佳答案

实现泰勒级数时,您必须为每个“n”值重新计算项的值。在这里,您似乎已经为 n 的最大值计算了 -1^n 的值(如 xnot),然后您每次迭代只需乘以该值即可。那是错误的。 x^2n/(2n)! 的值相同 - 您必须在递增时为 n 的每个值重新计算它,然后对这些值求和。

祝你好运。

关于c - 此泰勒级数代码不适用于 n=1 或 0 以外的任何值。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47401970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com