- •Тема II.Алгоритмизация вычислительных процессов 1.Алгоритм. Основные понятия. Этапы решения задач на компьютере.
- •2.Свойства алгоритма: массовость, определенность, результативность, эффективность.
- •3.Данные и операции алгоритмов. Входные, выходные и внутренние данные. Константы и переменные. Массивы. Арифметические, логические и символьные данные.
- •4.Формы представления алгоритмов. Требования к изображению схем алгоритмов. Рекомендации по разработке алгоритмов.
- •6. Алгоритмизация циклических вычислительных процессов
- •7.Арифметические циклы
- •7.1. Табулирование функций
- •7.2 Накопление суммы. Последовательное умножение.
- •7.4. Обработка массивов данных
- •7.3 Вычисление суммы ряда при заданном числе членов разложения
- •8.Итерационные циклы
- •8.1 Вычисление суммы ряда с заданной погрешностью.
- •8.2. Вычисление по итерационным формулам
- •9.Алгоритмы подпрограмм
- •10.1.3. Методы решения нелинейных уравнений. Математическая основа геометрическая интерпретация, схема алгоритма, Pascal-программа.
- •10.1.3.1.Метод половинного деления
- •Подпрограмма-процедура Equat предназначена нахождения корня нелинейного уравнения.
- •Подпрограмма-функция f предназначена для вычисления значения функции f
- •10.1.3.2.Метод хорд Теоритические сведения.
- •Подпрограмма-процедура EqHord предназначена нахождения корня нелинейного уравнения.
- •10.1.3.3.Метод Ньютона Теоритические сведения.
- •Подпрограмма-процедура EqNew предназначена нахождения корня нелинейного уравнения.
- •10.1.3.4.Метод простой итерации
- •10.2 Численное интегрирование. Математическая основа, геометрическая интерпретация, схема алгоритма, Pascal – схема.
- •10.2.1.Метод прямоугольника
- •10.2.2. Метод трапеции
- •10.2.3. Метод Симпсона
10.1.3. Методы решения нелинейных уравнений. Математическая основа геометрическая интерпретация, схема алгоритма, Pascal-программа.
10.1.3.1.Метод половинного деления
Рассмотрим
данный метод на основе уравнения
f (x)=0.
Допустим, y
нас есть такой отрезок [a,b],
на котором расположено значение корня
,
т.е. а<
<b
(
-Кси).
В качестве начального приближения корня X0 (рис.1) принимаем середину отрезка X0=(a+b)/2. Далее исследуем значения функции: если f (X0)=0, то X0 является корнем уравнения, т.е. =X0. Если f (X0)=0, то выбираем одну из половин отрезка [a,X0] или [X0,b], на концах которой функция f (x) имеет противоположные знаки, т.е. содержит искомый корень, поэтому его принимаем в качестве нового отрезка [X0,b]. Вторую половину отрезка на концах которого знак f (х) не меняется, отбрасываем: в данном случае [a,X0].
Рис.1
Метод деления отрезка пополам
Отрезок
[X0,b]
вновь делим пополам. Новое
приближение: X1=(X0+b)/2.
Вновь исследуем функцию f (x)
на концах отрезка и отбрасываем отрезок
[X1,b],
т.к. f(X1)>0
и f (b)>0.
Отрезок [X0,X1],на
концах которого функция имеет
противоположные знаки f(X1)>0, f(X0)<0,
вновь делим пополам и получаем новое
приближение корня X2=(X0+X1)/2
и т.д. Итерационный процесс продолжаем
до тех пор, пока длина отрезка после
n-ой итерации не станет меньше некоторого
заданного малого числа (погрешности)
,
т.е.
|
|
|
Тогда за искомое значение корня принимается полученное приближение Xn: =Xn и говорят, что решение данного уравнения найдено с точностью .
Схема алгоритма подпрограммы – процедуры Equat.
Подпрограмма-процедура Equat предназначена нахождения корня нелинейного уравнения.
Список формальных параметров: C,D,Eps,Km,Err,Z.
Входные данные:
C – верхняя граница интервала изоляции корня, тип – вещественный;
D – нижняя граница интервала изоляции корня, тип – вещественный;
Eps – погрешность вычисления корня, тип –вещественный;
Km – предельно допустимое количество повторов циклов, тип-целый;
Выходные данные:
Err – признак ошибки, тип-целый;
Z – корень нелинейного уравнения, тип – вещественный.
Схема алгоритма подпрограммы – функции F.
Подпрограмма-функция f предназначена для вычисления значения функции f
Список формальных параметров: Х.
Входные данные:
Х – аргумент функции, тип – вещественный.
{Текст подпрограммы - функции}
Function F(X:real):real;
begin
F:=exp(-x)-(sqr(x-1));
end;
{Teкст процедуры нахождения корня нелинейного уранения
методом половинного деления отрезка - дихометрия}
Procedure Equat(c,d,eps:real; km:integer; var err:integer; var z:real);
var
i:integer;
begin
err:=1;
for i:=1 to km do
begin
z:=((C+d)/2);
if abs(F(z))>Eps then
begin
if (F(c)*F(z))>0 then
c:=z else
d:=z;
end else
i:=km;
err:=err-1;
end;
end;
10.1.3.2.Метод хорд Теоритические сведения.
Для реализации данного метода, нужно построить исходную функцию y=F(x) и найти значения функции на концах отрезка F(a) и F(b). Затем провести хорду М1M2 c концами в точках М1(a, F(a)) и M2(b, F(b)). Абсцисса точки пересечения хорды М1M2 с осью OX это и есть приближенный корень x1. Далее найти точку M3(X1 ,F(x1 )), построить следующую хорду и найти второй приближенный корень x2. И так далее. В зависимости от поведения функции возможны два случая:
|
|
Для первого случая (Рис. 1) справедлива следующая формула (8):
и справедливо неравенство: F(a)*F''(a)>0, где x0=b.
Для второго случая (Рис. 2) справедлива следующая формула (9):
и справедливо неравенство: F(b)*F''(b)>0, где x0=a.

Рис.
1
Рис.
2