41899

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

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

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

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

Русский

2013-10-26

213.45 KB

81 чел.

ЛАБОРАТОРНАЯ РАБОТА №3-4.

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

Вариант №5.

Выполнил:

Студент группы 24275

Кожевников Е.И.

Проверил:

Доцент

Горбунов Д.В.

Цель работы: научиться решать системы нелинейных уравнений (СНУ) методом простых итераций (МПИ) и методом Ньютона с помощью ЭВМ.

Содержание работы:

1. Изучить МПИ и метод Ньютона для решения систем нелинейных уравнений.

2. На конкретном примере усвоить порядок решения систем нелинейных уравнений МПИ и методом Ньютона с помощью ЭВМ.

3. Составить программу и с ее помощью решить систему уравнений с точностью .

ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫ

Задание.

1. Аналитически решить СНУ:  

2. Построить рабочие формулы МПИ и метода Ньютона для численного решения системы при начальном приближении: .

3. Составить программу на любом языке программирования, реализующую построенный итерационный процесс.

Решение.

Аналитический метод.

Аналитическим решением СНУ являются точки и .

Метод простых итераций (МПИ).

Для построения рабочих формул МПИ для численного решения системы необходимо вначале привести ее к виду:

 

Для этого умножим первое уравнение системы на неизвестную постоянную , второе - на , затем сложим их и добавим в обе части уравнения . Получим первое уравнение преобразуемой системы:

 

где . Далее, умножим первое уравнение системы на неизвестную постоянную , второе - на , затем сложим их и добавим в обе части уравнения . Тогда второе уравнение преобразуемой системы будет иметь вид:

 

где .

Неизвестные постоянные определим из достаточных условий сходимости итерационного процесса:

и .

Запишем эти условия более подробно:

Полагая равными нулю выражения под знаком модуля, получим систему линейных алгебраических уравнений (СЛАУ) 4 порядка с 4 неизвестными :

Для решения системы необходимо вычислить частные производные :

.

Тогда СЛАУ запишется так:

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

.

Тогда СЛАУ запишется так:

Решением этой системы являются точки ,,, . Тогда рабочие формулы МПИ для решения СНУ примут вид:

Для реализации на ЭВМ рабочие формулы можно переписать так:

Итерационный процесс можно начать, задав начальное приближение x0=-2, y0=-4. Процесс заканчивается при одновременном выполнении двух условий: и . В этом случае значения и являются приближенным значением одного из решений СНУ.

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

Для построения рабочих формул метода Ньютона в виде

 

 

где , необходимо:

  1. Найти матрицу частных производных:

2. Найти определитель этой матрицы:

  1. Определить обратную матрицу:

Проведя преобразования:

Получаем рабочую формулу метода Ньютона для реализации на ЭВМ:


Блок-схема
МПИ и метода Ньютона для решения СНУ приведена на рисунке 1.

Рис.1 Схемы МПИ и метода Ньютона.


Тексты программ:

  1.  МПИ:

Program P3_4; {Iterations}

uses Crt;

var n: integer;

     x0,x,xn,y0,y,yn,eps,zx,zy:real;

begin

 clrscr;

 n:=0; x0:=-2; x:=x0; y0:=-4; y:=y0; eps:=0.001;

 writeln ('  n    x(i)   x(i+1)  x(i+1)-x(i) y(i)    y(i+1) y(i+1)-y(i)       ');

 repeat

   xn:=x-(x-y+2)+(1/2)*(x*y-3);

   zx:=x;

   yn:=y+(2/3)*(x-y+2)+(1/6)*(x*y-3);

   zy:=y;

   writeln (n:3, x:9:5, xn:9:5, (xn-x):9:5, y:9:5, yn:9:5, (yn-y):9:5);

   x:=xn;

   y:=yn;

   n:=n+1;

 until (abs(x-zx)<=eps) and (abs(y-zy)<=eps);

 readln;

end.

  1.  Метод Ньютона:

Program P3_4; {Nyuton}

uses Crt;

var n: integer;

     x0,x,xn,y0,y,yn,eps,zx,zy:real;

begin

 clrscr;

 n:=0; x0:=-2; x:=x0; y0:=-4; y:=y0; eps:=0.001;

 writeln ('  n    x(i)   x(i+1)  x(i+1)-x(i) y(i)    y(i+1) y(i+1)-y(i)       ');

 repeat

 xn:=x-(1/(x+y))*(x*x-x*y+2*x+x-y+2);

 zx:=x;

 yn:=y-(1/(x+y))*(x*y*(-y)-3*(-y)+x*y-3);

 zy:=y;

 writeln (n:3, x:9:5, xn:9:5, abs(xn-x):9:5, y:9:5, yn:9:5, abs(yn-y):9:5);

 x:=xn;

 y:=yn;

 n:=n+1;

until (abs(x-zx)<=eps) and (abs(y-zy)<=eps);

readln;

end.

Результаты отработки программы:

  1.  Рис.2 – программы, работающей по методу простых итераций;
  2.  Рис.3 – программы, работающей по методу Ньютона.

Рис.2 Ответ: х(16)≈-3.00023, у(16)≈-1.00001

Рис.3 Ответ: х(8)≈-3.00000, у(8)≈-1.00000