Anda di halaman 1dari 13

Nugraheni Dwi Wulandari

18/424147/PA/182521

Tugas ke-2 ( Fungsi Hampiran/Interpolasi)

1. a). Dengan menggunakan metode numerik interpolasi linear carilah nilai exp(-x/1.5)
untuk x = 0.5 ; 2.8; 6.1. Hitung juga ralatnya.
 x = 0.5
( )
exp(-0.5/1.5) = exp(-0.190303)+ (0.5-0.190303)
= 8.80849 + (0.5 – 0.190303)
= 8.80849 + (-1.39901)
= 7.40948
Ralat
f(x) = =
f’(x) =

f”(x) =

RT =

=
= 0.025394

exp(-0.5/1.5) = 7.41± 0.02

 x = 2.8
( )
exp(-2.8/1.5) = exp(-2.0299)+ (2.8-2.0299)
= 2.58395 + (0.7701)
= 1.65523
Ralat
f(x) = =
f’(x) =
f”(x) =

RT =

=
= 0.00983

exp(-2.8/1.5) = 1.65 ± 0.01

 x = 6.1
( )
exp(-6.1/1.5) = exp(-6.0897)+ (6.1-6.0897)
= 0.17252 + (0.0103)
= 0.17007
Ralat
f(x) = =
f’(x) =

f”(x) =

RT =

=
= 0.000007

exp(-6.1/1.5) = 0.17007± 0.000007

b). Dengan menggunakan metode numerik interpolasi Lagrange (menggunakan fungsi basis)
carilah nilai exp(-x/1.5) untuk x = 0.5 ; 2.8; 6.1. Hitung juga ralatnya.
(HINT: (1) buatlah fungsi interpolasi Lagrange g(x) dengan mencari fungsi basis
V(x) terlebih dahulu)

N = 0 → V0(x) =

N = 1 → V1(x) =
N = 2 → V2(x) =

N = 3 → V3(x) =

N = 4 → V4(x) =

N = 5 → V5(x) =

N = 6 → V6(x) =

N = 7 → V7(x) =

N = 8 → V8(x) =

Dan untuk hasil akhir, g(x), diperoleh :


g(x) = ∑

Dengan ralat :
e(x) = (x-x0)(x-x1)…(x-xn)

= (x-x0)(x-x1)…(x-xn)

 untuk x = 0.5, diperoleh


g(0.5) = 7.16527

dengan ralat sebesar = 7.77581E-07


 untuk x = 2.8 , diperoleh
g(2.8) = 1.54633

Dengan ralat sebesar = 4.1599E-06

 untuk x = 6.1, diperoleh :


g(6.1) = 0.17134

Dengan ralat sebesar = 1.28446E-07

2. Dari tabel di atas terlihat bahwa jarak antar data xi ke xi+1 tidak sama. Dengan
menggunakan metode interpolasi Lagrange interpolasikan data pada tabel tersebut
sehingga jarak antar data xi ke xi+1 menjadi sama yaitu h = xi+1 - xi = 0.1𝜋. Kerjakan
dengan metode Tabulasi dan buatlah program komputer yang mengimplementasikan
hasil tabulasi yang anda buat dengan menggunakan bahasa pemrograman yang anda
kuasai (C/C++/FORTRAN atau yang lain...).

I xi Exp(-xi/1.5)

0 0 10

1 0.1π 8.11036

2 0.2π 6.577831
3 0.3π 5.334902
4 0.4π 4.326855
5 0.5π 3.509264
6 0.6π 2.846129
7 0.7π 2.308279
8 0.8π 1.872068
9 0.9π 1.518315
10 π 1.231444
11 1.1π 0.998802
12 1.2π 0.810114
13 1.3π 0.657044
14 1.4π 0.532852
15 1.5π 0.432089
16 1.6π 0.350375
17 1.7π 0.284165
18 1.8π 0.230546
19 1.9π 0.187033
20 2π 0.151367
Program pada C++ :

#include<iostream>

#include<conio.h>

#define CLRSCR system(“cls”);

using namespace std;

int main()

int n,i,j;

float mult,sum=0,x[100],f[100],a;

cout<<"Masukkan banyaknya i : ";

cin>>n;

cout<<"Masukkan nilai xi dan fxi-nya berturut turut : "<<endl;


for(i=0;i<n;i++)

cin>>x[i]>>f[i];

cout<<"\nMasukkan nilai x yang akan dicari : ";

cin>>a;

for(i=0;i<=n-1;i++)

mult=1;

for(j=0;j<=n-1;j++)

if(j!=i)

mult*=(a-x[j])/(x[i]-x[j]);

sum+=mult*f[i];

cout<<"\nHasil estimasi f(x) = "<<sum;

getch();

return 0;

Hasil pada program C++ :


3. Implementasikanlah metode interpolasi Newton beda maju (Forward difference)
sehingga jarak antar data xi ke xi+1 pada table 1 menjadi sama yaitu h = xi+1 - xi = 0.1𝜋.
Kerjakan dengan metode Tabulasi dan buatlah program komputer yang
mengimplementasikan hasil tabulasi yang anda buat dengan menggunakan bahasa
pemrograman yang anda kuasai (C/C++/FORTRAN atau yang lain).

Pengerjaan dengan metode Newton Divided Difference


Tabulasi :
 Newton divided difference interpolation :
xi fxi 1st 2nd 3rd 4th 5th 6th 7th 8th
0 10
-6.26112
0.190303 8.80849 1.718072
-4.51736 -0.2961
1.01495 5.08326 1.11702 0.036841
-2.4625 -0.17925 -0.00354
2.0299 2.58395 0.5826 0.020911 0.00028094
-1.20596 -0.08905 -0.00195 -1.99251E-05
3.17172 1.20696 0.271916 0.010269 0.0001596 1.29567E-06
-0.53326 -0.0415 -0.00101 -1.17884E-05
4.50384 0.496598 0.121866 0.005147 8.7813E-05
-0.23177 -0.0206 -0.00055
5.64566 0.231961 0.061742 0.002822
-0.13385 -0.01183
6.0897 0.172525 0.040726
-0.10802
6.28 0.151969

 Hasil untuk 0 hingga 2π dengan h = 0.1π


xi f(xi)
0.31416 8.110369
0.62832 6.577808
0.94248 5.334872
1.25664 4.326809
1.5708 3.509215
1.88496 2.846096
2.19912 2.308275
2.51328 1.872087
2.82744 1.518334
3.1416 1.231428
3.45576 0.998713
3.76992 0.80991
4.08408 0.656676
4.39824 0.532238
4.7124 0.431092
5.02656 0.34876
5.34072 0.281579
5.65488 0.226539
5.96904 0.181161
6.2832 0.143418

Program pada C++ :


#include <iostream>

#include <conio.h>

using namespace std;

int main (){

double XX,x[100],f[100][100],P1;

int n;

P1=0;

cout << "Masukkan banyaknya i: ";

cin >> n;

cout << endl;


for(int i=0;i<n;i++){

cout << "Masukkan X[" << i << "] : ";

cin >> x[i];

cout << endl;

for(int j=0;j<n;j++){

cout << "Masukkan F[" << j << "] : ";

cin >> f[0][j];

cout << endl;

cout << "Masukkan X: ";

cin >> XX;

for(int i=1;i<n;i++){

for(int j = 0; j< n-i;j++){

f[i][j] = (f[i-1][j+1]-f[i-1][j])/(x[i+j]-x[j]);

for(int i=0;i<n;i++){

double k = 1;

for(int j = 0; j<i;j++){
k*= (XX - x[j]);

P1 += k * f[i][0];

cout <<endl << "Hasil estimasi f(x) : " <<P1 <<endl;

Hasil pada program C++ :

4. Bandingkan hasil interpolasi pada soal 2 dan 3 dengan interpolasi yang menggunakan
metode interpolasi linear (manakah yang lebih akurat? hint: bandingkan besar nilai
ralat/error dari masing-masing metode).
→ Hasil ralat antara interpolasi linier dengan interpolasi lagrange menunjukkan bahwa
ralat pada interpolasi lagrange jauh lebih kecil (contoh; untk x=0.5 interpolasi linier
memberikan nilai ralat sebesar 0.025394 sedangkan interpolasi lagrange memberikan
nilai ralat 7.77581E-07) sehingga interpolasi lagrange lebih akurat daripada interpolasi
linier.

Anda mungkin juga menyukai