Fişierul intrare/ieşire: | ecu.in, ecu.out | Sursă | Lot 2003 |
Autor | Mugurel Ionut Andreica | Adăugată de | |
Timp execuţie pe test | 0.025 sec | Limită de memorie | 65536 kbytes |
Scorul tău | N/A | Dificultate |
Vezi solutiile trimise | Statistici
Ecu
Gigel are de rezolvat un sistem complicat de ecuatii neliniare si pentru aceasta intentioneaza sa foloseasca o metoda iterativa care, spera el, va converge catre solutie dupa un numar rezonabil de iteratii. Mai intai, el alege niste valori initiale pentru cele N necunoscute ale sistemului. Aceste valori se noteaza cu x1(0) x2(0) ... xN(0). In continuare, dupa fiecare iteratie, el va modifica valorile necunoscutelor, conform urmatoarelor relatii:
* xk(i)=pk*xk(i-1)+(1-pk+1)*xk+1(i-1)+yk pentru 1≤ k < N
* xN(i)=pN*xN(i-1)+(1-p1)*x1(i-1)+yN
unde prin xk(i) s-a notat valoarea necunoscutei k dupa i iteratii. pk reprezinta ponderea asociata necunoscutei k, iar yk reprezinta corectia aplicata necunoscutei k, dupa fiecare iteratie. Gigel nu este un programator prea bun si nu stie sa implementeze algoritmul iterativ descris. De aceea, are nevoie de ajutorul dumneavoastra.
Cerinta
Dandu-se valorile initiale ale celor N necunoscute, ponderile asociate si corectiile aplicate, sa se determine valorile necunoscutelor dupa M iteratii.
Date de Intrare
Pe prima linie a fisierului ecu.in se afla doua numere intregi, separate printr-un spatiu, N si M. Pe urmatoarea linie se afla N numere reale, reprezentand valorile initiale ale necunoscutelor, in ordinea x1(0),...,xN(0). Pe urmatoarea linie se afla alte N numere reale, reprezentand ponderile asociate necunoscutelor, in ordine de la x1(0) la xN(0). Pe ultima linie a fisierului se afla N numere reale, descriind corectiile ce vor fi aplicate necunoscutelor x1(0),...,xN(0), dupa fiecare iteratie. Toate numerele reale sunt date cu cel mult 3 zecimale.
Date de Iesire
Pe prima linie a fisierului ecu.out se vor afisa N numere reale, rotunjite la trei zecimale, reprezentand valorile necunoscutelor dupa M iteratii.
Restrictii si precizari
- 2 ≤ N ≤ 30
- 0 ≤ M ≤ 1.000.000.000
- -1000 ≤ xi(0) ≤1000, pentru k de la 1 la N
- 0 ≤ pk ≤ 1, pentru k de la 1 la N
- -0.1 ≤ yk ≤ 0.1, pentru k de la 1 la N
Exemplu
ecu.in | ecu.out |
---|---|
3 2 1.0 2.0 3.0 0.1 0.2 0.3 0.001 0.002 0.003 | 2.173 1.765 2.075 |
Explicatie
Dupa prima iteratie, valorile necunoscutelor sunt: 1.701; 2.502; 1.803. Dupa cea de-a doua iteratie, valorile necunoscutelor sunt: 2.173; 1.765; 2.075.