Софтуерна реализация на простия итерационен метод за решаване на SLAE в пакета MATLAB

Входни параметри: U - разширена матрица от коефициенти, eps - изисквана точност на решението.

Функция res = Jacobi(U,eps);

error('Посочена невалидна система');

%довеждане на системата до диагонално доминираща форма

грешка ('Системата не е съвместима');

%сума по редове

ако k 1) && (max_norm2>1) && (max_norm3>1))

грешка ('Входната матрица не е диагонално доминираща')

%намиране на сумата за X1(i)

сума = сума + (A(i,j) * X0(j));

докато ( abs( X0(i) - X1(i) ) > eps )

%намиране на сумата за X1(i)

сума = сума + (A(i,j) * X0(j));

Векторен изход за %решение

% показва броя на итерациите за изпълнение на условието за точност

итерационен

ВГРАДЕНИ ФУНКЦИИ НА ПАКЕТИ MATHCAD И MATLAB

ЗА ПРИБЛИЖИТЕЛНО РЕШЕНИЕ НА ЛИНЕЙНИ СИСТЕМИ

АЛГЕБРИЧНИ УРАВНЕНИЯ

MATHCAD пакет

Решаването на системи от линейни уравнения е доста често срещан проблем. За система от линейни уравнения, дадени в матричната формаAX=B, векторът на решението може да се получи от очевидния израз X=A-1B или, например, от решаване на системата от уравнения с проверка за неизроденост на матрицата: X:=if(A,A -1 B,0).

Трябва да се отбележи, че пакетът съдържа и вградена функция за решаване на линейни системиlsolve(A,B), къдетоA е матрицата на коефициентите, аB е векторът на свободните членове. Пример за използване на предложените методи е показан на фиг. 5.1.

софтуерна

Ориз. 5.1. Примери за системни решения

Блоковете за решаване се използват за решаване на системи от уравнения, системи от неравенства, смесени системи. Структурата на блока за решение:

началоДадено

дизайни на тялото с множество изгледиAB1 op AB2

(op е някаква релационна операция и за запис на знака за равенство се използва специален „удебелен“ знак за равенство, който се намира на лентата с инструменти; знакът за присвояване не се използва в тялото на блока за решение)

endFIND (списък) илиMINERR (списък).

Списъкът е списък от променливи, които трябва да бъдат намерени.

ИзползвайтеFIND, за да намерите точното решение; ако липсва, тогава възниква грешка. С помощта наMINERR винаги ще бъде намерено решение, което минимизира остатъка от ограничението. ПроменливаERR – стойност на грешката.

Преди решаващия блок е необходимо да се зададат началните условия за всички необходими променливи, възможно е във векторна форма. Съответно в тялото на блока за решение е възможно да се използва нотацията на уравненията в матрична форма. Максималният брой уравнения в системата е увеличен на двеста. Често е необходимо да се решават системи от уравнения при определени ограничения. Така в тялото на решаващия блок може да има както равенства, така и неравенства едновременно. Пример за такава система е показан по-долу:

Дадено

find(x,y)=

За последващо използване на резултатите трябва да организирате края така:

В тялото на решаващия блок е невъзможно да се изграждат графики, да се извършват изчисления.

Итерациите се правят доôERRô£ TOL. Ако се срещне седлова точка и не е известно накъде е насочен градиентът, тогава се издава съобщениетоnot converging (не е разрешено). Броят на повторенията е ограничен. Възможно е съобщение за грешка катоне е намерено решение.

Ако възникнат тези грешки, можете:

– промяна на точността –TOL ;

– промяна на началните условия;

– заменетеfind сminerr и вземетеприблизително решение.

Въпреки това, когато използвате функциитеfind иminerr, трябва да се внимава и е необходимо да се предвидят решения за проверка, т.к. Не е необичайно решението да е грешно.

За да получите различно решение, можете да промените началните условия, за да поясните - намалетеTOL.

MATLAB пакет

Разгледайте две системи от линейни уравнения:AX=B иXA=B. В MATLAB такива системи се решават без изчисляване на обратната матрица. Двата типа разделяне на матрица/ и\ се използват за тези две ситуации, когато неизвестната матрица е отляво или отдясно на матрицата на коефициента:

X=A\B съответства на решениетоAX=B ;

X=B/A съответства на решениетоXA = B.

В този случай трябва да бъдат изпълнени условията за съвпадение на размерите на матрицитеX, A, B. Спомнете си, че за вариантаX=A\B, матрицатаX трябва да има същия брой колони като матрицатаB и същия брой редове като матрицатаA. ЗаX=B/A тези условия са обърнати.

Алгебричните свойства на оператора/ могат да бъдат извлечени от връзката(B/A)' = (A'\B').

Матрицата не трябва да е квадратна, тя може да бъдеmxn. В този случай съществуват следните опции:

  • m = n – квадратна система, възможно е да се намери точно решение;
  • m > n – свръхопределена система, решението се търси по метода на най-малките квадрати;
  • m n и рангът на матрицата еn, тогава всеки от следните три израза изчисляваX чрез най-малки квадрати:

X=A\B

X=pinv(A)*B

X=inv(A'*A)*A'*B

В противен случай решениетоX по метода на най-малките квадрати не ее уникален и има набор от вектори, минимизиращинорма(A*X-B). Решението, изчислено чрезX=A\B, е основното решение с най-многоr ненулеви компоненти:r=rank(A). Решението, изчислено сX=pinv(A)*B,, е решението с минималната нормаX.