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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2014, 23:41   #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


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

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;
    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);
        
    }
}


float std_func(double x)
{
float y;
y = acos(x);
return 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\tstd_func\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", std_func(x));
printf("%f\n", std_func(x) - 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;
}
paradises965 вне форума Ответить с цитированием
Старый 07.12.2014, 23:56   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Так это уже было - http://programmersforum.ru/showthread.php?t=269441

И что, будете создавать еще одну такую же тему?
type_Oleg вне форума Ответить с цитированием
Старый 08.12.2014, 01:16   #3
paradises965
Пользователь
 
Регистрация: 09.11.2014
Сообщений: 17
По умолчанию

Просто уже много чего пытался делать и не получаеться, а так как вы ответили на ту тему на неё даже смотреть не будут да и на эту уже скорее всего тоже
paradises965 вне форума Ответить с цитированием
Старый 08.12.2014, 20:00   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Мне кажется, вы не поняли самой сути использования функций, а также циклов while и for .
А пока вы не ответили на те вопросы, я не смогу понять ваш творческий замысел в этом коде, и поэтому не смогу помочь.
type_Oleg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ряд Тейлора, С++ Marily Помощь студентам 1 12.01.2014 02:44
Ряд Тейлора jesterXXX Помощь студентам 0 02.12.2012 22:08
ряд Тейлора misery24-7 Паскаль, Turbo Pascal, PascalABC.NET 5 20.06.2012 19:57
вычислить функцию с по-щью разложения в ряд.(Ряд Тейлора) feelstor Помощь студентам 2 26.12.2011 03:44
Ряд Тейлора siriusz Общие вопросы C/C++ 6 06.02.2009 20:26