Komputasi Numerik
AP - 01
Deret Taylor
NPM : 140310220033
LABORATORIUM KOMPUTASI
DEPARTEMEN FISIKA
UNIVERSITAS PADJADJARAN
2023
LEMBAR PENGESAHAN
KN 01
Deret Taylor
NPM : 140310220033
I. Tugas Praktikum ( )
Lakukan ekspansi deret Taylor/Maclaurin dari beberapa fungsi di bawah ini dan buatlah program untuk menghitungnya.
𝑓(𝑥) = 𝑠𝑖𝑛 𝑥
𝑓’(𝑥) = cos 𝑥
𝑓’’(𝑥) = -𝑠𝑖𝑛 𝑥
𝑓’’’(𝑥) = -cos 𝑥
𝑓’’’’(𝑥) = 𝑠𝑖𝑛 𝑥
kemudian
3 5 7
x x x
sin x=x− + − +…
3! 5! 7!
1) Listing Program
import math as mt
import numpy as np
import sympy as sp
2) Tampilan Program
3) Analisa Program
Program tersebut mencari nilai hampiran dari fungsi sin(x) dengen pendekatan deret taylor. Program memulai
kerjanya dengan meminta user untuk memasukan nilai sudut dalam derjat pada inputsudut = int(input('masukan
sudut = ')) yang kemudian akan diubah menjadi nilai sinus menggunakan x = mt.radians(inputsudut) . Selanjutnya
program melakukan perulangan while dengan batas jika e menyentuh kurang dari 0.0000001 maka perulangan akan
berhenti. Sebelum perulangan dinyatakan bahwa variabel i digunakan sebagai penghitung indeks pada suku deret
dan variabel n sebagai akumulator untuk menyimpan jumlah suku deret yang telah dihitung. Variabel E digunakan
untuk menyimpan nilai galat, yaitu selisih antara nilai eksak dan nilai hampiran. Pada setiap perulangan while, deret
+1)). Kemudian nilai suku dimasukan kedalam variabel n, dan nilai galat dihitung dengan E = abs(eksak -
Suku_ke_n). Setelah perulangan selesai, program akan mencetak nilai hampiran dan nilai galatnya untuk sudut
2) Tampilan Program
3) Analisa Program
program tersebut meminta user menginput data berupa banyak perulangan dan nilai x, Kemudian program akan
menginisialisasi variabel n, x, i, dan a. Variabel n akan digunakan untuk menyimpan nilai dari deret Taylor yang
sudah dijumlahkan, x akan menyimpan nilai sudut yang diinputkan, i akan menyimpan nilai dari iterasi perulangan,
Program kemudian akan masuk ke dalam loop while, yang akan berjalan sebanyak perulangan yang diinputkan oleh
user. Setiap iterasi dari loop while, program akan menghitung nilai Suku menggunakan formula deret Taylor, dan
menambahkan nilai Suku ke variabel n. Program juga akan menghitung nilai E, yaitu selisih antara nilai eksak dan
Setelah loop while selesai, program akan menampilkan nilai hampiran dan galat dari hasil perhitungan deret Taylor.
x
c. 𝑓(𝑥) = e di sekitar 𝑥 = 0 dengan tingkat kesalahan 𝜀 = 0.000000001
1) Listing Program
import math as mt
x = int(input("Masukkan besar nilai x:"))
eksak = mt.exp(x)
E = 1
i = 0
n = 0
while (E) > 0.000000001:
Suku = ((x**i)/(mt.factorial(i)))
Suku_ke_n = n + Suku
n = Suku_ke_n
E = abs(Suku_ke_n - eksak)
i = i + 1
print("Hampiran = %.10f" %Suku_ke_n)
print("Galat = %.10f" %E)
2) Tampilan Program
3) Analisa Program
sebuah kode Python yang menghitung nilai perkiraan dari e^x menggunakan deret Taylor:
1 2 3
x x x x Kode ini meminta input dari pengguna berupa nilai x dan menghitung nilai
e =1+ + + + ….
1! 2! 3!
eksak dari e^x menggunakan fungsi mt.exp() dari pustaka math. Selanjutnya, kode ini menghitung nilai perkiraan
dari e^x menggunakan deret Taylor sampai selisih antara nilai eksak dan nilai perkiraan kurang dari 0,000000001.
Loop while akan terus berjalan sampai akurasi yang diinginkan tercapai.
a. Mengapa metode numerik menjadi penting untuk dipelajari? Padahal hasil yang dihasilkan dari metode
Jawab : Metode numerik menjadi sesuatu yang penting dikarenakan memungkinkan kita untuk memperkirakan
solusi dari suatu permasalah matematika dengan memanfaatkan teknologi kumputasi dan sistem perhitungan.
Walaupun pada dasarnya masih memiliki kesalahn namun kesalahan atau galat dapat di control sehingga solusi yang
b. Hampiri persamaan berikut, yaitu 𝑓(𝑥) = −0.5𝑥 2 − 0.25𝑥 + 1.2 Untuk 0 ≤ 𝑥 ≤ 1 menggunakan deret Taylor
sampai suku ke-0, suku ke-1, suku ke-2, suku ke-3 dan suku ke-4 dengan menggunakan nilai nol sebagai basis
bilangan. Bandingkan hasil pendekatan numerik dengan hasil perhitungan analitik, hitung error
numeriknya.
Jawab :
Pendekatan Taylor =
𝑓′(𝑥) = −𝑥 − 0.25
𝑓′′(𝑥) = −1/2
𝑓′′′(𝑥) = 0
𝑓′′′(0) = 𝑓′′′(𝑥 = 0) = 0
𝑓⁽⁴⁾(𝑥) = 0
𝑓⁽⁴⁾(0) = 𝑓⁽⁴⁾(𝑥 = 0) = 0
c. Hitung fungsi 𝑓(𝑥) = ln (cos(𝑥) di titik x = π/4 dengan pendekatan deret Taylor sampai suku ke-2, suku ke-3
dan suku ke-4. Bandingkan hasilnya dengan hasil perhitungan kalkulator dan tentukan error numeriknya
Kalkulator
Pendekatan deret Taylor untuk fungsi 𝑓(𝑥) = ln(cos(𝑥)) di sekitar 𝑥 = 𝜋/4 adalah sebagai berikut:
Kita perlu menghitung turunan-turunan pertama, kedua, dan ketiga dari fungsi 𝑓(𝑥) untuk
1. 𝑓(𝑥) = ln(cos(𝑥))
2. 𝑓′(𝑥) = −tan(𝑥)
3. 𝑓′′(𝑥) = −sec2(𝑥)
4. 𝑓′′′(𝑥) = 2sec2(𝑥)tan(𝑥)
Dengan menggunakan titik 𝑥 = 𝜋/4, kita dapat menghitung nilai-nilai turunan sebagai berikut:
2. 𝑓′(𝜋/4) = −tan(𝜋/4) = −1
3. 𝑓′′(𝜋/4) = −sec2(𝜋/4) = −2
4. 𝑓′′′(𝜋/4) = 2sec2(𝜋/4)tan(𝜋/4) = 2
Dengan menggunakan nilai-nilai turunan di atas, kita dapat membuat pendekatan deret Taylor dengan
Sekarang, kita dapat menghitung nilai pendekatan deret Taylor dengan menggunakan titik 𝑥 = 𝜋/4.
Hasil perhitungan kalkulator untuk 𝑓(𝜋/4) = ln(cos(𝜋/4)) adalah -0.45138. Dari hasil tersebut, kita dapat
menghitung error numerik untuk masing-masing pendekatan deret Taylor sebagai berikut:
error = |𝑓(𝜋/4) − pendekatan deret Taylor hingga suku ke-2| = |-0.45138 - (-0.34657)| = 0.10481
error = |𝑓(𝜋/4) − pendekatan deret Taylor hingga suku ke-3| = |-0.45138 - (-0.34657 - (𝜋/4 − 𝜋/4) −
error = |𝑓(𝜋/4) − pendekatan deret Taylor hingga suku ke-4| = |-0.45138 - (-0.34657 - (𝜋/4 − 𝜋/4) −
1. Listing Program
import math
def taylor_ln_cos(x, n):
sum = 0
for i in range(n):
if i == 0:
sum += 0
elif i % 2 == 0:
sum -= (math.pow(x, i) / math.factorial(i))
else:
sum += (math.pow(x, i) / math.factorial(i))
return sum
x = math.pi/4
exact = math.log(math.cos(x))
print("\n")
print("Nilai eksak: ", exact)
print("\n")
approx_2 = taylor_ln_cos(x, 2)
print("Pendekatan deret Taylor hingga suku ke-2: ", approx_2)
error_2 = abs((approx_2 - exact) / exact)
print("Error numerik pendekatan deret Taylor hingga suku ke-2: ", error_2)
print("\n")
approx_3 = taylor_ln_cos(x, 3)
print("Pendekatan deret Taylor hingga suku ke-3: ", approx_3)
error_3 = abs((approx_3 - exact) / exact)
print("Error numerik pendekatan deret Taylor hingga suku ke-3: ", error_3)
print("\n")
approx_4 = taylor_ln_cos(x, 4)
print("Pendekatan deret Taylor hingga suku ke-4: ", approx_4)
error_4 = abs((approx_4 - exact) / exact)
print("Error numerik pendekatan deret Taylor hingga suku ke-4: ", error_4)
print("\n")
2. Tampilan Program
III.
KESIMPULAN
i.
Praktikan dapat merubah persamaan matematis ke dalam deret taylor dan kemdian memasukannya kedalam
pemograman.
ii. deret taylor dapat digunakan sebagai pendekatan terhadap fungsi matematika dengan galat atau error yang
dapat dikontrol.