Информатика, 10

advertisement
Информатика, 10-11 классы
Ледовских Ирина Анатольевна, ДВГГУ
ЧИСЛЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ С ОДНОЙ
ПЕРЕМЕННОЙ
При решении задач прикладного характера в разнообразных разделах физики,
механики, техники и других областях возникает необходимость решения нелинейных
уравнений с одной переменной. При этом многие уравнения не имеют аналитических
решений. Это относится к большинству трансцендентных уравнений. Также доказано, что
нельзя построить формулу, по которой можно было бы решить произвольное алгебраические
уравнение выше четвертой степени.
Уравнение будем называть линейным1, алгебраическим или трансцендентным в
зависимости от того, имеет ли оно одно решение, n решений или неопределенное число
решений.
Нелинейные уравнения можно разделить на два класса – алгебраические и
трансцендентные. Алгебраическими уравнениями называют уравнения, содержащие только
алгебраические функции (целые, рациональные, иррациональные). Например, многочлен
является целой алгебраической функцией. Уравнения, содержащие другие функции
(тригонометрические,
показательные,
логарифмические
и
другие)
называются
трансцендентными.2
Методы решения нелинейных уравнений делятся на две группы:

точные методы;

итерационные методы.
Точные методы позволяют записать корни в виде некоторого конечного соотношения
(формулы). Из школьного курса алгебры известны такие методы для решения
тригонометрических, логарифмических, показательных, а также простейших алгебраических
уравнений.
Если алгебраическое или трансцендентное уравнение достаточно сложное, то его корни
сравнительно редко удается найти точно. Поэтому большое значение приобретают способы
приближенного нахождения корней уравнения и оценки степени их точности. Если точно
определить корни уравнения не представляется возможным, для их решения используют
численные итерационные (iteration - повторение) методы с заданной степенью точности.
Далее будут рассмотрены несколько численных методов и приведены алгоритмы
нахождения корней уравнений.
В общем случае нелинейное уравнение можно записать в виде:
F ( x)  0
(1)
где функция F(x) - определена и непрерывна на некотором конечном или бесконечном
интервале (a, b) , или в виде:
f ( x)  g ( x)
(2)
где функции f(x) и g(x) также определены и непрерывны на интервале (a, b) .
Всякое число   (a, b) обращающее уравнения (1) или (2) в верные числовые
равенства называется корнем этого уравнения.
Корни уравнения могут быть действительными и комплексными. В дальнейшем будет
идти речь только о вычислении действительных корней.
Решить уравнение численно значит:
1) установить имеет ли оно действительные корни;
Решение линейного уравнения с одной переменной получается достаточно просто и в этой статье не
рассматривается.
1
2 Решение нелинейных уравнений <http://www.exponenta.ru/educat/systemat/hanova/equation/main.asp>
2) отделить эти корни (то есть на числовой оси найти достаточно тесные промежутки,
называемые интервалами изоляции корня, содержащие только один корень данного
уравнения);
3) уточнить отделенные корни, т.е. найти значения корней с заданной степенью
точности  .
Последнее означает следующее.
Пусть x* - точный корень уравнения и x*  ( a, b) , то есть a  x*  b . Если (b  a)   ,
тогда числа a и b могут рассматриваться как приближенные значения корня x*
соответственно с недостатком и с избытком с точностью до  , так как x *  a  b  a   и
x*  b  b  a   .
Любое число, содержащееся между a и b , можно принять за приближенное значение
корня x* с точностью до  .
Графические методы решения уравнений3
Пусть дано уравнение F (х) = 0. Построим
график функции F (х). Абсциссы точек
пересечения графика с осью Ох и являются
корнями уравнения. Иногда для графического
решения уравнения удобнее записать его в
 ( x)  g ( x) и
виде
построить
графики
функций: y   (x) и y  g (x). Абсциссы точек
пересечения этих графиков и являются
корнями уравнения F (х) = 0 (рис. 12).
Рисунок 1
Однако этот метод позволяет получить лишь
грубо приближенные значения корней уравнения. Для получения значений корней с большей
точностью применяются численные методы. Однако, графический метод очень удобен, так
как он позволяет найти корни с точностью, достаточной для решения многих практических
задач, а также достаточно нагляден, прост и доступен.
Численные методы решения уравнений
Наиболее распространенными на практике численными методами решения уравнения
(1) являются: метод половинного деления, метод хорд, метод касательных, метод простой
итерации и т.д.4
Процесс численного решения уравнений разбивается на три этапа:
1. Отделение корней уравнения. Этот процесс можно сделать как графически, так и
аналитически. Важно найти такие отрезки, которые бы содержали по одному корню
уравнения (1).
2. Выбор метода решения и преобразование уравнения к виду, удобному для
применения данного метода.
3. Уточнение корней с заданной точностью при помощи выбранного численного
метода.
Отделение корней5
Говорят, что корень x* уравнения отделен на отрезке a; b , если он содержится в данном
отрезке, и если на этом отрезке других корней нет.
Пулькин С. П. Вычислительная математика: пособие для учащихся 9-10 классов по факультативному курсу /
С. П. Пулькин. – М. : Просвещение, 1974.
4
Пулькин С. П., Никольская Л. Н., Дьячков А. С. Вычислительная математика: учебное пособие для студентовзаочников V курса физико-математических факультетов педагогических институтов / С. П. Пулькин, Л. Н.
Никольская, А. С. Дьячков. – М. : Просвещение, 1980. -176с.
5
Заварыкин В. М., Житомирский В. Г., Лапчик М. П. Численные методы. – М. : Просвещение, 1990.
3
Провести полное отделение всех корней уравнения
– значит разбить всю область допустимых значений на
интервалы (или на отрезки), в каждом из которых
содержится ровно по одному корню (или не содержится
ни одного корня).
Отделение корней обычно начинают проводить
графически. Для этого строят графики функций,
получают интервалы, в которых находятся корни
уравнения. Это предположение затем проверяют аналитически,
пользуясь
следующим
свойством
непрерывной
функции
F(x):
если
функция
Рисунок 2
F (x) непрерывна на интервале a; b и на его концах
имеет разные знаки ( F (a)  F (b)  0. ), то между точками a и b имеется хотя бы один корень
уравнения F ( x)  0 . При этом корней может оказаться и несколько, как показано на рис. 13.
Для того чтобы на интервале существовал только один корень, должно выполняться
следующее свойство: если функция F (x) непрерывна и монотонна на отрезке a; b и
принимает на концах отрезка значения разных знаков, то внутри отрезка a; b содержится
корень уравнения F ( x)  0 и этот корень единственный (рис. 14, а, b).
Рисунок 3
Пример 1: Отделить графически положительные корни уравнения
e0,3x - 2 sin(2x) = 0
(3)
Решение: Найдем приближенные значения корней уравнения графически. Для этого удобно
представить уравнение в следующем виде: e0,3x = 2 sin(2x).
Решением данного уравнения будет являться абсцисса x точки пересечения графиков
следующих функций:
y1(x) = 2 sin(2x);
y2(x) = e0,3x
На рисунке видно, что графики функций y1(x) и y2(x) пересекаются в двух точках A и B,
 
  
абсциссы которых положительны и лежат соответственно в промежутках 0;  и  ;  .
 4
4 2
Следовательно, уравнение имеет два положительных корня x1 и x2, которые лежат в
     
промежутках 0;  и  ;  .
 4 4 2
y1 ( x)  2 sin( 2 x)
y2 ( x)  exp ( 0.3 x)
4
2
y1 ( x)
y2 ( x)
1
0
1
2
3
4
2
x
Примечание: Графики функций можно строить с помощью компьютера, например, в
электронных таблицах Excel или в MathCad.
Пример 2: Отделить аналитически корни уравнения
x3 – 3x2 + 11x + 1 = 0
(4)
Решение: Для аналитического отделения корней найдем производную функции
f(x) = x3 – 3x2 + 11x + 1
Производная этой функции
f’(x) = 3x2 -6x + 11
ни в одной точке не обращается в нуль, т.к. D = 36 -4*3*11
< 0, поэтому для всех x из области определения значение
производной больше нуля f’(x)>0, следовательно, функция
f везде возрастает, и уравнение (4) может иметь один
корень.
Составим таблицу:
Рисунок 4. Графическая
интерпретация метода половинного
деления
x

-1
0

sign f(x)
+
+
(знак функции)
Из таблицы видно, что f(-1)f(0) < 0, поэтому уравнение (4) имеет один корень, лежащий
в интервале [-1;0].
Уточнение корней уравнения методом половинного деления (дихотомии).
Метод половинного деления осуществляется на практике следующим образом. Пусть
корень уравнения отделен - выбран интервал изоляции a; b (рис. 15). Примем за первое
приближение корня точку c , которая является серединой отрезка a; b .
Далее будем действовать по следующему алгоритму:
1. находим точку c  (a  b) / 2 ;
2. находим значение f (c ) ;
3. Если f (a )  f (c)  0 , то корень лежит на интервале a; с , в других случаях он
находится на интервале с; b ;
4. если величина интервала   , то найден корень с точностью  , иначе возвращаемся
к пункту 1.
Блок-схема алгоритма решения уравнения методом половинного деления приведена на
рис. 5.6
Метод половинного деления практически неудобен для вычисления корня ручным
способом, требуется выполнение большого объёма вычислительной работы, но алгоритм
решения уравнения этим методом прост и легко реализуется с помощью ЭВМ.
Пример 3: Уточнить корень уравнения x3 – 3x2 + 11x + 1 = 0 , который находится на
отрезке [-1;0] (см. пример 2) методом половинного деления с точностью до 0,001.
Решение: Рассмотрим функцию f(x) = x3 – 3x2 + 11x + 1
1. Так как корень уравнения находится на отрезке [-1;0], то примем a=-1 и b=0. Тогда с
= (-1+0)/2 = -0,5 .
Если f(c) = 0, то с – корень
уравнения (4), если f(c)  0, то
начало a,b, 
найдём знаки произведений
f (a )  f (c) и f (c)  f (b) :
f(a)=f(-1)=(-1)3 -3*(-1)2 +
11*(-1) + 1 = -14;
f(b)=f(0)=03 -3*02 + 11*0
c : (a  b) / 2
+ 1 = 1;
f(c)=f(-0,5)=(-0,5)3
-3*(2
нет
0,5) + 11*(-0,5) + 1 = -5,375;
f (c )  f ( a )  0
f (a )  f (c) = 75,25;
нет
да
f (c)  f (b) = -5,375.
Т.к. f (c)  f (b) < 0, то
a : c
b : c
корень уравнения (4) находится
на отрезке
[c;b] = [-0,5;0].
2. Т.к. корень уравнения
a b  
находится на отрезке [-0,5;0],
то примем a1=-0,5 и b1=0.
да
Тогда с1 = (-0,5+0)/2 = -0,25 .
Если f(c1) = 0, то с1 – корень
c
уравнения (4), если f(c1)  0, то
найдём знаки произведений
f (a1 )  f (c1 ) и f (c1 )  f (b1 ) :
конец
f(a1)=f(-0,5)= -5,375;
f(b1)=f(0)= 1;
Рисунок 5. Алгоритм решения уравнения методом половинного
деления (дихотомии)
f(c1)=f(-0,25)=(-0,25)3-3*(-0,25)2
+ 11*(-0,25) + 1 = -1,9531;
f (a1 )  f (c1 ) = 10,498; f (c1 )  f (b1 ) = -1,9531.
Т.к. f (c1 )  f (b1 ) < 0, то корень уравнения (4) находится на отрезке
[c1;b1]=[-0,25;0].
И так далее, путем деления отрезка пополам всё более уточняем корень. На каждом nом шаге используем формулы для вычислений (см. рис.16 алгоритм решения уравнения
методом половинного деления).
Вычисления можно выполнять путем составления программы на любом языке
программирования или в электронных таблицах Excel. Если выполнять вычисления в
электронных таблицах, то вычисления удобно представлять в виде таблицы:
6
Алексеев Е.Р., Чеснокова О.В., Павлыш В.Н., Славинская Л.В. Турбо Паскаль 7.0. – М.: ООО «Издательство
АСТ»: Издательство «НТ Пресс», 2004. – 270 с.
№
шага
0
1
2
3
4
5
6
7
8
9
10
a
b
c
f(a)
f(b)
f(с)
f(a)f(с)
F(с)(b)
e
-1
-0,5
-0,25
-0,125
-0,125
-0,0938
-0,0938
-0,0938
-0,0898
-0,0898
-0,0889
0
0
0
0
-0,0625
-0,0625
-0,0781
-0,0859
-0,0859
-0,0879
-0,0879
-0,5
-0,25
-0,125
-0,0625
-0,0938
-0,0781
-0,0859
-0,0898
-0,0879
-0,0889
-0,0884
-14
-5,375
-1,95313
-0,42383
-0,4238
-0,0584
-0,0584
-0,0584
-0,0132
-0,0132
1
1
1
1
0,3005
0,3005
0,1218
0,0319
0,0319
0,0093
-5,375
-1,9531
-0,4238
0,3005
-0,0584
0,1218
0,0319
-0,0132
0,0093
-0,0019
75,25
10,4980
0,8278
-0,1274
0,0248
-0,0071
-0,0019
0,0008
-0,0001
0,00003
-5,375
-1,9531
-0,4238
0,3005
-0,0176
0,0366
0,0039
-0,0004
0,0003
-0,00002
1
0,5
0,25
0,125
0,0625
0,03125
0,015625
0,007813
0,003906
0,001953
0,000977
Когда в последнем столбце будет стоять требуемая точность, то ответ будет находиться
в столбце «с».
Ответ: x  0,088  0,001
Для рассмотрения других
методов уточнения
корней нужно чтобы функция f (x)
удовлетворяла
следующим условиям на интервале a; b .
 Функция f (x) непрерывна вместе со своими
производными первого и второго порядка. Функция
f (x) на концах интервала a; b имеет разные знаки
f (a )  f (b)  0;
 Первая и вторая производные f (x) и f (x)
Рисунок 6. Графическая
сохраняют определенный знак на всем интервале a; b .
интерпретация метода хорд
Уточнение корней уравнения методом хорд
Метод хорд отличается от метода половинного деления тем, что очередное
приближение берем не в середине отрезка, а в точке пересечения с осью OX (рис.17) –
прямой, соединяющей точки (a, f (a)) и (b, f (b)).
Запишем уравнение прямой, проходящей через точки с координатами (a, f (a)) и (b, f (b)) :
y  f (a)
xa
f (b)  f (a)

;y 
 ( x  a)  f (a) (5)
f (b)  f (a) b  a
ba
Прямая, заданная уравнением (5), пересекает ось OX при условии y  0 . Найдем точку
пересечения хорды с осью OX:
f (a)  (b  a)
f (b)  f (a)
f (a)
a
 x; y 
 ( x  a)  f (a) , итак c  a 
(b  a).
f (b)  f (a)
ba
f (b)  f (a)
Далее необходимо вычислить значение функции в точке c .
Блок-схема метода хорд представлена на рис. 18.
Уточнение корней уравнения методом касательных
Метод касательных (метод Ньютона) на практике используется следующим образом. В
одной из точек интервала a; b , например в точке c , проведем касательную (рис. 19).
Запишем уравнение этой прямой: y  kx  m .
Так как данная прямая является касательной, и она проходит через точку (c, f (c)), то
k  f (c).
Отсюда следует:
y  f (c) x  m, f (c)  f (c)c  m, m  f (c)  cf (c)
y  f (c) x  f (c)  cf (c), y  f (c)( x  c)  f (c).
Найдем точку пересечения касательной с осью OX:
f (c )
.
f (c)
Если f ( x)   , то точность достигнута, и точка x - решение; иначе необходимо
переменной c присвоить значение x , провести касательную через новую точку c и так
продолжать до тех пор, пока
f (x)   .
начало
Осталось
решить
вопрос, что выбрать в
a,b, 
качестве точки начального
приближения c .
В этой точке должны
f (a)
c : a 
(b  a)
совпадать знаки функции и
f (b)  f (a)
ее второй производной, но
так как было сделано
нет
f (c )  f ( a )  0
допущение, что первая и
нет
вторая
производные
не
да
меняют знак, то можно
проверить
условие
a : c
b : c
f ( x) f ( x)  0
на обоих
концах интервала и в
качестве
начального
приближения взять ту точку,
f (c)  
где оно выполняется.
Блок-схема
метода
да
касательных
(метода
Ньютона) представлена на
c
рис. 20.
Существует ещё
множество методов решения
f (c)( x  c)  f (c)  0, x  c 
конец
Рисунок 7. Алгоритм
метода хорд
уравнений: комбинированный метод хорд и касательных,
метод простой итерации (iteration – повторение, лат.), метод
секущих и т.д. Но и рассмотренные методы позволяют
получить решение большого класса уравнений с заданной
точностью.
Контрольное задание по информатике №1 для учащихся
Рисунок 8. Графическая интерпретация
11 классов
метода касательных
Представленные
ниже
задачи
являются
контрольным заданием №1 для учащихся 11 классов. Решения необходимо оформить в
отдельной тетради и выслать по адресу 680000, г. Хабаровск, ул. Дзержинского, 48,
ХКЦТТ, ХКЗФМШ. Для зачета нужно набрать не менее 30 баллов (каждая правильно
решенная задача оценивается в 5 балла).
Для приведенных ниже уравнений выполнить следующие действия:
И11.1.1.
Отделить корни уравнений графически (вычислить интервалы изоляции корней
уравнения f(x) = 0).
И11.1.2.
Составить программы вычисления корней уравнения с погрешностью  =0,001
методом половинного деления, методом хорд, методом касательных (используя
соответствующие алгоритмы решения уравнений).
И11.1.3.
Уточнить
методом
половинного деления один из корней
уравнения с точностью до 0,001.
И11.1.4.
Уточнить
методом
хорд один из корней уравнения с
точностью до 0,001.
И11.1.5.
Уточнить
методом
касательных
один
из
корней
уравнения с точностью до 0,001.
x  lg x  0,5;




x  3x  1  0.
x 2  4 sin x  0 ;
tg (0,4 x  0,3)  x 2 ;
начало
a, b
f (a)  f (a)  0
нет
да
3
c : a
c : c 
c : b
f (c )
f (c)
нет
f (c)  
да
с
конец
Рисунок 9. Алгоритм метода касательных (метода Ньютона)
Download