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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2017, 14:35   #1
alina999
 
Регистрация: 14.04.2017
Сообщений: 4
Радость Помогите подправить код(ряд Тейлора), пожалуйста

Написала программу, но выводит совсем не то, помогите исправить код
Вывести на экран таблицу значений Функции у(х) и Ее разложение в ряд S(x) с точностью епсилон. Вывести число итеераций, необходимое для достижения заданной точности. Вычисление y(x), s(x) оформить в виде функций

Код:
#include <iostream>
#include <stdlib.h>
#include <string>
#include <string.h>
#include <locale>
#include <math.h>
 
using namespace std;
 
 
double f(double x)
{
return pow(1+x,1/3);
}
 
int main()
{
 
setlocale(LC_ALL, "Rus");
 
double a = -0.9, b = 0.9;
double h = 0.1;
double eps = 10E-3;
 
for (double x = a; x <= b; x += h)
{
double y = f(x);
double sum = 0;
double tmp;
int k = 0; while (fabs(sum - y) > eps)
{
k++;
tmp/= pow(3,k)*k*k;
sum += pow(-1,k-1)*(3*k-4)*pow(x,k)*tmp;
}
cout << "x=" << x << " y(x)=" << y << " S(x)=" << sum << " k=" << k << endl;
}
system("pause");
return 0;
}
Изображения
Тип файла: png Безымянный.png (10.9 Кб, 136 просмотров)

Последний раз редактировалось Аватар; 27.04.2017 в 15:40.
alina999 вне форума Ответить с цитированием
Старый 27.04.2017, 15:47   #2
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

По крайней мере три проблемы вижу сразу же:
1) sum надо инициализировать не нулем, а первыми слагаемыми разложения (1 + x/3)
2) Не инициализирована переменная tmp, запись "tmp /= что-то" вообще бессмысленна в таком случае.
3) k тоже неправильно инициализирована, с 2 же сумма начинается.

Насчет правильности остального кода пока ничего не могу сказать, не смотрел.

Upd. Факториал тоже неправильно считается. k! <> k*k
Μολὼν λαβέ

Последний раз редактировалось alexander13; 27.04.2017 в 15:52.
alexander13 вне форума Ответить с цитированием
Старый 27.04.2017, 16:07   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

и в догонку 1/3 = 0
p51x на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите подправить код , массивы. C# OlgaRostov Помощь студентам 1 29.11.2015 17:03
Помогите подправить код Sony_boy Общие вопросы Delphi 4 26.09.2015 22:22
Помогите с ошибками. Разложить функцию e^2x в ряд Тейлора (Маклорена). Паскаль NikSon-xD Помощь студентам 7 24.12.2013 16:30
вычислить функцию с по-щью разложения в ряд.(Ряд Тейлора) feelstor Помощь студентам 2 26.12.2011 03:44