logo
Подбельский Фомин_Программирование на языке СИ_

Варианты заданий по итерационным методам и рядам

Пример выполнения задания.

Вычислить табл. 10.3 из 11 значений заданной функции f(x) = -sh(x) на интервале [a,b], где а = 1, b = 5. Столбцы табл. 10.2 следующие:

1 - значение хi;

2 - значение f1(x), вычисленное с использованием библиотечных функций и компилятора;

3 - значение f2(x), вычисленное с помощью явного разложения в ряд или итерационного процесса (до достижения "машинного нуля");

4 - значение "машинного нуля" относительно f(xi), т.е. точность вычислений;

5 - количество итераций или количество членов ряда в разложении функции.

С применением библиотечных функций можно записать: у = sqrt(x) * sinh(x).

Для вычисления приближенного значения воспользуемся формулой Ньютона:

В качестве начального приближения возьмем у0=х. В качестве условия окончания процесса используем равенство:

yn+1 == уп.

Для вычисления гиперболического синуса sh(x) используем ряд Тейлора:

Условием окончания вычислений гиперболического синуса пусть будет "неизменность" накопленной суммы после добавления очередного члена ряда.

Точность результатов будем оценивать как разность между значением функции, вычисленным с помощью библиотечных функций, и значением, полученным с помощью приведенных формул.

Числом итераций будем считать максимальное из двух значений - количество итераций по формуле Ньютона и количество членов, использованных в разложении sh(x) в ряд.

Используемые переменные:

yt - значение sh(x), полученное с помощью библиотечных функций;

ус - значение sh(x), вычисленное с помощью явного разложения в ряд sh(x) и по формуле Ньютона для ;

а - точность подсчета;

sq - текущее значение приближения при вычислении ;

sq0 - предыдущее значение приближения для ;

sh - текущее значение члена ряда при вычислении функции у = sh(x);

sum - сумма ряда, подсчитанная при разложении функции у = sh(x);

sm - предыдущее значение суммы ряда sum;

shn - счетчик элементов ряда разложения функции у = sh(x);

sqn - счетчик итераций при вычислении функции у = sqrt(x);

х - значения хi, в которых производятся вычисления значений sh(x).

Псевдокод программы:

Цикл для х от 1 до 5 при изменении х с шагом 0.4.

Вычислить yt - "табличное" значение sqrt(x)*sinh(x) в точке х.

Найти значение функции у= в точке х, т.е. sq.

Найти значение функцииy=sh(x) в точке х, т.е. sum.

Вычислить для х значение ус = sq*sum.

Оценить точность вычислений.

Конец-цикла.

Вывести результаты.

Текст программы:

Результаты: