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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2012, 14:53   #1
Dmitry333
Пользователь
 
Аватар для Dmitry333
 
Регистрация: 13.11.2009
Сообщений: 60
Вопрос Разложение функции в ряд

Вот условие:

Вывести на экран таблицу значений функции Y(x) и её разложение в ряд S(x) с точностью до E. Вывести число итераций, необходимое для достижения заданной точности. Вычисление S(x) и Y(x) оформить в виде функций.

условие прикреплено : нумерация столбцов:
1 - начало промежутка
2 - конец промежутка
3 - сумма
4 - точность
5 - функция.

Вот код:
Код:
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
        
        typedef double (*uf)(double, double, int &);
 
void tabl(double, double, double, double, uf);
double y(double, double, int &);
double s(double, double, int &);
 
 
int main()
{
        cout << setw(8) << "x" << setw(15) << "y(x)" << setw(10) << "k" << endl;
        tabl(-0.8, 0.9, 0.1, 0.0001, y);
        cout << endl;
        cout << setw(8) << "x" << setw(15) << "s(x)" << setw(10) << "k" << endl;
        tabl(-0.8, 0.9, 0.1, 0.0001, s);
        return 0;
}
 
 
void tabl(double a, double b, double h, double esp, uf fun)
{
        int k=0;        
        double sum;
        for (double x=a; x<b+h/2; x+=h)
        {
                sum = fun(x, esp, k);
                cout << setw(8) << x << setw(15) << sum << setw(10) << k << endl;
        }
}
 
double y(double x, double esp, int &k)
{
        return pow(x+1,1/4.) - (4-x) / 4.;
}
 
double s(double x, double esp, int &k)
{
        double a,c,sum;
        sum = a = c =  - (x*x) / 128.; 
        k=3;
        while (fabs(c)>esp)
        {
                c =  (-1.0) * ((4*k-3)*(4*k-1))/((4*k+4)*(4*k+2)) * x;  // pow(x,2) / (2*k*(2*k+1));    
                a*=-c;
                sum+=a;
                k++;
        }
        return sum;
}
получается какая-та фигня
Изображения
Тип файла: jpg ФОРМУЛА4.jpg (38.8 Кб, 150 просмотров)
Тип файла: jpg ФОРМУЛА5.jpg (109.4 Кб, 131 просмотров)
Dmitry333 вне форума Ответить с цитированием
Старый 22.01.2012, 19:39   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Зачем Вы все усложняете?
Вам достаточно две функции. Одна вычисляет сумму ряда, вторая значение функции в соответствии с формулой.
Тогда в функции main после вывода заголовка таблицы, организуйте цикл с изменением х от -0.8 до 0.9 с шагом 0.1. передавайте в функции значения х. Результаты выводите в этом же цикле и все получиться.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 23.01.2012, 10:13   #3
Dmitry333
Пользователь
 
Аватар для Dmitry333
 
Регистрация: 13.11.2009
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
Зачем Вы все усложняете?
Вам достаточно две функции. Одна вычисляет сумму ряда, вторая значение функции в соответствии с формулой.
Тогда в функции main после вывода заголовка таблицы, организуйте цикл с изменением х от -0.8 до 0.9 с шагом 0.1. передавайте в функции значения х. Результаты выводите в этом же цикле и все получиться.
какая разница!!!, мне необходимо чтобы подсказали правильно ли рассчитывается сумма??
Dmitry333 вне форума Ответить с цитированием
Старый 23.01.2012, 10:15   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
мне необходимо чтобы подсказали правильно ли рассчитывается сумма??
MathCad заюзайте и узнаете!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.01.2012, 10:26   #5
Dmitry333
Пользователь
 
Аватар для Dmitry333
 
Регистрация: 13.11.2009
Сообщений: 60
По умолчанию

прикрепляю расчётные формулы
второй член последовательности и множитель последовательности

нуждаюсь в помощи!!
Изображения
Тип файла: gif 2.gif (3.5 Кб, 123 просмотров)
Тип файла: png 1.png (553 байт, 125 просмотров)

Последний раз редактировалось Dmitry333; 23.01.2012 в 10:29.
Dmitry333 вне форума Ответить с цитированием
Старый 23.01.2012, 10:28   #6
Dmitry333
Пользователь
 
Аватар для Dmitry333
 
Регистрация: 13.11.2009
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
MathCad заюзайте и узнаете!
не имею достаточных навыков для работы((
Dmitry333 вне форума Ответить с цитированием
Старый 23.01.2012, 16:23   #7
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Вам лучше бы с математиками посоветоваться, т.к я думаю, что необходимо двойной факториал, выразить через обычный, а затем уже находить, значение элементов ряда.
http://xplusy.isnet.ru/Files/Files_v...Factorials.pdf
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 23.01.2012 в 16:28.
Sweta вне форума Ответить с цитированием
Старый 23.01.2012, 16:29   #8
Dmitry333
Пользователь
 
Аватар для Dmitry333
 
Регистрация: 13.11.2009
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Sweta Посмотреть сообщение
Вам лучше бы с математиками посоветоваться, т.к я думаю, что необходимо двойной факториал, выразить через обычный, а затем уже находить, значение элементов ряда.
(2k)!! = 2^k * k! вот и весь дв. факториал, множитель помогли найти математики теперь всё должно быть ок, но получается не то что надо (надо чтобы значение функции и сумма была равна)
Dmitry333 вне форума Ответить с цитированием
Старый 23.01.2012, 16:31   #9
arrowsf1
Пользователь
 
Аватар для arrowsf1
 
Регистрация: 22.01.2012
Сообщений: 97
По умолчанию

Это я помню- у мя по этому 5 баллов было. Вычка математика.
Там элементарно, мысле шире
Модераторам: не баньте, у мя такие полезные советы, они стоющие
arrowsf1 вне форума Ответить с цитированием
Старый 23.01.2012, 16:40   #10
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Может я и ошибаюсь, но это для четных , т.е. формулу можно применить для знаменателя, где (4k)!! , а для нечетного, каковым является числитель, там другая формула (2k+1)!/2k*k!, только это не Ваши k.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разложение функции в ряд Тейлора (Pascal) berdeman Паскаль, Turbo Pascal, PascalABC.NET 3 04.05.2010 21:03
Разложение функции, Ряд Тейлора. Andrag Помощь студентам 6 22.01.2010 14:41
Одномерный массивы; разложение функции в ряд Тейлора.... lTIGRAl Помощь студентам 3 28.12.2009 17:52
Одномерный массивы, разложение функции в ряд Тейлора...... lTIGRAl Помощь студентам 0 28.12.2009 15:30