Материал: Решение нелинейных уравнений методом итераций

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

раздел объявления процедур и функций;

тело программы.

Заголовок программы состоит из зарезервированного слова PROGRAM и имени программы: PROGRAM MetodIteraccii;

Раздел объявления переменных начинается служебным словом VAR: VAR

x0, x1, e, a, b: real;, k:integer;

где:

x0 и x1 - результативные переменные;

e - точность вычислений;

a и b - коэффициенты заданной функции;

k - номер заданной функции.

Объявление функции состоит из:

ключевого слова FUNCTION, имени функции, списка формальных параметров и типа возвращаемого значения:

тела функции, заключенного в операторные скобки BEGIN END.

В функции помещаются формулы, по которым будут вычисляться приближенное значение. В своей программе я использовала формулы, содержащие стандартные функции: ln(x), cos(x) и sin(x):

function f(x:real; a, b:real):real;:=a*ln(x)+b;;c(x:real; a, b:real):real;:=a*cos(x)+b;;s(x:real; a, b:real):real;:=a*sin(x)+b;;

Тело программы начинается словом BEGIN и содержит различные команды:

Write (Writeln) - команда вывода текста на экран;

Read (Readln) - запрос данных;

If … then - краткая форма условного оператора;

Repeat … until - оператор цикла с постусловием;

Abs(x) - абсолютная величина (модуль).

Итак, определяем заданную функцию, приближенное значение X и точность вычисления:

BEGIN('1) x=a*ln(x)+b 2) x=a*cos(x)+b 3) x=a*sin(x)+b

Выберете функцию: ');

Readln (k);

Write ('Введите a=');(a);('Введите b=');(b);rite ('Введите приближённое значение X=');(x1);('Введите точность e=');

Readln (e);

Для подсчета количества проведенных итераций требуется обнулить переменную i, которая заданы в разделе переменных, и организовать цикл, который будет проводить итерации и обеспечивать их подсчет:

i:=0;:=i+1;:=x1;k=1 then x1:=f(x0, a, b);k=2 then x1:=c(x0, a, b);k=3 then x1:=s(x0, a, b);(abs(x1-x0)<=e);

Вывод результатов на экран:

Writeln ('Решение уравнения: ');('Вычисленное значение корня...', x1:6:5);

Writeln ('Число итераций.............. ', i);

Readln;

Конец программы фиксируется служебным словом END, после которого обязательно ставится точка:

END.

Заключение


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

Для решения данных нелинейных уравнений использовался метод итераций. Этот метод отличается от других тем, что по сравнению с другими методами, он является одним из наиболее простых методов определения корней нелинейных уравнений.

В процессе создания курсовой был разработан алгоритм решения поставленной задачи. По этому алгоритму на языке Turbo Pascal составлена и отлажена программа. Созданная программа может служить органической частью решения более сложных задач. Анализ результатов показывает, что программа работает правильно и верно находит корни нелинейных уравнений.

Список использованных источников и литературы


.         Бахвалов Н. С., Численные методы. 4-е изд. - М.: БИНОМ. Лаборатория знаний, 2006. - 636 с.: ил.

.         Вержбицкий В.М., Численные методы (математический анализ и обыкновенные дифференциальные уравнения): Учеб. пособие для вузов. - М.: Высш. шк., 2001. - 382 с.:ил.

.         Волков Е. А., Численные методы: Учебное пособие. 4-е изд., стер. - СПб.: Издательство «Лань», 2007. - 256 с.: ил. - (Учебники для вузов. Специальная литература).

4.       Калиткин, Н.Н. Численные методы. [Электронный ресурс] / Н.Н. Калиткин. - М.: Питер, 2001. С. 504.

5.       Копченова Н. В., Марон И. А., Вычислительная математика в примерах и задачах: учебное пособие. 2-е изд., стер. - СПб.: Издательство «Лань», 2008. - 368 с. - (Учебники для вузов. Специальная литература).

.         Лапчик, М.П. Численные методы: Учеб. пособие для студ. вузов / М.П.Лапчик, М.И.Рагулина, Е.К.Хеннер; Под ред. М.П.Лапчика. - 2-е изд., стер. - М.: Издательский центр «Академия», 2005. - 384 с.

Приложения

Приложение 1

Кодовая часть.

PROGRAM MetodIteraccii;

VAR, x1, e, a, b:real;, k:integer;f(x:real; a, b:real):real;:=a*ln(x)+b;;c(x:real; a, b:real):real;:=a*cos(x)+b;;s(x:real; a, b:real):real;:=a*sin(x)+b;;('1) x=a*ln(x)+b 2) x=a*cos(x)+b 3) x=a*sin(x)+b Выберете функцию: ');(k);('Введите a=');(a);('Введите b='); (b);('Введите приближённое значение X=');(x1);('Введите точность e=');

Readln (e);:=0;:=i+1;:=x1;k=1 then x1:=f(x0, a, b);k=2 then x1:=c(x0, a, b);k=3 then x1:=s(x0, a, b);(abs(x1-x0)<=e);

Writeln ('Решение уравнения: ');('Вычисленное значение корня...', x1:6:5);('Число итераций.............. ', i);

Readln;

END.

Приложение 2

Блок-схема метода итераций.


Начало

x n, E

xn+1 = ln (xn) + 1,8


f ‘(x)| < 1 +

‘Не удовлетворяет-

условию сходимости’                   |xn+1 - xn|              ≤ E x n:= xn+1

 

 

                                                       +

 

                                                       x n+1                                       Конец

Приложение 3

Примеры

1)      y = cos(x) - x + 5

x k

F(x k+1 )

-3

4,010007503

4,010007503

4,353962687

4,353962687

4,64919903

4,64919903

4,936852093

4,936852093

5,222582976

5,222582976

5,488346546

5,488346546

5,70039986

5,70039986

5,834932915

5,834932915

5,901205876

5,927928605

5,927928605

5,937557231

5,937557231

5,940862854

5,940862854

5,941977615

5,941977615

5,942351229


)        y = 0.7 sin(x) -x + 2.7

x k

F(x k+1 )

1

3,289029689

3,289029689

2,597167578

2,597167578

3,06254846

3,06254846

2,755273336

2,755273336

2,963747086

2,963747086

2,823836675

2,823836675

2,918704966

2,918704966

2,854732757

2,854732757

2,898059285

2,898059285

2,868793262

2,868793262

2,888599852

2,888599852

2,875211826

2,875211826

2,884269151

2,884269151

2,878145166

2,878145166

2,882287445

2,882287445

2,879486336

2,879486336

2,881380853

2,881380853

2,880099659

2,880099659

2,880966156