18/424147/PA/182521
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
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
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
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) =
Dengan ralat :
e(x) = (x-x0)(x-x1)…(x-xn)
= (x-x0)(x-x1)…(x-xn)
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>
int main()
int n,i,j;
float mult,sum=0,x[100],f[100],a;
cin>>n;
cin>>x[i]>>f[i];
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];
getch();
return 0;
#include <conio.h>
double XX,x[100],f[100][100],P1;
int n;
P1=0;
cin >> n;
for(int j=0;j<n;j++){
for(int i=1;i<n;i++){
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];
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.