1. Tema
Rezolvarea numerică a ecuațiilor algebrice neliniare sau transcendente prin metoda de părți proporționale.
Fie f:R->R o funcție dată. Forma generală a unei ecuații algebrice neliniare sau transcendente este f(x)=0.
2. Metoda
Fie [a,b] un interval unde ecuația f(x)=0 are o soluție.
Relația de recurență în metoda de părți proporționale este:
Utilizăm verificarea condiției |xn+1 – xn| < ε pentru convergența șirului.
3. Exemplu
Să se parcurgă primii trei pași din metoda părților proporționale pentru rezolvarea ecuației: x²-x-3=0, x∈[2,3].
Rezolvare:
Cum f(2)=-1 și f(3)=3 rezultă că f(2)f(3)=-3<0, adică ecuația are o soluție în intervalul [2,3].
Alegem x0=3. Cum f'(x)=2x-1 rezultă:
4. Algoritmul:
Algoritmul asociat metodei de părți proporționale este:
Intrări:
- f = funcția din metodă
- a,b = capetele intervalului unde ecuația are o soluție
- ε = precizia
- y = aproximația inițială a soluției
Ieșiri:
- x = soluția aproximativă
5. Implementare:
#include "stdafx.h" #include using namespace std; #define max 10 float funct(float t) { float f; f = t*t - 1 * t - 3; return f; } void main(void) { float a, b, eps, x, y, d; int k; cout << "Dati a= " << endl; cin >> a; cout << "Dati b= " << endl; cin >> b; cout << "Dati eroarea= " << endl; cin >> eps; cout << "Dati x= " << endl; cin >> y; d = eps + 1; k = 0; while (d >= eps) { x = y - (funct(y)) / ((funct(a) - funct(y)) / (a - y)); d = abs(x - y); y = x; k = k + 1; } cout << "Dupa " << k << " etape solutia este " << x << endl; system("Pause"); }
Rezultat: