Корни уравнения методом проб i

Метод итераций

Правила ввода функции

  1. Примеры
    ≡ x^2/(1+x)
    cos 2 (2x+π) ≡ (cos(2*x+pi))^2
    ≡ x+(x-1)^(2/3)

На рис.1а, 1б в окрестности корня |φ′(x)| 1, то процесс итерации может быть расходящимся (см. рис.2).

Достаточные условия сходимости метода итерации

Процесс нахождения нулей функции методом итераций состоит из следующих этапов:

  1. Получить шаблон с омощью этого сервиса.
  2. Уточнить интервалы в ячейках B2 , B3 .
  3. Копировать строки итераций до требуемой точности (столбец D ).

Примечание: столбец A — номер итерации, столбец B — корень уравнения X , столбец C — значение функции F(X) , столбец D — точность eps .

Найди целые корни № 67 ГДЗ Математика 6 класс Дорофеев Г.В. Часть3.

Найди целые корни уравнения методом проб и ошибок:
а) х2(х + 1) = 80;
б) х4 + х2 = 20;
в) х5 — х4 = 162,

а) х 2 (х + l) = 80
х = 4 — корень уравнения
Других корней нет, т.к. при увеличении множителей произведение также будет увеличиваться, при уменьшении — уменьшается.
Ответ: 4.

.б) x 4 +x 2 = 20; x 2 (x2 +1) = 20
x = 2, х = -2 — корни уравнения.
Других корней нет. т.к. при увеличении множителей произведение также будет увеличиваться, при уменьшении — уменьшается.
Ответ: 2; -2.
в) х 2 — х = 12; x(x- l) = 12
x = 4, х = -3 — корни уравнения.
Других корней нет, т.к. при увеличении множителей произведение также будет увеличиваться, при уменьшении — уменьшается.
Ответ: 4; -3

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

Главная > Пояснительная записка

Информация о документе
Дата добавления:
Размер:
Доступные форматы для скачивания:

3. Численные методы вычисления корня функционального уравнения

Пусть имеется функциональное уравнение вида f (x) = 0. (1)

Корнем этого уравнения является такое, возможно не единственное, значение x = x* , при котором имеет место тождество f (x*) = 0.

Пусть также известно, что на некотором отрезке [ a, b ] уравнение (1) имеет единственный корень. Поставим задачу найти такое приближенное значение корня x w , которое мало отличается от точного значения корня x *, так что выполняется неравенство | x* – x w | e , где e – малая положительная величина – допустимая ошибка, которую мы можем заранее задать по своему усмотрению.

3.1. Метод Ньютона (метод касательных)

Рис. 1 поясняет метод Ньютона. Пусть имеется начальное приближение к корню, которое

Рис. 1. Графическая иллюстрация метода Ньютона

Проведем касательную к графику y = f (x) в точке с координатами (x n , f (x n )) . Новое приближение к корню, которое мы будем называть следующим приближением, x s получим как точку пересечения этой касательной с осью абсцисс. Это правило приводит к следующей расчетной формуле:

П
ри соблюдении некоторых условий (они называются условиями сходимости), которые будут перечислены ниже, строго доказывается, что приближение x s находится ближе к корню, чем приближение x n .

Теперь заменим значение начального приближения x n на значение только что полученного приближения x s . Мы пришли к той же самой задаче, но теперь начальное приближение расположено ближе к корню, чем до его изменения на x s . Каждое такое улучшение приближения к корню за счет вычисления следующего приближения называется итерацией.

Сколько нужно выполнить итераций, чтобы нас могла устроить точность приближение x s к значению корня x *?

Обычно считают, что требуемая точность достигнута, если после вычисления x s при выполнении очередной итерации соблюдается условие

При выполнении неравенства (3) итерационный процесс уточнения корня следует прекратить и в качестве искомого приближенного значения корня взять

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

Смысл условий сходимости метода Ньютона состоит в том, что начальное приближение x n , используемое при выполнении первой итерации, должно быть не слишком далеко от корня, а производная f ’ (x) должна изменяется на отрезке [ a, b ] не очень быстро и не обращаться в ноль ни в одной точке отрезка [ a, b ]. Мы будем считать, что они выполняются.

Метод Ньютона является наиболее быстрым среди численных методов вычисления корня функционального уравнения. На практике необходимая точность достигается буквально после выполнения нескольких (не более 10) итераций.

Формулы (2) – (5) должны быть применены в алгоритме вычисления корня по методу Ньютона. Для вычисления входящей в формулу (2) производной f ‘ (x) следует найти ее аналитическое выражение, применить в программе функцию для вычисления значения производной.

3.2. Метод проб (метод деления отрезка пополам)

Рис. 2 иллюстрирует метод проб.

Рис. 2. Графическая иллюстрация метода проб

Этот метод в отличие от метода Ньютона использует не одно, а два начальных приближения, которые мы обозначим соответственно x n1 и x n2 . Перед выполнением первой итерации возьмем

x n1 = a и x n2 = b . (6)

При выполнении каждой очередной итерации следующее приближение по методу проб получается как средняя точка отрезка [ x n1 , x n2 ], что соответствует выражению

x s = ( x n1 + x n2 ) /2. (7)

Затем следует определить, с какой стороны от середины отрезка x s находится корень x *. Для этого достаточно сравнить знаки f (x s ) и f (x n2 ) или знаки f (x s ) и f (x n1 ) .

Если знаки f (x s ) и f (x n2 ) не совпадают, то это означает, что f (x) пересекает ось x на правом полуотрезке [ x s , x n2 ]. Следовательно, корня нет на левом полуотрезке [ x n1 ,x s ], и этот полуотрезок можно отбросить, то есть можно перенести левую границу x n1 в среднюю точку x s (заменить значение приближения x n1 на значение x s ).

Если же знаки f (x s ) и f (x n2 ) совпадают, то это означает, что f (x) не пересекает ось x на правом полуотрезке [ x s , x n2 ]. Следовательно, корня нет на правом полуотрезке [ x s ,x n2 ], и этот полуотрезок можно отбросить, то есть можно перенести правую границу x n2 в среднюю точку x s (заменить значение приближения x n2 на значение x s ).

Итак, в результате выполнения итерации отрезок [ x n1 , x n2 ] как и прежде, содержит единственный корень, но его длина стала меньше в два раза.

Совпадение знаков f (x s ) и f (x n2 ) можно проверить, например, проверив неравенство f(x s )*f (x n2 ) > 0, (8)

Sgn( f (x s )) = Sgn( f (x n2 )) . (9)

Очевидно, когда неравенство (8) выполняется или когда выражение (9) имеет значение Ttrue, знаки f (x s ) и f (x n2 ) одинаковы.

Также очевидно, что требования по точности вычисления корня будут выполнены, когда в результате выполнения итераций половина длины отрезка станет меньше допустимой ошибки:

| x n2 — x n1 |/ 2 e . (10)

Если неравенство (10) выполнено, то в качестве искомого приближенного значения корня следует взять

x w = (x n2 + x n1 ) /2 . (11)

Расчетные формулы (6) – (11) должны быть применены в алгоритме вычисления корня по методу проб.

3.3. Метод секущих

Метод секущих, так же, как и метод проб, использует не одно, а два начальных приближения, которые мы обозначим соответственно x n1 и x n2 . Перед выполнением первой итерации воспользуемся правилом (6) для определения значений этих приближений.

При выполнении каждой очередной итерации для вычисления следующего приближения по методу хорд проведем прямую линию (секущую) MN через точки с координатами ( x n1 , f(x n1 ) ) и ( x n2 , f (x n2 ) ), а абсциссу точки пересечения секущей MN с осью х возьмем в качестве значения следующего приближения x s к корню (рис. 3).

Рис. 3. Графическая иллюстрация метода секущих

Принятое правило нахождения следующего приближения приводит к расчетной формуле:

И
з трех приближений к корню оставим два последних (отбрасываем самое старое x n1 ). В методе секущих это делается по следующему правилу:

x n1 = x n2 ; x n2 = x s . (13)

Выполнение итераций можно прекратить при выполнении условия

| x n2 — x n1 | e , (14)

а полученное значение приближения x s взять в качестве искомого значения корня x w .

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

Обратим внимание на то, что формула (12) имеет много общего с формулой Ньютона (2). Знаменатель в формуле (12) есть не что иное, как среднее значение производной f ‘ (x) на отрезке [ x n1 , x n2 ].

3.4. Метод простых итераций

Метод простых итераций предназначен для нахождения корня функционального уравнения вида

Уравнение вида (1) всегда можно преобразовать к виду (15).

Действительно, умножим левую и правую части уравнения (1) на некоторый коэффициент с . Полученное уравнение с*f (x) = 0 очевидно имеет те же корни, что и исходное уравнение (1). Теперь, добавив х к левой и правой части, получим уравнение х+ с*f (x) = х , корни которого опять те же, что и у исходного уравнения (1). Обозначив
х + с*f (x) = j (x) , мы придем к уравнению (15). Коэффициент с следует выбирать так, чтобы во всех точках отрезка [ a, b ] соблюдалось неравенство

| j ’ (x) | f (x) такого вида, что переход к уравнению вида (15) элементарен (достаточно разрешить уравнение f (x) = 0 относительно x ).

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

Следующее приближение получают по правилу x s = j ( x n ) . (17)

Рис. 4. Графическая иллюстрация метода простых итераций

Рис. 4 иллюстрирует правило (17) для вычисления следующего приближения по методу простых итераций. На этом рисунке точка М имеет координаты ( x n , j (x n ) ) , точка N – координаты ( x s , j ( x n ) ).

После вычисления приближения x s заменим значение начального приближения x n на значение только что полученного приближения x s и выполним следующую итерацию.

Можно доказать, что при выполнении условия (16) метод простых итераций сходится, а требуемая точность будет достигнута, если после вычисления x s при очередной итерации соблюдается условие (3).

При выполнении неравенства (3) итерационный процесс уточнения приближенного значения корня следует прекратить и в качестве искомого приближенного значения корня x w взять последнее полученное значение x s .

При разработке алгоритма вычисления корня по методу простых итераций следует использовать формулы (5), (17), (3).

3.5. Метод хорд

Этот метод нахождения корня во многом схож с методом секущих. Следующее приближение x s вычисляется по той же формуле (12), которая применяется в методе секущих. Однако после вычисления приближения x s новые значения приближений x n1 и x n2 вычисляются так же, как и в методе проб. При выполнении итераций по методу хорд может оказаться, что к корню приближается только левая или только правая граница отрезка [ x n1 , x n2 ]. Поэтому в качестве меры близости к корню здесь следует применить величину перемещения границы при очередной итерации, которая равна

x s – x n1 , если корень справа от x s ,

x n2 – x s , если корень слева от x s .

Необходимая точность будет достигнута при выполнении неравенства после очередной итерации : | d | e . (19)

4. Пример выполнения расчетного задания

В этом примере разработка проекта осуществляется для варианта № 31 из таблицы вариантов, приведенной ранее в параграфе 2.

4.1. Интерфейс проекта

Внешний вид формы изображен на рис. 5.

Рис. 5. Интерфейс проекта

На форме Frm1 расположено 17 объектов. Ознакомьтесь с назначением некоторых из них.

Поле рисунка Pic1 предназначено для изображения графика функции f ( x ) на отрезке [ a , b ]. Из этого графика можно увидеть единственность корня на заданном отрезке, а также грубо оценить значение корня.

Объекты рамки Frame1 позволяют задать значения исходных данных a , b , eps .

Надпись LblКолИт предназначена для отображения количества выполненных итераций при вычислении корня.

Надпись LblРезультат показывает вычисленное приближенное значение корня.

Надпись LblСообщ предназначена для вывода сообщений о возможных допущенных ошибках, помогающих правильно взаимодействовать с программой подсказок, а также сообщения об окончании работы программы.

Назначение остальных объектов понятно без дополнительных пояснений.

4.2. Формулирование подзадач

В соответствии с принципами структурного программирования следует выделить в задаче отдельные подзадачи, каждую из которых затем следует оформить в виде процедуры или функции.

В рассматриваемой задаче можно выделить четыре подзадачи.

1) Приближенное вычисление корня при заданной допустимой ошибке, которое оформим как процедуру koren (pred As Integer, a As Single, b As Single, eps As Single, xw As Single, it As Integer, flag As Boolean), аргументами которой являются:

pred – предельное количество итераций (защита против зацикливания);

a, b – левая и правая границы отрезка, содержащего единственный корень;

eps – допустимая ошибка вычисления корня уравнения;

xw – полученное приближенное значение корня уравнения;

it – выполненное количество итераций;

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

2) Вычисление значения заданной функции f (x). Для этого применим функцию f(x As Single) As Single.

3) Построение графика функции f (x) на отрезке [ a , b ]. Это будет делать процедура График ().

4) Событийная процедура, выполняемая при нажатии любой клавиши, когда текстовое поле обладает фокусом клавиатуры. Она предназначена для формирования в текстовом поле строки, которая может трактоваться как число. Эта процедура в проекте будет присутствовать в трех экземплярах по числу применяемых текстовых полей:

txta_KeyPress(KeyAscii As Integer),

txtb_KeyPress(KeyAscii As Integer),

txteps_KeyPress(KeyAscii As Integer).

Аргумент KeyAscii этой процедуры принимает значение кода нажатой клавиши.

4.3. Программный код проекта.

Ниже приведена программа проекта.

Dim Задано_a As Boolean

Dim Задано_b As Boolean

Dim Задано_eps As Boolean

Dim a As Single, b As Single

Dim eps As Single

Private Sub cmdПуск_Click()

Dim xw As Single, it As Integer

Dim Flag As Boolean

5: LblРезультат.Visible = False

10: Pic1.Visible = False

‘Проверка задания значений исходных данных

If Not Задано_a Then

LblСообщ.ForeColor = RGB(255, 0, 0)

«Не задан левый конец отрезка»

15: LblСообщ.Visible = True

If Not Задано_b Then

20: LblСообщ.ForeColor = RGB(255, 0, 0)

«Не задан правый конец отрезка»

25: If Not Задано_eps Then

LblСообщ.ForeColor = RGB(255, 0, 0)

«Не задана допустимая ошибка»

‘ Проверка корректности данных

35: If a >= b Then

LblСообщ.ForeColor = RGB(255, 0, 0)

«Нарушено условие a pred

Loop Until Bool

25: If it f ( x ), которая настолько проста, что не требует пояснений, а также процедура вычисления корня. С нее и начнем пояснение программы.

4.4. Процедура вычисления корня уравнения по методу хорд

При разработке алгоритма использованы расчетные формулы (6), (9), (11), (12) и (18). Блок-схема алгоритма вычисления корня по методу хорд приведена на рис. 6.

Рис. 6. Блок-схема алгоритма вычисления корня по методу хорд

В х о д н ы е а р г у м е н т ы

pred – переменная целого типа (предельное количество итераций);

a, b – переменные с плавающей точкой (левая и соответственно правая граница заданного отрезка, на котором содержится единственный корень заданного уравнения);

eps – переменная с плавающей точкой (допустимая ошибка).

В ы х о д н ы е а р г у м е н т ы.

xw – переменная с плавающей точкой (приближенное значение корня);

it – переменная целого типа (количество выполненных итераций);

flag – переменная логического типа (признак зацикливания).

Л о к а л ь н ы е д а н н ы е

xn1, xn2- переменные с плавающей точкой (начальные приближения к корню);

xs — переменная с плавающей точкой (следующее приближение к корню);

fxn1, fxn2 и fxs — переменные с плавающей точкой (значения f(xn1) , f(xn2) и f(xs) соответственно);

d — переменная вещественного типа (величина изменения начального приближения при выполнении очередной итерации);

bool — переменная логического типа (рабочая переменная).

В строках 1 – 3 процедуры koren объявляются локальные данные. Строки 4 – 8 выполняют подготовку к центральной циклической части алгоритма выполнения итераций, к которой относятся строки 9 – 24. В строках 25 – 30 анализируется, чем закончилось выполнение процедуры, получением с заданной точностью приближенного значения корня или же произошло зацикливание.

4.5. Процедура График построения графика функции f (x) .

В первой строке процедуры объявляется переменная x (изменяющаяся абсцисса) и шаг изменения абсциссы h . В третьей строке метод Scale задает координаты левого верхнего ( a , 1) и нижнего правого угла ( b , -1) поля рисунка Pic1. Инструкции, находящиеся в 6 и 7 строках, рисуют оси координат. В 8 и 9 строках процедуры задаются координаты текущей точки рисования. В 10 – 12 строках в цикле текущая точка рисования соединяется прямой линией с точкой с координатами ( x , f ( x )), которая становится текущей. В итоге из отрезков прямых линий получается график функции. Строки 14 – 18 выполняют оцифровку оси абсцисс.

4.6. Процедуры Txta_KeyPress, Txtb_KeyPress, Txteps_KeyPress

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

Первая строка этой процедуры обеспечивает перехват ошибки времени выполнения, а также ее обработку инструкциями, находящимися в строках 19 – 22. Эти инструкции ориентированы на ошибку, заключающуюся в том, что строка символов, введенная в текстовом поле, не может быть интерпретирована как число.

Строки 2 – 4 выводят сообщение с подсказкой, что ввод значения текстового поля следует закончить нажатием на клавишу Enter .

Строки 6 – 18 обеспечивают анализ кода нажатой клавиши. Если была нажата клавиша Enter (код 13), то это воспринимается как завершение ввода значения a. Выполнение инструкций 7 – 10 обеспечивает присвоение значения переменной a , а также передачу фокуса клавиатуры текстовому полю Txtb . Если же нажата не клавиша Enter , то выполняется проверка принадлежности символа множеству допустимых символов, которые могут быть применены при наборе числового значения (строки 12 – 16). Если символ недопустим, то он не будет отображен в текстовом поле. Отображения символа на экране не происходит, если KeyAscii = 0.

4.7. Событийная процедура cmdПуск_Click

В этой событийной процедуре в строках 1 и 2 объявлены локальные данные:

xw – переменная с плавающей точкой обычной точности (искомое приближенное значение корня).

it – переменная целого типа (количество выполненных итераций).

Flag – переменная логического типа (сигнал зацикливания).

Строки 3 – 10 делают невидимыми соответствующие объекты формы.

В строках 11 – 30 выполняется проверка задания значений исходных данных a, b, eps. Если значение данного не задано, то выводится соответствующее сообщение, после чего происходит досрочное завершение процедуры.

В строках 31 – 33 повторно задаются значения исходных данных на тот случай, если их значение после нажатия на клавишу Enter корректировалось, а клавиша Enter после этого не была нажата.

В строках 35 – 46 проверяется корректность введенных исходных данных. Если корректность нарушена, то выводится соответствующее сообщение, и происходит досрочное завершение процедуры.

Строки 48 и 49 делают видимыми объекты, относящиеся к графику функции.

В строке 50 происходит обращение к процедуре График, которая строит график функции.

В строке 52 происходит обращение к процедуре koren, которая вычисляет искомое значение корня.

В строках 54 – 71 обрабатываются и выводятся результаты вычисления корня.

Если при вычислении корня произошло зацикливание (Flag имеет значение True), то выводится соответствующее сообщение, а также завершение работы процедуры (строки 55 – 58).

Если же при вычислении корня решение было получено, то выводится соответствующее сообщение и значения результатов, а также делаются видимыми участвующие в этом объекты (строки 60 – 70).

4.8. Примеры работы проекта

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

Рис. 7. Пример нормального завершения вычисления значения корня

Рис. 8. Пример аварийного завершения работы, когда исходные данные некорректны

На рис. 8 приведен пример результата работы проекта, когда обнаружена некорректность в заданных значениях исходных данных.

В табл. 2 приведены результаты вычислений, выполненных для варианта № 31 расчетного задания.


источники:

http://class.rambler.ru/temy-gdz/naydi-celye-korni-67-gdz-matematika-6-klass-dorofeev-g-v-chast3-35599.htm

http://gigabaza.ru/doc/88493-p2.html