Численные методы в Excel. Общие сведения о решении нелинейного уравнения
Пусть найдено приближенное значение корня уравнения f (x ) = 0, обозначим его x n . Расчетная формула метода Ньютона для определения очередного приближения x n +1 может быть получена двумя способами.
Первый способ выражает геометрический смысл метода Ньютона и состоит в том, что вместо точки пересечения графика функции y = f (x ) с осью OX , мы ищем точку пересечения с осью OX касательной, проведенной к графику функции в точке (x n , f (x n )) как показано на рис. 2.6. Уравнение касательной имеет вид .
Рис. 2.7. Метод Ньютона (касательных)
В точке пересечения касательной с осью OX переменная y = 0. Приравнивая y нулю, выразим x и получим формулу метода касательных :
(2.6)
Второй способ. Разложим функцию f (x ) в ряд Тейлора в окрестности точки x = x n :
Ограничимся линейными относительно (x – x n ) слагаемыми, приравняем нулю f (x ) и, выразив из полученного уравнения неизвестное x и обозначив его через x n +1 , мы получим формулу (2.6).
Приведем достаточные условия сходимости метода Ньютона.
Теорема 2.3. Пусть на отрезке выполняются условия:
1) функция и ее производные и непрерывны;
2) производные и отличны от нуля и сохраняют определенные постоянные знаки;
3) (функция меняет знак на отрезке).
Тогда существует отрезок , содержащий искомый корень уравнения , на котором итерационная последовательность сходится. Если в качестве нулевого приближения выбрать ту граничную точку , в которой знак функции совпадает со знаком второй производной, т.е. , то итерационная последовательность сходится монотонно (рис.2.8).
Доказательство . Так как непрерывна, меняет знак и монотонна на , то - интервал изоляции корня. Обозначим искомый корень через . Рассмотрим функцию и найдем ее производную . Итак, непрерывна на , обращается в нуль в точке , так как в этой точке обращается в нуль функция . Следовательно, существует такой отрезок (), что . Если возьмем ту часть отрезка, где , то , следовательно, функция возрастающая, но тогда последовательность является монотонной.
Рис. 2.8. Достаточные условия сходимости метода Ньютона
Замечание. Отметим, что метод хорд как раз идет с противоположной стороны, и оба этих метода т.о. могут друг друга дополнять, а возможен и комбинированный метод хорд-касательных .
Пример 2.7.
Уточнить до 0,000001 методом Ньютона корень уравнения
sin 5x
+ x
2 – 1 = 0.
За начальное значение принять x
0 = – 0,7.
Решение. Найдем производную .
В программе Excel введем расчетные формулы:
1) Введем формулы и обозначения в ячейках диапазона A
1:D
3 и скопируем вниз маркером заполнения ячейки с формулами: B
3 - до B
5,
C
2 - до C
5, D
2 - до D
5;
Таблица 2.9
A | B | C | D | |
k | x | f(x) | f"(x) | |
–0,7 | =SIN(5*B2)+B2^2–1 | =5*COS(5*B2)+2*B2 | ||
=B2–C2/D2 |
Результаты расчетов приведены в таблице 2.10. Получено значение корня – 0,726631609 ≈ – 0,726632 с погрешностью 0,000001.
Таблица 2.10
A | B | C | D | A | |
k | x | f(x) | f"(x) | ||
-0,7 | -0,159216772 | -6,082283436 | |||
-0,726177138 | -0,002664771 | -5,865681044 | 0,026177138 | ||
-0,726631437 | -1,00787E-06 | -5,861240228 | 0,000454299 | ||
-0,726631609 | -1,45328E-13 | -5,861238543 | 1,71955E-07 |
Создадим функции в программе Excel для решения уравнения из примера 2.7 методом Ньютона.
" В отличие от метода хорд, в методе касательных вместо хорды на каждом шаге проводится касательная к кривой y=F(x) при x=x n и ищется точка пересечения касательной с осью абсцисс:
Формула для (n+1) приближения имеет вид:
Если F(a)*F"(a)>0 , x 0 =a , в противном случае x 0 =b .
Итерационный процесс продолжается до тех пор, пока не будет обнаружено, что:
Пример:
Пусть дана задача следующего характера: Уточнить корни уравнения cos(2x)+x-5=0 методом касательных с точностью до 0,00001.
Изначально необходимо определиться с тем, чему равно x0: либо a, либо b. Для этого необходимо выполнить следующие действия:
Найти производную первого порядка от функции f(x)=cos(2x)+x-5. Она будет выглядеть следующим образом: f1(x)=-2sin(2x)+1.
Найти производную второго порядка от функции f(x)=cos(2x)+x-5. Она будет выглядеть следующим образом: f2(x)=-4cos(2x).
В итоге получается следующее:
Так как x0=b, то необходимо выполнить следующие действия:
Заполнить ячейки следующим образом (обратить внимание на названия и номера столбцов при заполнении - они должны быть такими же, как на рисунке):
В ячейку A6 ввести формулу =D5.
Выделить диапазон ячеек B5:E5 и методом протягивания заполнить диапазон ячеек B6:E6.
Выделить диапазон ячеек A6:E5 и методом протягивания заполнить диапазон нижерасположенных ячеек до получения в одной из ячеек столбца E результата (диапазон ячеек A6:E9).
В итоге получаем следующее:
4. Комбинированный метод хорд и касательных
Для того чтобы достичь наиболее точной погрешности, нужно одновременно использовать методы хорд и касательных. "По формуле хорд находят x n+1 , а по формуле касательных - z n+1 . Процесс нахождения приближенного корня прекращается, как только:
В качестве приближенного корня берут значение, равное (11) :"[2 ]
Пусть требуется уточнить корни уравнения cos(2x)+x-5=0 комбинированным методом с точностью до 0,00001.
Для решения такой задачи, используя Excel, необходимо выполнить следующие действия:
Так как в комбинированном методе необходимо использовать одну из формул хорд и формулу касательных, то для упрощения следует ввести следующие обозначения:
Для формул хорд обозначить:
Переменная c будет играть роль a или b в зависимости от ситуации.
Остальные обозначения аналогичны приведенным в формулах хорд, только учитывая выше введенные переменные.
Для формулы касательных обозначить:
Остальные обозначения аналогичны приведенным в формуле касательных, только учитывая выше введенные переменные.
Найти производную первого порядка от функции f(x)=cos(2x)+x-5. Она будет выглядеть следующим образом: f1(x)=-2sin(2x)+1.
Найти производную второго порядка от функции f(x)=cos(2x)+x-5. Она будет выглядеть следующим образом: f2(x)=-4cos(2x).
Заполнить ячейки следующим образом (обратить внимание на названия и номера столбцов при заполнении - они должны быть такими же, как на рисунке):
В итоге получается следующее:
В ячейку G1 ввести e, а в G2 ввести число 0,00001.
В ячейку H1 ввести c, а в H2 ввести число 6, так как c=b (см. ячейку F2).
В ячейку I1 ввести f(c), а в I2 ввести формулу =COS(2*H2)+H2-5.
Заполнить ячейки последовательно следующим образом (обратить внимание на названия и номера столбцов при заполнении - они должны быть такими же, как на рисунке):
В ячейку A6 ввести формулу =E5.
В ячейку F6 ввести формулу =I5.
Выделить диапазон ячеек B5:E5 и маркером автозаполнения заполнить диапазон ячеек B6:E6.
Выделить диапазон ячеек G5:K5 и маркером автозаполнения заполнить диапазон ячеек G6:K6.
Выделить диапазон ячеек A6:K6 и методом протягивания заполнить все нижестоящие ячейки до получения ответа в одной из ячеек столбца K (диапазон ячеек A6:K9).
В итоге получаем следующее:
Ответ: Корень уравнения cos(2x)+x-5=0 равен 5,32976.
Иванов Иван
При прохождении темы численные методы учащиеся уже умеют работать с электронными таблицами и составлять программы на языке паскаль. Работа комбинированного характера.Расчитана на 40 минут. Цель работы повторить и закрепить навыки паботы с программами EXCEL, ABCPascal. Материал содержит 2 файла. Один содержит теоретический материал, так как он и предлагается ученику. Во 2-м файле пример работы ученика Иванова Ивана.
Скачать:
Предварительный просмотр:
Решение уравнений
Аналитическое решение некоторых уравнений, содержащих, например тригонометрические функции может быть получено лишь для единичных частных случаев. Так, например, нет способа решить аналитически даже такое простое уравнение, как cos x=x
Численные методы позволяют найти приближенное значение корня с любой заданной точностью.
Приближённое нахождение обычно состоит из двух этапов:
1) отделение корней, т.е. установление возможно точных промежутков , в которых содержится только один корень уравнения;
2) уточнение приближённых корней, т.е. доведение их до заданной степени точности.
Мы будем рассматривать решения уравнений вида f(x)=0. Функция f(x) определена и непрерывна на отрезке [а.Ь]. Значение х 0 называется корнем уравнения если f(х 0 )=0
Для отделения корней будем исходить из следующих положений:
- Если f(a)* f(b] \a, b\ существует, по крайней мере, один корень
- Если функция y = f(x) непрерывна на отрезке , и f(a)*f(b) и f "(x) на интервале (a, b) сохраняет знак, то внутри отрезка [а, b] существует единственный корень уравнения
Приближённое отделение корней можно провести и графически. Для этого уравнение (1) заменяют равносильным ему уравнением р(х) = ф(х), где функции р(х) и ф(х] более простые, чем функция f(x). Тогда, построив графики функций у = р(х) и у = ф(х), искомые корни получим, как абсциссы точек пересечения этих графиков
Метод дихотомии
Для уточнения корня разделим отрезок [а, b] пополам и вычислим значение функции f(х) в точке x sr =(a+b)/2. Выбираем ту из половин или , на концах которых функция f(x) имеет противоположные знаки.. Продолжаем процесс деления отрезка пополам и проводим то же рассмотрение до тех пор, пока. длина станет меньше заданной точности . В последнем случае за приближённое значение корня можно принять любую точку отрезка (как правило, берут его середину). Алгоритм высокоэффективен, так как на каждом витке (итерации) интервал поиска сокращается вдвое; следовательно, 10 итераций сократят его в тысячу раз. Сложности могут возникнуть с отделением корня у сложных функций.
Для приближенного определения отрезка на котором находится корень можно воспользоваться табличным процессором, построив график функции
ПРИМЕР : Определим графически корень уравнения . Пусть f1(х) = х , a и построим графики этих функций. (График). Корень находится на интервале от 1 до 2. Здесь же уточним значение корня с точностью 0,001(на доске шапка таблицы)
Алгоритм для программной реализации
- а:=левая граница b:= правая граница
- m:= (a+b)/2 середина
- определяем f(a) и f(m)
- если f(a)*f(m)
- если (a-b)/2>e повторяем, начиная с пункта2
Метод хорд.
Точки графика функции на концах интервала соединяются хордой. Точка пересечения хорды и оси Ох (х*) и используется в качестве пробной. Далее рассуждаем так же, как и в предыдущем методе: если f(x a ) и f(х*) одного знака на интервале, нижняя граница переносится в точку х*; в противном случае – переносим верхнюю границу. Далее проводим новую хорду и т.д.
Осталось только уточнить, как найти х*. По сути, задача сводится к следующей: через 2 точки с неизвестными координатами (х 1 , у 1 ) и (х 2 , у 2 ) проведена прямая; найти точку пересечения этой прямой и оси Ох.
Запишем уравнение прямой по двум точках:
В точке пересечения этой прямой и оси Ох у=0, а х=х*, то есть
Откуда
процесс вычисления приближённых значений продолжается до тех пор, пока для двух последовательных приближений корня х„ и х п _1 не будет выполняться условие abs(xn-x n-1 ) е - заданная точность
Сходимость метода гораздо выше предыдущего
Алгоритм различается только в пункте вычисления серединной точки- пересечения хорды с осью абсцисс и условия останова (разность между двумя соседними точками пересечения)
Уравнения для самостоятельного решения: (отрезок в excel ищем самостоятельно)
- sin(x/2)+1=x^2 (х=1,26)
- x-cosx=0 (х=0,739)
- x^2+4sinx=0 (х=-1,933)
- x=(x+1) 3 (х=-2,325)
Дано уравнение F(x)=0 . Это - общий вид нелинейного уравнения с одним неизвестным. Как правило, алгоритм нахождения корня состоит из двух этапов:
1. Отыскание приближенного значения корня или отрезка на оси абсцисс, его содержащего.
2. Уточнение приближенного значения корня до некоторой точности.
На первом этапе применяется шаговый метод отделения корней, на втором - один из методов уточнения (метод половинного деления, метод Ньютона, метод Хорд или метод простой итерации).
Шаговый метод
В качестве примера рассмотрим уравнение x 2 - 11x + 30 = 0. Интервал поиска , шагh = 0,3. Решим его, используя специальные возможности пакета Excel. Последовательность действий (см. рис. 1):
1. Оформить заголовок в строке 1 «Численные методы решения нелинейных уравнений».
2. Оформить заголовок в строке 3 «Шаговый метод».
3. В ячейки A6 и C6 и B6 записать данные по задаче.
4. В ячейки B9 и C9 записать заголовки рядов - соответственно x иF(x).
5. В ячейки B10 и B11 ввести первые два значения аргумента - 3 и 3.3.
6. Выделить ячейки B5-B6 и протащить ряд данных до конечного значения (3,3), убедившись в правильном выстраивании арифметической прогрессии.
7. В ячейку C10 ввести формулу «=B10*B10-11*B10+30».
8. Скопировать формулу на остальные элементы ряда, используя прием протаскивания. В интервале C10:C18 получен ряд результатов вычисления функции F(x). Видно, что функция один раз меняет знак. Корень уравнения расположен в интервале .
9. Для построения графика зависимости F(x) используем Вставка - Диаграмма (тип «Точечная», маркеры соединяются гладкими кривыми).
Метод деления отрезка пополам
В качестве примера рассмотрим уравнение x 2 - 11x + 30 = 0. Интервал поиска , с точностью ε=0.01. Решим его, используя специальные возможности пакета Excel.
1. Ввести в ячейку B21 заголовок «Метод деления отрезков пополам».
2. Ввести в ячейку A23, C23, E23 данные по задачи.
3. В области B25:H25 оформить заголовок таблицы (ряд B - левая граница отрезка «a», ряд C - середина отрезка «x», ряд D - правая граница отрезка «b», ряд E - значение функции на левой границе отрезка «F(a)», ряд F - значение функции на середине отрезка «F(x)», ряд G - произведение «F(a)*F(x)», ряд H - проверка достижения точности « ê F(x)ê <е».
4. Ввести первоначальные значения концов отрезка: в ячейку B26 «4.8», в ячейку D26 «5.1».
5. Ввести в ячейку C26 формулу «=(B26+D26)/2».
6. Ввести в ячейку E26 формулу «=B26*B26-11*B26+30».
7. Ввести в ячейку F26 формулу «=C26*C26-11*C26+30».
8. Ввести в ячейку G26 формулу «=E26*F26».
9. Ввести в ячейку H26 формулу «=ЕСЛИ(ABS(F26)<0.01; ² корень² )».
1 0. Выделить область B21:H21 и протащить ее по вертикали вплоть до появления в ряду H сообщения «корень» (ячейка H29, H30).
Метод касательных (Ньютона)
1. Ввести в ячейку J23 заголовок «Метод касательной (Ньютона)».
2. Ввести в ячейку L23 текст «е=», а в ячейку M23 значение точности «0.00001».
3. В области K25:N25 оформить заголовок таблицы (ряд K - значение аргумента «x», ряд L - значение функции «F(x)», ряд M - производная функции «F ¢ (x)», ряд N - проверка достижения точности «ê F(x)ê <е».
4. В ячейку K26 ввести первоначальное значение аргумента «-2».
5. Ввести в ячейку L26 формулу «=K26*K26*K26+2*K26*K26+3*K26+5».
6. Ввести в ячейку M26 формулу «=3*K26*K26+4*K26+3».
7. Ввести в ячейку N26 формулу «=ЕСЛИ(ABS(L26)<$M$23;"корень")».
8. Ввести в ячейку K27 формулу «=K26-L26/M26».
9. Выделить область L27:N27 и протащить ее по вертикали вплоть до появления в ряду N сообщения «корень» (ячейка N30).
Метод хорд
В качестве примера рассмотрим уравнение x 3 +2x 2 +3x+5= 0. Точность ε=0.01. Решим его, используя специальные возможности пакета Excel.
1. Ввести в ячейку B32 заголовок «Метод хорд».
2. Ввести в ячейку C34 текст «е=», а в ячейку E34 значение точности «0.00001».
3. В области B36:D36 оформить заголовок таблицы (ряд B - значение аргумента «x», ряд C - значение функции «F(x)», ряд D - проверка достижения точности « ê F(x)ê <е».
4. В ячейку B37 и B38 ввести первоначальное значение аргумента «-2» и. «-1»
5. Ввести в ячейку С37 формулу «=B37*B37*B37+2*B37*B37+3*B37+5».
6. Ввести в ячейку D37 формулу «=ЕСЛИ(ABS(B38-B37)<$D$34;"корень")».
7. Ввести в ячейку B39 формулу «=B38-C38*(B38-B37)/(C38-C37)».
8. Выделить область C39:D39 и протащить ее по вертикали вплоть до появления в ряду D сообщения «корень» (ячейка D43).
Метод простой итерации
В качестве примера рассмотрим уравнение x 2 - 11x + 30 = 0. Интервал поиска , с точностьюe =0,05.
1. Ввести в ячейку K32 заголовок «Метод простой итерации»
2. Ввести в ячейку N34 текст «е=», а в ячейку O34 значение точности «0,05».
3. Выбрать функцию j (x), удовлетворяющую условию сходимости. В нашем случае такой функцией является функция S(x)=(x*x+30)/11.
4. В области K38:N38 оформить заголовок таблицы (ряд K - значение аргумента «x», ряд L - значение функции «F(x)», ряд M - значение вспомогательной функции «S(x)», ряд N - проверка достижения точности « ê F(x)ê <е».
5. В ячейку K39 ввести первоначальное значение аргумента «4.8».
6. Ввести в ячейку L39 формулу «=K39*K39-11*K39+30».
7. Ввести в ячейку M39 формулу «=(K39*K39+30)/11».
8. Ввести в ячейку N39 формулу «=ЕСЛИ(ABS(L39)<$O$34;"корень")».
9. Ввести в ячейку K40 формулу «=M39».
1 0. Скопировать ячейки L39:N39 в ячейки L40:N40.
1 1 . Выделить область L40:N40 и протащить ее по вертикали вплоть до появления в ряду N сообщения «корень» (ячейка N53).
Рис.1 Решение нелинейных уравнений в среде Excel