Вычислить значение функции разложенной в ряд и сходящейся в указанной области - Pascal ABC
Формулировка задачи:
Всем привет! Есть одна задача, решить не получается от слова совсем.
Текст приведен на скриншоте.
Единственное что у меня получилось описать это саму функцию, код под спойлером.
Если поможете решить - буду сильно благодарен
Решение задачи: «Вычислить значение функции разложенной в ряд и сходящейся в указанной области»
textual
Листинг программы
uses crt;
function f(x:real):real;
begin
f:=(exp(x)-exp(-x))/2;
end;
function f1(x,eps:real):real;
var t,s:real;
n:integer;
begin
n:=0;
t:=x;//нулевой член ряда
s:=t;//сума при n=0
while abs(t)>=eps do//пока очередной член больше точности
begin
n:=n+1; //увеличиваем номер
t:=t*x*x/(2*n*(2*n+1));//домножаем на x^2 и делим на факториал очередного нечетного числа
s:=s+t; //суммируем
end;
f1:=s;
end;
function f2(x:real;k:integer):real;
var t,s:real;
i:integer;
begin
t:=x;
s:=t;
for i:=1 to k do
begin
t:=t*x*x/(2*i*(2*i+1));
s:=s+t;
end;
f2:=s;
end;
var n,i:integer;
k:array[1..10] of integer;
x,eps,y1,y2,y3:array[1..10] of real;
begin
repeat
write('Сколько вычислений выполнить от 1 до 10 n=');
readln(n);
until n in [1..10];
for i:=1 to n do
begin
writeln('Введите данные для рпсчета ',i);
write('x=');
readln(x[i]);
write('k=');
readln(k[i]);
repeat
write('0<eps<1 eps=');
readln(eps[i]);
until(eps[i]>0)and(eps[i]<1);
end;
clrscr;
writeln('------------------------------------------------------------------------');
writeln('| № | EPS | x | F1(x) |K-число членов| F2(x) | F(x) |');
writeln('------------------------------------------------------------------------');
for i:=1 to n do
writeln('|',i:2,' |',eps[i]:9:7,'|',x[i]:4:0,' |',f1(x[i],eps[i]):11:5,'|',k[i]:9,' |',f2(x[i],k[i]):11:5,'|',f(x[i]):11:5,'|');
writeln('------------------------------------------------------------------------');
end.
Объяснение кода листинга программы
- В начале кода используются необходимые библиотеки и объявляются переменные для функции f, f1 и f2.
- Функция f принимает аргумент x типа real и возвращает значение типа real. Она вычисляет значение функции разложенной в ряд и сходящейся в указанной области.
- Функция f1 принимает два аргумента x и eps типа real и возвращает значение типа real. Она вычисляет значение функции f1(x, eps), которая является суммой ряда Тейлора для функции f.
- Функция f2 принимает два аргумента x и k типа real и возвращает значение типа real. Она вычисляет значение функции f2(x, k), которая является суммой ряда Тейлора для функции f, но с использованием k-го члена ряда.
- Далее объявляются переменные n, i, k, x, eps, y1, y2, y3 для использования в цикле повторения.
- Цикл повторения начинается с запроса количества вычислений от 1 до 10, затем для каждого i от 1 до n считываются данные для расчета (x, k, eps).
- Для каждой пары (i, eps) выполняется цикл повторения, в котором считываются значения x, k и eps, затем вычисляются значения функций f1 и f2 для x и k, и выводится результат.
- После окончания цикла повторения выводится итоговая информация с номером, значением eps, значениями x, результатами вычислений функций f1 и f2 и функцией f.
- Конец программы.