Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2014, 02:10   #1
paradises965
Пользователь
 
Регистрация: 09.11.2014
Сообщений: 17
По умолчанию Ряд тейлора и его табуляция

Не могу написать код правильно
Не правильно задаю цикл и не только
табулирование для такой функции
F(x) = Pi/2-(x+(x^3/2*3)+(1*3*x^5/2*4*5)+(1*3*5*x^7/2*4*6*7)+K)
Функция приближается к arccos x и модуль x < 1
исправте ошибки


[C]
Код:
#include <stdio.h>
#include <math.h>
#include <locale.h>
#include <iostream>


#define Pi      3.1415926536
double Arccos(double x, double eps)
{
  double arccos=x;
  double a=x;
  int i=1;
  while(a > eps)
  {
    a*=x*x*(2*i-1)*(2*i-1)/((2*i+1)*2*i);
    arccos+=a;
    i++;
  }
  return Pi/2-arccos;
}

double iter_func(double x, double eps){
    eps= 0.0001;
    double a = x*x*x;
    double b =(2*3);
    double y = 3.14/2 - x - a/b;
    int k = 1;
    while(fabs(a/b) > eps){
        
        y *= (2*k + 1)*(2*k + 1)*x*x/((k + 1)*(2*k + 3));
        y -= a/b;
        ++k;
    }
        
    return y;
}
 
double rec_func(double x,double eps, int k = 1, double a= 0,double b= 0, double y = 0){
    eps=0.0001;
	a=x;
    if (k == 1){
        a = x*x*x;
        b =(2*3);
        y = 3.14/2 - x - a/b;
    }       
        
    if (fabs(a/b) > eps)
        return y;
    else{
        y *= (2*k + 1)*(2*k + 1)*x*x/((k + 1)*(2*k + 3));
        y += a/b;
        ++k;
        return rec_func(x,eps,k,a,b,y);
        
    }
}
 
 
void tabl_func(float a,float b,float l)
{
float d, step, n = 0, y = 0,eps,k,ds,s;
d = b - a;
step = d / l;
printf("X\t\titer_func\trec_func\tArccos\teps\n");
for (float x = a;x < b;x += step)
{
printf("x:%f\t", x);
printf("y = %f\t\t", iter_func(x,eps));
printf("y = %f\t\t", rec_func(x,eps,k,a,b,y));
printf("y = %f\t\t", Arccos(x,eps));
printf("%f\n", Arccos(x,eps) - iter_func(x,eps));
}
}
int main()
{
float a, b, l;
 
printf("Input a:");
scanf("%f",&a);
printf("Input b:");
scanf("%f", &b);
printf("Input l:");
scanf("%f", &l);
 
tabl_func(a, b, l);
getchar ();
return 0;[/C]
}

Последний раз редактировалось paradises965; 09.12.2014 в 02:20.
paradises965 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ряд тейлора. boomboom Общие вопросы C/C++ 7 19.04.2013 15:09
Ряд Тейлора С++ Nyflex Помощь студентам 1 01.10.2012 09:12
ряд Тейлора misery24-7 Паскаль, Turbo Pascal, PascalABC.NET 5 20.06.2012 19:57
вычислить функцию с по-щью разложения в ряд.(Ряд Тейлора) feelstor Помощь студентам 2 26.12.2011 03:44