Rezolvarea lineară și matricea în Matlab

Buna ziua, cititorii! Astăzi vorbim despre matrice în Matlab, aplicarea lor în sistemele de ecuații algebrice liniare de rezolvare. Vom analiza în detaliu metodele de soluție, iar acest lucru necesită cunoașterea mai multor algoritmi de bază.

De asemenea, demn de remarcat este faptul că fiecare algoritm, pe care o vom căuta soluția sistemelor liniare în Matlab. viteza sa de a găsi această soluție, prezența sau absența condiției algoritmului, etc.

În tradiția site-ului nostru Să examinăm un exemplu:

Rezolva sistemul de ecuații liniare:

4 * a + b - c = 6
a - b + c = 4
2 * a - 3 * b - 3 * c = 4

metoda matricei inverse în Matlab

Să începem cu o metodă destul de comună. Esența ei este că trebuie mai întâi să scrie coeficienții unui. b și c (adică acei factori care sunt la stânga), într-o matrice și termenul liber (și anume faptul că dreptul) la alta.

Ca rezultat, vom obține 2 matrice:

Pentru punerea în aplicare a acestei metode (și aceste metode prea) au nevoie de o conditie: determinantul matricei formate din coeficienții partea stângă nu a fost zero. Verificarea pe determinantul:

După verificarea stării se poate trece la pasul următor: găsirea matricea inversă. În Matlab este utilizat pentru acest INV operatorului.
O soluție în sine SLAE în Matlab este găsit ca multiplicarea matricei inverse la matricea termenilor constante:

Avem 3 valori, care corespund coeficienților noastre: adică, a = 2, b = -1, c = 1. Puteți verifica prin substituirea răspunsurile primite la sistemul sursă, și să se asigure că am decis în mod corect SLAE.

De asemenea, trebuie remarcat faptul că matricea trebuie să-l multiplice, așa cum am făcut-o, adică stânga matricea inversă, matricea dreptului de termeni liberi.

Dacă nu înțelegi totul, te sfătuiesc să citiți articolul nostru despre elementele de bază ale Matlab.

gauss

Metoda Gauss este implementată în Matlab pur și simplu: pentru aceasta avem nevoie doar de a studia un nou operator.
(\) - stânga diviziune.
În următoarea înregistrare:

Vom primi răspunsuri la sistemul nostru original. Doar nota, am decis set standard SLAE de funcții în Matlab, și este de dorit să se utilizeze acest operator, atunci când coeficienții de matrice a pieței, deoarece operatorul determină matricea formei triunghiulare. În alte cazuri, pot apărea erori.

Metoda de descompunere a matricei

Acum, hai sa vorbim despre extinderea matricei. Găsirea unor soluții prin descompunerea matricei este foarte eficient. Eficiența datorită vitezei găsirii unei soluții pentru acest tip de sisteme și acuratețea rezultatelor.

Următoarele Extinderile sunt posibile:

  • descompunerea Cholesky
  • descompunere LU
  • descompunerea QR

Să examinăm o decizie prin descompunerea LU și QR, ca și în problemele cele mai comune sarcini de a rezolva aceasta este prin intermediul unor astfel de extinderi.

Principala diferență dintre aceste două extinderi: LU descompunere se aplică numai pentru matrici pătrate, QR - eventual dreptunghiular.

descompunere LU

Am rezolva problema de mai sus propusă de descompunere LU:

descompunerea QR

Și prin descompunerea QR, respectiv:

Rețineți că un apostrof ( „) după Q reprezintă o transpunere.

Caracteristici standard Matlab

Doar Matlab oferă linsolve funcția. cu care este posibilă rezolvarea sistemului de ecuații algebrice liniare. Se pare ca acest lucru:

După cum puteți vedea, nimic complicat acolo nu este, atunci, ele sunt funcții standard de Matlab.

repetiție

Așa că astăzi vom învățat mai multe metode de rezolvare a sistemelor liniare în Matlab. modul de utilizare a matricelor, și prin intermediul unor funcții standard. Lăsați-i să se repete la un alt exemplu:

Rezolva sistemul de ecuații liniare:
6 * a - b - c = 0
a - 2 * b + 3 * d = 0
3 * a - 4 * b - 4 * c = -1

  • Prin matricea inversă:
  • Metoda Gauss':
  • LU descompunere:
  • QR de descompunere:

Cu aceasta vă spun la revedere de la tine, sper că am învățat să folosească o matrice în Matlab pentru rezolvarea sistemelor liniare.

Trimite acest link:

Mai întâi vom găsi patru matrici determinante compus după cum urmează:

A = cu [1 aprilie 1; 1 -1 1; 2 -3 -3]; % Coef Matrix
A1 = [1 01 iunie; 4 -1 1; 4 -3 -3]; % Înlocuire 1 coloană cu coloană de termeni liberi
A2 = [până la 1 aprilie 6; 1 4 1; 02 aprilie -3]; coloană substituție 2%
A3 = [4 1 6; 1 -1 4; 2 -3 4]; coloană de înlocuire 3%

d = det (A); % Concluzie: 30
d1 = det (A1); % Concluzie: 60
d2 = det (A2); % Concluzie: -30
d3 = det (A3); % Concluzie: 30

Apoi vom găsi coeficienții:

a = d1 / d; % Ieșire: 2
b = d2 / d; % Concluzie: -1
c = d3 / d; % Ieșire: 1

Raspuns a avut dreptate.

Metoda Jordan-Gauss', care se numește, de asemenea, metoda de eliminare gaussiană este rezolvată în MATLAB, după cum urmează:

>> A = cu [1 aprilie 1; 1 -1 1; 2 -3 -3]; b = [6, 4, 4]
>> C = Rref ([A b])% de reducere a matricei formă triunghiulară extinsă
>> x = C (1: 3,4: 4) recuperarea% din ultima coloană a matricei - decizia sistemului
>> A * x inspecție%