CATEGORII DOCUMENTE |
ASPECTE ALE CALCULULUI NUMERIC IN VIRGULA MOBILA (II)
1. Rezolvarea ecuatiei algebrice de gradul al -II-lea
Se considera ecuatia algebrica de gradul al -II-lea :
cu solutiile:
In cazul rezolvarii numerice a acestui tip de ecuatii pot apare o serie de probleme ce afecteaza, pe de o parte, precizia calculelor si, pe de alta parte, posibilitatea efectiva de calcul prin aparitia unor depasiri in virgula mobila. In aceste conditii, se propune urmatorul algoritm, descris in limbaj pseudocod, ce incearca sa depaseasca dificultatile mentionate.
APLICATIA 1:
Sa se realizeze, in mediul de programare MATLAB, programul pentru rezolvarea ecuatiei algebrice de gradul al-II-lea. Programul va contine urmatoarele etape:
1. Introducere coeficienti ecuatie, in ordinea descrescatoare a puterilor lui z, in variabilele a, b, c.
2. Calcul solutii dupa urmatorul algoritm:
_ DACA ( a=0 ) ATUNCI
| _ DACA ( b=0 ) ATUNCI
| | ATRIBUIE z1r ← 0
| | ATRIBUIE z1i ← 0
| | ATRIBUIE z2r ← 0
| | ATRIBUIE z2i ← 0
| | ALTFEL
| | ATRIBUIE z1r ← 0
| | ATRIBUIE z1i ← 0
| | ATRIBUIE z2r ← -c/b
| |_ ATRIBUIE z2i ← 0
|ALTFEL
| _ DACA ( c=0 ) ATUNCI
| | ATRIBUIE z1r ← 0
| | ATRIBUIE z1i ← 0
| | ATRIBUIE z2r ← -b/a
| | ATRIBUIE z2i ← 0
| | ALTFEL
| | ATRIBUIE bp ← b/2
| | _ DACA ( abs(bp) >= abs(c) ) ATUNCI
| | | ATRIBUIE e ← 1-(a/bp)*(c/bp)
| | | ATRIBUIE d ← sqrt(abs(e))*abs(bp)
| | |ALTFEL
| | | ATRIBUIE e ← a
| | | _ DACA ( c < 0 ) ATUNCI
| | | |_ ATRIBUIE e ← -a
| | | ATRIBUIE e ← bp*(bp/abs(c))-e
| | |_ ATRIBUIE d ← sqrt(abs(e))*sqrt(abs(c))
| | _ DACA ( e >= 0 ) ATUNCI
| | | _ DACA ( bp >= 0 ) ATUNCI
| | | |_ ATRIBUIE d ← -d
| | | ATRIBUIE z1r ← (-bp+d)/a
| | | ATRIBUIE z1i ← 0
| | | ATRIBUIE z2r ← 0
| | | _ DACA ( z1r ~= 0 ) ATUNCI
| | | |_ ATRIBUIE z2r ← (c/z1r)/a
| | | ATRIBUIE z2i ← 0
| | |ALTFEL
| | | ATRIBUIE z1r ← -bp/a
| | | ATRIBUIE z1i ← abs(d/a)
| | | ATRIBUIE z2r ← z1r
|_ |_ |_ ATRIBUIE z2i ← -z1i
SCRIE 'z1=',z1r,'+',z1i,'*j'
SCRIE 'z2=',z2r,'+',z2i,'*j'
3. Calcul radacini polinom de gradul doi, folosind functia MATLAB roots (a se vedea OBSERVATIA 2, ce urmeaza). Rezultatele se afiseaza.
4. Reluare program, daca se doreste, de la punctul 1.
OBSERVATII:
1.) Se folosesc urmatoarele functii MATLAB: abs, sqrt, roots;
2.) Functia MATLAB: roots
Scop Calculul radacinilor unui polinom.
Apel roots ( v )
Parametri formali
Ø INTRARE: v - vector linie ce contine coeficientii polinomului, in ordinea descrescatoare a puterilor. Daca polinomul este de grad n, atunci acesta este:
3.) Programul se va rula pentru urmatoarele date de intrare:
a |
b |
c |
a |
b |
c |
|
-1.e+5 | ||||||
| ||||||
6.e+30 |
5.e+30 |
-4.e+30 |
||||
2. Elemente de reprezentare grafica 2-D (mediul de programare MATLAB)
Se considera o functie de variabila reala: , pentru care se cunosc valorile corespunzatoare absciselor (echidistante sau nu):
- numere reale;
Se doreste reprezentarea grafica a punctelor de coordonate , intr-un sistem rectangular de axe, pe display-ul calculatorului. In afara de reprezentarea grafica propriu-zisa, pe display mai pot fi afisate o serie de informatii numerice referitoare la marimile reprezentate. De asemenea se pot reprezenta doua sau mai multe functii reale in acelasi ecran grafic.
Se considera functia : , cunoscuta in analiza numerica sub denumirea de 'functia Runge', in legatura cu problema aproximarii numerice a functiilor (tratata intr-o lucrare de laborator ce va urma):
Se vor realiza mai multe reprezentari grafice ale functiei, pe intervalul , utilizand diverse valori pentru pasul de discretizare. Se considera reteaua de puncte echidistante :
unde h este pasul de discretizare:
APLICATIA 2 :
Sa se realizeze, in mediul de programare MATLAB, programul pentru reprezentarea grafica a functiei Runge, cu diferiti pasi de discretizare. Valorile functiei vor fi calculate cu ajutorul unei functii externe mediului MATLAB, functie utilizator ce va fi descrisa separat, in cele ce urmeaza (a se vedea OBSERVATIA 1). Programul va parcurge urmatoarele etape:
1. Precizare interval de evaluare a valorilor functiei: , ; .
2. Introducere numer de puncte, in variabilele np1 si, respectiv, np2, (np1 < np2 ), in care vor avea loc evaluarile functiei.
3. Calcul pasi de discretizare:
4. Generare seturi de puncte pentru reprezentarea grafica:
abscise : - vectorul x1, continand elemente cu valori de la a la b, cu pasul de crestere h1 (vector linie);
- vectorul x2, continand elemente cu valori de la a la b, cu pasul de crestere h2 (vector linie);
ordonate : - vectorul y1, continand valorile functiei Runge, evaluata in punctele din vectorul x1:
- vectorul y2, continand valorile functiei Runge, evaluata in punctele din vectorul x2:
5. Reprezentare grafica 1 - grafice suprapuse: se reprezinta perechile de puncte (x1, y1) si, respectiv, (x2, y2), in acelasi grafic:
clg;
plot(x1,y1,'ob',x1,y1,'-r',x2,y2,':g'),
xlabel('x <RETURN> : continuare '),
title('y1: o; y2: '), pause;
6. Reprezentare grafica 2 - grafice separate, unul sub altul:
clg;
subplot(211),plot(x1,y1,'ob',x1,y1,'-r'),
xlabel('x'),title('y1'),
subplot(212),plot(x2,y2,':g'),
xlabel('x <RETURN> : continuare '),
title('y2'), pause;
7. Reprezentare grafica 3 - grafice separate, unul langa altul:
clg;
subplot(121),plot(x1,y1,'ob',x1,y1,'-r'),
xlabel('x'),title('y1'),
subplot(122),plot(x2,y2,':g'),
xlabel('x <RETURN> : continuare '),
title('y2'), pause;
8. Reluare reprezentari grafice, daca se doreste, de la punctul 5.
9. Reluare generala program, daca se doreste, de la punctul 2.
OBSERVATII:
1.) Programul apeleaza functia utilizator FRUNGE (din fisierul cu numele FRUNGE.m). O modalitate de descriere a acesteia, in limbajul MATLAB, este:
function y = FRUNGE ( x )
%
n = length(x);
y = ones(1,n) ./ ( 1 + 25 * x .^2 );
2.) Programul se va rula pentru urmatoarele date de intrare:
;
.
3.) Programul pune in evidenta:
evaluarea/ reprezentarea neadecvata a functiilor, daca pasul de discretizare/ evaluare este ales prea mare;
aproximarea liniara grafica a functiilor intre punctele (x, y), dintr-un interval dat, utilizate in reprezentarea grafica (cazul reprezentarii grafice in np1 puncte).
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1911
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved