linear splines

26
SPLINES AND PIECEWISE INTERPOLATION LINEAR SPLINES QUADRATIC SPLINES CUBIC SPLINES

Upload: tio-sari-elisabeth

Post on 04-Sep-2015

352 views

Category:

Documents


3 download

DESCRIPTION

Metode numerik dengan menggunakan linear spline. Dan aplikasi yang di gunakan.

TRANSCRIPT

Splines and Piecewise Interpolation

SPLINES AND PIECEWISEINTERPOLATIONLINEAR SPLINESQUADRATIC SPLINESCUBIC SPLINESPada bab sebelumnya telah dibahas mengenai interpolasi titik-titik data (x0; y0) sampai (xn; yn) menggunakan suatu polinomial berderajat n. Namun terdapat kasus dimana fungsi-fungsi ini memberikan hasil yang salah. Pendekatan alternatifnya adalah menerapkan polinomial-polinomial berderajat lebih rendah pada sebagian titik data. Polinomial penghubung tersebut dinamakan fungsi-fungsi spline.

LINEAR SPLINES

Suatu fungsi f (x) dinamakan suatu spline berderajat k jikaDomain dari S adalah suatu interval [a; b].S; S0; :::; S(k-1)kontinu pada [a; b].Terdapat titik-titik xi sedemikian sehingga a = x0 < x1 < ::: < xn = b dan juga S adalah suatu polinomial berderajat k pada setiap [xi; xi+1].Dengan kata lain, spline adalah potongan-potongan fungsi polinomial dengan turunan- turunan memenuhi kendala-kendala kekontinuan tertentu. Ketika k = 1, spline dinamakan spline linear. Ketika k = 2, spline dinamakan spline kuadratik. Ketika k = 3, spline dinamakan spline kubik.

Diperhatikan fungsi linear Si (x). Garis ini melalui titik (xi; yi) dan (xi+1; yi+1), sehingga kemiringan dari Si (x) yaitu

Kita dapat juga mengatakan bahwa garis tersebut melalui titik (xi; yi) dan (x; S (x)) untuk sembarang x 2 [xi; xi+1], sehingga

yang memberikan

Table LookupTable Lookup berguna untuk menunjukkan perulangan interpolasi dari sebuah tabel yang variabelnya independent dan dependent.

Berikut merupakan contoh dari Table lookup :

Here is a MATLAB session illustrating how the binary search function can be applied to calculate the air density at 350 C based on the data from Table 17.1. The sequential search would be similar.

by linear interpolation:

function yi = TableLookBin(x, y, xx)n = length(x);if xx < x(1) | xx > x(n)error('Interpolation outside range')end% binary searchiL = 1; iU = n;while (1)if iU - iL > clear>> T = [-40 0 20 50 100 150 200 250 300 400 500];>> density = [1.52 1.29 1.2 1.09 .946 .935 .746 .675 .616....525 .457];>> TableLookBin(T,density,350)

QUADRATIC SPLINESTidak seperti spline linear, spline kuadratik tidak didenisikan sepenuhnya oleh nilai- nilai di xi. Berikut ini kita perhatikan alasannya. Spline kuadratik didenisikan oleh Si (x) = aix2 + bix + ci Jadi terdapat 3n parameter untuk mendenisikan S (x).Diperhatikan titik-titik data:

Syarat-syarat untuk menentukan 3n parameter dijelaskan seperti berikut ini.Setiap subinterval [xi; xi+1], untuk i = 0; 1; 2; :::; n - 1, memberikan dua persamaan berkaitan dengan Si (x), yaituSi (xi) = yi dan Si (xi+1) = yi+1Syarat pada kontinuitas dari S0 (x) memberikan suatu persamaan tunggal untuk setiap titik dalam xi, i = 1; 2; :::; n-1, yaitu

Jadi dari sini dipunyai n-1 persamaan. Sekarang totalnya terdapat 3n - 1 persamaan, tetapi karena terdapat 3n parameter yang tidak diketahui maka sistem kekurangan ketentuan.Pilihan-pilihan yang mungkin untuk melengkapi kekurangan ketentuan yaitu

Sekarang dimisalkan zi = Si (xi). Karena Si (xi) = yi, Si (xi). = zi, dan Sii (xi+1) = zi+1, maka kita dapat mendefenisikan

Selanjutnya, dengan pengambilan x = xi+1 diperoleh

Jadi, kita dapat menentukan zi+1 dari zi

Spline Interpolation in Matlab Assume we want to interpolate the data (1,20), (3,17), (5,23), (7,19) using splines, and then evaluate the interpolated function at x=2, 4, 6. In Matlab, we first define the data vectors: >> x=[1 3 5 7];y=[20 17 23 19];xi=[2 4 6];

(1) Linear Splines: The interpolated y-data are found by executing >> yi=interp1(x,y,xi) yi = 18.50000000000000 20.00000000000000 21.00000000000000

(2) Cubic Splines: Here the interpolated data are found by executing >> yi=interp1(x,y,xi,'spline') yi = 16.18750000000000 20.06250000000000 23.43750000000000 We can also generate a large array of interpolated data points for plotting the interpolation function (don't forget the semicolon) >> xp=linspace(1,7,100);yp=interp1(x,y,xp,'spline');

and plot function and data (using a script): plot(xp,yp,'k',x,y,'ko',xi,yi,'kv') xlabel('x-values'),ylabel('y-values'), legend('interpolated graph','given data','interpolated data') axis([1 7 15 24])

Spline Kubik

Diketahui suatu fungsi f (x) yang dibatasi oleh interval a dan b, dan memiliki sejumlah titik data a = x0 < x1 < x2 < ::: < xn = b. Interpolasi spline kubik S (x) adalah suatu potongan fungsi polinomial berderajat tiga (kubik) yang menghubungkan dua titik yang bersebelahan, dengan ketentuan, untuk i = 0; 1; :::; n-1:(S0) Potongan fungsi pada subinterval [xi; xi+1], i = 0; 1; :::; n 1

(S1) Pada setiap titik data x = xi, i = 0; 1; :::; n:S (xi) = f (xi) (S2) Nilai-nilai fungsi harus sama pada titik-titik dalam:Si (xi+1) = Si+1 (xi+1) ; i = 0; 1; :::; n - 2:(S3) Turunan-turunan pertama pada titik dalam harus sama:

(S4) Turunan-turunan kedua pada titik dalam harus sama:

(S5) Salah satu syarat batas di antara dua syarat batas x0 dan xn berikut ini harus dipenuhi:

26