DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

ЧИСЕЛЬНЕ РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
ПМ-32

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний yніверситет „Львівська Політехніка” Звіт до лабораторної роботи №1 на тему: „ЧИСЕЛЬНЕ РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ АЛГЕБРАЇЧНИХ РІВНЯНЬ” Лабораторна робота №1 Мета: навчитись розв`язувати систему лiнiйних алгебраїчних рівнянь за допомогою iтераційного методу Зейделя. Варіант №3. А= f=  Розв’язати СЛАР, використовуючи стандартну програму з пакету Maple. Використовуючи одну з мов програмування, розв`язати дану СЛАР методу Зейделя з точнiстю ε=. Задана точнiсть ε ˃ 0 вважають досягнутою , . Вивести розв`язок та вектор нев`язки . Теоритичнi вiдомостi Розглянемо СЛАР: , (1) де  – матриця розміру ,  – невідомий вектор,  – заданий вектор. Для побудови ітераційного методу розв’язування системи (1) попередньо перетворимо –те рівняння системи (1) до вигляду  Цю систему будемо розв’язувати методом Зейделя:  Компоненти вектора  знаходяться з рівняння  послідовно, починаючи з . Розв`язок СЛАР у Maple матиме вигляд: Текст програми: #include <stdio.h> #include <math.h> #include <conio.h> float A[10][10],F[10],X1[10],X2[10]; int n; void main() { g: printf("\vvedit rozirnist matrusi: N="); scanf("%i",&n); int k=0; float max,mod; printf("Put the matrix:\n"); for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { scanf("%f", &A[i][j]); } } printf("Put the F-vektor:\n"); for (i=1;i<=n;i++) { X1[i]=1;X2[i]=0; scanf("%f", &F[i]); } do { for (i=0;i<=n;i++) { X2[i]=0; } k++; for (int j=2;j<=n;j++) { X2[1]=X2[1]+(A[1][j]/A[1][1]*X1[j]); } X2[1]=-X2[1]+F[1]/A[1][1]; for (i=2;i<=n;i++) { if (i==n) { for (j=1;j<=i-1;j++) { X2[i]=X2[i]-(A[i][j]/A[i][i]*X2[j]); } X2[i]=X2[i]+F[i]/A[i][i]; } else { for (j=1;j<=i-1;j++) { X2[i]=X2[i]-(A[i][j]/A[i][i]*X2[j]); } for (j=i+1;j<=n;j++) { X2[i]=X2[i]-(A[i][j]/A[i][i]*X1[j]); } X2[i]=X2[i]+F[i]/A[i][i]; } } max=fabs(X2[1]-X1[1]); for (i=2;i<=n;i++) { mod=fabs(X2[i]-X1[i]); if (max<mod) max=mod; } for (i=1;i<=n;i++) { X1[i]=X2[i]; } /*printf("\nk=%i, max=%f",k,max); for (i=1;i<=n;i++){ printf(" x=%f",X2[i]);}*/ } while ((max>0.001)&&(k<10000)); printf("\nIteracii: %i\nRozvjazok:",k); for (i=1;i<=n;i++) { X1[i]=0; printf("\nX[%i]=%f",i,X2[i]); } for (i=1;i<=n;i++) { for (int j=1;j<=n;j++) { X1[i]+=A[i][j]*X2[j]; } } printf("\nVektor nevjazku:"); for (i=1;i<=n;i++) { X1[i]=X1[i]-F[i]; printf("\n%f",X1[i]); } printf("\nDo you want put another data? y/n: "); char y; scanf("%s",&y); if ((y=='y')||(y=='Y')) { printf("\n---------------\n"); goto g; } } Результати Висновок: На данiй лабораторнiй роботi я навчилася розв`язувати СЛАР двома способами: программно та в Maple, результати виконання зiйшлись.Освоiла iтерацiйний метод Зейделя розв`язування СЛАР.
Антиботан аватар за замовчуванням

2015

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!