Учащимся 10-11 классов

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