Решение нелинейных уравнений. Решение нелинейных уравнений методом простых итераций - реферат Найти корень нелинейного уравнения методом касательных

Нахождение корней нелинейного уравнения

Курсовая

Информатика, кибернетика и программирование

Блок-схемы реализующие численные методы -для метода дихотомии: Блок-схема для метода хорд: Блок-схема для метода Ньютона: Листинг программы unit Unit1; interfce uses Windows Messges SysUtils Vrints Clsses Grphics Controls Forms Dilogs TeEngine Series ExtCtrls TeeProcs Chrt Menus OleCtnrs StdCtrls xCtrls OleCtrls VCF1 Mth; type TForm1 = clssTForm GroupBox1: TGroupBox; OleContiner2: TOleContiner; MinMenu1: TMinMenu; N1: TMenuItem; Chrt1: TChrt; Series1:...

РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ И ГАЗА им. И.М. ГУБКИНА

Кафедра информатики

Курсовая работа

по дисциплине «Информатика».

Тема: « Нахождение корней нелинейного уравнения»

Выполнил: студентка

Манепова А. М

группы: ГИ-12-05

Проверил:

Москва, 2013


Задание на выполнение курсовой работы.


Теория нахождения корней нелинейного уравнения. Описание используемых численных методов.

1. Метод половинного деления (дихотомии)

2.Метод хорд

3. Метод Ньютона

Расчеты в математическом пакете Mat lab


Отчет о результатах вычисления приближенного значения корня уравнения в MS Excel.

Результаты расчета с использованием Побора Параметра


Результаты расчета с использованием Поиска Решений


Описание приложения созданного в среде Delphi.


Блок – схемы реализующие численные методы

Листинг программы


Изображение окна приложения


Анализ полученных результатов


Литература.


Задание на выполнение курсовой работы.

  1. расчет , выполненный в математическом пакете Matlab (Mathematica 5 .) (файл-функция для описания нелинейного уравнения, график, решение в символьном и численном виде).
  2. Нахождение корней нелинейного уравнения в электронных таблицах MS Excel (вид нелинейного уравнения, график нахождения корней нелинейного уравнения, найти корень нелинейного уравнения, используя средства условного анализа: «Побор параметра», «Поиск решения»).
  3. Создание приложения для нахождения корней нелинейного уравнения в среде Delphi (вид нелинейного уравнения, график на заданном интервале, для каждого метода: результаты табулирования функции на заданном интервале с заданным шагом, для каждого метода численного метода пользовательскую подпрограмму с передачей параметров). Результаты отобразить на форме в виде таблицы и в файле. Предусмотреть изменение точности значения (Е <= 0 , 001).
  4. вид уравнения


Теория нахождения корней нелинейного уравнения. Описание используемых численных методов.

Пусть задана функция , непрерывная вместе со своими несколькими производными. Требуется найти все или некоторые вещественные корни уравнения

.
Данная задача распадается на несколько подзадач. Во-первых, необходимо определить количество корней, исследовать их характер и расположение. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них интересующие нас корни и вычислить их с требуемой точностью e. Первая и вторая задачи решаются, как правило, аналитическими или графическими методами. В случае, когда ищутся только вещественные корни уравнения, полезно составить таблицу значений функции . Если в двух соседних узлах таблицы функция имеет разные знаки, то между этими узлами лежит нечетное число корней уравнения (по меньшей мере, один). Если эти узлы близки, то, скорее всего, корень между ними только один.
Найденные приближенные значения корней можно уточнить с помощью различных итерационных методов.

Рассмотрим три метода: 1) метод дихотомии (или деление отрезка пополам); 2) метод простой итерации и 3) метод Ньютона .

1. Метод половинного деления (дихотомии)


Пусть на отрезке задана непрерывная функция Если значения функции на концах отрезка имеют разные знаки, т.е. то это означает, что внутри данного отрезка находится нечетное число корней. Пусть для определенности корень один. Суть метода состоит в сокращении на каждой итерации вдвое длины отрезка. Находим середину отрезка по фомуле: Вычисляем значение функции и выбираем тот отрезок, на котором функция меняет свой знак . Новый отрезок вновь делим пополам. И этот процесс продолжаем до тех пор, пока длина отрезка не сравняется с наперед заданной погрешностью вычисления корня Е.

2.Метод хорд

При решении нелинейного уравнения методом хорд задаются интервалы , на котором существует только одно решение, и точность Ɛ. Затем через две точки с координатами (a,F(a)) и (b,F(b)) проводим отрезок прямой линии (хорду) и определяем точку пересечения этой линии с осью абцисс. Ели при этом F(a)*F(b) <0, то праву границу интервала пееносиим в точку x (b=x). Если указанное условие не выполняется, то в точку x переносится левая граница интервала (a=x). Поиск решения пекращается при достижении заданной точности |F(x)|>Ɛ. Вычисления ведутся до тех пор, пока не выполнится неравенство: . Итерационная формула метода хорд имеет вид:

3. Метод Ньютона

Чтобы численно решить уравнение методом простой итерации , его необходимо привести к следующей форме: , где — сжимающее отображение .

Для наилучшей сходимости метода в точке очередного приближения должно выполняться условие . Решение данного уравнения ищут в виде , тогда:

В предположении, что точка приближения «достаточно близка» к корню , и что заданная функция непрерывна , окончательная формула для такова:

С учётом этого функция определяется выражением:

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

Расчеты в математическом пакете Mat lab

В математическом пакете по условию задания был построен график функции и найден корень уравнения с использование символьного решения(solve ) и в численном виде используя встроенные функции: fzero и fsolve . Для описания моей функции использовала файл-функцию.

На следующем рисунке представлен графи функции:


Для записи команд использовала
M -файл:


В командном окне были получены следующие результаты:

r 1 =

r 2 =

r 3 =

r 4 =

8.0000

r5 =

7.9979 -8.0000


Отчет о результатах вычисления приближенного значения корня уравнения в MS Excel.

MS Excel был проведен расчет приближенного значения корня уравнения с помощью встроенных возможностей «Подбор параметров» и «Поиск решений». Для выбора начального приближения предварительно мной была построена диаграмма.

Результаты расчета с использованием Побора Параметра

x =-9 (исходя из диаграммы)

В результате использования Подбора Параметра был найден корень x =-8,01.


Результаты расчета с использованием Поиска Решений

В качестве начального приближения был выбран x =-9 (исходя из диаграммы)


После выполнения был получен следующий результат:

Поиск решения дал мне значение x = -8,00002


Описание приложения созданного в среде Delphi.

При создании приложения в среде Delphi в интерфейсе был предусмотрен вывод вида функции и графика. Нахождение корня нелинейного уравнения было реализовано с использование трех методов: Метод дихотомии, Метод Хорд и Метод Ньютона. В отличии от расчета в Excel , где корни находились с помощью подбора параметров и поиска решения, в программе предусмотрен ввод точности вычисления пользователем. Результаты расчета выводятся как в окно приложения так и в текстовый файл.


Блок – схемы реализующие численные методы

Блок-схема для метода дихотомии:


Блок-схема для метода хорд:


Блок-схема для метода Ньютона:

Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Menus, OleCtnrs,

StdCtrls, AxCtrls, OleCtrls, VCF1, Math;

type

TForm1 = class(TForm)

GroupBox1: TGroupBox;

OleContainer2: TOleContainer;

MainMenu1: TMainMenu;

N1: TMenuItem;

Chart1: TChart;

Series1: TPointSeries;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

Label1: TLabel;

Edit1: TEdit;

GroupBox2: TGroupBox;

GroupBox3: TGroupBox;

GroupBox4: TGroupBox;

Label2: TLabel;

Label3: TLabel;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Label4: TLabel;

Edit5: TEdit;

Label5: TLabel;

Edit7: TEdit;

Label7: TLabel;

F1Book1: TF1Book;

F1Book2: TF1Book;

F1Book3: TF1Book;

F1Book4: TF1Book;

Procedure N1Click(Sender: TObject);

Procedure N3Click(Sender: TObject);

Procedure FormCreate(Sender: TObject);

Procedure N4Click(Sender: TObject);

Procedure N5Click(Sender: TObject);

Private

{ Private declarations }

Public

{ Public declarations }

End;

const

xmin:real=-20;

xmax:real=20;

Form1: TForm1;

X,y,t,a,b,cor:real;

I,n:integer;

Fail:textfile;

implementation

{$R *.dfm}

function f(x:real):real;

begin

f:=(8+x)/(x*sqrt(sqr(x)-4));

end;

function f1(x:real):real;

begin

f1:=(-power(x,3)-16*x*x+32)/(x*X*sqrt(power(x*x-4,3)));

end;

procedure metoddix(ta,tb,eps:real;var xk:real;var kolvo: integer);

begin

kolvo:=0;

repeat

xk:=(ta+tb)/2;

kolvo:=kolvo+1;

Form1.F1book1.NumberRC:=xk;

Form1.F1book1.NumberRC:=f(xk);

if f(ta)*f(xk)<0 then tb:=xk

else ta:=xk;

until (abs(f(xk))<=eps);

end;

procedure metodhord(ta,tb,eps:real;var xk:real;var kolvo: integer);

begin

kolvo:=0;

repeat

xk:= ta-f(ta)*(ta-tb)/(f(ta)-f(tb));

kolvo:=kolvo+1;

Form1.F1book2.NumberRC:=xk;

Form1.F1book2.NumberRC:=f(xk);

if f(ta)*f(xk)<0 then tb:=xk

else ta:=xk;

until (abs(f(xk))<=eps);

end;

procedure metodnyutona(ta,eps:real;var xk:real;var kolvo: integer);

begin

kolvo:=0;

repeat

xk:= ta-f(ta)/f1(ta);

ta:=xk;

kolvo:=kolvo+1;

Form1.F1book3.NumberRC:=xk;

Form1.F1book3.NumberRC:=f(xk);

until (abs(f(xk))<=eps);

end;

procedure TForm1.N1Click(Sender: TObject);

begin

x:=xmin;

i:=0;

while x<=xmax do

begin

if abs(x)>5 then

Begin

I:=i+1;

Y:=f(x);

Series1.Addxy(x,y);

F1book4.NumberRC:=x;

F1book4.NumberRC:=y;

End;

x:=x+0.5;

end;

end;

procedure TForm1.N3Click(Sender: TObject); // Вычисление корня методом половинного деления

begin

F1book1.ClearRange(1,1,100,2,3);

t:=strtofloat(Edit1.Text);

a:=strtofloat(Edit2.Text);

b:=strtofloat(Edit3.Text);

metoddix(a,b,t,cor,n);

F1book4.TextRC:=" дихотомия ";

F1book4.TextRC:=" корень =";

F1book4.NumberRC:=cor;

F1book4.TextRC:="y=";

F1book4.NumberRC:=f(cor);

F1book4.TextRC:=" количество итераций =";

F1book4.NumberRC:=n;

Append(fail);

Writeln(fail);

Writeln(fail," Расчет методом дихотомии ");

closefile(fail);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Assignfile(fail," отчет .txt");

Rewrite(fail);

Closefile(fail);

end;

procedure TForm1.N4Click(Sender: TObject); // Вычисление корня методом хорд

begin

F1book2.ClearRange(1,1,100,2,3);

t:=strtofloat(Edit1.Text);

a:=strtofloat(Edit5.Text);

b:=strtofloat(Edit4.Text);

metodhord(a,b,t,cor,n);

F1book4.TextRC:=" хорды ";

F1book4.TextRC:=" корень =";

F1book4.NumberRC:=cor;

F1book4.TextRC:="y=";

F1book4.NumberRC:=f(cor);

F1book4.TextRC:=" количество итераций =";

F1book4.NumberRC:=n;

Assignfile(fail," отчет .txt");

Append(fail);

Writeln(fail);

Writeln(fail," Расчет методом хорд ");

writeln(fail,"Точность расчета = ",t:10:7);

Writeln(fail,"Начальное приближение:a = ",a:8:3," b = ",b:8:3);

writeln(fail, " Найден корень : x = ",cor:8:3, " y=f(x)= ",f(cor):8:6);

writeln(fail, "Количество итераций = ",n);

closefile(fail);

end;

procedure TForm1.N5Click(Sender: TObject); // Вычисление корня методом Ньютона

begin

F1book3.ClearRange(1,1,100,2,3);

t:=strtofloat(Edit1.Text);

a:=strtofloat(Edit7.Text);

metodnyutona(a,t,cor,n);

F1book4.TextRC:=" Ньютона ";

F1book4.TextRC:=" корень =";

F1book4.NumberRC:=cor;

F1book4.TextRC:="y=";

F1book4.NumberRC:=f(cor);

F1book4.TextRC:=" количество итераций =";

F1book4.NumberRC:=n;

Assignfile(fail," отчет .txt");

Append(fail);

Writeln(fail);

Writeln(fail," Расчет методом Ньютона ");

writeln(fail,"Точность расчета = ",t:10:7);

Writeln(fail,"Начальное приближение:a = ",a:8:3," b = ",b:8:3);

writeln(fail, " Найден корень : x = ",cor:8:3, " y=f(x)= ",f(cor):8:6);

writeln(fail, "Количество итераций = ",n);

Closefile(fail);

end;

end.


Изображение окна приложения

Первоначальный интерфейс имеет следующий вид:

После выполнения расчетов при E <= 0,001:

В качестве отчета был сформирован файл «Отчет. txt .»:


Анализ полученных результатов

В соответствии с заданием на курсовую работу в математическом пакете мною был найден корень нелинейного уравнения (x =-8) и построен график.

В электронных таблицах был найден корень уравнения с помощью двух встроенных возможностей «Подбор параметра» и «Поиск решения» , при этом «Поиск решения» все же дал более точное значение. Результаты практически совпали с результатами в Matlab .

Для поиска корня в среде Delphi пользователь имеет возможность ввести точность вычисления с клавиатуры. Тестирование программы показало, что при одной и той же заданной точности вычисления метод Ньютона находит искомое значение при меньшем числе итераций.

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


Литература.

  1. Амосов А.А. и др. вычислительные методы для инженеров М., Высшая школа, 1994.
  2. Фаронов В.В. Delphi. Программирование на зыке высокого уровня

3 . Уокенбах Д . Microsoft Office Excel 2007. Библия пользователя

Волков В.Б. Понятный самоучитель Excel 2010

где функция f (x ) определена и непрерывна на конечном или бесконечном интервале x (a , b ) .

Всякое значение

ξ ,

обращающее

функцию f (x )

называется корнем

уравнения

функции f (x ) .

Число ξ

называется корнем k-й кратности,

если при x = ξ вместе с функцией

f (x)

равны нулю и ее производные до порядка (k-1) включительно:

(k − 1)

Однократный корень называется простым . Два уравнения называются равносильными (эквивалентными), если множества их решений совпадают.

Нелинейные уравнения с одной переменной подразделяются на алгебраические (функция f (x ) является алгебраической) и трансцендентные в противном случае. Уже на примере алгебраического многочлена известно, что нули f (x ) могут быть как действительными, так и комплексными. Поэтому более точная постановка задачи состоит в нахождении корней уравнения (6.1), расположенных в заданной области комплексной плоскости. Можно рассматривать также задачу нахождения действительных корней, расположенных на заданном отрезке. Иногда, пренебрегая точностью формулировок, просто говорят, что требуется решить уравнение (6.1). Большинство алгебраических и трансцендентных нелинейных уравнений аналитически (т.е. точно) не решается, поэтому на практике для нахождения корней используются численные методы. В связи с этим под решением уравнения (6.1) будем понимать задачу приближенного нахождения корней

уравнения вида (6.1). При этом под близостью приближенного значения x к корню ξ уравнения, как правило, понимают выполнение неравенства

| ξ − x | < ε при малых ε > 0 ,

т.е. абсолютную погрешность приближенного равенства x ≈ ξ .

Используют также и относительную погрешность, т.е. величину | ξ − x | .

Нелинейная функция f (x ) в своей области определения может иметь конечное или бесконечное количество нулей или может не иметь их вовсе.

Численное решение нелинейного уравнения (6.1) заключается в нахождении с заданной точностью значений всех или некоторых корней уравнения и распадается на несколько подзадач:

во-первых, надо исследовать количество и характер корней (вещественные или комплексные, простые или кратные),

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

в-третьих, выбрать интересующие нас корни и вычислить их с требуемой точностью.

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

6.1. Отделение корней нелинейного уравнения

Для функций общего вида нет универсальных способов решения задачи отделения корней. Отметим два простых приема отделения действительных корней уравнения – табличный и графический .

Первый прием состоит в вычислении таблицы значений функции в заданных точках x i , расположенных на условно небольшом расстоянии h одна от другой и использовании следующих теорем математического анализа:

1. Если функция y=f(x) непрерывна на отрезке [а,b] и f(a)f(b)<0, то внутри отрезка существует по крайней мере один корень уравнения f(x)=0.

2. Если функция y=f(x) непрерывна на отрезке [а,b], f(a)f(b) < 0 и f′(x) на интервале (a,b) сохраняет знак, то внутри отрезка существует единственный корень уравнения f(x)=0.

Выполнив вычисление значений функции в этих точках (или только определив знаки f (x i ) ), сравнивают их в соседних точках, т.е. проверяют, не

выполняется ли на отрезке [ x i − 1 , x i ] условие f (x i − 1 ) f (x i ) ≤ 0 . Таким образом, если при некотором i числа f (x i − 1 ) и f (x i ) имеют разные знаки, то это означает, что на интервале (x i − 1 , x i ) уравнение имеет по крайней мере

один действительный корень нечетной кратности (точнее - нечетное число корней). Выявить по таблице корень четной кратности очень сложно. Если заранее известно количество корней в исследуемой области, то, измельчая шаг поиска h , таким процессом можно либо их локализовать, либо довести

процесс до состояния, позволяющего утверждать наличие пар корней, не различимых с точностью h = ε . Это хорошо известный способ перебора.

По таблице можно построить график функции y = f (x ) . Корнями

уравнения (6.1) являются те значения х , при которых график функции пересекает ось абсцисс. Этот способ более нагляден и даёт неплохие приближённые значения корней. Построение графика функции даже с малой точностью обычно дает представление о расположении и характере корней уравнения (иногда позволяет выявить даже корни четной кратности). Во многих задачах техники такая точность уже достаточна.

Если построение графика функции y = f (x ) вызывает затруднение, следует преобразовать исходное уравнение к виду ϕ 1 (x ) = ϕ 2 (x ) таким образом, чтобы графики функций y = ϕ 1 (x ) и y = ϕ 2 (x ) были достаточно

просты. Абсциссы точек пересечения этих графиков и будут корнями уравнения.

Пример: Отделить корни уравнения x 2 − sin x − 1 = 0 .

Представим уравнение в виде:

x 2 − 1= sin x

и построим графики

2 −

y = sin x

Совместное

рассмотрение

графиков

позволяет сделать заключение, что данное

уравнение

ξ 1 [− 1,0] и

ξ 2 .

Допустим, что искомый корень уравнения отделен, т.е. найден отрезок , на котором имеется только один корень уравнения. Для вычисления корня с требуемой точностью ε обычно применяют какую-либо итерационную процедуру уточнения корня, строящую числовую последовательность значений x n , сходящуюся к искомому корню уравнения.

Начальное приближение x 0 выбирают на отрезке , продолжают

вычисления, пока не выполнится неравенство x n − 1 − x n < ε , и считают, что x n – есть корень уравнения, найденный с заданной точностью. Имеется

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

Последовательность x

Сходящаяся

к пределу

x * ,

скорость

сходимости порядка α , если при n → ∞

− x *

− x *

n + 1

α =1 сходимость называется линейной, при 1<α <2 – сверхлинейной, при α =2 – квадратичной. С ростом α алгоритм, как правило, усложняется и условия сходимости становятся более жесткими.

Приближённые значения корней уточняют различными итерационными методами. Рассмотрим наиболее эффективные из них.

6.2. Метод половинного деления (бисекции, дихотомии)

Пусть функция f (x ) определена и непрерывна при всех x [ a , b ] и на меняет знак, т.е. f (a ) f (b ) < 0 . Тогда согласно теореме 1 уравнение имеет на (a , b ) хотя бы один корень. Возьмем произвольную точку c (a , b ) . Будем называть в этом случае отрезок промежутком

существования, корня, а точку c - пробной точкой. Поскольку речь здесь идет лишь о вещественных функциях вещественной переменной, то

вычисление значения f (c ) приведет к какой-либо одной из следующих

взаимоисключающих ситуаций:

А) f (a ) f (c ) < 0 Б) f (c ) f (b ) < 0 В) f (c ) = 0

Если f (c ) = 0 , то корень уравнения найден. В противном случае из двух частей отрезка [ a , c ] или [ c , b ] выберем ту, на концах которой функция имеет разные знаки, так как один из корней лежит на этой половине.

Затем повторяем процесс для выбранного отрезка.

называют

дихотомии. Наиболее употребительным

метода дихотомии

c(a1 )

является

метод половинного

деления,

реализующий

самый простой способ

b(b1 )

выбора пробной точки – деление

промежутка

существования

Рис. 6.1. Метод дихотомии

За один шаг метода половинного деления промежуток существования корня сокращается ровно вдвое. Поэтому, если за k -е приближение к корню ξ уравнения примем точку x k , являющуюся серединой полученного на k -м шаге отрезка [ a k , b k ] , полагая a 0 = a , b 0 = b , то придем к неравенству

ξ−

k < b − a

которое, с одной стороны, позволяет утверждать, что последовательность (x k ) имеет предел – искомый корень ξ уравнения (6.1), с другой стороны, является априорной оценкой абсолютной погрешности равенства x k ≈ ξ , что дает возможность подсчитать число шагов (итераций) метода половинного деления, достаточное для получения корня ξ с заданной точностью ε .Для

чего нужно лишь найти наименьшее натуральное k удовлетворяющее неравенству

b 2 − k a < ε .

Проще говоря, если требуется найти корень с точностью ε , то продолжаем деление пополам до тех пор, пока длина отрезка не станет меньше 2ε . Тогда середина последнего отрезка даст значения корня с требуемой точностью.

Дихотомия проста и очень надёжна: к простому корню она сходится для любых непрерывных функций f (x ) , в том числе недифференцируемых;

при этом она устойчива к ошибкам округления. Скорость сходимости невелика: за одну итерацию точность увеличивается примерно вдвое, т.е. уточнение трёх цифр требует 10 итераций. Зато точность ответа гарантируется.

К основным недостаткам метода дихотомии можно отнести следующие.

1. Для начала расчёта необходимо найти отрезок, на котором функция изменяет знак. Если в этом отрезке несколько корней, то заранее неизвестно, к какому из них сойдётся процесс (хотя к одному из них обязательно сойдётся).

2. Метод неприменим к корням чётной кратности.

3. Для корней нечётной высокой кратности он сходится, но менее точен и менее устойчив к ошибкам округления, возникающим при вычислении значений функции.

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

Один из недостатков дихотомии – сходимость неизвестно к какому корню – характерен почти для всех итерационных методов. Его можно устранить удалением уже найденного корня.

Если x 1 есть простой корень уравнения и f (x ) липшиц-непрерывна, то вспомогательная функция g (x ) = f (x ) /(x − x 1 ) непрерывна, причём все нули функций f(x) и g(x) совпадают, за исключением x 1 , так как g (x 1 ) ≠ 0. Если x 1 - кратный корень уравнения, то он будет нулём g(x) кратности на единицу

меньше; остальные нули обеих функций по-прежнему будут одинаковы. Поэтому найденный корень можно удалить, т.е. перейти к функции

g(x) . Тогда отыскание остальных нулей

f (x ) сведётся к отысканию нулей

g(x) . Когда мы найдём какой-нибудь

x 2 функции g(x) ,

корень тоже можно

удалить, вводя

вспомогательную функцию

ϕ (x ) = g (x ) /(x − x 2 ).

последовательно

найти все

уравнения.

При использовании описанной процедуры необходимо учитывать

следующую тонкость. Строго говоря,

мы находим

лишь приближённое

значение корня x ≈ x .

А функция g (x )

F (x ) /(x − x 1 ) имеет нуль в точке x 1 и

полюс в близкой к ней точке

x 1 (рис. 6.2); только на некотором расстоянии от

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

g(x)

Кроме того, в любом методе

g(x)

окончательные

итерации

определяемого

g(x)

выполнять не по функциям типа g(x) , а

g(x)

по исходной функции f (x ) . Последние

итерации,

вычисленные

g(x) , используются при этом в качестве

Рис. 6.2. Иллюстрация возникновения

нулевого

приближения.

Особенно

погрешности в окрестности корня

важно это при отыскании многих

корней, так как чем больше корней

вспомогательной

соответствуют остальным нулям функции

f (x) .

G (x ) = f (x ) / ∏ (x − x i

Учитывая эти предосторожности и вычисляя корни с 8 – 10 верными

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

расположении которых заранее ничего не известно (в том числе корней

высокой кратности р 5).

6.3. Метод хорд

Логично предположить, что в семействе методов дихотомии можно достичь несколько лучших результатов, если отрезок делить точкой c не пополам, а пропорционально величинам ординат f (a ) и f (b ) .

Это означает, что точку c есть смысл находить, как абсциссу точки пересечения

оси Ох с прямой, проходящей через точки A (a , f (a )) и B (b , f (b )) , иначе, с хордой

дуги графика функции f (x ) . Такой способ

выбора пробной точки, называют методом хорд или методом линейной интерполяции .

Запишем уравнение прямой проходящей через точки А и В :

y− f (a)

x− a

f (b) − f (a)

b− a

и, полагая y = 0, находим:

f (a)(b− a)

c = a − f (b) − f (a)

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

n+ 1

f (an )

− a

f (bn ) − f (an )

Длина промежутка локализации корня при этом может не стремится к нулю, поэтому обычно счет ведется до совпадения значений двух очередных приближений с точностью ε . Метод сходится линейно, но близость двух очередных приближений не всегда означает, что корень найден с требуемой точностью. Поэтому, если 0 < m ≤ | f ′ (x )| ≤ M , x [ a , b ] ,

M − m

Более надежным практическим критерием окончания итераций в методе хорд является выполнение неравенства

− x

n− 1

< ε.

2 x n− 1 − x n − x n− 2

6.4. Метод простой итерации

Заменим уравнение f (x ) = 0 эквивалентным ему уравнением

x = ϕ (x ) .

сходилась к корню данного уравнения

знакопостоянная функция. Выберем некоторое нулевое приближение х 0 и вычислим дальнейшие приближения по формулам

x k + 1 = ϕ (x k ) , k = 0,1,2,..

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

требованиям должна удовлетворять функция ϕ (x ) , чтобы последовательность (x k ) , определяемая (6.7) была сходящаяся, и как

построить функцию ϕ (x ) по функции f (x ) , чтобы эта последовательность

f (x) = 0 .

Пусть ϕ (x ) - непрерывная на некотором отрезке [ a , b ] функция. Если определяемая формулой (6.7) последовательность (x k ) сходится к

некоторому числу ξ , т.е. ξ = lim x k , то, переходя к пределу в равенстве

k →∞

(6.7), получаем ξ = ϕ (ξ ) . Это равенство означает, что ξ - корень

уравнения (6.6) и эквивалентного ему исходного уравнения.

Нахождение корня уравнения (6.6) называется задачей о неподвижной точке. Существование и единственность этого корня основывается на принципе сжимающих отображений.

Определение: Непрерывная функция ϕ (x ) называется сжимающей на отрезке [ a , b ] если:

1) ϕ (x ) , x

2) q (0,1) : |ϕ (x 2 )− ϕ (x 1 )|≤ q |x 2 − x 1 |, x 1 ,x 2 .

Второе условие для дифференцируемой на [ a , b ] функции равносильно выполнению неравенства ϕ " (x ) ≤ q < 1 на этом отрезке.

Метод простых итераций имеет простую геометрическую интерпретацию: нахождение корня уравнения f(x)=0 равносильно обнаружению неподвижной точки функции x= ϕ (x) , т.е. точки пересечения

графиков функций y= ϕ (x) и y=x . Метод простой итерации не всегда обеспечивает сходимость к корню уравнения. Достаточным условием сходимости этого метода является выполнение неравенства ϕ " (x ) ≤ q < 1 на

Проиллюстрируем (рис. 6.4) геометрически поведение сходящейся итерационной последовательности (x k ) , не отмечая значения ϕ (x k ) , а

отражая их на ось абсцисс с помощью биссектрисы координатного угла

y= x .

Рис.6.4 Сходимость метода простой итерации при ϕ " (x ) ≤ q < 1 .

Как видно из рис. 6.4, если производная ϕ ′ (x ) < 0 , то последовательные приближения колеблются около корня, если же производная ϕ ′ (x ) > 0 , то

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

Теорема: Пусть ϕ (x ) определена и дифференцируема на [ a , b ] . Тогда, если выполняются условия:

1) ϕ

(x )

x [ a, b]

x (a, b)

2) q : |ϕ (x )|≤ q < 1

3) 0

x [ a, b]

то уравнение x = ϕ (x ) имеет на [ a , b ] единственный корень ξ и к этому

корню сходится определяемая методом простых итераций

последовательность (x k ) , начинающаяся с x 0 [ a , b ] .

При этом справедливы следующие оценки погрешности:

k − 1

|ξ − x |≤ 1 − q |x

−x

ξ − x k

1 − q

x 1 − x 0

если ϕ (x ) > 0

ξ − x k

− x k − 1

если ϕ (x ) < 0

Вблизи корня итерации сходятся примерно как геометрическая прогрессия со

x k − x k − 1

знаменателем

Метод имеет линейную скорость

x k − 1 − x k − 2

сходимости. Очевидно, что чем меньше

q (0,1)

Тем быстрее сходимость.

образом, успех

от того, насколько удачно

выбрано ϕ (x ) .

Например, для извлечения квадратного корня, т.е. для решения

уравненияx 2 = a , можно положить ϕ (x ) = a / x

или ϕ

(x ) = 1/ 2

и соответственно написать такие итерационные процессы:

x k + 1 =

x k + 1

Первый процесс вообще не сходится, а второй сходится при любом х 0 > 0 и

сходится очень быстро, так как ϕ "(ξ ) = 0

Второй процесс используется при

извлечении корня в "запаянных" командах микрокалькуляторов.

Пример 1: Найти методом итерации с точностью ε =

10− 4 наименьший

корень уравнения

f (x )= x 3 + 3x 2 − 1= 0 .

Решение : Отделяем корни:

−4

−3

−2

− 1 0

f (x)

Очевидно, уравнение имеет три корня, расположенные на отрезках [ − 3; 2] , [1;0] и . Наименьший находится на отрезке [ 3; 2] .

Т.к. на этом отрезке x 2 0 , разделим уравнение на x 2 . Получим:

x +3

= 0 => x =

3

x2

x2

|ϕ

2 x

3

1 , т.е.

q=

(x )|=

3 x ≤ −2

3 x ≤ −2

Пусть x 0

=− 2.5 , тогда δ

= max[3x 0 ;2 x 0 ] = 0.5

x = ϕ (2.5) =

3

=− 2.84 [3,2]

обозначим

Проверим выполнение условия теоремы:

ϕ (x )= x 2 3

(2.5)2

|ϕ (x 0)x 0|= 0.34< (1q )

0

1

(x )

q n ε =>

2 10

=> n 6

1q

3 4n

xn

ϕ (x n )=

3

x2

2.50000

2.84000

2.84000

2.87602

2.87602

2.87910

2.87910

2.87936

2.87936

2.87938

2.87938

2.87938

Замечание: Для нахождения двух других корней исходного уравнения методом простой итерации уже нельзя пользоваться формулой: x = x 1 2 3 ,

2 x

3

=−∞,

2 x

3

max | ϕ (x )| =

1 x 0

1 x 0

1 x 0

Условие сходимости на этих отрезках не выполнено.

Метод релаксации - один из вариантов метода простой итерации, в котором

ϕ (x) = x τ f (x) ,

т.е. равносильное уравнение имеет вид:

x = x τ f (x) .

Приближения к корню вычисляются по формулам

xn + 1 = xn τ f (xn ),

Если f (x ) < 0 , то рассматривают уравнение f (x ) = 0 .

функции f (x ) . Пусть

0 α f (x ) γ <∞

Параметр τ подбирается таким, чтобы производная ϕ (x ) = 1 τ f (x ) в нужной области была малой по модулю.

1 τ γ ϕ(x ) 1 λα

и значит,

|ϕ (x )|q (τ ) = max{|1τα |,|1τγ |}

Уравнения, в которых содержатся неизвестные функции, произведенные в степень больше единицы, называются нелинейными.
Например, y=ax+b – линейное уравнение, х^3 – 0,2x^2 + 0,5x + 1,5 = 0 – нелинейное (в общем виде записывается как F(x)=0).

Системой нелинейных уравнений считается одновременное решение нескольких нелинейных уравнений с одной или несколькими переменными.

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

Рассмотрим несколько методов уточнения корней с определенно заданной точностью.

Методы численного решения нелинейных уравнений

Метод половинного деления.

Суть метода половинного деления заключается в делении интервала пополам (с=(a+b)/2) и отбрасывании той части интервала, в которой отсутствует корень, т.е. условие F(a)xF(b)

Рис.1. Использование метода половинного деления при решении нелинейных уравнений.

Рассмотрим пример.


Разделим отрезок на 2 части: (a-b)/2 = (-1+0)/2=-0,5.
Если произведение F(a)*F(x)>0, то начала отрезка a переносится в x (a=x), иначе, конец отрезка b переносится в точку x (b=x). Полученный отрезок делим опять пополам и т.д. Весь произведенный расчет отражен ниже в таблице.

Рис.2. Таблица результатов вычислений

В результате вычислений получаем значение с учетом требуемой точности, равной x=-0,946

Метод хорд.

При использовании метода хорд, задается отрезок , в котором есть только один корень с установленной точностью e. Через точки в отрезке a и b, которые имеют координаты (x(F(a);y(F(b)), проводится линия (хорда). Далее определяются точки пересечения этой линии с осью абсцисс (точка z).
Если F(a)xF(z)

Рис.3. Использование метода хорд при решении нелинейных уравнений.

Рассмотрим пример. Необходимо решить уравнение х^3 – 0,2x^2 + 0,5x + 1,5 = 0 с точностью до e

В общем виде уравнение имеет вид: F(x)= х^3 – 0,2x^2 + 0,5x + 1,5

Найдем значения F(x) на концах отрезка :

F(-1) = - 0,2>0;

Определим вторую производную F’’(x) = 6x-0,4.

F’’(-1)=-6,4
F’’(0)=-0,4

На концах отрезка условие F(-1)F’’(-1)>0 соблюдается, поэтому для определения корня уравнения воспользуемся формулой:


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


Рис.4. Таблица результатов вычислений

В результате вычислений получаем значение с учетом требуемой точности, равной x=-0,946

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

Данный метод основывается на построении касательных к графику, которые проводятся на одном из концов интервала . В точке пересечения с осью X (z1) строится новая касательная. Данная процедура продолжается до тех пор, пока полученное значение не будет сравним с нужным параметром точности e (F(zi)

Рис.5. Использование метода касательных (Ньютона) при решении нелинейных уравнений.

Рассмотрим пример. Необходимо решить уравнение х^3 – 0,2x^2 + 0,5x + 1,5 = 0 с точностью до e

В общем виде уравнение имеет вид: F(x)= х^3 – 0,2x^2 + 0,5x + 1,5

Определим первую и вторую производные: F’(x)=3x^2-0,4x+0,5, F’’(x)=6x-0,4;

F’’(-1)=-6-0,4=-6,4
F’’(0)=-0,4
Условие F(-1)F’’(-1)>0 выполняется, поэтому расчеты производим по формуле:

Где x0=b, F(a)=F(-1)=-0,2

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


Рис.6. Таблица результатов вычислений

В результате вычислений получаем значение с учетом требуемой точности, равной x=-0,946

Математика как наука возникла в связи с необходимостью решения практических задач: измерений на местности, навигации и т.д. Вследствие этого математика была численной математикой и ее целью было получение решения в виде числа. Численное решение прикладных задач всегда интересовало математиков. Крупнейшие представители прошлого сочетали в своих исследованиях изучение явлений природы, получение их математического описания, т.е. его математической модели и его исследование. Анализ усложненных моделей потребовал создания специальных, обычно численных методов решения задач. Названия некоторых таких методов свидетельствуют о том, что их разработкой занимались крупнейшие ученые своего времени. Это методы Ньютона, Эйлера, Лобачевского, Гаусса, Чебышева, Эрмита.

Настоящее время характерно резким расширением приложений математики, во многом связанным с созданием и развитием средств вычислительной техники. В результате появления ЭВМ менее чем за 40 лет скорость выполнения операций возросла от 0,1 операции в секунду при ручном счете до 10 операций в секунду на современных ЭВМ.

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

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

во-первых, только применение математических методов позволяет придать количественный характер исследованию того или иного явления материального мира;

во-вторых, и это главное, только математический способ мышления делает объекта. Такой метод исследования называют вычислительным экспериментом исследование в полной мере объективным.

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

Математические модели.

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

Итак, применение ЭВМ для решения любой научной или инженерной задачи неизбежно связано с переходом от реального процесса или явления к его математической модели. Таким образом, применение моделей в научных исследованиях и инженерной практике есть искусство математического моделирования.

Моделью обычно называют представляемую или материально реализуемую систему, воспроизводящую основные наиболее существенные черты данного явления.

Основные требования, предъявляемые к математической модели - адекватность рассматриваемому явлению, т.е. оно должно достаточно отражать характерные черты явления. Вместе с тем она должна обладать сравнительной простотой и доступностью исследования.

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

Математические модели можно классифицировать по разным признакам: статические и динамические, сосредоточенные и распределенные; детерминированные и вероятностные.

Рассмотрим задачу нахождения корней нелинейного уравнения

Корнями уравнения (1) называются такие значения х, которые при подстановке обращают его в тождество. Только для простейших уравнений удается найти решение в виде формул, т.е. аналитическом виде. Чаще приходится решать уравнения приближенными методами, наибольшее распространение среди которых, в связи с появлением компьютеров, получили численные методы.

Алгоритм нахождения корней приближенными методами можно разбить на два этапа. На первом изучается расположение корней и проводится их разделение. Находится область , в которой существует корень уравнения или начальное приближение к корню x 0 . Простейший способ решения этой задачи является исследование графика функции f(x) . В общем же случае для её решения необходимо привлекать все средства математического анализа.

Существование на найденном отрезке , по крайней мере, одного корня уравнения (1) следует из условия Больцано:

f(a)*f(b)<0 (2)

При этом подразумевается, что функция f(x) непрерывна на данном отрезке. Однако данное условие не отвечает на вопрос о количестве корней уравнения на заданном отрезке . Если же требование непрерывности функции дополнить ещё требованием её монотонности, а это следует из знакопостоянства первой производной, то можно утверждать о существовании единственного корня на заданном отрезке.

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

где вещественные коэффициенты.

  • а) Уравнение степени n имеет n корней, среди которых могут быть как вещественные, так и комплексные. Комплексные корни образуют комплексно-сопряженные пары и, следовательно, уравнение имеет четное число таких корней. При нечетном значении n имеется, по меньшей мере, один вещественный корень.
  • б) Число положительных вещественных корней меньше или равно числа переменных знаков в последовательности коэффициентов. Замена х на -х в уравнении (3) позволяет таким же способом оценить число отрицательных корней.

На втором этапе решения уравнения (1), используя полученное начальное приближение, строится итерационный процесс, позволяющий уточнять значение корня с некоторой, наперед заданной точностью. Итерационный процесс состоит в последовательном уточнении начального приближения. Каждый такой шаг называется итерацией. В результате процесса итерации находится последовательность приближенных значений корней уравнения. Если эта последовательность с ростом n приближается к истинному значению корня x , то итерационный процесс сходится. Говорят, что итерационный процесс сходится, по меньшей мере, с порядком m, если выполнено условие:

где С>0 некоторая константа. Если m=1 , то говорят о сходимости первого порядка; m=2 - о квадратичной, m=3 - о кубической сходимостях.

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

или малости невязки:

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

Существует много различных методов решения нелинейных уравнений, некоторые из них представлены ниже:

  • 1)Метод итераций . При решении нелинейного уравнения методом итераций воспользуемся записью уравнения в виде x=f(x). Задаются начальное значение аргумента x 0 и точность е. Первое приближение решения x 1 находим из выражения x 1 =f(x 0), второе - x 2 =f(x 1) и т.д. В общем случае i+1 приближение найдем по формуле xi+1 =f(xi). Указанную процедуру повторяем пока |f(xi)|>е. Условие сходимости метода итераций |f"(x)|
  • 2)Метод Ньютона . При решении нелинейного уравнения методом Ньтона задаются начальное значение аргумента x 0 и точность е. Затем в точке(x 0 ,F(x 0)) проводим касательную к графику F(x) и определяем точку пересечения касательной с осью абсцисс x 1 . В точке (x 1 ,F(x 1)) снова строим касательную, находим следующее приближение искомого решения x 2 и т.д. Указанную процедуру повторяем пока |F(xi)| > е. Для определения точки пересечения (i+1) касательной с осью абсцисс воспользуемся следующей формулой

x i+1 =x i -F(x i) F"(x i).

Условие сходимости метода касательных F(x 0) F""(x)>0, и др.

3). Метод дихотомии. Методика решения сводится к постепенному делению начального интервала неопределённости пополам по формуле

С к =а к +в к /2.

Для того чтобы выбрать из двух получившихся отрезков необходимый, надо находить значение функции на концах получившихся отрезков и рассматривать тот на котором функция будет менять свой знак, то есть должно выполняться условие f (а к)* f (в к)<0.

Процесс деления отрезка проводится до тех пор, пока длина текущего интервала неопределённости не будет меньше заданной точности, то есть в к - а к < E. Тогда в качестве приближенного решения уравнения будет точка, соответствующая середине интервала неопределённости.

4). Метод хорд . Идея метода состоит в том, что на отрезке строится хорда стягивающая концы дуги графика функции y=f(x), а точка c, пересечения хорды с осью абсцисс, считается приближенным значением корня

c = a - (f(a)Ч (a-b)) / (f(a) - f(b)),

c = b - (f(b)Ч (a-b)) / (f(a) - f(b)).

Следующее приближение ищется на интервале или в зависимости от знаков значений функции в точках a,b,c

x* О , если f(с)Ч f(а) > 0 ;

x* О , если f(c)Ч f(b) < 0 .

Если f"(x) не меняет знак на , то обозначая c=x 1 и считая начальным приближением a или b получим итерационные формулы метода хорд с закрепленной правой или левой точкой.

x 0 =a, x i+1 = x i - f(x i)(b-x i) / (f(b)-f(x i), при f "(x)Ч f "(x) > 0 ;

x 0 =b, x i+1 = x i - f(x i)(x i -a) / (f(x i)-f(a), при f "(x)Ч f "(x) < 0 .

Сходимость метода хорд линейная

Алгебраические и трансцендентные уравнения. Методы локализации корней.

Наиболее общий вид нелинейного уравнения:

f(x) =0 (2.1)

где функция f(x) определена и непрерывна на конечном или бесконечном интервале [а, b].

Определение 2.1. Всякое число, обращающее функцию f(x) в нуль, называется корнем уравнения (2.1).

Определение 2.2. Число, называется корнем k-ой кратности, если при вместе с функцией f(x) равны нулю ее производные до (к-1)-го порядка включительно:

Определение 2.3. Однократный корень называется простым.

Нелинейные уравнения с одной переменной подразделяются на алгебраические и трансцендентные.

Определение 2.4 . Уравнение (2.1) называется алгебраическим, если функция F(x) является алгебраической.

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

где -- действительные коэффициенты уравнения, х -- неизвестное.

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

Определение 2.5. Уравнение (2.1) называется трансцендентным, если функция F(x) не является алгебраической.

Решить уравнение (2.1) означает:

  • 1. Установить имеет ли уравнение корни.
  • 2. Определить число корней уравнения.
  • 3. Найти значения корней уравнения с заданной точностью.

Встречающиеся на практике уравнения часто не удается решить аналитическими методами. Для решения таких уравнений используются численные методы.

Алгоритм нахождения корня уравнения с помощью численного метода состоит из двух этапов:

  • 1) отделение или локализация корня, т.е. установление промежутка , в котором содержится один корень:
  • 2) уточнение значения корня методом последовательных приближений.

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

Теорема 2.1. Если функция у = f(х) непрерывна на отрезке [а,b] и f(а)=А, f(b)=В, то для любой точки С, лежащей между А и В, существует точка, что.

Следствие. Если функция у = f(х) непрерывна на отрезке [а,b ] и на его концах принимает значения разных знаков, то на этом отрезке существует хотя бы один корень уравнения f(х) = 0.

Пусть область определения и непрерывности функции является конечным отрезком [а,b] . Разделим отрезок на n частей: ,

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

т.е. , или, . Эти отрезки и содержит хотя бы по одному корню.

Теорема 2.2. Если функция у = f(х) непрерывна на отрезке [а;b ], f(а)f(b)<0 и f`(х) на интервале (а;b) сохраняет знак, то внутри отрезка [а;b] существует единственный корень уравнения f(х) = 0.

Для отделения корней можно использовать также график функции у = f(х). Корнями уравнения (2.1) являются те значения х, при которых график функции y=f(х) пересекает ось абсцисс. Построение графика функции даже с малой точностью обычно дает представление о расположении корней уравнения (2.1). Если построение графика функции у=f(x) вызывает затруднение, то исходное уравнение (2.1) следует преобразовать к виду ц1(х) = ц2(х) таким образом, чтобы графики функций у = ц1(х) и у = ц2(х) были достаточно просты. Абсциссы точек пересечения этих графиков и будут корнями уравнения (2.1).

Пример 1. Отделить корни уравнения x 2 -2cosx=0.

Решение. Рассмотрим два способа отделения корней.

  • а) Графический способ. Перепишем уравнение в виде x 2 =2cosx и построим график функций y=x 2 и y=2cosx в одной и той же системе координат (рисунок 5). так как эти графики пересекаются в двух точках, уравнение имеет два корня, расположенные симметрично относительно начала координат на интервалах (-/2; 0) и (0; /2).
  • б) Аналитический способ. Пусть f(x)= x 2 -2cosx. Так как f(x) четная функция, то достаточно рассмотреть только неотрицательные значения x. В силу неравенства 2cosx2

Производная f"(x) =2(x+sinx). На интервале (0; /2) f"(x) >0 , следовательно, f(x) здесь монотонно возрастает и ее график может пересечь ось х не более, чем в одной точке. Заметим, что f(0)=- 2<0, а f(/2)=(/2) 2 >0. Значит, уравнение имеет один положительный корень, лежащий на интервале (0; /2). В силу четности функции уравнение имеет также один отрицательный корень, симметричный положительному. Теперь перейдем к уточнению корня. Для применения комбинированного метода уточнения корня необходимо убедится, что f ""(x) на (0; /2) сохраняет знак, и выбрать начальное приближение корня для применения метода касательных. Оно должно удовлетворять условию: f(x)f ""(x) >0. Так как f ""(x) =2(1+cosx) положительна на , то за начальное приближение корня в методе касательных может быть взято /2. Следовательно, можно положить x =/21,570796, x 1 =0 (см схему алгоритма). В нашем случае метод хорд будет давать приближенное значение корня с недостатком, а метод касательных - с избытком.

Рассмотрим один итерационный шаг уточнения корня. Вычислим значения f(0), f(/2), f"(/2). Новые значения x 1 и x найдем соответственно по формулам:

|x-x 1 |=0,387680,4>10 -4 =.

Заданная точность не достигнута, и вычисления нужно продолжить.

Номер итерации

x 1

f(x 1 )

|x- x 1 |

Следовательно, приближенное значение корня с нужной точностью найдено в результате трех итераций и приближенно равно 1,0217.

В силу симметрии графика функции f(x) значение второго корня приближенно равно -1,0217.

Уточнение корня.

Постановка задачи . Допустим, что искомый корень уравнения (2.1) отделен, т.е. найден отрезок [а; b], на котором имеется один и только один корень уравнения. Любую точку этого отрезка можно принять за приближенное значение корня. Погрешность такого приближения не превосходит длины [а; b]. Следовательно, задача отыскания приближенного значения корня с заданной точностью сводится к нахождению отрезка [а; b] (b- a <), содержащего только один корень уравнения (2.1). Эту задачу обычно называют задачей уточнения корня.

Описание численных методов. Численные методы позволяют найти решения определенных задач, заранее зная, что полученные результаты будут вычислены с определенной погрешностью, поэтому для многих численных методов необходимо заранее знать «уровень точности», которому будет соответствовать полученное решение.

В этой связи задача нахождения корней многочлена вида (3.1)

представляет особый интерес, т.к. формулы нахождения корней даже кубического уравнения достаточно сложны. Если необходимо отыскать корни многочлена, степень которого равна, например, 5 - то без помощи численных методов не обойтись, тем более, что вероятность наличия у такого многочлена натуральных (или целых, или точных корней с «короткой» дробной частью) довольно мала, а формул для нахождения корней уравнения степени, превышающей 4, не существует. Де-факто все дальнейшие операции будут сводиться лишь к уточнению корней , интервалы которых приблизительно известны заранее. Проще всего эти «приблизительные» корни находить, используя графические методы.

Для нахождения корней многочлена существует несколько численных методов: метод итераций, метод хорд и касательных, метод половинного деления, метод секущих.

Метод бисекций (известный еще и как «метод деления отрезка пополам») также является рекурсивным, т.е. предусматривает повторение с учетом полученных результатов.

Суть метода половинного деления заключается в следующем:

  • - дана функция F(x);
  • - определена допустимая погрешность Q;
  • - определен некоторый интервал [ a , b ], точно содержащий решение уравнения.

1) Вычисляем значение координаты Е, беря середину отрезка , т.е.

Е= (a + b) / 2 (3.2)

  • 2) Вычисляем значения F(a), F(b), F(E), и осуществляем следующую проверку: Если F(E)>Q, то корень с указанной точностью найден. Если F(E)
  • 3) Переходим к пункту 1.

Метод простых итераций (метод последовательных приближений). Заменим уравнение (2.1) эквивалентным ему уравнением

x=(x) (3.3)

можно сделать различными способами, например

х=х+сf(x), c0. (3.4)

Предположим, что выбрано некоторое начальное приближение корня уравнения (3.3). Определим числовую последовательность по формулам

х n+1 =(x n ), n=0,1,2,… (3.5)

Такую последовательность называют итерационной.

Если на отрезке , содержащем х 0 и все последующие приближения х n , nN, функция (x) имеет непрерывную производную "(x) и |"(x)|q<1, то итерационная последовательность (3.5) сходится к единственному на корню уравнения (3.3). Скорость сходимости определяется неравенством

Из этого неравенства, в частности, следует, что скорость сходимости метода простой итерации зависит от величины q: чем меньше q, тем быстрее сходимость.

Следовательно, на практике при нахождении корней методом простой итерации желательно представить уравнение (2.1) в форме (3.3) таким образом, чтобы производная "(x) в окрестности корня по абсолютной величине была, возможно, меньше. Для этого иногда пользуются параметром с из формулы (3.4).

Метод Ньютона (метод касательных). Если известно достаточно хорошее начальное приближение, для которого выполняется неравенство:

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

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

Если на.

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

Теорема. Пусть -корень уравнения, т.е. , а и непрерывна. Тогда существует окрестность корня такая, что если начальное приближение принадлежит этой окрестности, то для метода Ньютона последовательность значений сходится к при. Погрешность -го приближения корня можно оценить по формуле:

где - наибольшее значение модуля второй производной на отрезке, - наименьшее значение модуля первой производной на отрезке.

Правило останова:

Метод хорд и касательных (комбинированный). Данный метод основан на построении схематического графика функции, определении интервалов его пересечения с осью абсцисс и последующим «сжатием» этого интервала при помощи строимых хорд и касательных к графику этой функции.

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

Рассмотрим следующий случай:

  • - дана функция F(x) и построен ее график;
  • - определена допустимая погрешность Q
  • - на основании графика определен отрезок , на котором график функции пересекает ось абсцисс, следовательно, на этом отрезке существует корень рассматриваемого многочлена (обозначим его через A)

Дальнейший алгоритм сводится к следующим действиям:

  • 1) строим касательную к графику функции в точке F(b)
  • 2) вычисляем координату х пересечения касательной с осью абсцисс по формуле (3.9) и обозначаем ее через b"
  • 3) строим к графику функции хорду, проходящую через точки F(a) и F(b).
  • 4) Вычисляем точку пересечения хорды с осью абсцисс по формуле (2) и обозначаем ее через a".

Таким образом мы получаем новый отрезок , который (по определениям хорды и касательной) по прежнему содержит решение уравнения A.

Теперь принимаем отрезок за новый отрезок и повторяем шаги 1-4 до тех пор, пока разность F(b)-F(a) не станет меньше первоначально заложенной погрешности Q. Отметим также, что после этого рекомендуется в качестве искомого решения взять среднее арифметическое F(a) и F(b).

Таким образом, если хорда (касательная) дает значение корня с избытком, то этот корень берется в качестве новой правой границы, а если с недостатком - то левой. В обоих случаях точный корень лежит между точками пересечения хорды и касательной с осью абсцисс.

Замечание к методу хорд и касательных. Так как для решения поставленной задачи требуется отыскание производной функции F(x), метод хорд и касательных достаточно трудно реализуем на программном уровне, т.к. правила вычисления производных в общем виде довольно громоздки для «понимания» ЭВМ; при непосредственном указании производной для каждой степени многочлена память компьютера серьезно загружается, что очень замедляет работу, а задание функции и, соответственно, ее производной непосредственно в программном коде - недопустимо. Однако, используя данный метод, сходимость интервала к корню происходит наиболее быстро, особенно если совместить метод хорд и касательных с методом бисекции, т.к. середина нового отрезка зачастую дает вполне удовлетворительное решение.

Метод секущих. Метод секущих может быть получен из метода Ньютона при замене производной приближенным выражением - разностной формулой:

В формуле (3.8) используются два предыдущих приближения и. Поэтому при заданном начальном значении необходимо вычислить следующее приближение, например, методом Ньютона с приближенной заменой производной по формуле

Алгоритм метода секущих:

1) заданы начальное значение и погрешность. Вычислим

2) для n = 1,2, ….. пока выполняется условие, вычисляем по формуле (3.8).

Кафедра: АСОИиУ

Лабораторная Работа

На тему: НАХОЖДЕНИЕ КОРНЯ НЕЛИНЕЙНОГО УРАВНЕНИЯ. МЕТОДЫ РЕШЕНИЯ СИСТЕМЫ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

Москва, 2008 год


НАХОЖДЕНИЕ КОРНЯ НЕЛИНЕЙНОГО УРАВНЕНИЯ

1. Постановка задачи

Пусть задана функция , непрерывная вместе со своими несколькими производными. Требуется найти все или некоторые вещественные корни уравнения

Данная задача распадается на несколько подзадач. Во-первых, необходимо определить количество корней, исследовать их характер и расположение. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них интересующие нас корни и вычислить их с требуемой точностью e. Первая и вторая задачи решаются, как правило, аналитическими или графическими методами. В случае, когда ищутся только вещественные корни уравнения (1), полезно составить таблицу значений функции . Если в двух соседних узлах таблицы функция имеет разные знаки, то между этими узлами лежит нечетное число корней уравнения (по меньшей мере, один). Если эти узлы близки, то, скорее всего, корень между ними только один.

Найденные приближенные значения корней можно уточнить с помощью различных итерационных методов. Рассмотрим три метода: 1) метод дихотомиии (или деление отрезка пополам); 2) метод простой итерации и 3) метод Ньютона.


2. Методы решения задачи

2.1 Метод деления отpезка пополам

Наиболее простым методом, позволяющим найти корень нелинейного уравнения (1), является метод половинного деления.

Пусть на отрезке задана непрерывная функция Если значения функции на концах отрезка имеют разные знаки, т.е. то это означает, что внутри данного отрезка находится нечетное число корней. Пусть для определенности корень один. Суть метода состоит в сокращении на каждой итерации вдвое длины отрезка. Находим середину отрезка (см. рис. 1) Вычисляем значение функции и выбираем тот отрезок, на котором функция меняет свой знак. Новый отрезок вновь делим пополам. И этот процесс продолжаем до тех пор, пока длина отрезка не сравняется с наперед заданной погрешностью вычисления корня e. Построение нескольких последовательных приближений по формуле (3) приведено на рисунке 1.

Итак, алгоритм метода дихотомии:

1. Задать отрезок и погрешность e.

2. Если f(a) и f(b) имеют одинаковые знаки, выдать сообщение о невозможности отыскания корня и остановиться.


Рис.1. Метод деления отрезка пополам для решения уравнения вида f(х)=0.

3. В противном случае вычислить c=(a+b)/2

4. Если f(a) и f(c) имеют разные знаки, положить b=c, в противном случае a=c.

5. Если длина нового отрезка , то вычислить значение корня c=(a+b)/2 и остановиться, в противном случае перейти к шагу 3.

Так как за N шагов длина отрезка сокращается в 2 N раз, то заданная погрешность отыскания корня e будет достигнута за итераций.

Как видно, скорость сходимости мала, но к достоинствам метода относятся простота и безусловная сходимость итерационного процесса. Если отрезок содержит больше одного корня (но нечетное число), то всегда будет найден какой-нибудь один.

Замечание. Для определения интервала, в котором лежит корень, необходим дополнительный анализ функции , основанный либо на аналитических оценках, либо на использование графического способа решения. Можно также организовать перебор значений функции в различных точках, пока не встретится условие знакопеременности функции

2.2 Метод простой итерации

При использовании этого метода исходное нелинейное уравнение (1) необходимо переписать в виде

Обозначим корень этого уравнения C * . Пусть известно начальное приближение корня . Подставляя это значение в правую часть уравнения (2), получаем новое приближение

и т.д. Для (n+1)- шага получим следующее приближение

(3)

Таким образом, по формуле (3) получаем последовательность С 0 , С 1 ,…,С n +1 , которая стремиться к корню С * при n®¥. Итерационный процесс прекращается, если результаты двух последовательных итераций близки, т. е. выполняется условие

(4)


Исследуем условие и скорость сходимости числовой последовательности {C n } при n®¥. Напомним определение скорости сходимости. Последовательность {C n }, сходящаяся к пределу С * , имеет скорость сходимости порядка a, если при n®¥ выполняется условие

Допустим, что имеет непрерывную производную, тогда погрешность на (n+1)-м итерационном шаге e n +1 =C n +1 -C * =g(C n)-g(C *) можно представить в виде ряда

e n+1 » C n+1 – C * = g¢(C *) (C n -C *) +¼@ g¢(C *) e n +¼

Таким образом, получаем, что при выполнении условия

çg¢(C *) ç<1(6)

последовательность (3) будет сходиться к корню с линейной скоростью a=1. Условие (6) является условием сходимости метода простой итерации. Очевидно, что успех метода зависит от того, насколько удачно выбрана функция .

Например, для извлечения квадратного корня, т. е. решения уравнения вида x =a 2 , можно положить

x=g 1 (x)=a/x (7а)


x=g 2 (x)=(x+a/x)/2.(7б)

Нетрудно показать, что

½g 1 " (C)½=1,

½g 2 " (C)½<1.

Таким образом, первый процесс (7а) вообще не сходится, а второй (7б) сходится при любом начальном приближении С 0 >0.

Рис. 2. Графическая интерпретация метода простых итераций для решения уравнения вида x=g(х).

Построение нескольких последовательных приближений по формуле (3)

С 0 , С 1 , …, С n = C *

приведено на рисунке 2.

2.3 Метод Ньютона

В литературе этот метод часто называют методом касательных, а также методом линеаризации. Выбираем начальное приближение С 0 . Допустим, что отклонение С 0 от истинного значения корня С * мало, тогда, разлагая f(C *) в ряд Тейлора в точке С 0 , получим

f(C *) = f(C 0) + f¢(C 0) (C * -C 0) +¼(8)

Если f¢(C 0) ¹ 0 , то в (8) можно ограничится линейными по DC =C-C 0 членами. Учитывая, что f(C *)=0, из (9) можно найти следующее приближение для корня

C 1 = C 0 – f (C 0) / f¢(C 0)

или для (n+1)-го приближения

C n+1 = C n – f (C n) / f ¢(C n) (9)

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

çC n +1 – C n ç

çf(C n +1) ç

Исследование сходимости метода Ньютона проводится аналогично предыдущему случаю. Самостоятельно получить, что при выполнении условия

½f "" (C)/2f"(C)½<1.

метод Ньютона имеет квадратичную скорость сходимости ().

Рис. 3. Графическая интерпретация метода Ньютона для решения уравнения вида f(х)=0.

Построение нескольких последовательных приближений по формуле (9)

С 0 , С 1 , …, С n = C *

приведено на рисунке 3.

1. Для заданной функции f(x)

· определите число вещественных корней уравнения f(x)=0, место их расположения и приближенные значения (постройте график или распечатайте таблицу значений).

· Вычислите один из найденных корней (любой) с точностью e=0,5*10 -3 .

Для вычислений используйте метод деления отрезка пополам (определите число итераций), а затем этот же корень найдите с помощью метода Ньютона (также определив число итерационных шагов).

Сравните полученные результаты.

Варианты заданий

1. x 3 –3x 2 +6x – 5 = 0 2. x 3 +sinx –12x-1=0

3. x 3 –3x 2 –14x – 8 = 0 4. 3x + cos x + 1 =0

5. x 2 +4sin x –1 = 0 6. 4x –ln x = 5

7. x 6 –3x 2 +x – 1 = 0 8. x 3 – 0.1x 2 +0.3x –0.6 = 0

9.10. (x -1) 3 + 0.5e x = 0

11. 12. x 5 –3x 2 + 1 = 0

13. x 3 –4x 2 –10x –10 = 0 14.

15. 16.

19. 20.

23. 24. x 4 - 2.9x 3 +0.1x 2 + 5.8x - 4.2=0

25. x 4 +2.83x 3 - 4.5x 2 -64x-20=0 26.

МЕТОДЫ РЕШЕНИЯ СИСТЕМЫ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

1. Постановка задачи

Пусть требуется решить систему n нелинейных уравнений:

(1)

Прямых методов решения системы (1) не существует. Лишь в отдельных случаях эту систему можно решить непосредственно. Например, для случая двух уравнений иногда удаётся выразить одну неизвестную переменную через другую и таким образом свести задачу к решению одного нелинейного уравнения относительно одного неизвестного.

Систему уравнений (1) можно кратко записать в векторном виде:

. (2)

Уравнение (2) может иметь один или несколько корней в области определения D. Требуется установить существование корней уравнения и найти приближённые значения этих корней. Для нахождения корней обычно применяют итерационные методы, в которых принципиальное значение имеет выбор начального приближения. Начальное приближение иногда известно из физических соображений. В случае двух неизвестных начальное приближение можно найти графически: построить на плоскости (x 1 , x 2) кривые f 1 (x 1 , x 2)=0 и f 2 (x 1 , x 2)=0 и найти точки их пересечения. Для трех и более переменных (а также для комплексных корней) удовлетворительных способов подбора начального приближения нет.

Рассмотрим два основных итерационных метода решения системы уравнений (1), (2) - метод простой итерации и метод Ньютона.

2. Методы решения системы нелинейных уравнений

2.1.Метод простой итерации

Представим систему (1) в виде

(3)

или в векторной форме:

(4)

Алгоритм метода простой итерации состоит в следующем. Выберем некоторое нулевое приближение

Следующее приближение находим по формулам:


или более подробно:

(5)

Итерационный процесс (5) продолжается до тех пор, пока изменения всех неизвестных в двух последовательных итерациях не станут малыми, т.е.

На практике часто вместо последнего условия используют неравенство:

(6)

где - среднеквадратичная норма n-мерного вектора , т.е.

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

2.2. Метод Ньютона

В переводной литературе можно встретить название метод Ньютона-Рафсона. Этот метод обладает гораздо более быстрой сходимостью, чем метод простой итерации.

Пусть известно некоторое приближение к корню , так что

Тогда исходную систему (2) можно записать следующим образом:

Разлагая уравнение (7) в ряд Тейлора в окрестности точки и ограничиваясь линейными членами по отклонению , получим:

или в координатной форме:

(8)

Систему (8) можно переписать в виде:


(9)

Полученная система (9) является системой линейных алгебраических уравнений относительно приращений

Значение функций F 1 , F 2 , …, F n и их производные в (9) вычисляются при

.

Определителем системы (9) является якобиан J:

(10)

Для существования единственного решения системы уравнений (9) он должен быть отличен от нуля. Решив систему (9), например, методом Гаусса, найдём новое приближение:

.

Проверяем условие (6). Если оно не удовлетворяется, находим и якобиан (10) с новым приближением и опять решаем (9), таким образом, находим 2-е приближение и т.д.

Итерации прекращаются, как только выполнится условие (6).

Используя метод Ньютона, найдите решения системы нелинейных уравнений с заданной точностью . Исследуйте сходимость итерационного процесса.

Варианты заданий

1 2

3 4

5 6

7 8

9 10

11 12

13 14.

15. 16.

17. 18.

19. 20.

21. 22.

Просмотров