Polinomul de interpolare Lagrange

1. Tema

Determinarea valorii polinomului Lagrange într-un punct care aproximează o funcție pe noduri de interpolare date.

2. Metoda

Polinomul de interpolare Lagrange pentru funcția f(x) pe nodurile x1,x2,…,xn este:

polinomul lagrange13. Exemplu

Să se găsească polinomul de interpolare Lagrange pentru funcția f(x)=x3 și nodurile x1=1, x2=3, x3=5.

Rezolvare:

polinomul lagrange2

4. Algoritmul

Algoritmul pentru determinarea valorii polinomului Lagrange este:

Intrări:

  • n = numărul nodurilor de interpolare
  • a = punctul în care se calculează valoarea polinomului
  • x = vectorul cu nodurile de interpolare
  • f = funcția din metodă

Ieșiri:

  • l = valoarea polinomului Lagrange în a

polinomul lagrange3

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;
	return f;
}
void main(void)
{
	float l, p, a;
	float x[max + 1];
	int n, i, j;
	cout << "dati valoarea in care se doreste aproximarea functiei" << endl;
	cin >> a; cout << "dati numarul de noduri" << endl;
	cin >> n; cout << "dati nodurile" << endl;
	for (i = 1; i <= n; i++)
	{
		cout << "x[" << i << "]=";
		cin >> x[i];
	}
	cout << endl;
	l = 0;
	for (i = 1; i <= n; i++)
	{
		p = 1;
		for (j = 1; j <= n; j++)
		if (j != i)
			p = p*(a - x[j]) / (x[i] - x[j]);
		l = l + funct(x[i])*p;
	}
	cout << "Val. pol. in " << a << " este " << l << endl;
	system("pause");
}
 Rezultat:
polinomul lagrange rezultat

One Comment Add yours

  1. Maria says:

    Acest cod ruleaza avand legea functiei f data , dar daca nu am avea legea acelei functii ?

    Like

Leave a comment