Interpolasi adalah mencari sesuatu nilai fungsi diantara nilai fungsi yang sudah ada.
Biasanya, digunakan untuk mencari suatu titik dari sebuah grafik.
Misalkan, saat x1=3, maka f(x1)=5; saat x2=5, maka f(x2)=11; saat x2=7, maka f(x1)=13, Maka berapa nilai fungsi pada saat x=4,267..?
Dalam hal ini, kita bisas membuat sebuah fungsi terlebih dahulu dari data yang diketahui dengan rumus yang telah kita dapat saat SMP. Tetapi hali itu akan menjadi rumit.
Maka interpolasi ini ditujukan untuk mencari akar permasalahan tersebut sehingga jadi lebih mudah.
Berikut ini ada program untuk interpolasi 3 data..
Semoga berguna..
#include<stdio.h>
int main()
{
printf("Interpolasi merupakan cara menaksir nilai antara sekumpulan data. Secara umum,");
printf(" pendekatannya adalah memetakan data tersebut kepada polinomial pangkat n");
int i, j, banding, ulang, hapus;
float nilai, b0, b1, b2, b3, akt, f, simp, a, ak, bk, b, c, X, X0, X1, X2, X3, fx1, fx2, fx3, fx0;
float A[4][2];
pass : system("CLS");
lanjut : printf("\n");
for (i=0; i<=3; i++){
for (j=0; j<1; j++){
printf("Masukan nilai X[%d] : ", i);
scanf("%f", &A[i][j]);
}}
for (i=0; i<=3; i++){
for (j=1; j<2; j++){
printf("Masukan nilai f(x)%d : ", i);
scanf("%f", &A[i][j]);
}}
printf("\n");
X0 = A[0][0];
X1 = A[1][0];
X2 = A[2][0];
X3 = A[3][0];
fx0 = A[0][1];
fx1 = A[1][1];
fx2 = A[2][1];
fx3 = A[3][1];
a =(fx1-fx0)/(X1-X0);
b =(fx2-fx1)/(X2-X1);
c =(fx3-fx2)/(X3-X2);
printf("INTERPOLASI : \n");
b0 = fx0;
b1 = a;
b2 = (b-b1)/(X2-X0);
b3 = ((c - b)/(X3-X1) - b2)/(X3-X0);
printf("Masukan x yang akan dicari fungsinya = "); scanf("%f", &X);
f = b0+b1*(X-X0)+b2*(X-X0)*(X-X1)+b3*(X-X0)*(X-X1)*(X-X2);
printf("\n");
printf(" bo = %f ", b0);
printf(" b1 = %f ", b1);
printf(" b2 = %f ", b2);
printf(" b3 = %f ", b3);
printf("\n");
printf("Nilai f(x) = %f\n", f);
printf("\n");
printf("apakah ingin mencari simpangan dengan suatu nilai pembanding? (ya=1)\n");
printf("jawab = "); scanf("%d", &banding);
printf("\n");
if(banding==1){
printf("Masukan nilai pembanding : ");
scanf("%f", &akt);
simp = (akt-f)/akt*100;
printf(" simpangan yang terjadi adalah printf %f %c \n", simp, 37);
}
printf("\n");
printf("\n");
printf("\n");
printf("ingin menghitung lagi..?? (ya=1, tidak=0)\n"); printf("jawab : "); scanf("%d", &ulang);
if(ulang==1){
printf("hapus semua data yang sudah ada? (ya=1)\n");
printf("jawab : ");
scanf("%d", &hapus);
if(hapus==1){
goto pass;
}
else{
printf("\n");
printf("\n");
goto lanjut;
}
}
else{
system("exit");
}
}
Tidak ada komentar:
Posting Komentar