Skaitliskās metodes "Lineāru algebrisku vienādojumu sistēmu atrisināšana ar iterāciju metodēm" (Praktiskais darbs Nr 1 - RA) C++



Rēzekne.
Algoritma blokshēma.
Kontrolpiemērs.
Atrisināt doto lineāru algebrisku vienādojumu sistēmu ar norādīto precizitāti 10 5, ievērojot konkrētos papildnosacījumus. Izvadīt iegūto rezultātu (sakņu vērtības), sasniegto precizitāti un iterāciju skaitu, kas bija nepieciešams precizitātes sasniegšanai, kā arī katrā iterācijā tās numuru, iegūtos rezultātus un sasniegto precizitāti.
47,916 Vienkāršo iterāciju metode Precizitātes noteikšanu katrā iterācijā noformēt kā funkciju
1. Pieprasīt no lietotāja ievadīt uzdevuma risināšanai nepieciešamo precizitāti, saglabāt mainīgajā precizitāte.
2. Organizēt ciklu, kas pieprasīs no lietotāja vienādojuma koeficientu matricas ievadi un brīvo locekļu vektora ievadi ar tastatūras palīdzību. Dotos lielumus saglabāt: vienādojumu koeficientu matricu mainīgajā m[4][4], brīvo locekļu vektoru mainīgajā n[4].
3. Organizēt ciklu, kas pārveidos doto vienādojuma koeficientu matricu normālformā un saglabās matricās matrica[4][4] . Šim nolūkam nepieciešams pārbaudīt katru matricas m[4][4] elementu, ja rindas un kolonnas indeksi sakrīt, tad piešķirt atbilstošajam elementam matricā matrica[4][4] vērtību 0. Ja nesakrīt, tad atbilstošajam elementam matricā matrica[4][4] piešķirt vērtību ( m[i][j]/m[i][i] ).
4. Organizēt ciklu, kas pārveidos brīvo locekļu vektoru – izdalīs katru n[i] elementu ar matricas m[i][i] elementu un saglabās mainīgajā vektors[4].
5. Organizēt nulto tuvinājumu saglabāšanu mainīgajā tuvinajums prev[4], pārrakstot tos no mainīgā vektors[4].
8. Uzsākam ciklu. Katram patreizējam tuvinājumam piešķirt vērtību, kas veidota, saskaitot vērtības: tuvinajums cur[i]+matrica[i][j]*tuvinajums prev[j].
9. Aprēķināt precizitāti, izsaucot funkciju, kas darbojas šādi (precizitāti saglabāt atsevišķā mainīgajā):
piešķirt mainīgajam, kas glabās precizitātes vērtības, sākuma vērtību nulle;
izveidot ciklu, kas organizēs visu patreizējo tuvinājumu un iepriekšējo tuvinājumu starpības kvadrāta summu;
11. Salīdzināt iegūto precizitāti ar lietotāja ievadīto. Ja iegūtā precizitāte ir mazāka vai vienāda ar to, ko pieprasījis lietotājs, pāriet uz nākošo punktu. Pretējā gadījumā atgriezties uz sesto punktu.
Blokā 2 mainīgajam, kas uzglabās funkcijas vērtību, tiek piešķirta sākuma vērtība nulle.
Blokos no 4 līdz 7 tiek realizēta vienādojumu koeficientu matricas ievade ar divkāršā cikla palīdzību, kur i,j – attiecīgi rindas un kolonnas indeksi. Ar katru cikla izpildīšanās reizi tiek aizpildīta viena matricas rinda un attiecīgais brīvā locekļu vektora elements.
Blokos no 8 līdz 13 notiek vienādojumu koeficientu matricas un brīvo locekļu vektora apstrāde – pārveidošana normālformā. Tiek organizēts divkāršs cikls, katrā iterācijā tiek pārbaudīti rindas un kolonnas indeksi. Blokā 10 notiek šo indeksu salīdzināšana. Ja tie sakrīt, attiecīgajai matricas vērtībai tiek piešķirta nulles vērtība blokā 11. Ja tie nesakrīt, matricas elementa vērtība tiek izskaitļota, piešķirot pretēju zīmi un izdalot ar atbilstošo elementu, kam dotajā ciklā sakrīt rindas un kolonnas indeksi. Blokā 13 katru reizi, kad tiek palielināts rindas indekss, notiek vektora vērtību izskaitļošana, izdalot to ar elementu, kam dotajā ciklā sakrīt rindas un kolonnas indeksi.
- Microsoft Word 12 KB
- Latviešu
- 14 lapas (1398 vārdi)
- Universitāte
- Saniitis
-