Metoda Tangentei

1. Tema

Rezolvarea numerică a ecuațiilor algebrice neliniare sau transcendente prin metoda tangentei.

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ță pentru metoda tangentei este:

metoda tangentei1

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 tangentei este:

Intrări:

  • f, fd = funcția, derivata 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 tangentei2

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 - t - 3;
	return f;
}
 
float funct_der(float t)
{
	float fd;
	fd = 2 * t - 1;
	return fd;
}
 
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_der(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