МІНІСТЕРСТВО ОСВІТИ НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
/
Розрахунково-графічна робота
з курсу "Чисельні методи"
Львів 2014
Мета роботи:
закріпити знання отримані при вивченні курсу «Чисельні методи в інформатиці» та ознайомитися з новими відомими чисельними методами.
Завдання:
Розв'язати систему лінійних алгебраїчних рівнянь методом Гаусса за схемою Халецького наведену у Додатку 1 згідно варіанту індивідуального завдання отриманого у викладача. Навести хід розв’язку. Здійснити перевірку розв’язку СЛАР за допомогою 2 ітерацій методом простої ітерації. Написати програму.
16:
/
Побудувати графік функції наведеної у додатку 2 згідно варіанту індивідуального завдання отриманого у викладача. На заданому інтервалі для 5 різних точок побудувати інтерполяційний поліном (степінь див. додаток 2). За допомогою інтерполяційного полінома дослідити вплив степені полінома на точність одержаних результатів. Навести хід розв’язку. Написати програму
/
Дати розгорнуту відповідь на контрольні запитання наведені у додатку.
12. Особливості програмної реалізації інтерполяцiї з рiвновiддаленими вузлами.
40. Вiддiлення та уточнення коренiв.
Хід роботи:
I. Для виконання даного завдання нам потрібно виконати ряд дій:
Спочатку заповнюємо таблицю коефіцієнтів і таблицю вільних членів, відповідно до завдання;
Отримуємо розв’язок системи рівнянь за методом Гауса
Задаємо точність обчислення для методу простих ітерацій;
Знаходимо розв’язки системи рівнянь за допомогою методу простих ітерацій, а також ітерацію, на якій цей розв’язок було знайдено;
Результати даних дій почергово виводяться на екран, для методу простих ітерацій на екран виводяться матриці знормованої системи;
Аналізуємо отримані результати;
Код програми:
clear all;
clc;
disp('Таблиця коефіцієнтів:')
A=[15 6 1 4; -2 12 4 -4; -4 4 15 4; 2 -5 -5 14]
disp('Таблиця вільних членів:')
B=[-4; 8; 4; 4]
r=4;
disp('Метод Гауса')
Od=rref([A B]); %отримання одиничної матриці з розширеної
X=Od(1:r,(r+1)) %корені системи рівнянь
disp('Метод простих ітерацій')
%зведення системи до нормальної
AA=A'*A;
BB=A'*B;
e=0.00001;
t=0;
iter=0;
% кількість ітерацій
disp('Матриця A знормованої системи(A"A)');
disp(AA); %вивід матриці коефіцієнтів
disp('Матриця B знормованої системи(A"B)');
disp(BB); %вивід матриці вільних членів
NumIter=30;
for i=1:4,
for j=1:4,
if i==j
c(i,j)=0;
else
c(i,j)=-AA(i,j)/AA(i,i);
end;
end;
end;
for i=1:4,
d(i)=BB(i)/AA(i,i);
end;
for i=1:4,
sum1=0;
for j=1:4,
sum1=sum1+c(i,j);
end;
s1(i)=sum1;
end;
for i=2:4,
if s1(i)>sum1
sum1=s1(i);
end;
end;
if abs(sum1)<1
for i=1:4,
x0(i)=d(i);
end;
for i=1:4,
s=0;
for j=1:4,
s=s+c(i,j)*x0(j);
end;
xk(i)=s;
end;
for i=1:4,
xk(i)=xk(i)+d(i);
end;
while((t<4)||(t>4))
iter=iter+1;
for i=1:4,
x0(i)=xk(i);
z(i)=x0(i);
end;
for i=1:4,
s=0;
for j=1:4,
s=s+c(i,j)*z(j);
xk(i)=s+d(i);
z(i)=xk(i);
end;
end;
t=0;
for i=1:4,
if(abs(xk(i)-x0(i))<e)
t=t+1;
end;
if t==4
for j=1:4,
disp(['X',num2str(j),' = ', num2str(xk(j))]);
end;
disp(['Ітерація ',num2str(iter)]);
end;
end;
end;
else
disp('Система не вирішена');
end;
Результати:
Таблиця коефіцієнтів:
A =
15 6 1 4
-2 12 4 -3
-4 4 15 4
2 -5 -5 14
Таблиця вільних членів:
B =
-4
8
4
4
Метод Гауса
X =
-0.7124
0.7840
-0.2834
0.5663
Метод простих ітерацій
Матриця A знормованої системи(A"A)
249 40 -63 78
40 221 139 -66
-63 139 267 -18
78 -66 -18 237
Матриця B знормованої системи(A"B)
-84
68
68
32
X1 = -0.71235
X2 = 0.78395
X3 = -0.28335
X4 = 0.56626
Ітерація 23
Перевірка:
Метод Гауса за схемаю Халецького
/