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

Ряд Тейлора. Разложение экспоненты - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 90, средняя оценка - 4.66
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
01.12.2011, 21:00     Ряд Тейлора. Разложение экспоненты #1
Здравствуйте!

Нуждаюсь в вашей помощи! Знаю на форуме таких тем около 20 если не больше, но все же!

Вычислить значения функции, заданной с помощью ряда Тейлора, на интервале от xнач до xкон c шагом dx с точностью ε.

Так же прекрасно понимаю что за меня никто с нуля делать не будет! Но все же надеюсь хоть на какие то кусочки кода по данному примеру!


Спасибо!
Миниатюры
Ряд Тейлора. Разложение экспоненты  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
02.12.2011, 02:06  [ТС]     Ряд Тейлора. Разложение экспоненты #2
Сделал пока так!
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
30
31
#include "iostream"
#include <cstdio>
#include <cmath>
 
using std::printf;
 
#define PRECISION 1e-4
 
//exp(x) = 1 - x + (x^2)/2!-(x^3)/3!....+(-1)^n*(x^n)/n!+.....
 
double _exp( const double x )
{
    double dVal, dTemp;
    int nStep = 1;
    for( dVal = 1.0, dTemp = 1.0; fabs(dTemp) >= PRECISION ; ++nStep )
    {
        dTemp *= -x/nStep;
        dVal += dTemp;
    }
    return dVal;
}
 
int main(){
   double d_xstart = 0.0, d_xend = 10.0, dX = 0.1;
   printf( "%12s\t%12s\n", "x", "exp^(-x)" );
   for( double x = d_xstart; x<=d_xend;x+=dX ){
     printf( "%12.5f\t%12.5f\n", x, _exp(x) );
   }
 
   std::system("pause >> null");
}
Ваши замечания??

Добавлено через 3 часа 53 минуты
никто не может предложить более элементарного решения?
-=ЮрА=-
Заблокирован
Автор FAQ
02.12.2011, 10:23     Ряд Тейлора. Разложение экспоненты #3
Цитата Сообщение от Infinity3000 Посмотреть сообщение
никто не может предложить более элементарного решения?
-наверное под этим подразумевалось предложить расчёт с возможностью задавать погрешность?
Вот 1 в 1 такая же задача (кроме кода, дальше есть пост о том как красиво вывести результаты в табличке и матописание и погрешность)
Написать программу для нахождения значения функции с помощью ряда Тейлора
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
02.12.2011, 13:13  [ТС]     Ряд Тейлора. Разложение экспоненты #4
Эту темку я видел! там функция cos(x)! мне нужно,как видно с примера, exp(-x) , или "существенной" разницы нет??
-=ЮрА=-
Заблокирован
Автор FAQ
02.12.2011, 13:27     Ряд Тейлора. Разложение экспоненты #5
Цитата Сообщение от Infinity3000 Посмотреть сообщение
или "существенной" разницы нет??
- разница есть,
экспонента это не косинус, я дал принцип разложения, посмотри внимательней на формулу разложения экспоненты и формулу косинуса из того топика
http://www.cyberforum.ru/attachment....7&d=1322652357

Я писал в предположении, что самостоятельно сможешь доработать, а значить немножко подумать
Цитата Сообщение от Infinity3000 Посмотреть сообщение
Тебя никто не собирается учить. Учить СебЯ (учиться) ты должен Сам.
Или всё же нужен код для копипаста???

Добавлено через 5 минут
Infinity3000, просто последуй теории которую в 7-м посте давал, раздели свои аn на an-1 и получи рекуррентное соотношение для смежных членов
Написать программу для нахождения значения функции с помощью ряда Тейлора
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
02.12.2011, 13:29  [ТС]     Ряд Тейлора. Разложение экспоненты #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
посмотри внимательней на формулу разложения экспоненты и формулу косинуса
Я прекрасно увидел различия в программах)

Разница в самой формуле разложения? поменяв ее мы получим истинное решение?

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Или всё же нужен код для копипаста???
для ctrl + c ctrl + v мне код не нужен!

в первом посту я написал


Цитата Сообщение от Infinity3000 Посмотреть сообщение
надеюсь хоть на какие то кусочки кода по данному примеру
Добавлено через 55 секунд
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Infinity3000, просто последуй теории которую в 7-м посте давал, раздели свои аn на an-1 и получи рекуррентное соотношение для смежных членов
C++ Написать программу для нахождения значения функции с помощью ряда Тейлора
Ок, спасибо!
-=ЮрА=-
Заблокирован
Автор FAQ
02.12.2011, 14:04     Ряд Тейлора. Разложение экспоненты #7
Цитата Сообщение от Infinity3000 Посмотреть сообщение
для ctrl + c ctrl + v мне код не нужен!
- это похвально!
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n} = \sum_{n=0}^{\propto}\frac{{(-1)}^{n}*{x}^{n}}{n!}
http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n - 1} = \sum_{n=0}^{\propto}\frac{{(-1)}^{(n - 1)}*{x}^{(n - 1)}}{(n - 1)!}
Найдём рекуррентное соотношение
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{{a}_{n}}{{a}_{n - 1}} = \frac{\sum_{n=0}^{\propto}\frac{{(-1)}^{n}*{x}^{n}}{n!}}{\sum_{n=0}^{\propto}\frac{{(-1)}^{(n - 1)}*{x}^{(n - 1)}}{(n - 1)!}} = (-1)*x*\frac{(n - 1)!}{n!} = (-1)*x*\frac{(n - 1)!}{n*(n - 1)!} = (-1)*\frac{x}{n}

Добавлено через 2 минуты
Вот строчка в double Taylor(double x, double e, long &n),
которую нужно заменить
C++
1
an *= (-1)*(x*x/(2.0*n*2*(n - 1)));
на эту
C++
1
an *= (-1)*x/(1.0*n);
PS:Применимость разложения на сколько помню определяется соотношением |x| < 1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2011, 14:17     Ряд Тейлора. Разложение экспоненты
Еще ссылки по теме:

C++ Разложение в ряд Тейлора lg(x)
Разложение в ряд тейлора C++
C++ Разложение функции в ряд Тейлора

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

Или воспользуйтесь поиском по форуму:
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
02.12.2011, 14:17  [ТС]     Ряд Тейлора. Разложение экспоненты #8
Спасибо
-=ЮрА=-, выручил!
Yandex
Объявления
02.12.2011, 14:17     Ряд Тейлора. Разложение экспоненты
Ответ Создать тему
Опции темы

Текущее время: 23:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru