Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Chebattler
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 9
#1

разложение в ряд функции - C++

26.10.2012, 21:04. Просмотров 440. Ответов 4
Метки нет (Все метки)

Прошу помощи, не могу разобраться где у меня ошибка.
http://www.picshare.ru/uploads/121026/gs931LH4x8.jpg
Нужно выполнить разложение в ряд функции. и что бы значения совпадали в случае функии (справа) и разложения (слева)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
double y(double x,double eps, int &k)
{
    return log(2*cos(x/2));
 
}
 
double s(double x, double eps, int &k)
{
    double a,c,sum;
    sum=a=c=x;
    k=1;
    while (fabs(c)>eps)
    {
        c=cos(k*x)/k;
        a*=pow(-c, k-1);
        sum+=a;
        k++;
    }
    return sum;
}
у меня выводит это, и никак не одинаковы они.
http://www.picshare.ru/uploads/12102...RdPz_thumb.jpg
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 21:04     разложение в ряд функции
Посмотрите здесь:

Разложение функции в ряд - C++
Найти сумму ряда с точностью до члена ряда, меньшего 0.0001 для заданного значения и сравнить эту сумму с функцией контроля. Для...

Разложение в ряд функции - C++
#include <stdafx.h> #include <iostream> #include <math.h> #include <iomanip> using namespace std; typedef double(*uf)(double,...

Разложение функции в ряд - C++
Помогите пожалуйста найти сумму ряда у c точностью до члена ряда меньшего 0.0001 для данного x и сравнить с функц. контроля.Использовать...

Разложение функции в ряд Тейлора - C++
Дано вещественное число X(|X|<1) и целое число N(N>0). Найти значение выражения: 1 + x/2 - (1*x^3)/(2*3) + (1*3*x^5)/(2*4*5) + ... +...

Разложение функции в ряд Тейлора - C++
помогите найти ошибку, нужно найти ряд тэйлора скомпилировалось все правильно, но ответ почему-то не выводит задача такая:...

Разложение функции в ряд и С++ код - C++
Доброго времени суток. было у меня задание: Используя разложение функции в ряд, вычислить значение функции тремя способами: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
26.10.2012, 21:13     разложение в ряд функции #2
Сразу куча ошибок. См.комментарии.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double s(double x, double eps, int &k)
{
    double a,c,sum;
    sum=a=c=x; // инициализации не было, начальное значение sum не определено
    k=1;
    while (fabs(c)>eps) // не понятно, почему по модулю сравниваете
    {
        c=cos(k*x)/k;
        a*=pow(-c, k-1); // pow(-1, k-1) должно быть судя по формуле.
        sum+=a; // ну и тут непонятно, что суммируем.
        k++;
    }
    return sum;
}
Проще сделать так, как мне кажется:
C++
1
2
3
4
5
6
7
8
9
10
11
double s(double x, double eps, int &k)
{
    double sum = 0;
    k=1;
    while (fabs(sum)>eps)
    {
        sum += pow(-1, k - 1) * cos(k * x) / k;
        k++;
    }
    return sum;
}
Chebattler
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 9
26.10.2012, 21:19  [ТС]     разложение в ряд функции #3
Цитата Сообщение от John Prick Посмотреть сообщение
Сразу куча ошибок. См.комментарии.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
double s(double x, double eps, int &k)
{
    double a,c,sum;
    sum=a=c=x; // инициализации не было, начальное значение sum не определено
    k=1;
    while (fabs(c)>eps) // не понятно, почему по модулю сравниваете
    {
        c=cos(k*x)/k;
        a*=pow(-c, k-1); // pow(-1, k-1) должно быть судя по формуле.
        sum+=a; // ну и тут непонятно, что суммируем.
        k++;
    }
    return sum;
}
Проще сделать так, как мне кажется:
C++
1
2
3
4
5
6
7
8
9
10
11
double s(double x, double eps, int &k)
{
    double sum = 0;
    k=1;
    while (fabs(sum)>eps)
    {
        sum += pow(-1, k - 1) * cos(k * x) / k;
        k++;
    }
    return sum;
}
Спасибо за замечание. Я попробовал, но , к сожалению , выводит нулевые значения s(x)
http://www.picshare.ru/uploads/12102...nE5l_thumb.jpg
doctor_lecter
280 / 153 / 8
Регистрация: 22.09.2012
Сообщений: 283
26.10.2012, 21:31     разложение в ряд функции #4
Цитата Сообщение от John Prick Посмотреть сообщение
инициализации не было, начальное значение sum не определено
Там была инициализация: x - параметр функции, потом sum=a=c=x
while (fabs(sum)>eps) тут у вас ошибка, сумма не должна стремиться к нулю, к нулю стремиться разность двух слагаемых ряда.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <cmath>
#include <iostream>
 
using namespace std;
 
int main() {
    double eps = 1.0e-4;
    double x;
    cout << "x = ";
    cin >> x;
    int k = 1;
    double a0, a = cos(x);
    double sum = a;
    cout << "k = " << k << " a = " << a << " sum = " << sum << endl;
    double d = 0.0;
    do {
        ++k;
        a0 = a;
        a = pow(-1.0, k-1)*cos(k*x)/k;
        d = fabs(a - a0);
        sum += a;
        cout << "k = " << k << " a = " << a << " sum = " << sum << " |a-a0| = " << d << endl;
    } while (d > eps);
    cout << endl;
    double f = log(2.0*cos(x/2.0));
    cout << "sum = " << sum << " func(" << x << ") = " << f << endl;
    cout << "|sum - f(" << x << ")| = " << abs(sum - f) << endl;
    system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2012, 21:42     разложение в ряд функции
Еще ссылки по теме:

Разложение функции в ряд Тейлора - C++
Дано разложение функции y(x) в ряд Тейлора. Составить программу, вычисляющую для значения x и точности Eps: - точное значение функции...

Разложение функции в степенной ряд - C++
Ребят,подсобите пожалуйста. Учусь на вечерней форме, ничего не успеваю + с объяснениями преподы не заморачиваются(времени мало на всех),...

разложение функции в степенной ряд (acos) - C++
Задание: разложить функцию в степенной ряд: #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; int main(void) { ...

Разложение функции в ряд, частичная сумма - C++
Помогите пожалуйста с написанием программы. В левом столбце разложение в ряд, в среднем - область, в правом - функция Перепишите задачу в...

Разложение функции в ряд с заданной точностью! - C++
Ребят помогите создать код... последнее задание перед экзаменом! а я как раз пропустил его на лекции!) ---------------------- Составить...

Разложение функции в ряд Маклорена с заданной точностью - C++
дайте плиз теорию где можно почитать как это реализовать это на с++, а то я в матиматике не силён...или может книгу по численным методам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Chebattler
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 9
26.10.2012, 21:42  [ТС]     разложение в ряд функции #5
doctor_lecter, большое спасибо за помощь! буду разбираться
Yandex
Объявления
26.10.2012, 21:42     разложение в ряд функции
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru