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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2014, 15:23   #1
Uefa
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 59
По умолчанию (c++) вычисление функции

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

необходимо решить 2 способами:
1) для заданного n (в данном случае n=10)
2) для заданной точности  (=0.0001)

Для заданного n вроде бы решил:
Код:
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
using namespace std;

void main ()
{
	double x=0.1, m=3, y,
		c,                            //шаг изменения x
		t=1,                          //для расчета факториала
		k=1,                            //очередной член последовательности
		sum=1,                          //сумма ряда
	    e=0.0001;
	int i=1;
	c=(1-0.1)/10;
	while (x<=1)
	{
		for (int i=1; i<=10; i++)
		{
			k = pow (log(m),i) * pow (x, i) / t;
			t = t * (i+1); 
			sum+=k;
		}
		y = pow (3, x);
		cout << "x=" << x << "  " << sum << " " << y << "\n";
		t=1;
		sum=1;
		x+=c;
	}
	
	system("pause");
};
Правильно? А как решить с заданной точностью не могу понять...

Последний раз редактировалось Stilet; 22.05.2014 в 11:04.
Uefa вне форума Ответить с цитированием
Старый 21.05.2014, 16:05   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
А как решить с заданной точностью не могу понять...
Да как обычно на уроке математики:
1. либо вычисляем необходимое n для заданной точности и п. 1 вашей задачи
2. либо считаем пока модуль разности между прошлым и новым не будет меньше заданной погрешности
p51x вне форума Ответить с цитированием
Старый 21.05.2014, 17:16   #3
Uefa
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 59
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Да как обычно на уроке математики:
1. либо вычисляем необходимое n для заданной точности и п. 1 вашей задачи
2. либо считаем пока модуль разности между прошлым и новым не будет меньше заданной погрешности
А более развернуто дадите ответ? Все равно не понятно как реализовать.
1. как вычислить это n?
2. это в каждой итерации цикла искать разность нового с предыдущим и сравнивать с погрешностью?
Uefa вне форума Ответить с цитированием
Старый 22.05.2014, 08:01   #4
Uefa
Пользователь
 
Регистрация: 25.08.2013
Сообщений: 59
По умолчанию

никто не поможет?
Uefa вне форума Ответить с цитированием
Старый 22.05.2014, 09:34   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
1. как вычислить это n?
Учебник математики/мат. анализа/алгебры/гугл - ряды. Там несколько теорем для разных видов рядов. Составляете на бумажке неравенство, если возможно, и находите как зависит н от погрешности. Вуаля, вы можете посчитать н.

Цитата:
это в каждой итерации цикла искать разность нового с предыдущим и сравнивать с погрешностью?
Может через раз. Как можно не понять фразу "модуль разности между прошлым и новым значением меньше заданной погрешности"?..
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление функции Aslong07 C# (си шарп) 1 27.01.2014 11:31
вычисление значения функции и переменных, вычисление площади треугольника, определение расстояния между точками на турбо паскале _4Alex4_ Помощь студентам 2 14.12.2011 01:43
Вычисление функции Lion8990 Помощь студентам 3 16.12.2010 00:57
вычисление функции Roker Помощь студентам 0 19.12.2009 00:07
[C++]Вычисление функции Andrew M. Помощь студентам 2 18.11.2009 22:36