Anda di halaman 1dari 8

Laporan Praktikum

Komputasi Numerik

AP - 01

Deret Taylor

Nama : Kevin Bazli Santoso

NPM : 140310220033

Hari/Tanggal : Jumat/10 maret 2023

Waktu : 07:30 - 16:30

Asisten : Azhar Aiman Dzulfiqar

LABORATORIUM KOMPUTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS PADJADJARAN

2023

LEMBAR PENGESAHAN

KN 01

Deret Taylor

Nama : Kevin Bazli Santoso

NPM : 140310220033

Hari / Tanggal : Jumat/10 maret 2023


Waktu / Sesi : 07:30 - 16:30

Asisten : Azhar Aiman Dzulfiqar

Pretest Laporan Akhir

Jatinangor, Tanggal Bulan 2022


Asisten

I. Tugas Praktikum ( )

Lakukan ekspansi deret Taylor/Maclaurin dari beberapa fungsi di bawah ini dan buatlah program untuk menghitungnya.

a. 𝑓(𝑥) = 𝑠𝑖𝑛 𝑥 di sekitar 𝑥 = 0 dengan tingkat kesalahan 𝜀 = 0.0000001

 Ekspansi nilai sin x :

𝑓(𝑥) = 𝑠𝑖𝑛 𝑥

𝑓’(𝑥) = cos 𝑥

𝑓’’(𝑥) = -𝑠𝑖𝑛 𝑥

𝑓’’’(𝑥) = -cos 𝑥

𝑓’’’’(𝑥) = 𝑠𝑖𝑛 𝑥

kemudian

Sin x = sin 0 cos 0 x + −sin 0 x + −cos 0 + …..


1! 2! 3!
Sehingga mendapatkan

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

inputsudut = int(input('masukan sudut = '))


n = 0
x = mt.radians(inputsudut)
i = 0
E = 1
eksak = np.sin(x)

while E > 0.0000001:


Tanda = (-1)**i
Suku = Tanda*(x**((2*i)+1)/mt.factorial((2*i)+1))
Suku_ke_n = n + Suku
n = Suku_ke_n
E = abs(eksak - Suku_ke_n)
i = i + 1

print('untuk nilai sudut %.1f ' %inputsudut)


print("Hampiran = %.10f" %Suku_ke_n)
print("Galat = %.10f" %E)

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

taylor akan dihitung. Deret taylor berbentuk Suku = Tanda*(x**((2*i)+1)/mt.factorial((2*i)

+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

yang dimasukkan sebelumnya.

b. 𝑓(𝑥) = 𝑙𝑛 𝑥 di sekitar 𝑥 = 1 hingga suku ke-8


1) Listing Program
import math as mt
import numpy as np
import sympy as sp
perulangan = int(input('banyak perulangan = '))
inputsudut = int(input('masukan nilai x = '))
n = 0
x = (inputsudut)
i = 0
a = 1
eksak = np.sin(x)
while perulangan > 0:
Suku = (-1)**(i+1) * (x-a)**i / mt.factorial(i)
Suku_ke_n = n + Suku
n = Suku_ke_n
E = abs(eksak - Suku_ke_n)
i = i + 1
perulangan -= 1
print('untuk nilai sudut %.1f ' %inputsudut)
print("Hampiran = %.10f" %Suku_ke_n)
print("Galat = %.10f" %E)

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,

dan a akan menyimpan nilai default dari deret Taylor.

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

nilai yang didekati. Variabel i akan diincrement setiap iterasi.

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.

II. Tugas Akhir

a. Mengapa metode numerik menjadi penting untuk dipelajari? Padahal hasil yang dihasilkan dari metode

tersebut masih memiliki kesalahan. Jelaskan!

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

didapatkan dapat lebih akurat,

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) = 𝑓(𝑥 = 0) = 1.2 (basis bilangan)

 𝑓′(𝑥) = −𝑥 − 0.25

 𝑓′(0) = 𝑓′(𝑥 = 0) = −0.25

 𝑓′′(𝑥) = −1/2

 𝑓′′(0) = 𝑓′′(𝑥 = 0) = −1/2

 𝑓′′′(𝑥) = 0

 𝑓′′′(0) = 𝑓′′′(𝑥 = 0) = 0

 𝑓⁽⁴⁾(𝑥) = 0
 𝑓⁽⁴⁾(0) = 𝑓⁽⁴⁾(𝑥 = 0) = 0

Maka, deret Taylor untuk fungsi 𝑓(𝑥) adalah:

 𝑓(𝑥) ≈ 𝑓(0) + 𝑓′(0)𝑥 + 𝑓′′(0)𝑥^2/2! + 𝑓′′′(0)𝑥^3/3! + 𝑓⁽⁴⁾(0)𝑥^4/4!

 𝑓(𝑥) ≈ 1.2 − 0.25𝑥 − 1/4 𝑥^2

 𝑓(𝑥) ≈ 1.2 − 0.25𝑥 − 0.25𝑥^2

 𝑓(𝑥) ≈ 1.2 − 0.25𝑥 − 0.25𝑥^2 + 0𝑥^3 + 0𝑥^4

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:

𝑓(𝑥) ≈ 𝑓(𝜋/4) + 𝑓′(𝜋/4)(𝑥 − 𝜋/4) + 𝑓′′(𝜋/4)(𝑥 − 𝜋/4)2/2 + 𝑓′′′(𝜋/4)(𝑥 − 𝜋/4)3/6

Kita perlu menghitung turunan-turunan pertama, kedua, dan ketiga dari fungsi 𝑓(𝑥) untuk

menggunakan pendekatan deret Taylor hingga suku ke-3 dan ke-4.

1. 𝑓(𝑥) = ln(cos(𝑥))

2. 𝑓′(𝑥) = −tan(𝑥)

3. 𝑓′′(𝑥) = −sec2(𝑥)

4. 𝑓′′′(𝑥) = 2sec2(𝑥)tan(𝑥)

Dengan menggunakan titik 𝑥 = 𝜋/4, kita dapat menghitung nilai-nilai turunan sebagai berikut:

1. 𝑓(𝜋/4) = ln(cos(𝜋/4)) = ln(√2/2) = −ln(2) / 2 ≈ −0.34657

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

suku ke-2, ke-3, dan ke-4 sebagai berikut:

 Pendekatan deret Taylor sampai suku ke-2:

𝑓(𝑥) ≈ −0.34657 − (𝑥 − 𝜋/4)


 Pendekatan deret Taylor sampai suku ke-3:

𝑓(𝑥) ≈ −0.34657 − (𝑥 − 𝜋/4) − 2(𝑥 − 𝜋/4)2/2

 Pendekatan deret Taylor sampai suku ke-4:

𝑓(𝑥) ≈ −0.34657 − (𝑥 − 𝜋/4) − 2(𝑥 − 𝜋/4)2/2 + 2(𝑥 − 𝜋/4)3/6

Sekarang, kita dapat menghitung nilai pendekatan deret Taylor dengan menggunakan titik 𝑥 = 𝜋/4.

 Pendekatan deret Taylor sampai suku ke-2:

𝑓(𝜋/4) ≈ −0.34657 − (𝜋/4 − 𝜋/4) = −0.34657

 Pendekatan deret Taylor sampai suku ke-3:

𝑓(𝜋/4) ≈ −0. (𝜋/4 − 𝜋/4) − 2(𝜋/4 − 𝜋/4)2/2 = −0.34657

 Pendekatan deret Taylor sampai suku ke-4:

𝑓(𝜋/4) ≈ −0.34657 − (𝜋/4 − 𝜋/4) − 2(𝜋/4 − 𝜋/4)2/2 + 2(𝜋/4 − 𝜋/4)3/6 = −0.34657

 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:

I. Error numerik pendekatan deret Taylor hingga suku ke-2:

error = |𝑓(𝜋/4) − pendekatan deret Taylor hingga suku ke-2| = |-0.45138 - (-0.34657)| = 0.10481

II. Error numerik pendekatan deret Taylor hingga suku ke-3:

error = |𝑓(𝜋/4) − pendekatan deret Taylor hingga suku ke-3| = |-0.45138 - (-0.34657 - (𝜋/4 − 𝜋/4) −

2(𝜋/4 − 𝜋/4)2/2)| = 0.10481

III. Error numerik pendekatan deret Taylor hingga suku ke-4:

error = |𝑓(𝜋/4) − pendekatan deret Taylor hingga suku ke-4| = |-0.45138 - (-0.34657 - (𝜋/4 − 𝜋/4) −

2(𝜋/4 − 𝜋/4)2/2 + 2(𝜋/4 − 𝜋/4)3/6)| = 0.10481

Untuk pendekatan secara deret taylor adalah sebagai berikut :

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.

Anda mungkin juga menyukai