ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Лабораторна робота TrancEq на тему “Розв’язання трансцендентних рівнянь з двома невідомими”.

Загрузка...

Варіант 31. Виконав студент групи БІТ-04, Павлік Олексій Васильович. Дата виконання: 05.11.2003

Завдання. Графічно відокремити розв’язки системи нелінійних рівнянь з двома невідомими і уточнити будь-який один з них за методом Ньютона.

Виконання роботи.

Відокремлення коренів системи рівнянь. Перше рівняння записуємо у вигляді , друге – у вигляді . Будуємо (креслення відповідних графіків залишаємо студентові) на одному малюнку ці два відношення як два графіка: перший - як функцію від , другий - як функцію від . Графічно бачимо, що один з наближених розв’язків розташовано біля точки . Тому беремо цю точку за початкове наближення:

Зауваження. На жаль, якщо ви помилились при побудові графіків, то знайдене стартове наближення не буде отримане. Треба бути уважним при побудові графіків тому, що єдиною можливістю перевірки вірності побудови є збіжність ітераційного процесу.

1. Уточнення відокремленого кореня за методом Ньютона без використання ЕОМ. Отже, графічно нами були знайдені стартові значення: для системи : Переходимо до виконання ітераційних кроків.

Крок 1. Підраховуємо значення функцій лівих частин і їх похідних в стартовій (нульовий) точці:

.

Тому маємо якобіан і для приростів і систему лінійних рівнянь .

За формулами Крамера: ,

,

.

Тому знаходимо наступне наближення:

.

.

Так як умови , не виконані, то обчислення продовжуємо.

Крок 2. Підраховуємо значення функцій лівих частин і їх похідних в наступній (першій) точці:

.

Тому маємо якобіан і для приростів і - систему лінійних рівнянь .

За формулами Крамера: ,

Тому ,

.

Так як умови , не виконані, то продовжуємо обчислення.

Крок 3. Підраховуємо значення функцій лівих частин і їх похідних в наступній (другій) точці:

Тому маємо якобіан і для приростів і систему лінійних рівнянь .

За формулами Крамера : ,

,

.

Тому ,

Так як умови , виконані , то обчислення завершуємо .

Зведемо пiдрахунки у таблицю .

Таблиця 1.

Розрахункова таблиця знаходження роз'вязку

системи рівнянь за методом Ньютона.

k
1 2 3 4 5 6 7
0.800000 1.500000 -0.012964 -0.087106 0.787036 1.412894
0.787036 1.412894 0.002920 -0.005103 0.789956 1.407791
0.789956 1.407791 0.000025 -0.000014 0.789981 1.407777
0.789981 1.407777 0.000000 -0.000000 0.789981 1.407777

Момент зупинки підрахунків – за величиною 4-ої і 5-ої граф цієї таблиці (у рядку 3 маємо и і ). Як наближене значення розв’зку беремо числа у графах 6 та 8 з рядка 3 або числа у графах 2 та 3 з рядка 4, тобто,

2. Уточнення відокремленого кореня за методом Ньютона з використанням програми на ЕОМ.Обчислимовідокремлений розв’язок з використанням програми Newton2.exe (див. далі Допоміжні матеріали до лабораторної роботи) для ітерацій. Одержуємо файл Newton2.out, у якому містяться наступні рядки.

------------------------ початок ---------------------------

S<Newton2>

x0= 0.800 y0= 1.500 n=5 all=9 dec=6

1:{ 0.800000 1.500000} + {-0.012964 -0.087106}

2:{ 0.787036 1.412894} + { 0.002920 -0.005103}

3:{ 0.789956 1.407791} + { 0.000025 -0.000014}

4:{ 0.789981 1.407777} + { 0.000000 -0.000000}

5:{ 0.789981 1.407777} + { 0.000000 -0.000000}

F<Newton2>

-------------------------- кінець ---------------------------------------

3. Аналіз вихідного файлу Newton2.out:Так як вектор ітераційного кроку зменшується і досить швидко прямує до нуля (при він є нульовим, що відображено в файлі Newton2.out), то маємозбіжність ітераційного процесу. Задана точність досягається після 4-х ітерацій. Тому за наближене значення розв’язку беремо ітераційне значення на четвертої ітерації , тобто .

Висновки до лабораторної роботи. Порівнюючи одержані результати з результатами , що зведені в таблицю 1, бачимо повну відповідність обох результатів.

Варіанти індивідуальних завдань до роботи NonLinSys

2.
3. 4.
5. 6.
7. 8.
9. 10.
11. 12.
13. 14.
15. 16.
17. 18.
19. 20.
21. 22.
23. 24.
25. 26.
27. 28.
29. 30.
31. 32.
33. 34.
35. 36.
37. 38.
39. 40.
41. 42.
43. 44.
45. 46.
47. 48.
49. 50.
51. 52.
53. 54.
55. 56.
57. 58.
59. 60.
61. 62.
63. 64.
65. 66.
67. 68.
69. 70.
71. 72.
73. 74.
75. 76.
77. 78.
79. 80.
81. 82.
83. 84.
85. 86.
87. 88.
89. 90.
91. 92.
93. 94.
95. 96.
97. 98.
99. 100.

Допоміжні матеріали до роботи NonLinSys

Інструкція користувачу для роботи з програмою Newton2

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

Вихідний файл Newton2.inp.Вихідний файл повинен бути у поточної теці (в якої розміщено тексти програми Newton2.pas і модуля Funct.pas). Структура вхідного файлу.

----------------------- початок ----------------------------

0.2 : x0 - координата x початкового наближення

0.9 : y0 - координата y початкового наближення

4 : n - число ітерацій

9 : All - число всіх позицій для друкування числа

6 : dec - число цифр після коми для друкування числа

------------------------- кінець ----------------------------

Робота з заготівкою модуля Funct.

1. Перед початком роботи потрібно підготувати записи функцій , , і , як рядків програми на мові Turbo Pascal у вигляді функція:= вираз функцїї (див. відповідні рядкі у тексті модуля Funct);

2.Скопіювати повністю теку Newton2(під тим же ім’ям) на власний магнітний носій (комп’ютер).

3. Завантажити Turbo Pascal, знайти в теці Newton2.pasі завантажити текст головної програми Newton2.pasу текстовий редактор Turbo Pascal.

4. Відкрити для змін вихідний текстовий файл Newton2.inpі встановити значення вхідних параметрів (кожен у окремому рядку з прогалиною після параметру, а далі до кінця рядка будь-яка послідовність символів). Наприклад:

------------------------ початок -----------------------

0.8 х0- координата х початкового наближення,

1.5 у0- координата у початкового наближення,

5 n - число ітерацій,

9 all- число всіх позицій для друкування числа,

8 dec- число цифр після коми для друкування числа.

------------------------------ кінець -----------------------------

5.Відкрити для зміни текстовий файл Funct.pasі замінити відповідні тіла функцій F(x,y), Fx(x,y), Fy(x,y) i G(x,y), Gx(x,y), Gy(x,y) на підготовлені раніше вирази. Скомпілювати замінений модуль.

6. Скомпілювати і виконати програму Newton2.pas.

7. Результати роботи програми будуть знаходитись у текстовому файлі Newton2.out.

Результуючий файл Newton2.out.У першому рядку наведені початкові дані (див. опис вхідного файлу). Далі йдуть рядки ітераційних кроків з номером кроку , попереднього ітераційного наближення (у дужках) плюс вектор ітераційного кроку (у дужках). Підраховане нове ітераційне наближення міститься у наступному рядку (як попереднє ітераційне наближення для наступного кроку). Наведемо приклад вихідного файлу.

---------------------- початок -----------------------------

S<Newton2>

x0= 0.800 y0= 1.500 n=5 all=9 dec=6

1:{ 0.800000 1.500000} + {-0.012964 -0.087106}

2:{ 0.787036 1.412894} + { 0.002920 -0.005103}

3:{ 0.789956 1.407791} + { 0.000025 -0.000014}

4:{ 0.789981 1.407777} + { 0.000000 -0.000000}

5:{ 0.789981 1.407777} + { 0.000000 -0.000000}

F<Newton2>

--------------------- кінець ----------------------------

Текст програми Newton2

Program Newton2; {Уточнення розв'язкiв системи двох не лiнiйних р-нь}

Uses {Funct,} {модуль з функцiями для метода Ньютона}

NewtonS; {модуль з iтерацiйною процедурою NewtonStep}

Const _n=100; {число iтерацiй за замовченням}

Var

OK {ознака "наближення знайдено"}

: boolean;

all, dec, {число всiх цифр i число цифр пiсля коми}

n, iter {число iтерацiй}

: word;

x0,y0, {початкове наближення}

x_old, y_old, {наближення поточного кроку}

dx, dy, {прирости аргументiв}

x_new, y_new {наближення наступного кроку}

: real;

finp, {вихiдний файл}

fout {результуючий файл}

: text;

BEGIN {Newton2}

assign (fout,'Newton2.out'); rewrite (fout);

write (fout,'S<Newton2>');

{ в в е д е н н я п а р а м е т р i в }

assign (finp,'Newton2.inp'); reset(finp);

read(finp,x0); {x0}

readln(finp); read(finp,y0); {y0}

readln(finp); read(finp,n); {n}

readln(finp); read(finp,all); {all}

readln(finp); read(finp,dec); {dec}

if n<=0 then n:=_n; {встановлення числа iтерацiй n}

writeln(fout); write(fout, 'x0=',x0:6:3,' y0=',y0:6:3,

' n=',n:1,' all=',all:1,' dec=',dec:1);

close(finp);

{ м е т о д Н ь ю т о н а }

x_old:=x0; y_old:=y0;

for iter:=1 to n do

begin {for iter:=1 to n}

NewtonStep(x_old,y_old,dx,dy,OK);

if OK=false

then begin {OK=false}

writeln(fout);writeln(fout,iter:3,' знаменник = 0 !'); break;

end {OK=false}

else begin {OK=true}

x_new:=x_old+dx; y_new:=y_old+dy;

writeln(fout);write(fout,iter:3,':{',x_old:all:dec,' ',

y_old:all:dec,'} + {',dx:all:dec,' ',dy:all:dec,'}');

x_old:=x_new; y_old:=y_new;

end; {OK=true}

end; {for iter:=1 to n}

writeln (fout); write (fout,'F<Newton2>');

close (fout);

end. {Newton2}

Текст модуля Funct

У цьому модулі потрібно замінити у рядках із зірочками вказані функції на власні.

Unit Funct;

Interface {Funct}

{права частина F першого рiвняння системи}

function F(x,y:real):real;

{часткова похiдна F по аргументу х}

function Fx(x,y:real):real;

{часткова похiдна вiд F по аргументу y }

function Fy(x,y:real):real;

{права частина G другого рiвняння системи}

function G(x,y:real):real;

{часткова похiдна вiд G по аргументу x}

function Gx(x,y:real):real;

{часткова похiдна вiд G по аргументу y}

function Gy (x,y:real):real;

implementation {Funct}

{права частина першого рiвняння системи}

function F(x,y:real):real; { вкажiть вашу функцiю}

begin {F} F:=y*sin(x)-1; end; { * замiнити F}

{часткова похiдна вiд F по аргументу x}

function Fx(x,y:real):real; { вкажiть вашу функцiю}

begin {Fx} Fx:=y*cos(x); end; { * замiнити Fx}

{ часткова похiдна вiд F по аргументу y}

function Fy (x,y:real):real; { вкажiть вашу функцiю}

begin {Fy} Fy:=sin(x); end; { * замiнити Fy}

{права частина другого рiвняння системи}

function G (x,y:real):real; { вкажiть вашу функцiю}

begin {G} G:=y*y*y-x-2; end; { * замiнити G}

{ часткова похiдна вiд G по аргументу x }

function Gx(x,y:real):real; { вкажiть вашу функцiю}

begin {Gx} Gx:=-1; end; { * замiнити Gx}

{ часткова похiдна вiд G по аргументу y }

function Gy (x,y:real):real; { вкажiть вашу функцiю}

begin {Gy} Gy:=3*y*y; end; {* замiнити Gy}

end. {Funct}

Текст модуля NewtonS

unit NewtonS; {модуль з iтерацiйною процедурою NewtonStep}

Interface {NewtonS}

uses Funct;

{крок двовимiрного методу Ньютона}

procedure NewtonStep(x,y:real;var dx,dy:real;var OK:boolean);

implementation {NewtonS}

{крок двовимiрного методу Ньютона}

procedure NewtonStep(x,y:real;var dx,dy:real;var OK:boolean);

var Delta,Delta1,Delta2:real;

begin {NewtonStep}

Delta:=Fx(x,y)*Gy(x,y)-Gx(x,y)*Fy(x,y);

if Delta=0

then OK:=false

else begin {OK:=true}

OK:=true;

Delta1:=F(x,y)*Gy(x,y)-G(x,y)*Fy(x,y); Delta2:=Fx(x,y)*G(x,y)-Gx(x,y)*F(x,y);

dx:=-Delta1/Delta; dy:=-Delta2/Delta;

end; {OK:=true}

end; {NewtonStep}

end. {NewtonS}

8. Лабораторна робота SelfEq на тему ”Знаходження характеристичного рівняння”

Завдання. Для заданої квадратної матриці записати характеристичний визначник, знайти відповідне характеристичне рівняння за методом Левер’є і знайти наближено всі дійсні корені характеристичного рівняння.

Хід виконання.Для заданої квадратної матриці:

1. Записати відповідний характеристичний визначник і знайти відповідне характеристичне рівняння за методом Левер’є;

2. Здійснити перевірку знайденого характеристичного рівняння, знаходячи характеристичне рівняння безпосередньо за означенням;

3. Знайти границі розташування коренів характеристичного рівняння (метод кільця) і знайти наближено всі корені (дійсні та комплексні) характеристичного рівняння;

4. Знайти кратність знайдених коренів характеристичного рівняння;

5. Оформити звіт та захистити лабораторну роботу.

Теоретичні питання

1. Власні значення квадратної матриці і відповідні власні вектори.

2. Характеристичний визначник і характеристичне рівняння (вікове рівняння) квадратної матриці.

3. Теорема Гамільтона-Келі.

4. Формули Ньютона для симетричних сум .коренів полінома.

5. Різні методи знаходження характеристичного рівняння (Данілевського, Крилова, Левер'є, невизначених коефіцієнтів).

6. Означення точного і наближеного коренів алгебраїчного рівняння.

7. Теорема Гауса. Головна теорема алгебри.

8. Два визначення кратних коренів алгебраїчного рівняння.

Приклад виконання роботи SelfEq

Лабораторна робота SelfEq на тему ‘Знаходження характеристичного рівняння квадратної матриці і його дійсних коренів’

Варіант 100. Виконав студент групи БІТ-04, Мороз Олексій Васильович. Дата виконання: 15.12.2003.

Завдання.Для квадратної матриці записати характеристичний визначник, знайти відповідне характеристичне рівняння за методом Левер’є і знайти наближено всі дійсні корені характеристичного рівняння.

Виконання роботи.

1. Запис характеристичного визначника. .

2. Знаходження характеристичного рівняння. За методом Левер’є треба, по-перше, знайти степені матриці до четвертого степеня і знайти відповідні сліди: Тому послідовно знаходимо:

1) , ;

2) , ;

3) ,

Тому, за формулами Ньютона:

Отже,

Перевірка:

Так як то як наслідок маємо наступні корені характеристичного рівняння

Зауваження. Якщо невідомий розклад характеристичного многочлена на елементарні множники, то треба написати програму відокремлення дійсних коренів цього многочлена і провести уточнення відокремлених коренів з заданою точністю.

Висновки до лабораторної роботи. Нами знайдено характеристичне рівняння за методом Левер'є і всі його дійсні корені.

Варіанти індивідуальних завдань до роботи SelfEq

1. 2. 3. 4.
5. 6. 7. 8.
9. 10. 11. 12.
13. 14. 15. 16.
17. 18. 19. 20.
21. 22. 23. 24.
25. 26. 27. 28.
29. 30. 31. 32.
33. 34. 35. 36.
37. 38. 39. 40.
41. 42. 43. 44.
45. 46. 47. 48.
49. 50. 51. 52.
53. 54. 55. 56.
57. 58. 59. 60.
61. 62. 63. 64.
65. 66. 67. 68.
69. 70. 71. 72.
73. 74. 75. 76.
77. 78. 79. 80.
81. 82. 83. 84.
85. 86. 87. 88.
89. 90. 91. 92.
93. 94. 95. 96.
97. 98. 99. 100.

9. Лабораторна робота SelfVect на тему “Знаходження власних векторів”

Завдання.Знайти власні значення і власні вектори квадратної матриці з точністю за будь-яким методом (Данилевського, Крилова, за означенням).

Хід виконання.Для заданої квадратної матриці

1. Знайти характеристичний поліном матриці за будь-яким методом (Данилевського, Крилова, Левер'є).

2. Знайти наближено з точністю або точно всі власні значення матриці , тото корені характеристичного полінома .

3. Для будь-якого одного дійсного власного значення знайти відповідний власний вектор (власний підпростір).

4. Оформити звіт і захистити лабораторну роботу.

Теоретичні питання.

1. Власні вектори квадратної матриці.

2. Знаходження власних векторів різними методами (Данилевського,. Крилова, за означенням).

3. Система лінійних рівнянь для знаходження компонент власного вектора.

4. Використання методу обвідних мінорів для знаходження компонент власних векторів (знаходження лінійно незалежних рівнянь із відповідної системи лінійних рівнянь і тих компонент власного вектора, яки будуть вважатись незалежними і яки породжують власний підпростір).

Приклад виконання роботи SelfVect

Загрузка...

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти