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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2021, 10:24   #1
Rixoz
Пользователь
 
Регистрация: 08.12.2019
Сообщений: 12
По умолчанию C++ Вычисление функций с использованием их разложения в степенной ряд

Помогите с решением
Задача

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

Указания

1. Алгоритм решения задачи сводится к трем циклам, причем два из них вложены в третий. Внутренние циклы суммируют слагаемые при фиксированном параметре x, один (арифметический для заданного n), другой (итерационный для за-
данной точности ε. При организации этих циклов следует обратить внимание на правильный выбор формулы для вычисления элемента ряда an и правильное присвоение начальных значений переменным цикла. Внешний цикл организует изменение параметра х.
2. Результаты расчетов отпечатать с следующем виде:
Вычисление функции
X=...... SN=...... SE=..... Y=......
X=...... SN=...... SE=..... Y=......
..........
X=...... SN=...... SE=..... Y=......
Здесь X- значение параметра; SN- значение суммы для за-
данного n; SE- значение суммы для заданной точности; Y-
точное значение функции.
Изображения
Тип файла: png Безымянный.png (4.8 Кб, 42 просмотров)
Rixoz вне форума Ответить с цитированием
Старый 20.02.2021, 11:44   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

В "подвале" этой страницы ("Похожие темы") дан целый ворох решений подобной задачи. Ознакомиться, включить бошку - и сделать.
А если не включается - во ФРИЛАНС.
Могу накропать на Delphi, бесплатно. Перепереть в ++ сам смогёшь ?

Последний раз редактировалось digitalis; 20.02.2021 в 11:50.
digitalis вне форума Ответить с цитированием
Старый 21.02.2021, 15:33   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Теперь перекинуть в С плюснутый. Делов-то...
Код:
// Главный цикл
procedure TForm1.FormClick(Sender: TObject);
var x,y,s,s2:Extended; i,NN: integer ;

// Точное значение
function YY (x:Extended): Extended ;
var tmp,s: Extended ;
begin
  tmp := x/2 ;
  s := (tmp *(tmp+1) +1.0) * Exp (tmp) ;
  Result := s
end ;

//  Для заданного n
function summa (x:Extended;n:integer): Extended ;
var i,nf: integer; tmp,tmp1,s: Extended ;
begin
  s := 1.0 ;
  tmp := x/2 ;
  tmp1 := 1.0 ;
  nf := 1 ;
  for i := 1 to n do
    begin
      nf := nf * i ;
      tmp1 := tmp1*tmp ;
      s := s + (i*i+1) * tmp1 / nf ;
    end ;
  summa := s;
end ;

//  Для заданного epsylon
function summa2 (x,eps:Extended;var nitt:integer): Extended ;
var i,nf: integer; eps1,tmp,tmp1,s,slast: Extended ;
begin
  nitt := 0 ;
  eps1 := 1 ;
  slast := 1 ;
  s := 1.0 ;
  tmp := x/2 ;
  tmp1 := 1.0 ;
  nf := 1 ;
  i := 1 ;
  while (Abs(eps1)>eps)do
    begin
      Inc (nitt) ;
      nf := nf * i ;
      tmp1 := tmp1*tmp ;
      s := s + (i*i+1) * tmp1 / nf ;
      eps1 := s - slast ;
      slast := s ;
      Inc (i) ;
    end ;
  summa2 := s;
end ;

begin
   for i := 1 to 10 do
   begin
     x := i/10.0 ;
     y := YY (x) ;
     s := summa (x,10) ;
     s2 := summa2 (x,0.00001,NN) ;
     Memo1.Lines.Add(Format('%3.1f  %9.6f %9.6f %9.6f %6d',[x,y,s,s2,NN]))
   end ;
end;
0,1 1,106463 1,106463 1,106463 4
0,2 1,226740 1,226740 1,226740 5
0,3 1,362251 1,362251 1,362251 6
0,4 1,514539 1,514539 1,514539 6
0,5 1,685283 1,685283 1,685283 7
0,6 1,876304 1,876304 1,876304 7
0,7 2,089577 2,089577 2,089577 7
0,8 2,327247 2,327247 2,327246 8
0,9 2,591636 2,591636 2,591636 8
1,0 2,885262 2,885262 2,885262 8
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление функции с использованием разложения в ряд Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, maximk301 Помощь студентам 1 20.10.2018 16:20
Вычисление функций с использованием их разложения в степенной ряд Madina0226 Общие вопросы по Java, Java SE, Kotlin 0 24.11.2016 14:42
Вычисление функций с использованием их разложения в степенной ряд C# Goodlak123 C# (си шарп) 2 02.11.2016 15:33
ВЫчисление функции с помощью разложения в ряд. katris Помощь студентам 1 03.03.2013 17:26
Вычисление значений тригонометрических функций на основе разложения в ряд Маклорена Gangzta Помощь студентам 3 10.01.2009 15:47