Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
academec
0 / 0 / 1
Регистрация: 04.12.2016
Сообщений: 11
#1

Вычисление функции с использованием разложения в ряд - C++

12.02.2017, 12:46. Просмотров 387. Ответов 1
Метки нет (Все метки)

Вычисление функции с использованием разложения в ряд
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью
ряда Тейлора, на интервале от Xn, до Xk, с шагом dX с точностью epsilon.
Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение
аргумента, значение функции и количество просуммированных членов ряда.
Вариант 13. e^-x^2=sum_{n=0}^{oo}((((-1)^n)*x^2n)/n!)

Это пока набросок программы который должен вычислять значение функции в заданной точке (x) с помощью разложения в ряд Тейлора с заданной точностью. Вот код:
C++ (Qt)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <stdlib.h>
#include <clocale>
#include <math.h>
//Наша рекурсивная функция
int fact(int n)
{
 
  if (n<2) return 1;
else return n*fact(n-1);
} //тут функция вызывает саму себя
using namespace std;
int main() {
    setlocale( LC_ALL, "Russian" );
    float x, Xn, Xk, dX, eps, y, fd, ft;  //Xn,Xk,dX-нач.конеч.знач.и шаг, eps-точность, у-знач.элемента ряда, fd-знач.элем.ряда,ft-знач.функции с помощью ряда.
    cout<< "\nВведите интервал функции, шаг функции и точность:\n";
    cout<<"Xn=";                  //Начальное значение интервала
    cin>>Xn;
    cout<<"Xk=";                 //Конечное значение интервала
    cin>>Xk;
    cout<<"dX=";                 //шаг аргумента
    cin>>dX;
    cout<<"eps=";               //точность
    cin>>eps;
    x=Xn;
    float e=exp(pow(-x,2));    //Вычисляем значение функции
 
    int n=0;
    ft=0;
    while(fd>eps) {                     //пока разность больше точности вып. цикл
    y=(pow(-1,n)*pow(x,2*n))/fact(n);  //Нный элемент ряда
    ft+=y;                             //Значение функции с помощью ряда
    fd=abs(e-ft);                      //Вычисляем модуль разности между значением функции и её значением
    n=n+1;                             // найденным с помощью ряда Тейлора
    };
    cout<<"x="<<x<<endl;
    cout<<"e="<<e<<endl;
    cout<<"fd="<<fd<<endl;
    cout<<"ft="<<y<<endl;
    cout<<"n="<<n<<endl;
 
 
    return 0;
 
};

Результаты работы программы и скрин исходной формулы будут прикреплены.
Вопросы:
1)почему при заданных значениях (x) и (n) программа правильно считает исходную функцию и выдает такое огромное число при разложении в ряд, хотя при x=1 и n=0, ft должен быть равен 1.
2)почему программа не может посчитать модуль разности исх.функции и функ.разл. в ряд.
3)чтобы вывести значения фукции на интервале нужно цикл while поместить внутрь цикла for и задать параметры Xn,Xk,dX-?
0
Миниатюры
Вычисление функции с использованием разложения в ряд   Вычисление функции с использованием разложения в ряд  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2017, 12:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вычисление функции с использованием разложения в ряд (C++):

Вычисление функции с использованием их разложения в ряд
Прошу помочь с решением задачи. Только начал постигать С++. Для х...

Вычисление функции с заданной точностью с использованием разложения в ряд
Цель работы: освоение средств языка C++ для описания итерационных циклов и...

Вычисление функций с использованием их разложения в степенной ряд
Здраствуйте, форумчане!!! У меня такая задачка!!!! Для х изменяющегося от a...

Вычисление функций с использованием их разложения в степенной ряд
Помогите пожалуйста с задачей: Постановка задачи: Для х изменяющегося от a до...

Вычисление функций с использованием их разложения в степенной ряд
Для х, изменяющегося от a до b (интервал целиком лежит внутри интервала,...

Вычисление функций с использованием их разложения в степенной ряд - C++
http://http://www.cyberforum.ru/cpp-beginners/thread435049.html#post2443082 В...

1
likehood
930 / 789 / 378
Регистрация: 25.12.2016
Сообщений: 2,627
Завершенные тесты: 3
12.02.2017, 13:12 #2
Из того, что n = 0, следует, что цикл не выполнился ни разу. Значение переменной fd в 30 строке неопределено.
Про разложение в ряд Тейлора неплохо написано здесь.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2017, 13:12
Привет! Вот еще темы с решениями:

Вычисление функций с использованием их разложения в степенной ряд
Доброе время суток. У кого есть свободная минутка, помогите пожалуйста с...

Вычисление функций с использованием их разложения в степенной ряд
&quot;Вычисление функций с использованием их разложения в степенной ряд&quot; ...

Вычисление функций с использованием их разложения в степенной ряд
Помогите пожалуйста исправить прогрограмму (С++) Для х изменяющегося от a до b...

Вычисление функций с использованием их разложения в степенной ряд
Вычисление функций с использованием их разложения в степенной ряд. Вычислить...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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