Cara Menulis Deret Taylor dengan Python

Deret Taylor adalah representasi dari suatu fungsi menggunakan jumlah tak hingga. Komputer sering membuat perkiraan nilai trigonometri, eksponensial, atau transendental lainnya fungsi dengan menjumlahkan bilangan terhingga dari suku-suku deret Taylor-nya, dan Anda dapat membuat ulang proses ini dalam Python. Suku-suku jumlah didasarkan pada turunan fungsi yang berurutan, jadi Anda harus mengidentifikasi pola dalam nilai turunan tersebut untuk menulis rumus untuk setiap suku deret tersebut. Kemudian, gunakan loop untuk mengumpulkan jumlah, mengontrol akurasi perkiraan Anda dengan jumlah iterasi loop.

Langkah 1

Konsultasikan definisi deret Taylor untuk memahami bagaimana setiap istilah dapat dihitung. Setiap suku dari deret tersebut diindeks, biasanya dengan "n", dan nilainya terkait dengan turunan ke-n dari fungsi yang diwakili. Demi kesederhanaan, gunakan 0 untuk nilai "a" pada percobaan pertama Anda. Versi khusus dari deret Taylor ini disebut deret Maclaurin. Coba fungsi sinus, karena turunan berurutannya mudah ditentukan.

Video Hari Ini

Langkah 2

Tuliskan beberapa nilai turunan ke-n dari fungsi sinus yang dievaluasi pada 0. Jika n adalah 0, nilainya adalah 0. Jika n adalah 1, nilainya adalah 1. Jika n adalah 2, nilainya adalah 0. Jika n adalah 3, nilainya adalah -1. Dari sini, polanya berulang, jadi abaikan setiap suku berindeks genap dari deret Taylor karena dikalikan dengan 0. Rumus untuk setiap suku dari deret yang dihasilkan adalah:

(-1)^n/(2n+1)!*x^(2n+1)

"2n+1" digunakan sebagai pengganti "n" untuk mengindeks ulang deret, secara efektif membuang istilah yang diindeks genap tanpa mengubah indeks itu sendiri. Faktor (-1)^n menjelaskan pergantian antara positif dan negatif dari suku-suku yang berurutan. Pekerjaan matematika awal ini mungkin tampak asing, tetapi kode Python akan jauh lebih mudah untuk ditulis dan digunakan kembali pada deret Taylor lainnya jika indeks selalu dimulai dari 0 dan dihitung ke atas dengan penambahan 1.

Langkah 3

Buka penerjemah Python. Mulailah dengan mengetikkan perintah berikut untuk mendefinisikan beberapa variabel:

jumlah = 0 x = 0,5236

Variabel "jumlah" akan digunakan untuk mengakumulasi jumlah deret Taylor karena setiap suku dihitung. Variabel "x" adalah sudut (dalam radian) yang ingin Anda aproksimasi dengan fungsi sinus. Atur ke apa pun yang Anda suka.

Langkah 4

Impor modul "matematika" dengan perintah berikut sehingga Anda memiliki akses ke fungsi "pow" dan "faktorial":

impor matematika

Langkah 5

Mulai loop "untuk", atur jumlah iterasi dengan fungsi "rentang":

untuk n dalam rentang (4):

Ini akan menyebabkan variabel indeks, n, mulai dari nol dan menghitung hingga 4. Bahkan sejumlah kecil iterasi ini akan menghasilkan hasil yang sangat akurat. Loop tidak langsung dieksekusi dan tidak akan dimulai sampai Anda menentukan seluruh blok kode untuk diulang.

Langkah 6

Ketik perintah berikut untuk menambahkan nilai setiap istilah berturut-turut ke "jumlah:"

jumlah += math.pow(-1,n)/math.factorial (2*n+1)*math.pow (x, 2*n+1)

Perhatikan bahwa perintah diindentasi dengan tab, yang menunjukkan kepada Python bahwa itu adalah bagian dari loop "untuk". Perhatikan juga bagaimana "pow" dan "faktorial" digunakan sebagai pengganti "^" dan "!" notasi. Rumus di sebelah kanan operator penugasan "+=" identik dengan yang ada di Langkah 2, tetapi ditulis dalam sintaks Python.

Langkah 7

Tekan "Enter" untuk menambahkan baris kosong. Untuk Python, ini menunjukkan penghentian loop "untuk", sehingga perhitungan dijalankan. Ketik perintah "jumlah" untuk mengungkapkan hasilnya. Jika Anda menggunakan nilai x yang diberikan pada Langkah 3, hasilnya sangat dekat dengan .5, sinus pi/6. Coba proses lagi untuk nilai x yang berbeda dan untuk jumlah iterasi yang berbeda dari perulangan, periksa hasil Anda dengan fungsi "math.sin (x)". Anda telah menerapkan dengan Python proses yang digunakan banyak komputer untuk menghitung nilai untuk sinus dan fungsi transendental lainnya.

Tip

Indentasi dan ketik perintah "jumlah" pada baris kedua dari loop "untuk" untuk mendapatkan total penjumlahan yang berjalan saat kode dijalankan. Ini mengungkapkan bagaimana setiap suku berurutan dari deret membawa jumlah lebih dekat dan lebih dekat ke nilai fungsi yang sebenarnya.