Разложить в ряд Тейлора arccos(x) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите переделать программу. У меня есть код, вычисляющий значение arcsin(x) с помощью ряда Тейлора. Как переделать ее под arccox(x) ? Не могу разобраться, помогите. Вычисляет ли эта программа значение в функции в заданной точке?
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
double f(double x, double eps)
{
    double v, sum = x;
    long n = 1;
    double fn = pow(x,3)/2.0;
    while(eps < fabs(fn))
    {
        sum += fn;
        n   += 1;
        fn *= n*pow((2*n + 1),2)*pow(x,2);
        fn /= 1.0*(n + 1)*(2*n + 3)*(2*n - 1);
    }
    return sum;
}
 
int main()
{
    char sign[] = " ";
    double x, fx, dx = 0, xn = 0, xk = 0, eps = 0;
    printf("Enter xn : ");scanf("%lf",&xn);
    printf("Enter xk : ");scanf("%lf",&xk);
    printf("Enter dx : ");scanf("%lf",&dx);
    printf("Enter eps: ");scanf("%lf",&eps);
    printf("|-----------------------------------|\n");
    printf("|    x   |  f(x)  |  asin |(sin-f)/f|\n");
    printf("|-----------------------------------|\n");
    for(x = xn; x <= xk; x += dx)
    {
        fx = f(x,eps);
        if(x < 0)
            sign[0] = '\0';
        else
            sign[0] = ' ';
        printf("|%s%.4f |%s%.4f |%s%.4f|%s%.4f  |\n",
            sign,x,sign,fx,sign,asin(fx),sign,(sin(x) != 0 ? fabs(sin(x) - fx)/sin(x) : 0));
    }
    printf("|-----------------------------------|\n");
    printf("Press any key to continue\n");
    getch();
    return 0;
}

Решение задачи: «Разложить в ряд Тейлора arccos(x)»

textual
Листинг программы
typedef struct{
  double re;
  double im;
} complex;
 
void showComplex(complex c)
{
  if((c.re == 0.0) && (c.im == 0.0)){
    printf("0");}
  else if((c.re != 0.0) && (c.im == 0.0)){
    printf("%lf", c.re);}
  else if((c.re == 0.0) && (c.im != 0.0)){
    printf("%lfi", c.im);}
  else if(c.im < 0){
    printf("%lf%lfi", c.re, c.im);}
  else{
    printf("%lf+%lfi", c.re, c.im);}
}
 
complex Arccos(complex z)
{
  complex c;
  double A, B;
  A=sqrt((z.re+1)*(z.re+1)+z.im*z.im)/2 +
         sqrt((z.re-1)*(z.re-1)+z.im*z.im)/2;
  B=sqrt((z.re+1)*(z.re+1)+z.im*z.im)/2 -
         sqrt((z.re-1)*(z.re-1)+z.im*z.im)/2;
  c.re=acos(B);
  c.im=-log(A+sqrt(A*A-1));
  return c;
}

Объяснение кода листинга программы

  1. В данном коде используется структура complex для представления комплексных чисел.
  2. Функция showComplex выводит представление комплексного числа в виде строки.
  3. Если вещественная и мнимая части равны нулю, выводится 0.
  4. Если вещественная часть не равна нулю, а мнимая равна нулю, выводится вещественная часть.
  5. Если вещественная часть равна нулю, а мнимая часть не равна нулю, выводится мнимая часть.
  6. Если мнимая часть отрицательна, выводится вещеская и мнимая части в формате реальное число + мнимое числоi.
  7. Если мнимая часть положительна или равна нулю, выводится вещеская и мнимая части в формате реальное число + мнимое числоi.
  8. Функция Arccos вычисляет арккосинус комплексного числа z.
  9. Для этого функция сначала вычисляет значения A и B.
  10. Значение A вычисляется как квадратный корень из суммы квадратов вещественной и мнимой частей комплексного числа z, деленного на 2, и квадратного корня из разности квадратов вещественной и мнимой частей комплексного числа z, деленного на 2.
  11. Значение B вычисляется как квадратный корень из разности квадратов вещественной и мнимой частей комплексного числа z, деленного на 2, и квадратного корня из суммы квадратов вещественной и мнимой частей комплексного числа z, деленного на 2.
  12. Арккосинус вещественной части B вычисляется с помощью функции acos.
  13. Арккосинус мнимой части вычисляется с помощью функции log, используя значение A и B.
  14. Результат сохраняется в структуре complex с именем c.
  15. Вещественная часть результата вычисляется с помощью функции acos, а мнимая часть вычисляется с помощью функции log.
  16. Результат возвращается из функции Arccos.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы