Методы вычислений. Решение уравнений

  • Презентации учебные
  • ppt
  • 28.02.2021
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Системы линейных уравнений. Прямые методы используют конечные соотношения (формулы) для вычисления неизвестных. Они дают решение после выполнения заранее известного числа операций. Они сравнительно просты и наиболее универсальны (т.е. пригодны для решения широкого класса...
Иконка файла материала Методы вычислений. Решение уравнений .ppt

Методы вычислений

Алгоритм Евклида
Решение уравнений
Оптимизация
Восстановление зависимостей
Статистика
Моделирование

1

© М.Е. Никитин, 2015-2016

Методы вычислений

Тема 1. Алгоритм Евклида

2

© М.Е. Никитин, 2015-2016

3

Вычисление НОД

НОД = наибольший общий делитель двух натуральных чисел – это наибольшее число, на которое оба исходных числа делятся без остатка.

Перебор:

Записать в переменную k минимальное из двух чисел.
Если a и b без остатка делятся на k, то стоп.
Уменьшить k на 1.
Перейти к шагу 2.

это цикл с условием!

4

Вычисление НОД (перебор)

k := a; { или k := b; }
while (a mod k <> 0) or
(b mod k <> 0) do
k := k - 1;
writeln ('НОД(', a, ',', b, ')=', k);

много операций для больших чисел

ИЛИ

5

Алгоритм Евклида

Евклид
(365-300 до. н. э.)

НОД(a,b)= НОД(a-b, b)
= НОД(a, b-a)

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

НОД (14, 21) = НОД (14, 21-14) = НОД (14, 7)

Пример:

= НОД (7, 7) = 7

6

Реализация алгоритма Евклида

пока a ≠ b делай
если a > b, то
a := a - b
иначе b := b - a;

НОД (1998, 2) = НОД (1996, 2) = … = 2

много шагов при большой разнице чисел:

7

Модифицированный алгоритм Евклида

НОД(a,b)= НОД(a mod b, b)
= НОД(a, b mod a)

Заменяем большее из двух чисел остатком от деления большего на меньшее до тех пор, пока меньшее не станет равно нулю. Тогда большее — это НОД.

НОД (14, 21) = НОД (14, 7) = НОД (0, 7) = 7

Пример:

Еще один вариант:

НОД(2·a,2·b)= 2·НОД(a, b)
НОД(2·a,b)= НОД(a, b) // при нечетном b

8

Задания

«4»: Составить программу для вычисления НОД и заполнить таблицу:


«5»: То же самое, но сравнить для всех пар число шагов обычного и модифицированного алгоритмов (добавить в таблицу еще две строчки).

N

64168

358853

6365133

17905514

549868978

M

82678

691042

11494962

23108855

298294835

НОД(N,M)

Методы вычислений

Тема 2. Решение уравнений

9

© М.Е. Никитин, 2015-2016

10

Методы решения уравнений

f (x) = 0

Точные (аналитические)
Приближенные
графические


численные (методы последовательного приближения):
по графику найти интервал [a, b], в котором находится x* (или одно начальное приближение x0)
по некоторому алгоритму уточнить решение, сужая интервал, в котором находится x*
повторять шаг 2, пока не достигнута требуемая точность:

b – a < 

11

Численные методы

Применение: используются тогда, когда точное (аналитическое) решение неизвестно или очень трудоемко.

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

решение всегда приближенное, неточное

12

Метод прямого перебора

Задача: найти решение уравнения f (x) = 0 на интервале [a, b] с заданной точностью  (чтобы найденное решение отличалось от истинного не более, чем на ).

Алгоритм:
разбить интервал [a, b] на полосы шириной 
найти полосу [a*, b*], в которой находится x*
решение – a* или b*

13

Есть ли решение на [a, b]?

есть решение

нет решения

нет решения

14

Метод прямого перебора

eps := 0.001; { точность решения }
x := a;



ответ := x;

пока f(x)*f(x+eps) > 0 делай
x := x + eps; { к следующему интервалу}
конец

eps := 0.001; { точность решения }
x := a;



x := x + eps/2;

while f(x)*f(x+eps) > 0 do begin
x := x + eps; { к следующему интервалу}
end;

15

Метод прямого перебора

program qq;
var ...: real;





begin
{ основная программа }
end.

function f(x: real): real;
begin
f := -x;
end;

16

Задания

«4»: Найти все решения уравнения на интервале [-5,5] и вывести их на экран.
«5»: Сделать то же самое с помощью только одного цикла.

17

Метод дихотомии (деление пополам)

Найти середину отрезка [a,b]: c = (a + b) / 2;
Если f(c)*f(a)<0, сдвинуть правую границу интервала b = c;
Если f(c)*f(a)≥ 0, сдвинуть левую границу интервала a = c;
Повторять шаги 1-3, пока не будет b – a ≤ .

18

Метод дихотомии (деления пополам)

простота
можно получить решение с любой заданной точностью

нужно знать интервал [a, b]
на интервале [a, b] должно быть только одно решение
большое число шагов для достижения высокой точности
только для функций одной переменной

19

Метод дихотомии (в программе)

пока b - a > eps делай
c := (a + b) / 2;
если f(a)*f(c) < 0 то
b := c
иначе a := c;
конец
ответ := (a + b) / 2;

20

Задания

«4»: Найти все решения уравнения на интервале [-5,5] методом дихотомии и вывести их на экран.
«5»: Сделать задачу на «4» и сравнить число шагов цикла при использовании метода перебора и метода дихотомии.

21

Решение уравнений в Exсel

Задача: найти все решения уравнения на интервале [-5,5]

Методы решения уравнений:
аналитические: решение в виде формулы
численные: приближенное решение, число
выбрать начальное приближение «рядом» с решением


по некоторому алгоритму вычисляют первое приближение, затем – второе и т.д.
вычисления прекращают, когда значение меняется очень мало (метод сходится)

22

Решение уравнения

1. Таблица значений функций на интервале [-5,5]

2. Графики функций (диаграмма «Точечная»)

2 решения: начальные приближения

23

Решение уравнения

3. Подготовка данных

начальное приближение

целевая ячейка

Цель: H2=0

24

Решение уравнения

4. Подбор параметра

ошибка

решение уравнения

25

Плавающее бревно

На сколько погрузится бревно радиуса R, брошенное в воду, если плотность дерева ρд = 700 кг/м3. Плотность воды ρв = 1000 кг/м3?

H

L

26

Плавающее бревно: силы

Сила тяжести

Сила Архимеда

FA

Fg

объем погруженной части

площадь сечения
погруженной части

полный объем

площадь сечения

27

Плавающее бревно: равновесие

Сила тяжести

Сила Архимеда

FA

Fg

неизвестно

28

Плавающее бревно: площадь сечения

S1

29

Плавающее бревно: уравнение

найти α