Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C] Вычисления ряда Тейлора


Автор: Ellioth 21.12.2008, 13:28
Нужно написать программу для вычисления косинуса в кубе по формуле 
http://imageshack.us
http://g.imageshack.us/img387/72375722op7.jpg/1/
Вот мой код:
Код

// L4.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "string.h"
#include "windows.h"
#include "stdio.h"
#include "stdlib.h"
#include "math.h"

char* rus(const char* text)
{
    char* buf = new char [strlen(text)];
    CharToOemA(text, buf);
    return buf;
}

double myf (double x, double e)
{
    int n;
    double a,b,xn,xpn,res;
    xpn=res=0;
    a=b=n=xn=1;
    while (fabs(xn-xpn)>=e)
    {
        xpn=xn;
        a*=(9*pow(x,2.0))/(2*n*(2*n-1));
        b*=(pow(x,2.0))/(2*n*(2*n-1));
        xn=0.25*pow(-1,(double)n)*(a+3*b);
        res+=xn;
    }
    return res;
}

  double winf (double x)
  {
      double res;
      res=pow(cos(x),3);
      return res;
  }


void main(void)
{
    double xn,xk,e,dx,x,nev;
    printf(rus("Введите начальное значение х:"));
    scanf("%f",&xn);
    printf("\n");
    printf(rus("Введите конечное значение х:"));
    scanf("%f",&xk);
    printf("\n");
    printf(rus("Введите шаг:"));
    scanf("%f",&dx);
    printf("\n");
    printf(rus("Введите точность:"));
    scanf("%f",&e);
    printf("\n");
    printf(" ---------------------------------------------------------------- \n");
    printf(rus("|  Х  |   Рядная функция  |Стандартная функция|      Невязка      |\n"));
    printf(" ---------------------------------------------------------------- \n");
    for (x=xn;x<=xk;x+=dx)
    {
        nev=sqrt(fabs(pow(myf(x,e),2.0)-pow(winf(x),2.0)));
        printf("|5.2f|19.9f|19.9f|19.9f|",x,myf(x,e),winf(x),nev);
    }
}

Почему-то не работает. Помогите, пожалуйста, найти ошибку.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)