Conjugarea și transpoziția hermitiană

Din moment ce aceste diferențe sunt adesea sursa de erori, trebuie să aveți o bună înțelegere în scopul fiecăruia dintre operatori și se aplică operatorului, în cazul în care numai transpunerea necesară (fie matrice reale sau complexe), iar operatorul «» «» "- atunci când trebuie să efectuați transpunerea și conjugarea .







4.13 Înmulțirea vectorilor

Presupunem că u R este un vector de coloană și v R este un vector de rând. Atunci elementele matricei = uv sunt produse =. Fragmentul următor demonstrează calculul matricei A:

De obicei, numai vectorii liniari, etichetați ca uR, sunt considerați în cursuri de algebră liniară. În acest caz, șirul vectorial corespunzător va fi scris ca u. În Scilab, o variabilă poate conține direct un vector de rând, ceea ce înseamnă că acest vector nu va fi necesar atunci când se înmulțește transpunerea.

O altă sursă de erori este ipoteza inversă că variabila conține un vector de rând, în timp ce, de fapt, variabila conține un vector de coloană. Prin urmare, orice algoritm care funcționează numai

și (A, "r"), coloana "AND" sau (A, "c") "OR"

Tabelul 17. Funcțiile de comparare între linii și coloane pe coloane ale elementelor de matrice.

cu un anumit tip de matrice, trebuie să verifice dimensiunile argumentelor de intrare și să genereze un mesaj de eroare în cazul unei nepotriviri.

4.14 Comparația matricelor reale

Comparația a două matrici este posibilă în condițiile dimensiunilor identice. Când această condiție este îndeplinită, operatorii sunt prezentați în tabelul 1. 6. poate fi de asemenea aplicat la operanzii matricei. Ca urmare a comparării celor două matrici, se formează o matrice de valori logice, în care fiecare element reprezintă rezultatul unei comparații a elementelor corespondente ale matricelor originale. Operatorii logici "", "|" etc. se aplică și matricelor. În plus, matricele de valori logice pot acționa ca parametri ai funcțiilor și și sau sau a căror semnificație este prezentată în Tabelul. 17.







În următorul exemplu, definim matricea A și o comparăm cu numărul 3 (fiecare element al matricei este comparat cu această valoare). Apoi vom crea a doua matrice B și o vom compara cu prima. În cele din urmă, folosind funcția sau, efectuăm o comparație a liniei, rezultând un vector de valoare logică care indică care dintre coloanele matricei A conțin elemente care depășesc elementele corespunzătoare ale matricei B.

4.15 Numerele punctelor plutitoare ca indici

Să presupunem că matricea A are dimensiunea 2 × 2. Pentru a accesa elementele matricei, puteți utiliza atât indicii stabiliți în textul programului, cât și valori calculate dinamic în timpul execuției, inclusiv cele non-intregi, după cum se arată mai jos:

--> A = matrice de testare ("hilb" .2)

--> A (2. [1.0 1.1 1.5 1.9])

Acest exemplu demonstrează că toate valorile 1.0, 1.1, 1.5 și 1.9 sunt rotunjite la 1, ca în cazul utilizării funcției int, care trunchiază partea fracționată a numărului. De exemplu, rezultatul fiecăruia dintre următoarele apeluri: int (1.0), int (1.1), int (1.5) și int (1.9) - va fi 1, iar expresiile int (-1.0), int (-1.1), int ) și int (-1,9) returnează numărul -1 1.

Rețineți că rotunjirea are loc în funcție de caracteristicile funcției int, mai degrabă decât de podea, care, spre deosebire de int, anulează valorile rotunjite. De fapt, să presupunem că A reprezintă o matrice de 4 × 4, de exemplu, creată ca urmare a unui apel

A = matrice de testare ("hilb" .4)

Funcția triu (A, k) returnează partea superioară triunghiulară a matricei A transferată la ea, care se află deasupra diagonalei k. Comenzile triu (A, -1), triu (A, int (-1,5)) și triu (A, -1,5) returnează același rezultat, în timp ce instrucțiunea triu (A, etajul -1.5) triu (A, -2).

Acest comportament poate părea ciudat, dar contribuie la uniformitatea limbajului Scilab. Într-adevăr, atunci când se face referire la elementele matricei care utilizează variabilele ca indici, tipul variabilei va fi de cele mai multe ori un număr cu virgulă mobilă. În acest caz, valoarea este convertită de funcția int. Cele de mai sus ilustrează fragmentul următor:

Rețineți că în acest exemplu, variabilele i și j au un tip de virgulă mobilă.

1 Din punctul de vedere al dispozitivului Scilab intern, acest lucru se explică prin utilizarea funcției int la nivelul apelului C sau Fortran din interiorul gateway-urilor Scilab pentru a converti numerele cu puncte în virgulă în întregi.







Articole similare

Trimiteți-le prietenilor: