Contoh program interpolasi lagrange dalam bahasa c++

Interpolasi adalah proses menemukan dan mengevaluasi fungsi yang grafiknya melewati himpunan titik-titik yang diberikan.

Pada kesempatan ini akan dibahas tentang Interpolasi Lagrange atau dikenal juga dengan nama Polinom Lagrange. Perhatikan Polinom Lagrange Derajat 1 atau Interpolasi Linier, untuk interpolasi ini menggunakan pendekatan garis-garis atau persamaan linier sehingga digunakan persamaan garis untuk mengkonstruksi interpolasinya.

BACA JUGA :


Teori interpolasi lagrange


Interpolasi lagrange diturunkan dari persamaan Newton. Interpolasi  lagrange diterapkan untuk mendapatkan fungsi polinomial P(x) berderajat tertentu yang melewati sejumlah titik data.

interpolasi lagrange

Persamaan berikut dinamakan Polinom Lagrange derajat 1 :

persamaan lagrange 2

Bentuk Umum polinom Lagrange derajat ≤ n untuk  (n + 1) titik berbeda :
yang dalam hal ini :  ai = yi,   i = 0, 1, 2, …, n

ALGORITMA INTERPOLASI LAGRANGE


persamaan interpolasi lagrange

  • Menetapkan jumlah titik yang diketahui 
  • Menggunakan dua array x dan y dengan jumlah data = jumlah titiknya.
  • Mencari Li(x) dan P(x)
  • Mencari Qi(x) untuk titik yang dikatahui dengan menggunakan perulangan 
  • Mensubstitusi nilai xikedalam Qi(x) 
  • Misalnya banyaknya titik yang diketahui adalah b , Menginput b dari i = 1 s.d b

Contoh soal:

Dari fungsi y=f(x) data sebagai berikut :

contoh soal lagrange derajat 1


Tentukan f(22) dengan polinom Langrange derajat 2


Berikut penyelesaiannya programnya dalam bahsa c++ dengan menggunakan algoritma program seperti diatas :



#include <stdio.h>
#include <iostream.h>
#include<conio.h>

int main(void)
{
float xBar,hasil;
float x[100],f[100],l[100],hitung;
int n,i,j,k;
printf("\n              ----------------------------");
printf("\n              Tugas Metnum METODE LAGRANGE");
printf("\n              ----------------------------");
printf("\n\n\nMasukkan Jumlah Data : "); scanf("%i",&n);
printf("\n----------------------------");
printf("\n");
for(i=0;i<n;i++)
        {
        printf("\nMasukkan nilai x%i : ",i); scanf("%f",&x[i]);
        printf("Masukkan nilai y%i : ",i); scanf("%f",&f[i]);
        }
printf("\n");
printf("\n----------------------------");
printf("\nMasukkan nilai xBar : "); scanf("%f",&xBar);
printf("\n");
printf("sehingga titik titiknya adalah :\n ");
printf("\n");
for (i=0;i<n;i++)
        {
        cout <<"("<<x[i]<<","<<f[i]<<")"<<endl;
        }
printf("dengan nilai xBar = %.2f ",xBar);
hasil=(f[0]*((xBar-x[1])/(x[0]-x[1]))*((xBar-x[2])/(x[0]-x[2])))+(f[1]*((xBar-x[0])/(x[1]-x[0]))*((xBar-x[2])/(x[1]-x[2])))+(f[2]*((xBar-x[0])/(x[2]-x[0]))*((xBar-x[1])/(x[2]-x[1])));
printf("\nMaka nilai yBar untuk xBar : %.3f",xBar);
printf("\nadalah : %.3f",hasil);
getch();
return(0);
}

Hasilnya akan tampak seperti berikut:

hasil lagrange

Untuk file perhitungan excel nya silahkan dwonload di SINI

Advertisement