- •НЕКОТОРЫЕ АЛГОРИТМЫ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ
- •Табулирование функции одной переменной
- •Состав данных
- •начало
- •Пример использования таблицы функции. Отделение корней уравнения с помощью построения таблиц и графиков.
- •Приближенное решение уравнения на отрезке
- •Приближенное решение уравнения на отрезке
- •Метод деления отрезка пополам (дихотомии)
- •Метод деления отрезка пополам (дихотомии)
- •Метод деления отрезка пополам (дихотомии)
- •Состав данных
- •Замечание по блок-схеме предыдущего слайда (добавление после лекции)
- •КЛАССИФИКАЦИЯ
- •КЛАССИФИКАЦИЯ
Состав данных
Имя |
Смысл |
Тип |
Структура |
|
Исходные данные |
|
|
A |
левая граница отрезка |
веществ |
простая |
|
|
|
переменная |
B |
правая граница отрезка |
веществ |
-“- |
|
допустимая погрешность |
веществ |
-“- |
Np |
предельное число |
целый |
-“- |
|
итераций |
|
|
|
Выходные данные |
|
|
x |
приближенное решение |
веществ |
-“- |
N |
число итераций |
целый |
-“- |
|
Промежуточные данные |
|
|
Fl |
флажок |
целый |
-“- |
true, при _ продолжении _ цикла Fl false, при _ завершении _ цикла _
|
|
начало |
|
|
|
Program koren; |
||
|
|
ввод A,B, ,Np |
|
|
Var A,B,E,x:real; |
|||
|
|
|
|
Np,N:integer;Fl:boolean; |
||||
|
|
N:=0 |
|
|
|
begin |
|
|
|
|
|
|
|
writeln(´input A,B,E,Np´); |
|||
|
|
Fl:=true |
|
|
readln(A,B,E,Np); |
|||
|
|
|
|
Fl:=true; |
N:=0; |
|||
|
|
|
|
- |
|
|
while Fl do |
|
|
|
Fl |
|
|
|
begin |
|
|
|
|
+ |
|
|
|
N:=N+1; |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
x:=(A+B)/2; |
||
|
|
N:=N+1 |
|
|
if F(B)*F(x)<=0 then |
|||
|
|
x:=(A+B)/2 |
|
|
A:=x |
|
||
|
|
|
|
else |
|
|||
|
- |
|
|
|
|
+ |
B:=x; |
|
|
F(x)*F(B) 0 |
if B-A<E then |
||||||
|
B:=x |
|
|
|
|
A:=x |
begin |
|
|
|
|
|
|
Fl:=false; |
|||
|
- |
|
|
|
|
+ |
writeln(´root=´, x) |
|
|
B-A< |
|
|
end |
|
|||
- |
|
|
else |
|
||||
N>Np |
+ |
|
|
Fl:=false |
if N>Np then |
|||
|
|
begin |
||||||
|
|
Fl:=false |
|
вывод x |
|
Fl:=false; |
||
|
|
|
|
writeln(´N>Np´); |
||||
|
вывод ‘N>Np’ |
|
|
end |
||||
|
|
|
end; |
|
||||
|
|
|
|
|
|
|
readln |
|
|
|
|
|
|
|
|
end. |
|
|
|
конец |
|
|
|
Вопрос: тестирование? |
||
Замечание по блок-схеме предыдущего слайда (добавление после лекции)
Для метода деления отрезка пополам сравнение N c Np бессмысленно, так как число итераций, необходимых для вычисления корня, можно получить, исходя из соотношения:
b a
2N
В левой части неравенства стоит длина отрезка на N-ой итерации ( за одну итерацию длина уменьшается в 2 раза). Откуда получаем:
|
b |
a |
N log2 |
|
, |
|
|
где . - большее ближайшее целое.
На бессмысленность сравнения N c Np для метода деления отрезка пополам обратил внимание студент Андрианов Евгений (ЭР01-06), за что ему искреннее большое спасибо (и +0.5 балла к экзамену). Однако такое сравнение может с успехом применяться в других методах (методе итераций и др.)
КЛАССИФИКАЦИЯ
ЦИКЛОВ
Детерминированный цикл – о котором можно сказать, сколько раз он выполнится, не выполняя его.
Итерационный цикл – о котором нельзя сказать, сколько раз он выполнится, не выполнив его.
Параметрический цикл (управляемый параметром) – который выполняется для каждого значения параметра, принимающего значения от начального до конечного с некоторым постоянным шагом.
Вопрос: какие циклы мы только что запрограммировали?
КЛАССИФИКАЦИЯ
ЦИКЛОВ
ЦИКЛЫ
ИТЕРАЦИОННЫЕ ДЕТЕРМИНИРОВАННЫЕ
ПАРАМЕТРИЧЕСКИЕ
ЦИКЛЫ
ДО |
ПОКА |
ЦИКЛЫ РАЗЛИЧНОЙ КРАТНОСТИ
Однократные
Двукратные
. . .
