Цель работы: изучить итерационные методы решения СЛАУ,решить заданную систему линейных алгебраических уравнений методом простой итерации (метод Якоби) и методом Зейделя с точностью до .
Постановка задачи
1. Привести систему к виду, пригодному для метода итераций.
2. Провести ручной счет нахождения решения для заданной системы алгебраических уравнений методом простой итерации (метод Якоби).
3. Найти решение системы уравнений методом простой итерации в пакетах MATLAB и MATHCAD.
4. Найти приближённое решение системы уравнений методом Зейделя в пакетах MATLAB и MATHCAD.
5. Проверить результаты с помощью встроенных функций пакетов.
Решение системы В MathCad:
Выводы: Решение СЛАУ методом простой итерации сходится за 21 итерацию, а методом Зейделя – за 9. Отсюда следует, что решение методом Зейделя сходится быстрее, чем методом простой итерации для данной алгебраической системы.
Выполнениев MATLAB:
function res=fcase(a,b,e,f);
k=0;
x0=b;
x1=b;
n=3;
m=4;
switch f
case 0
for i=[1:n]
sum=0;
for j=[1:m-1]
sum=sum+(a(i,j)*x0(j));
end
x1(i)=sum+b(i);
end
while (abs(x0(i)-x1(i))>e)
x0=x1;
for i=[1:n]
sum=0;
for j=[1:m-1]
sum=sum+(a(i,j)*x0(j));
end
x1(i)=sum+b(i);
end;
k=k+1;
end
case 1
for i=[1:n]
sum=0;
for j=[1:m-1]
sum=sum+(a(i,j)*x1(j));
end
x1(i)=sum+b(i);
end
while (abs(x0(i)-x1(i))>e)
x0=x1;
for i=[1:n]
sum=0;
for j=[1:m-1]
sum=sum+(a(i,j)*x1(j));
end
x1(i)=sum+b(i);
end;
k=k+1;
end
end
x1
k
return
Результат:
>> a= [4.1 -2 3.9; 0.6 4.5 -0.2; 1.1 -1 5.6 4.7]
a=
4.1000 -2.0000 3.9000
0.6000 4.5000 -0.2000
1.1000 -1.0000 5.6000
>>b=[1.028;0.388;0.404]
b=
4.9000
8.5000
4.7000
>> b=[4.9 8.5 4.7]
e=0.001
f=0
fcase(a,b,e,f)
x1 = 0.00962799536869
- 0.01610305596883
1.04067346853625
k = 21
f=1
fcase(a,b,e,f)
x1 = 0.00967430004795
- 0.01617147968943
1.04061844547864
k = 9
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.