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

Автор работы: Пользователь скрыл имя, 26 Января 2012 в 00:18, курсовая работа

Краткое описание

Программа разработана для решения систем нелинейных алгебраических уравнений методом Зейделя и простой итерации.
Метод Зейделя является частным случаем, метода простой итерации. Точность данных методов e= 0,001. Программа разработана на языке Borland Pascal 7.0

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

1. Графическое отделение корней 4
1.1 Графическое решение 5
2. Обзор методов решения систем нелинейных уравнений 6
2.1 Решение систем нелинейных уравнений 6
2.1.1 Метод простых итераций 6
2.1.2 Решение систем нелинейных уравнений методом Ньютона 7
2.1.3 Определение матрицы Якоби 9
3. Разработка и отладка программы 10
4. Блок-схема рабочей программы 11
5. Листинг программы 14
6. Решение контрольного примера 16
7. Список литературы 17

Содержимое работы - 1 файл

!!!Решение систем нелинейных уравнений.doc

— 1.71 Мб (Скачать файл)

Так же необходимо привести систему

уравнений (1) к системе вида (13) вручную,

для использование  ее в программе.

 
 
 
 
 
 
 
 
 
 
 
 

Блок-схема  метода простой итерации 

 
 
 
 
 
 

Блок-схема  метода Зейделя

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

uses crt;

var

d,e,x1,x2,y1,y2:real;

c,k,p:integer;

ch:char;

function f1(x1,x2:real):real;

begin

f1:=x1*sin(x1)-x2;

end;

function f2(x1,x2:real):real;

begin

f2:=x1*x1+x2*x2-1;

end;

procedure fun_y1_1_y2;

begin

y1:= x1-f1(x1,x2)/2+f2(x1,x2)/8;

y2:= x2+f1(y1,x2)/2-f2(x1,x2)/2;

end;

procedure fun_y1_y2;

begin

y1:= x1-f1(x1,x2)/2+f2(x1,x2)/8;

y2:= x2+f1(x1,x2)/2-f2(x1,x2)/2;

end;

procedure outputofresult;

begin

clrscr;

writeln('Korni uravnenia:');

writeln('x1 = ', y1:1:5);

writeln('x2 = ', y2:1:5);

writeln('Pogreshnosty priblegenia = ', d:1:7);

writeln;

writeln('Kolichestwo iteraziy = ',k);

writeln('Dlia prodolgenia nagmite lubui klavishu...');

repeat ch:= readkey until ch <> '';

k:=k+1;

end;

begin

repeat

k:=0; e:=0.001;

clrscr;

writeln('Reshenie sistem nelineinyh uravneni');

writeln('');

writeln('1 - Metod prostoiq iterazy');

writeln('2 - Metod Zeydely');

writeln('0 - Exit');

writeln('');

write('Enter: ');

readln(p);

c:=0;

if p=1 then c:=1;

if p=2 then c:=2;

if p=0 then c:=0;

case c of

0:begin

exit;

end;

1:begin

writeln('Vvedite nachalnoe priblegenie:');

write('x1 = ');

readln(x1);

write('x2 = ');

readln(x2);

repeat

fun_y1_y2;

d:= abs(y1-x1);

if abs(y2-x2)>d then d:= abs(y2-x2);

outputofresult;

x1:= y1; x2:= y2;

until d<e;

end;

2:begin

writeln('Vvedite nachalnoe priblegenie:');

write('x1 = ');

readln(x1);

write('x2 = ');

readln(x2);

repeat

fun_y1_1_y2;

d:= abs(y1-x1);

if abs(y2-x2)>d then d:= abs(y2-x2);

outputofresult;

x1:= y1; x2:= y2;

until d<e;

end;

end;

until (p<1) or (p>2);

end.

6. Решение контрольного примера

 

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

Начальное приближение

x1 = 0.9

x2 = 0.6 

Корни уравнения

x1 = 0.80992

x2 = 0.58662

Погрешность приближения  = 0.0006517

Количество итераций = 4 

Метод Зейделя: 

Начальное приближение

x1 = 0.9

x2 = 0.6 

Корни уравнения

x1 = 0.80928

x2 = 0.58648

Погрешность приближения = 0.0006042 

Количество итераций =11 

Проверка: 

0.80928*sin(0.80928) - 0.58648 0

(0.58648)2 + (0.80928)2 -1 0 
 
 
 
 
 
 
 
 
 
 
 

7. Список литературы

 
  1. И.В. Сухно, В.А. Волынкин, В.Ю. Бузько «Численные методы и программирвоание», Краснодар 2002
  2. А.А. Самарский, А.В. Гулин «Численные методы», М. 1989
  3. В.И. Ракитин, В.Е. Первушин «Практическое руководство по методам вычисления», М. 1998
  4. Н.С.Бахвалов,  «Численные методы»,  М. 1975г.
  5. Ю.В. Губарь, «Введение в математическое моделирование, курс лекций», М. 2007

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