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

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Компьютерные технологии
  • 2222 страницы
  • 7 + 7 источников
  • Добавлена 17.01.2021
800 руб.
  • Содержание
  • Часть работы
  • Список литературы

Содержание

Введение ................................................................................................................. 3
1 Математическая постановка задачи.................................................................. 5
2 Встроенные функции MATLAB........................................................................ 8
3 Численные методы решения систем уравнений............................................. 10
4 Пример решения системы линейных уравнений............................................ 14
5 Листинг программ............................................................................................. 18
Заключение ........................................................................................................... 21
Список использованных источников ................................................................. 22
Фрагмент для ознакомления

В качестве тестового примера рассмотрим систему уравнений следующего вида:

Проведем расчеты, используя приведенные ранее функции:
A=[10, -1, 8;
-10, 20, -6;
-28, 10, 40];
b=[10; 200; 600];

xi=inv(A)*b

xpi=pinv(A)*b

xls=linsolve(A, b)

xlc=lscov(A, b)

xml=mldivide(A, b)

x=A\b

Рисунок 3. Результаты нахождение решений СЛУ
с помощью встроенных функций MATLAB

В ходе выполнения курсовой работы были реализованы собственные функции нахождение корней уравнений, а именно функции метода Крамера, метода Гаусса, метода простой итерации и метода Зейделя. В качестве входных параметров функции выступают несколько значений: матрица коэффициентов уравнений, вектор правых частей уравнений, начальное приближение (в итерационных методах) и точность вычисления (в итерационных методах). Результаты работы программы представлены ниже.
fprintf('Метод Крамера:');
xcm=CramersMethod(A, b)

fprintf('Метод Гаусса:');
xgm=GaussMethod(A, b)

C=[0, 0.1, -0.8;
0.5, 0, 0.3;
0.7, -0.25, 0];
d=[1; 10; 15];
xo=[0; 0; 0];
e=10^(-6);

fprintf('Метод итерации:');
[xim, iim]=IterationMethod(C, d, xo, e)

fprintf('Метод Зейделя:');
[xsm, ism]=SeidelsMethod(C, d, xo, e)


Рисунок 4. Результаты нахождения решений СЛУ
с помощью собственных функций

Тексты вызываемых функций представлены в следующем разделе настоящей курсовой работы.
5 Листинг программ

Ниже представлены тексты функций, которые были написаны в ходе реализации численных методов решения системы линейных уравнений.
Метод Крамера
function x=CramersMethod(A, b)
detA=det(A);
detAb=zeros(length(A),1);
for i=1:length(A)
C=A;
C(:,i)=b;
detAb(i)=det(C);
end
x=detAb/detA;
end

Метод Гаусса
function x=GaussMethod(A, b)
n=length(A);
for i=1:n
[~,ind]=max(A(i+1:n,i));
ind=ind+i-1;
A([i,ind],:)=A([ind,i],:);
b([i,ind])=b([ind,i]);
b(i)=b(i)/A(i,i);
A(i,:)=A(i,:)/A(i,i);
for j=i+1:n
b(j)=b(j)-A(j,i)*b(i);
A(j,:)=A(j,:)-A(j,i)*A(i,:);
end
end
for i=1:n
for j=i+1:n
b(n-j+1)=b(n-j+1)-b(n-i+1)*A(n-j+1,n-i+1);
end
end
x=b;
end

Метод простой итерации
function [x, iter]=IterationMethod(C, d, xo, e)
x=xo;
iter=0;
while 1
iter=iter+1;
xo=x;
x=C*xo+d;
if sum(abs(x-xo))break
end
end
end

Метод Зейделя
function [x, iter]=SeidelsMethod(C, d, xo, e)
x=xo;
iter=0;
n=length(d);
while 1
iter=iter+1;
xo=x;
for i=1:n
x(i)=d(i);
for j=1:n
x(i)=x(i)+C(i,j)*x(j);
end
end
if sum(abs(x-xo))break
end
end
end
Заключение

В процессе выполнения курсового проекта были приобретены практические навыки в использовании вычислительных алгоритмов для решения задач нахождения решений систем линейных уравнений с помощью математического пакета MATLAB.
Написаны четыре программы-функции, реализующие численное решение системы линейных уравнений различными методами, а именно: методом Крамера, методом Гаусса, методом простой итерации и методом Зейделя.
Так же были расширены теоретические знания документации MATLAB, которые были применены при расчете, приобретены начальные навыки самостоятельного планирования и выполнения научной исследовательской работы.
Список использованных источников

1. Atkinson, Kendall A. An Introduction to Numerical Analysis (2nd ed.), New York: John Wiley & Sons, 1989.
2. Дьяконов В. П. SIMULINK 5/6/7. Самоучитель. М.: «ДМК-Пресс», 2008., 784 с.
3. Самарский, А. А. Введение в численные методы: учеб. Пособие для вузов / А. А. Самарский. – 5-е изд., стер. – СПб.: Лань, 2009. – 288с.
4. Калиткин, Н. Н. Численные методы: учеб. пособие / Н. Н. Калиткин. – 2-е изд., исправленное. – СПб.: БХВ-Петербург, 2011., 592с.
5. Каханер, Д. Численные методы и программное обеспечение: пер. с англ. / Д. Каханер, К. Моулер, С. Нэш. – 2-е изд., стер. – М.: Мир, 2001., 575c.
6. Ильин В. А., Позняк Э. Г. Линейная алгебра: Учебник для вузов. – 6-е изд., стер. М.: ФИЗМАТЛИТ, 2004, 280 с.
7. Волков Е. А. Численные методы. – М.: Физматлит, 2003.









2

Список использованных источников

1. Atkinson, Kendall A. An Introduction to Numerical Analysis (2nd ed.), New York: John Wiley & Sons, 1989.
2. Дьяконов В. П. SIMULINK 5/6/7. Самоучитель. М.: «ДМК-Пресс», 2008., 784 с.
3. Самарский, А. А. Введение в численные методы: учеб. Пособие для вузов / А. А. Самарский. – 5-е изд., стер. – СПб.: Лань, 2009. – 288с.
4. Калиткин, Н. Н. Численные методы: учеб. пособие / Н. Н. Калиткин. – 2-е изд., исправленное. – СПб.: БХВ-Петербург, 2011., 592с.
5. Каханер, Д. Численные методы и программное обеспечение: пер. с англ. / Д. Каханер, К. Моулер, С. Нэш. – 2-е изд., стер. – М.: Мир, 2001., 575c.
6. Ильин В. А., Позняк Э. Г. Линейная алгебра: Учебник для вузов. – 6-е изд., стер. М.: ФИЗМАТЛИТ, 2004, 280 с.
7. Волков Е. А. Численные методы. – М.: Физматлит, 2003.