Anda di halaman 1dari 16

LAPORAN AKHIR PRAKTIKUM

KOMPUTASI NUMERIK

AKN -1
DERET TAYLOR

Nama : Fajar Alif Ramadhan


NPM : 140310200029
Hari/Tanggal : Selasa/ 09-03-2021
Waktu : 07:30-12:30
Asisten : Albiruni Mbani

LABORATORIUM KOMPUTASI
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN
2021
LEMBAR PENGESAHAN

AKN - 1
DERET TAYLOR

Nama : Fajar Alif Ramadhan


NPM : 140310200029
Hari / Tanggal : Selasa/ 09-03-2021
Waktu / Sesi : 07:30-12:30
Asisten : Albiruni Mbani

Laporan Awal Presentasi Praktikum Laporan Akhir


DERET TAYLOR

I. Tujuan
Mahasiswa diharapkan mampu mengubah suatu bentuk persamaan matematis
ke dalam deret Taylor. Selain itu, mahasiswa juga diharapkan mampu membuat
program yang mengimplementasikan deret Taylor

II. Teori Dasar


Dalam matematika, deret Taylor adalah representasi fungsi matematika
sebagai jumlahan tak hingga dari suku-suku yang nilainya dihitung dari turunan
fungsi tersebut di suatu titik. Deret ini dapat dianggap sebagai limit polinomial
Taylor. Deret Taylor mendapat nama dari matematikawan Inggris Brook Taylor. Bila
deret tersebut terpusat di titik nol, deret tersebut dinamakan sebagai deret Maclaurin,
dari nama matematikawan Skotlandia Colin Maclaurin.

Deret Taylor dari sebuah fungsi riil atau fungsi kompleks f(x) yang terdiferensialkan
takhingga dalam sebuah persekitaran sebuah bilangan riil atau kompleks a adalah
deret pangkat

Kita dapat meringkas deret taylor menjadi

dengan n! melambangkan faktorial n dan f (n)(a) melambangkan nilai dari turunan ke-
n dari f pada titik a. Turunan kenol dari f didefinisikan sebagai f itu sendiri, dan
(x − a)0 dan 0! didefinisikan sebagai 1.Dalam kasus khusus di mana a = 0, deret ini
disebut juga sebagai Deret Maclaurin.
III. Tugas Praktikum
Percobaan 1.3.a
1.listing program
from sympy import *
import numpy as np
import math as mt
x = symbols ('x')
a = symbols ('a')
p1 = sin(x)

def turunan(f,n):
for i in range(n):
a=diff(f,x)
f=a
return f
def fact(n):
a=1
for i in range (n):
a=a*(i+1)
return a

def sub(f,x,n) :
y=f.subs(x,n)
return y
#def mc laurin
def deretmc1(f,X,n):
y=0
ya=0
for i in range (0,n+1):
y=y+(1/fact(i))*sub(turunan(f,i),x,0)*(X**i)
print("ini y%d : "%i,y)
e=abs(y-ya)
ya=y
print("nilai : ",y,"kesalahan : ",e)
return "selesai..."

def deretmc2(f,n):
y=0

for i in range (0,n+1):

y=y+(1/fact(i))*turunan(f,i)*(x**i)
yn=(1/fact(i))*turunan(f,i)*(x**i)

print("Deret taylor : ",y)


return 'selesai...'

#def taylor
def taylor1(f,a1,X,n):
y=0
ya=0
for i in range (0,n+1):
y=y+(1/fact(i))*sub(turunan(f,i),x,a1)*((X-a1)**i)
print("ini y%d : "%i,y)
e=abs(y-ya)
ya=y

return y,e
def taylor2(f,n):
y=0
a=symbols ('a')
for i in range (0,n+1):

y=y+(1/fact(i))*sub(turunan(f,i),x,a)*((x-a)**i)
yn=(1/fact(i))*sub(turunan(f,i),x,a)*((x-a)**i)
print("ini y%d : "%i,yn)
print("-------------------------------------------")
print("Deret taylor : ",y)
return "selesai.."
print("-----------------------------")
print(deretmc2(p1,7))
print("\n-----------------------------")

print(deretmc1(p1,0.1,7))

2. tampilan program

3. Analisa program

Pada program ini saya menggunakan cukup banyak fungsi. Pertama-tama saya
mengimport library sympy,numpy,dan juga math. Setelah itu saya mulai menuliskan
beberapa fungsi. Saya menuliskan fungsi untuk menurunkan,memfaktorialkan dan
untuk mensubstitusi. Ketiga fungsi tersebut akan saya gunakan ketika program akan
menghitung deret taylor. Setelah itu saya membuat fungsi untuk deret taylor dan deret
maclaurin. Inti dari kedua fungsi ini adalah perulangan for. Program akan terus
menghitung nilai dari setiap suku pada deret sebanyak suku yang diminta oleh
pengguna. Apabila saya menginput angka 8 pada fungsi maka program akan
melakukan perhitungan deret hingga suku ke-8.
Saya memisahkan deret taylor dan deret mclaurin, hal ini agar memudahkan
pengguna ketika hanya ingin menghitung deret mclaurin. Fungsi deret mclaurin dan
deret taylor juga ada dua variasinya. Variasi 1 dan 2 ini memiliki fungsi yang berbeda.
Variasi 1 berfungsi untuk menghitung nilai dari deret sedangkan variasi 2 hanya untuk
melakukan ekspansi deret . jadi pada variasi 1 outputnya akan berbentuk angka dan
pada variasi ke-2 outputnya akan berupa deretnya hingga suku ke-n

Setelah suku telah dimasukkan saya tinggal menulis fungsi x yang ingin saya
masukkan ke dalam deret taylor di dalam program kemudian memasukkannya
kedalam fungsi taylor atau mclaurin. Untuk percobaan 1 ini, fungsinya adalah sin(x)
dengan x disekitar 0. Karena x disekitar 0 maka fungsi ini akan dimasukkan ke deret
mclaurin. Kami diminta untuk menghitung hingga kesalahan sebesar 10^-7. Pertama
saya coba masukkan kedalam fungsi deret meclaurin hingga suku ke-7 dan ternyata
kesalahannya sudah lebih kecil dari yang diminta. Setelah itu saya memasukkan
fungsi x kedalam kedua varian deret mclaurin dan saya outputkan hasil
perhitungannya. Output dari program dapat dilihat pada program di atas. Output
pertama berupa ekspansi deret taylor/mclaurin hingga suku ke 7 dan output
dibawahnya merupakan nilai dari f(0.1), kita dapat juga melihat besar dari
kesalahannya.
Percobaan 1.3.b
1. Listing program
from sympy import *
import numpy as np
import math as mt
x = symbols ('x')
a = symbols ('a')
p1 = sin(x)
p2 = log(x)
def turunan(f,n):
for i in range(n):
a=diff(f,x)
f=a
return f
def fact(n):
a=1
for i in range (n):
a=a*(i+1)
return a

def sub(f,x,n) :
y=f.subs(x,n)
return y
#def mc laurin
def deretmc1(f,X,n):
y=0
ya=0
for i in range (0,n+1):
y=y+(1/fact(i))*sub(turunan(f,i),x,0)*(X**i)
print("ini y%d : "%i,y)
e=abs(y-ya)
ya=y
print("nilai : ",y,"kesalahan : ",e)
return "selesai..."

def deretmc2(f,n):
y=0

for i in range (0,n+1):

y=y+(1/fact(i))*turunan(f,i)*(x**i)
yn=(1/fact(i))*turunan(f,i)*(x**i)

print("Deret taylor : ",y)


return 'selesai...'

#def taylor
def taylor1(f,a1,X,n):
y=0
ya=0
for i in range (0,n+1):
y=y+(1/fact(i))*sub(turunan(f,i),x,a1)*((X-a1)**i)
print("ini y%d : "%i,y)
e=abs(y-ya)
ya=y
print ('nilai : ',y,'kesalahan : ',e)
return 'selesai'
def taylor2(f,n):
y=0
a=symbols ('a')
for i in range (0,n+1):

y=y+(1/fact(i))*sub(turunan(f,i),x,a)*((x-a)**i)
yn=(1/fact(i))*sub(turunan(f,i),x,a)*((x-a)**i)

print("Deret taylor : ",y)


return "selesai.."
print("-----------------------------")
print (taylor2(p2,8))
print("\n-----------------------------")

print(taylor1(p2,1,1.1,8))

2. Tampilan program

3. Analisa program
Program ini sama persis dengan program yang saya gunakan pada
percobaan 1.a, satu-satunya perbedaan dari program ini dan sebelumnnya
adalah pada fungsi(x) dan pada outputnya. Untuk percobaan kali ini fungsi x
nya adalah ln(x) dengan x disekitar 1 dan kami diminta untuk melakukan
ekspansi taylor hingga suku ke 8. Untuk percobaan kali ini saya cukup
menuliskan fungsi ln(x) kedalam program dan memasukkannya kedalam
fungsi deret taylor.
Pada percobaan ini nilai x berada di sekitar 1 , yang berarti nilai dari a adalah
sama dengan 1. Setelah mengetahui kedua hal tersebut saya tinggal memasukkan
fungsi x kedalam varian 1 dan 2 deret taylor. Output dari varian 2 adalah ekspansi
deret taylor hingga suku ke-8 dan output dari varian 2 adalah nilai dari deret taylor
dengan a=1,x=1.1 dan dihitung hingga suku ke 8. Output dari kedua hasil perhitungan
tersebut dapat dilihat pada gambar di atas.
Percobaan 1.3.c
1. Listing program
from sympy import *
import numpy as np
import math as mt
x = symbols ('x')
a = symbols ('a')
p1 = sin(x)
p2 = log(x)
p3 = exp(x)

def turunan(f,n):
for i in range(n):
a=diff(f,x)
f=a
return f
def fact(n):
a=1
for i in range (n):
a=a*(i+1)
return a

def sub(f,x,n) :
y=f.subs(x,n)
return y
#def mc laurin
def deretmc1(f,X,n):
y=0
ya=0
for i in range (0,n+1):
y=y+(1/fact(i))*sub(turunan(f,i),x,0)*(X**i)
print("ini y%d : "%i,y)
e=abs(y-ya)
ya=y
print("nilai : ",y,"kesalahan : ",e)
return "selesai..."

def deretmc2(f,n):
y=0

for i in range (0,n+1):

y=y+(1/fact(i))*turunan(f,i)*(x**i)
yn=(1/fact(i))*turunan(f,i)*(x**i)

print("Deret taylor : ",y)


return 'selesai...'

#def taylor
def taylor1(f,a1,X,n):
y=0
ya=0
for i in range (0,n+1):
y=y+(1/fact(i))*sub(turunan(f,i),x,a1)*((X-a1)**i)
print("ini y%d : "%i,y)
e=abs(y-ya)
ya=y
print ('nilai : ',y,'kesalahan : ',e)
return 'selesai'

def taylor2(f,n):
y=0
a=symbols ('a')
for i in range (0,n+1):

y=y+(1/fact(i))*sub(turunan(f,i),x,a)*((x-a)**i)
yn=(1/fact(i))*sub(turunan(f,i),x,a)*((x-a)**i)

print("Deret taylor : ",y)


return "selesai.."
print("-----------------------------")
print (deretmc2(p3,5))
print("\n-----------------------------")

print(deretmc1(p3,0.01,5))

2. Tampilan program

3. Analisa program
Program ini sama dengan dua program sebelumnya , satu satunya perbedaan
adalah pada fungsi yang di operasikan dan outputnya. Dalam program ini saya
cukup memasukkan fungsi x yang baru yaitu exp(x). setelah itu saya memasukkan
nya kedalam kedua varian dari fungsi deret mclaurin karena nilai dari x berada di
sekitar x=0. Pertama-tama saya coba masukkan kedalam varian 1 dengan nilai
x=0.01 dengan suku hingga suku ke 5. Ternyata kesalahan dari hasil perhitungan
sudah jauh lebih rendah daripada yang diminta sehingga saya menetapkan untuk
menggunakan hanya sampai suku ke 5. Setelah itu saya memasukkan fungsi
kedalam varian ke 2 dan mengoutputkannya. Hasil perhitungand dari program
dapat dilihat pada gambar di atas. Bagian atas dari output merupakan ekspansi
deret taylor hingga suku ke 5 dan bagian bawahnya adalah nilai dari fx dengan
x=0.01 pada suku ke 5.
IV. Tugas Akhir
1.
Metode numerik merupakan sebuah cara untuk menyelesaikan sebuah masalah
matematika dengan menggunakan berbagai operasi aritmatika. Dalam matematika,
banyak persamaan yang sulit untuk di selesaikan secara analitik. Masalah seperti
system persamaan besar,ketidaklinearan dan geometri yang rumit merupakan contoh
dari masalah matematika yang sulit untuk diselesaikan secara analitik. Oleh karena itu
kita menggunakan metode numerik. Metode numerik juga menghasilkan sebuah nilai
galat atau error. Dengan galat ini kita dapat memberikan ekspekstasi yang tepat
terhadap hasil perhitungan kita. Dengan adanya galat kita dapat mengetahui seberapa
akurat nilai perhitungan kita. Galat ketika nilainya sangat kecil, misal hingga 10^-9,
tidak lagi menjadi suatu hal yang harus kita perhatikan. Ketika nilai galat sangat kecil
kita mendapatkan sebuah keyakinan bahwa hasil perhitungan kita akurat.

2.

1. Listing program
from sympy import *
import numpy as np
import math as mt
x = symbols ('x')
a = symbols ('a')
p1 = -0.5*(x**2)-0.25*x+1.2

def turunan(f,n):
for i in range(n):
a=diff(f,x)
f=a
return f
def fact(n):
a=1
for i in range (n):
a=a*(i+1)
return a

def sub(f,x,n) :
y=f.subs(x,n)
return y
#def mc laurin
def deretmc1(f,X,n):
y=0
ya=0
for i in range (0,n+1):
y=y+(1/fact(i))*sub(turunan(f,i),x,0)*(X**i)
print("ini y%d : "%i,y)
e=abs(y-ya)
ya=y
print("nilai secara deret taylor : ",y,"kesalahan : ",e)
return "selesai..."

def deretmc2(f,n):
y=0

for i in range (0,n+1):

y=y+(1/fact(i))*turunan(f,i)*(x**i)
yn=(1/fact(i))*turunan(f,i)*(x**i)

print("Deret taylor : ",y)


return 'selesai...'

#def taylor
def taylor1(f,a1,X,n):
y=0
ya=0
for i in range (0,n+1):
y=y+(1/fact(i))*sub(turunan(f,i),x,a1)*((X-a1)**i)
print("ini y%d : "%i,y)
e=abs(y-ya)
ya=y
print ('nilai : ',y,'kesalahan : ',e)
return 'selesai'

def taylor2(f,n):
y=0
a=symbols ('a')
for i in range (0,n+1):

y=y+(1/fact(i))*sub(turunan(f,i),x,a)*((x-a)**i)
yn=(1/fact(i))*sub(turunan(f,i),x,a)*((x-a)**i)

print("Deret taylor : ",y)


return "selesai.."
print("-----------------------------")
print ('Nilai f(2) secara analitik :',sub(p1,x,2))
print("\n-----------------------------")

print(deretmc1(p1,2,4))
2. Tampilan program

3. Analisa program
Program yang say gunakan ini sama dengan program yang saya
gunakan pada percobaan. Pada program ini saya hanya melakukan sedikit
perubahan. Perubahan pertama adalah saya menuliskan fungsi fx yang sesuai
dengan yang diminta. Setelah itu , pada bagian output saya memiliki dua
output, yaitu hasil perhitungan analitik dengan x=2 dan hasil perhitungan
dengan menggunakan deret taylor/mclaurin dengan nilai x=2 hingga orde ke-
4. Hasil perhitungan dapat dilihat pada gambar di atas. Kita dapat melihat
bahwa hasil perhitungan secara analitik adalah sama dengan secara metode
numerik. Hal ini terjadi karena persamaan fx merupakan persamaan yang tidak
terlalu kompleks. Kita dapat melihat bahwa mulai dari orde ke-2, hasil
perhitungan sudah sama dengan secara analitik. Sehingga ketika kita lanjutkan
hingga orde ke-4, kesalahannya adalah e=0. Jadi, kesimpulanya adalah ketika
kita melakukan operasi deret taylor pada sebuah persamaan matematika yang
relative tidak terlalu kompleks, hasilnya akan sama dengan ketika kita
menghitung menggunakan metode analitik.
V. Kesimpulan

Setelah melaksanakan praktikum kali ini saya telah mempelajari beberapa hal
baru dan mendapatkan pemahaman baru pada beberapa hal. Saya telah memahami apa
fungsi dari metode numerik dan apa saja perbedaannya dengan metode analitik.
Sekarang saya mengetahui bahwa dalam matematika, ada beberapa persamaan yang
sulit untuk di selesaikan secara analitik dan menggunakan metode numerik akan
memudahkan kita dalam menyelesaikan persamaan tersebut. Pada praktikum kali ini
saya telah dapat melakukan hal berikut:
• Memahami seluruh proses pengubahan sebuah persamaan matematik ke dalam
deret taylor maupun deret maclaurin.
• Memahami cara untuk menulis sebuah program yang dapat menghitung dan
melakukan ekspansi deret taylor atau deret maclaurin dari sebuah persamaan
matematika dan juga menampilkan hasil perhitungannya.

Dengan ini, saya menutup laporan praktikum modul 1. Semoga di masa yang akan
datang , saya dapat mengaplikasikan ilmu yang telah saya pelajari pada praktikum kali
ini. Sekian dari saya, terimakasih.
Daftar Pustaka

Neswan, Deret Taylor, FMIPA ITB


Numerik,M. Definisi Metode Numerik Bilangan Pendekatan & Angka yang
Berarti.

Anda mungkin juga menyukai