Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

12.02.2017, 12:46. Просмотров 218. Ответов 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 до b с шагом (a-b)/k, где (К=10), вычислить функцию...

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

Вычисление функций с использованием их разложения в степенной ряд - C++
Помогите пожалуйста с задачей: Постановка задачи: Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x),...

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

Вычисление функций с использованием их разложения в степенной ряд - C++
Помогите пожалуйста исправить прогрограмму (С++) Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x),...

Вычисление функций с использованием их разложения в степенной ряд - C++
Здраствуйте, форумчане!!! У меня такая задачка!!!! Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x),...

1
likehood
799 / 658 / 231
Регистрация: 25.12.2016
Сообщений: 2,196
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

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

Вычисление функций с использованием их разложения в степенной ряд! - C++
Условие: Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в...

Вычисление функций с использованием их разложения в степенной ряд - C++
Вычисление функций с использованием их разложения в степенной ряд. Вычислить функцию S= f(x), используя ее разложение в степенной ряд ...

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


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

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

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