Sn(x)=(x-1)^2n+1/(2n+1)!(n+1)-在C语言中

Sn(x)=(x-1)^2n+1/(2n+1)!(n+1)-在C语言中,c,numerical-methods,C,Numerical Methods,我试图用这段代码来解决图片中的问题,但我解决不了,我很乐意帮忙 我如何修复适用于图中问题的代码? 谢谢 如评论中所述,您使用的商是错误的。此外,序列值的闭合表达式也可用 从公式的最后一项,你可以读出这些项的一般形式 a[k]=x-1^2k+1/2k+1!*k+1,k=0,…,n 两个相邻项的商为 a[k]/a[k-1]=x-1^2/2k+1*2k+1 所以计算和的修改代码是 包括 包括 真空总管{ int n,i; 双和,x,x1s最后; 做{ 打印机输入一个正数:; 扫描%d,&n; }我很好

我试图用这段代码来解决图片中的问题,但我解决不了,我很乐意帮忙

我如何修复适用于图中问题的代码? 谢谢


如评论中所述,您使用的商是错误的。此外,序列值的闭合表达式也可用

从公式的最后一项,你可以读出这些项的一般形式

a[k]=x-1^2k+1/2k+1!*k+1,k=0,…,n 两个相邻项的商为

a[k]/a[k-1]=x-1^2/2k+1*2k+1 所以计算和的修改代码是

包括 包括 真空总管{ int n,i; 双和,x,x1s最后; 做{ 打印机输入一个正数:; 扫描%d,&n;
}我很好奇这个方程是什么。一个泰勒级数是什么?@Galen看起来可能是2*coshx-1-1/x-1的泰勒近似。你应该能够从上一个项推导出每个项,避免高次幂和阶乘。缺点是,它会传播。或者代码是某种类似问题的解决方案,并且需要to修改以匹配新公式?如果是,您了解代码如何计算另一个公式吗?@WeatherVane对于大多数输入,这里的不准确度应该相当高,因为所有的加数都有相同的符号,并且这些项的大小将迅速减小。
#include

void main() {
    int n, i;
    double sum, x, last;
    do {
        printf("Enter an positive number: ");
        scanf("%d", & n);
    } while (n<0);
    printf("Please enter x: ");
    scanf("%lf", & x);
    sum = last = x;
    for (i = 1; i<= n; i++) {
        last = last * (-1) * ((x * x) / ((2 * i - 1) * (2 * i)));
        sum = sum + last;
    }
    printf("S = %lf\n", sum);
}