Metoda părților proporționale

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:

metoda partilor proportionale1

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ă:

metoda partilor proportionale2

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ă

metoda partilor proportionale3

5. Implementare:

Visual_C++_Icon
Cod Sursa C++
#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:

metoda partilor proportionale rezultat

Leave a comment