Você está na página 1de 29

BAB I

PENDAHULUAN

1.1

Latar Belakang
Interpolasi adalah suatu cara untuk mencari nilai di antara beberapa
titik data yang telah diketahui. Di dunia nyata, interpolasi dapat digunakan
untuk memperkirakan suatu fungsi, yang mana fungsi tersebut tidak
terdefinisi dengan suatu formula, tetapi didefinisikan hanya dengan datadata atau tabel, misalnya tabel dari hasil percobaan. Interpolasi dapat juga
diaplikasikan untuk pengolahan citra digital, membuat kontur-kontur, dan
berguna dalam proses recovery.
Ada berbagai macam interpolasi berdasarkan fungsinya, di
antaranya adalah interpolasi linier, interpolasi kuadrat, dan interpolasi
polinomial. Adapun berbagai metode dalam interpolasi antara lain metode
Lagrange dan metode Newton. Kedua metode tersebut menggunakan
fungsi polinomial untuk menginterpolasi f (x) pada titik-titik yang
diberikan. Di sini akan diberikan alternatif lain dalam interpolasi, yaitu
dengan menggunakan fungsi rasional yang kemudian disebut dengan
interpolasi

rasional.

Interpolasi

rasional

seringkali

memberikan

pendekatan yang lebih baik daripada interpolasi polinomial, khususnya


jika titik-titik yang diberikan banyak, tetapi sulit untuk mengontrol
keberadaan kutub.
Salah satu metode yang pertama kali yang digunakan dalam
interpolasi rasional adalah dengan menggunakan algoritma Neville.
Namun, metode ini memiliki beberapa kelemahan, diantaranya adalah
tentang keberadaan kutub yang sulit untuk dikontrol. Untuk mengatasi
masalah tersebut akan digunakan formula Barycentric, yang mana formula
ini dapat menghasilkan fungsi rasional tanpa kutub. Formula Barycentric
ditemukan pada tahun 1945 oleh W.Taylor. Formula Barycentric adalah
formula yang merupakan modifikasi dari formula Lagrange yang praktis

dan stabil. Formula Barycentric ini memiliki bobot (w ) tertentu, yang


akan menghasilkan fungsi rasional yang memenuhi :
i i r(x ) = y , i = 0,1...n
dengan r(x) adalah fungsi rasional tanpa kutub, i x dan i y berturut-turut
adalah titik-titik interpolasi dan nilai-nilai interpolasi. Permasalahan akan
muncul karena fungsi rasional yang dihasilkan tidak selalu bebas dari
kutub.
1.2

Tujuan
Tujuan yang hendak dicapai dalam penulisan ini yaitu sebagai salah
satu syarat untuk memenuhi seluruh praktikum jurusan Teknik Elektro
ITENAS Bandung, antara lainnya:
a. Melakukan analisis secara komputansi dari metoda regresi kuadrat
terkecil dalam pencocokan kurva.
b. Melakukan analisis nilai antara dari data data yang diketahui secara
komputasi dengan metoda interpolasi.

1.3

Sistematis Penulisan
BAB I

: Pendahuluan
Pada bab ini memuat latar belakang, tujuan yang ingin
dicapai, serta sistematis penulisan

BAB II

: Teori Dasar
Dasar teori yang berisi kajian literatur mengenai materi
dasar dan terkait dengan teori-teori interpolasi

BAB III

: Landasan Praktikum
Pembahasan tentang langkah-langkah untuk mendapatkan
rumus interpolasi serta membahas pendekatan errornya

BAB IV

: Penutup
Berisi tentang analisa dan kesimpulan dari praktikum

BAB II
TEORI DASAR
2.1

Linier
Persamaan linear adalah sebuah persamaan aljabar, yang tiap
sukunya mengandung konstanta, atau perkalian konstanta dengan variabel
tunggal. Persamaan ini dikatakan linear sebab hubungan matematis ini
dapat digambarkan sebagai garis lurus dalam Sistem koordinat Kartesius.
Metode Pemrograman linier pertama kali ditemukan oleh ahli
statistika Amerika Serikat yang bernama Prof. George Dantzig (Father of
the Linear Programming). Pemrograman Linier disingkat PL merupakan
metode matematik dalam mengalokasikan sumber daya yang terbatas
untuk mencapai suatu tujuan seperti memaksimumkan keuntungan dan
meminimumkan biaya. PL banyak diterapkan dalam masalah ekonomi,
industri, militer, sosial dan lain-lain. PL berkaitan dengan penjelasan suatu
kasus dalam dunia nyata sebagai suatu model matematik yang terdiri dari
sebuah fungsi tujuan linier dengan beberapa kendala linier.
Tahapan dalam penyelesaian optimasi dari Linear programming ini
adalah sebagai berikut :
1. Menentukan decision of variables
2. Membuat objective function
3. Memformulasikan constraints
4. Menggambarkan dalam bentuk grafik
5. Menentukan daerah kemungkinan/ "feasible"
6. Menentukan solusi optimum.

Dua jenis pendekatan yang sering digunakan dalam metode


pemrograman linier ini, yaitu:

Metode Grafik

1. Digunakan untuk menyelesaikan optimasi dengan maksimum 2


variabel.
2. Untuk variabel lebih dari 2, penyelesaiannya menggunakan metode
kedua.

Metode Simpleks

1. Digunakan untuk proses dengan jumlah variabel lebih dari 2.


2. Tahapan dalam metode simpleks ini lebih kompleks dibandingkan
dengan metode grafik.

2.2

Polinom Ordea
Interpolasi adalah metode analisis numerik untuk menentukan titik
yang belum diketahui diantara titik yang sudah diketahui. Jadi jika kita
mempunyai 2 buah titik (sebut titik x1 dan titik x3) maka kita dapat
mengetahui perkiraan titik x2 diantara titik x1 dan x3. Contoh dari
interpolasi adalah interpolasi newton, interpolasi lagrange, dan interpolasi
spline. Ekstrapolasi adalah metode analisis numerik untuk menentukan
titik yang belum diketahui sesudah atau sebelum dua titik yang telah
diketahui. Anggap saja kita mempunyai dua titik (titik x1 dan titik x2),
maka dengan analisis numerik ekstrapolasi kita dapat mengetahui titik x0
atau titik x3. Contoh dari analisis numerik ekstrapolasi adalah ekstrapolasi
Richardson dan ekstrapolasi Romberg.
Penjelasan diatas dapat digunakan untuk membentuk polinomial
order n dari (n + 1) titik data. Bentuk umum polinomial order n adalah:
fn(x) = bo + b1(x x0) + + bn(x x0)(x x1) ... (x xn 1)

Seperti yang dilakukan interpolasi linier dan kuadrat, titik-titik data dapat
dilakukan dengan evaluasi koefisien b0, b1, ..., bn. Untuk polinomial order
n, diperlukan (n + 1) titik data x0, x1, x2, ..., xn. Dengan menggunakan titiktitik data tersebut, maka persamaan berikut digunakan untuk mengevaluasi
koefisien b0, b1, ..., bn.
b0 = f (x0)

(1.8)

b1 = f [x1, x0]

(1.9)

b2 = f [x2, x1, x0]

(1.10)

bn = f [xn, xn 1, ..., x2, x1, x0]

(1.11)

Dengan definisi fungsi berkurung ([.]) adalah pembagian beda hingga.


Misalnya, pembagian beda hingga pertama adalah:
f [xi, xj] =

1.12)

Pembagian beda hingga kedua adalah:


f [xi, xj, xk] =

(1.13)

Pembagian beda hingga ke n adalah:


f [xn, xn 1, ..., x2, x1, x0] =

(1.14)

Bentuk pembagian beda hingga tersebut dapat digunakan untuk


mengevaluasi

koefisien-koefisien

dalam

persamaan

(1.8)

sampai

persamaan (1.11) yang kemudian disubstitusikan ke dalam persamaan


(1.7) untuk mendapatkan interpolasi polinomial order n.
fn(x) = f (x0) + f [x1, x0](x x0) + f [x2, x1, x0](x x0)(x x1) + + f [xn, xn
, ..., x2, x1, x0](x x0)(x x1) (x xn 1)

Persamaan polinomial order tiga didapat dengan memasukkan nilai


n = 3 ke dalam persamaan (1.7):
f3(x) = bo + b1(x x0) + b2(x x0)(x x1) + b3(x x0)(x x1)(x x2)

BAB III
LANDASAN PRAKTIKUM

3.1

Algoritma
3.1.1 Algoritma Interpolasi Linier
1.

Tentukan nilai

x 0 , y 0 , x 1 , dan y 1 .

2.

Periksa apakah

x 0=x 1

. Jika ya, maka kembali ke langkah 1

sebab nilai fungsinya tidak terdefinisi dalam kondisi ini. Jika tidak,
maka dilanjutkan ke langkah 3.
3.

Masukkan nilai

x .

4.

Periksa apakah

min { x 0 , x 1 } x max { x 0 , x 1 }

masukkan nilai

Hitung

6.

Periksa apakah
P= y 0

7.

yang lain. Jika ya, maka dilanjutkan langkah 5.

P= y 0 +( xx 0)

5.

. Jika tidak, maka

y 0= y 1

y1 y0
x1 x0 .
. Karena jika sama, maka akan diperoleh

Tulis hasil

y=P .

3.1.2 Algotirma Interpolasi Kuadrat


1. Tentukan nilai

x 0 , y 0 , x 1 , y 1 , x 2 , dan y 2 .

2. Periksa apakah

x 0< x1 < x 2

. Jika tidak, maka kembali ke langkah 1

sebab nilai fungsinya tidak terdefinisi dalam kondisi ini. Jika tidak,
maka dilanjutkan ke langkah 3.

3. Masukkan nilai

x .

4. Periksa apakah

min { x 0 , x 1 , x 2 } x max { x 0 , x1 , x2 }

masukkan nilai

. Jika tidak, maka

5. Hitung

yang lain. Jika ya, maka dilanjutkan langkah 5.


y y
y y1
F F 01
F01= 1 0 , F 12= 2
, dan F 012= 12
x 1x 0
x2 x1
x 2x 0

6. Hitung

P= y 1 + ( xx i ) F01 + ( xx i ) ( xx i )F 012

7. Periksa apakah

F012 =0.

Jika ya, maka persamaan yang dihasilkan

linear. Jika tidak maka persamaan yang dihasilkan merupakan


persamaan kuadrat.
8. Tulis hasil y=P .
3.2

Flowchart
3.2.1 Interpolasi Linier

3.2.2 Interpolasi Kuadratik

3.3

Listing
3.3.1 Interpolasi Linier

#include <stdio.h>
#include <stdlib.h>
int main()
{
float x0,x,x1,fx0,fx,fx1;
printf("program untuk liner interpolasi\n");
printf("masukan nilai x0 : \n");
scanf("%f",&x0);
printf("masukan nilai x1 : \n");
scanf("%f",&x1);
printf("masukan nilai x : \n");
scanf("%f",&x);
printf("masukan nilai f(x0) : \n");
scanf("%f",&fx0);
printf("masukan nilai f(x1) : \n");
scanf("%f",&fx1);
fx=(((fx1-fx0)*(x-x0))/(x1-x0))+fx0;
printf("hasil====\n");
printf("x0=%f | f(x0)=%f\n",x0,fx0);
printf("x1=%f | f(x1)=%f\n",x1,fx1);
printf("x =%f | f(x0)=%f\n",x,fx);
system("pause");
return 0;
}

3.3.2 Interpolasi Linier Error


#include <stdio.h>

#include <stdlib.h>
int main()
{
float x0,x,x1,fx0,fx,fx1,e;
printf("program untuk liner interpolasi error\n");
printf("masukan nilai x0 : \n");
scanf("%f",&x0);
printf("masukan nilai x1 : \n");
scanf("%f",&x1);
printf("masukan nilai x : \n");
scanf("%f",&x);
printf("masukan nilai f(x0) : \n");
scanf("%f",&fx0);
printf("masukan nilai f(x1) : \n");
scanf("%f",&fx1);
fx=(((fx1-fx0)*(x-x0))/(x1-x0))+fx0;
printf("hasil====\n");
printf("x0=%f | f(x0)=%f\n",x0,fx0);
printf("x1=%f | f(x1)=%f\n",x1,fx1);
printf("x =%f | f(x0)=%f\n",x,fx);
printf("hasil perhitungan f(x)=%f\n",fx);
e=(x-fx);
printf("error=%f/n",e);
scanf("%f",&e);
system("pause");
return 0;
}

3.3.3 Interpolasi Kuadratik


#include <stdio.h>

#include <stdlib.h>
int main()
{
float x0,x,x1,x2,fx0,fx,fx1,fx2,b0,b1,b2;
printf("program untuk interpolasi kuadratik\n");
printf("masukan nilai x0:\n");
scanf("%f",&x0);
printf("masukan nilai x1:\n");
scanf("%f",&x1);
printf("masukan nilai x2:\n");
scanf("%f",&x2);
printf("masukan nilai x:\n");
scanf("%f",&x);
printf("masukan nilai f(x0);\n");
scanf("%f",&fx0);
printf("masukan nilai f(x1);\n");
scanf("%f",&fx1);
printf("masukan nilai f(x2);\n");
scanf("%f",&fx2);
b0=fx0;
b1=((fx1)-(fx0))/(x1-x0);
b2=(((fx2-fx1)/(x2-x1))-b1)/(x2-x0);
printf("x0=%f | f(x0)=%f\n",x,b2);
system("pause");
return 0;
}

3.3.4 Interpolasi Kuadratik Error


#include <stdio.h>
#include <stdlib.h>
int main()

{
float x0,x,x1,x2,fx0,fx,fx1,fx2,b0,b1,b2,e;
printf("program untuk interpolasi kuadratik error\n");
printf("masukan nilai x0:\n");
scanf("%f",&x0);
printf("masukan nilai x1:\n");
scanf("%f",&x1);
printf("masukan nilai x2:\n");
scanf("%f",&x2);
printf("masukan nilai x:\n");
scanf("%f",&x);
printf("masukan nilai f(x0);\n");
scanf("%f",&fx0);
printf("masukan nilai f(x1);\n");
scanf("%f",&fx1);
printf("masukan nilai f(x2);\n");
scanf("%f",&fx2);
b0=fx0;
b1=((fx1)-(fx0))/(x1-x0);
b2=(((fx2-fx1)/(x2-x1))-b1)/(x2-x0);
printf("x0=%f | f(x0)=%f\n",x,b2);
printf("hasil perhitungan f(x)=%f\n",b2);
e=(b2-x);
printf("error=%f/n",e);
scanf("%f",&e);

system("pause");
return 0;
}

3.4

Screenshot

DATA PENGAMATAN
Tabel 3.4.1 Data Interpolasi Linier dan Nilai Error
Wakt
u
[detik

V[cm/detik]
Dat
a

Hasil
Hasil Program

Perhitunga
n

x 0=1

X=3

3166,66
x 1=4

x 0=2
2120
X=3
x 1=5

x 0=2
2190
X=3
x 1=4

x 0=1
3050

X=3
x 1=5

Error (t)

x 0=2
2112,5

X=3
x 1=6

x 0=4
X=3

-3133,3
x 1=1

x 0=5
- 7180
X=3
x 1=2

x 0=4
- 3310
X=3
x 1=2

x 0=5
- 7250

X=3
x 1=1

x 0=6
X=3

- 12397,5
x 1=2

Tabel 3.4.2 Data Interpolasi Kuadratik dan Nilai Error


Wakt
u

V[cm/detik]
Hasil

Dat

[detik

Hasil Program

Perhitunga
n

]
x 0=1

X=3

=2

3190

=
5

=2

X=3

=4

=
5

1140

Error (t)

X=3

693,34

=2

=
4

=2

X=3

=4

1108,75

=
6

=1

X=3

=4

=
7

900

3.5

Tugas Akhir
1. Buatlah program Regresi Linier dengan data pada tabel 3.1 di modul
lengkap dengan error, syntax, flowchart, dan algoritmanya di buat tabel!
2. Analisa perbedaan nilai dengan hasil error pada Regresi Linier!
3. Analisa data percobaan praktikum!
4. Aplikasi apa yang dapat dipakai dalam kehidupan sehari hari dengan
program Interpolasi?
Jawab:
1.

Syntax/listing Regresi Linier


#include <cstdlib>
#include <iostream>
#include <math.h>
#include<conio.h>
#include <stdlib.h>
#include <Windows.h>
#include<iomanip>
using namespace std;
void head(){
}
void RegresiLinier(int n);
void RegresiNonLinier(int n);
void AnalisisRegresiPolinomial(int n);
void SistemPersLinier(int n);
int main()
{
char pil,plh;
int n;
system("cls");
head();
cout<<"\n Masukkan Jumlah Data yang akan diinputkan : ";cin>>n;
cout<<"\n [ 1 ] Metode Regresi Linier\n"

" [ 2 ] Metode Regresi Non Linier\n"


" [ 3 ] Analisis Regresi Polinomial\n"
" [ 4 ] Sistem Persamaan Linier\n"
" [ 0 ] Exit\n"
"\n Silahkan Pilih Metode Yang digunakan : ";cin>>pil;
switch(pil){
case '1':
system("cls");
RegresiLinier(n);
break;
case '2':system("cls");RegresiNonLinier(n);
break;
case '3':AnalisisRegresiPolinomial(n);
break;
case '4':SistemPersLinier(n);
break;
case '0':
exit(0);
break;
}
system("pause");
return 0;
}
void RegresiLinier(int q){
system("cls");
long jumx=0,jumy=0,jumxy=0,jumxx=0,xy=0,xx=0,X,Y;
int n=q;
long ratx,raty,a,b;
float x[100],y[100];
cout<<"\n -------------";
cout<<"\n Input Data";
cout<<"\n -------------";
for (int h=1;h<=n;h++){

cout<<"\nNilai Waktu (detik)"<<h<<" = ";cin>>x[h];


}
cout<<"\n\n -------------";
for(int k=1;k<=n;k++){
cout<<"\nNilai v (cm/detik)"<<k<<" = ";cin>>y[k];
}
system("cls");
cout<<"\n
==================================================
=================";
cout<<"\n | Data ke | Waktu (detik) | v (cm/detik | Waktu.v |
Waktu^2

|";

cout<<"\n
==================================================
=================\n";
for(int i=1;i<=n;i++){
jumx=jumx+x[i];
jumy=jumy+y[i];
xy=(x[i]*y[i]);
xx=(x[i]*x[i]);
jumxy=jumxy+xy;
jumxx=jumxx+xx;
cout<<" "<<setiosflags(ios::left)<<setw(13)<<i;
cout<<setiosflags(ios::left)<<setw(11)<<x[i];
cout<<setiosflags(ios::left)<<setw(16)<<y[i];
cout<<setiosflags(ios::left)<<setw(16)<<xy;
cout<<setiosflags(ios::left)<<setw(11)<<xx;
cout<<"\n\n";
}
cout<<" -------------------------------------------------------------------\n";
cout<<" "<<setiosflags(ios::left)<<setw(13)<<"JUMLAH";
cout<<setiosflags(ios::left)<<setw(11)<<jumx;
cout<<setiosflags(ios::left)<<setw(16)<<jumy;

cout<<setiosflags(ios::left)<<setw(16)<<jumxy;
cout<<setiosflags(ios::left)<<setw(11)<<jumxx;
cout<<"\n
==================================================
=================";
ratx=jumx/n;
raty=jumy/n;
b=((jumxy*n)-(jumx*jumy))/((jumxx*n)-(jumx*jumx));
a=raty-(b*ratx);
cout<<"\n Nilai Rata - Rata waktu (detik) = "<<ratx;
cout<<"\n Nilai Rata - Rata v (cm/detik) = "<<raty;
cout<<"\n Nilai b = "<<b;
cout<<"\n Nilai a = "<<a;
cout<<"\n\n Jadi Persamaanya adalah v (cm/detik) = "<<a<<" +
"<<b<<" Waktu (detik)";
cout<<"\n\n Masukkan Nilai taksiran untuk Waktu = ";cin>>X;
Y=a+(b*X);
cout<<"\n untuk Taksiran Waktu (detik)="<<X<<", maka nilai v
(cm/detik) = "<<Y;
getch();main();
}

Algoritma Regresi Linier


1. Tentukan N titik data yang diketahui dalam (xi,yi) untuk i =
1,2,3,..,N.
2. Hitung nilai m dan c dengan menggunakan formulasi dari regresi
linier.
3. Tampilkan fungsi linier.
4. Hitung fungsi linier tersebut dalam range x dan step dx tertentu.

5. Tampilkan hasil table (xn,yn) dari hasil fungsi linier tersebut.

Flowchart Regresi Linier

Data pengamatan Regresi Linier

Waktu

[detik

[cm/detik

1000

1630

2300

2750

3100

3560

3900

4150

4290

10

4500

11

4600

12

4550

13

4600

14

4900

15

5000

Hasil
Hasil Program

Program
Error (t)

2. Regresi yang dimaksud disini adalah : pencarian nilai rata-rata a dan b


berdasarkan deretan data yang ada jumlah data Waktu dan v sebanyak

15 buah. Dalam percobaan Regresi Linier kita mendapat nilai a dan b,


proses itulah yang disebut dengan regresi. Selain mendapatkan nilai a
dan b kita juga mendapatkan persamaan v (cm/detik) yaitu : a +
b.Waktu.
3. Analisa dalam praktikum ini adalah :
Interpolasi linier :
a.

Hasil dari perhitungan manual dan dari program berbeda, ini


disebabkan karena dalam pembuatan program memiliki acuan dari
rumus yang sama dalam perhitungan manual. Perbedaan terjadi karena
perbedaan pendekatan desimal yang dipakai.

b.

Bagian dari rumus y, yaitu =

merupakan

f ( x 1)f ( x 0 )
, pada dasarnya
x 1x 0

gradien atau garis kemiringan linier, atau merupakan

turunan pertama

dari suatu fungsi, pengaruhnya adalah ketika

digambar dari grafik,

garis ini akan menjadi patokan apakah

perkiraan kita benar atau salah.


c.

Nilai error sendiri adalah nilai yang menyatakan sebuah interval atau
rentangan nilai yang memiliki kemungkinan apakah perkiraan kita
benar atau salah, dan dipengaruhi dari besarnya nilai x yang diberikan.

Interpolasi Kudratik :
a.

Interpolasi ini menggunakan 3 buah titik-titik data, hal ini bisa dilihat
dalam rumus :
y=b 0+ b1 (xx 0 )+ b2 (xx 0)(x x1 )
Di mana :
x
f ( 0)
b0=

1
x

f ( x 0 )
f
b1=

f (x 2 )f ( x 1 ) f (x1 )f (x 0)

(x2 x1 )
(x 1x 0 )
b2=
x2 x0
Sehingga apabila kita mengerjakan dengan rumus ini bisa didapatkan
sebuah persamaan kuadrat yang nantinya akan menghasilkan sebuah
grafik parabola atau linier. Oleh karena itu interpolasi kudratik bisa
disebut juga sebagai interpolasi polinomial orde-2.
b.

Nilai error sendiri adalah nilai yang menyatakan sebuah interval atau
rentangan nilai yang memiliki kemungkinan apakah perkiraan kita
benar atau salah, dan dipengaruhi dari besarnya nilai x yang diberikan.

c.

Dalam perhitungan manual nilai yang di dapat positf (+), sementara


dalam program negatif (-), perbedaan ini mungkin salah dalam
penerapan rumus dalam program ataupun dalam perhitungan manual
yang menyebabkan perbadaan nilai.

4.) Dalam kehidupan sehari hari, interpolasi dapat digunakan untuk


memperkirakan suatu fungsi dimana fungsi tersebut tidak terdefinisi
dengan suatu formula, tetapi didefinisikan hanya dengan data data
atau table yang tersedia.

Kurva dan Tabel Regresi Linier

BAB IV
PENUTUP

4.1

Analisa
Analisa dari praktikum yang telah dilakukan adalah:
Terjadi kesalahan perhitungan manual
Adanya human error dari praktikan
Rendahnya tingkat ketelitian dalam perhitungan manual maupun
memasukan data kedalam program tersebut sehingga hasil yang
sebenarnya tidak terbukti.

4.2

Kesimpulan

Berdasarkan dari analisa perhitungan yang telah dibuat, maka dapat


disimpulkan beberapa hal sebagai berikut:
1. Interpolasi didefinisikan sebagai cara untuk mengestimasi nilai dari
fungsi yan diberikan oleh kelompok data.
2. Berdasarkan hasil dari perbandingan antara perhitungan manual dengan
perhitungan menggunakan program Dev c++, di dapat hasil yang tidak
sama, baik dengan menggunakan interpolasi linear, dan interpolasi
kuadratik.

DAFTAR PUSTAKA
- Steven C. Chapra, Raymond P. Canale, Metoda Numerik untuk teknik : dengan
penerapan pada Komputer Pribadi, Universitas Indonesia, 1991.
- S.C. Chapra, R.P. Canale, Numerical Methods for Engineers, Fourth Edition,
Mc-Graw Hill.

Você também pode gostar