Rumus perbedaan hingga standar dapat digunakan untuk menghitung turunan secara numerik di bawah ekspektasi bahwa Anda memiliki nilai fungsi pada titik yang diberi spasi secara merata, sehingga adalah konstanta. Bagaimana jika saya memiliki titik spasi yang tidak rata, sehingga sekarang bervariasi dari satu pasang titik yang berdekatan ke yang berikutnya? Jelas saya masih dapat menghitung turunan pertama sebagai , tetapi apakah ada rumus diferensiasi numerik pada pesanan yang lebih tinggi dan akurasi yang dapat beradaptasi dengan variasi ukuran kisi?h ≡ x k + 1 - x k h f ′ ( x ) ≈ 1
finite-difference
discretization
David Z
sumber
sumber
Jawaban:
Komentar JM benar: Anda dapat menemukan polinomial interpolasi dan membedakannya. Ada cara lain untuk menurunkan formula tersebut; biasanya, mereka semua mengarah pada pemecahan sistem van der Monde untuk koefisien. Pendekatan ini bermasalah ketika stensil perbedaan terbatas mencakup sejumlah besar poin, karena matriks Vandermonde menjadi tidak terkondisikan. Pendekatan yang lebih stabil secara numerik dirancang oleh Fornberg , dan dijelaskan lebih jelas dan umum dalam makalah keduanya .
Berikut ini adalah skrip MATLAB sederhana yang mengimplementasikan metode Fornberg untuk menghitung koefisien dari pendekatan perbedaan hingga untuk setiap turunan pesanan dengan set poin apa pun. Untuk penjelasan yang bagus, lihat Bab 1 teks LeVeque tentang metode beda hingga .
Sedikit lebih banyak tentang rumus FD: Misalkan Anda memiliki kisi 1D. Jika Anda menggunakan seluruh set titik kisi untuk menentukan satu set rumus FD, metode yang dihasilkan setara dengan menemukan polinomial interpolasi melalui seluruh kisi dan membedakannya. Pendekatan ini disebut kolokasi spektral. Atau, untuk setiap titik kisi Anda bisa menentukan rumus FD hanya menggunakan beberapa titik tetangga. Inilah yang dilakukan dalam metode beda hingga tradisional.
Seperti disebutkan dalam komentar di bawah ini, menggunakan perbedaan hingga dari urutan sangat tinggi dapat menyebabkan osilasi (fenomena Runge) jika poin tidak dipilih dengan hati-hati.
sumber
http://mathformeremortals.wordpress.com/2013/01/12/a-numerical-second-derivative-from-three-points/
Ini menjawab pertanyaan Anda dan menunjukkan rumus yang Anda cari, untuk turunan kedua. Derivatif Orde Tinggi mengikuti pola yang sama.
sumber
Jawaban di atas sangat bagus dalam hal memberi Anda kode untuk digunakan, tetapi tidak sebagus dalam hal teori. Jika Anda ingin mempelajari lebih dalam tentang interpolasi polinomial, lihat perlakuan teoretis ini dengan beberapa contoh nyata:
Para penulis menggunakan Interpolasi Lagrangian (lihat artikel Wikipedia ) untuk menghitung polinomial interpolasi 3-point, 4-point, dan 5-point, serta turunan pertama, kedua, dan ketiga mereka. Mereka memiliki ekspresi untuk kesalahan pemotongan juga, yang penting untuk dipertimbangkan ketika menggunakan skema beda hingga. Mereka juga memiliki rumus umum untuk menghitung polinomial interpolasi menggunakan titik N.
Polinomial interpolasi Lagrangian berguna karena polinomial dan turunannya bisa sangat akurat dalam domain yang Anda interpolasi, dan mereka tidak mengasumsikan spasi grid genap. Karena sifat polinomial interpolasi Lagrangian, Anda tidak akan pernah memiliki lebih banyak pesanan turunan daripada jumlah titik kisi.
Saya pikir ini menjawab pertanyaan Anda dengan baik karena makalah yang saya kutip memiliki formula untuk skema beda hingga terbatas tingkat tinggi yang sewenang-wenang, yang pada dasarnya adalah untuk grid yang tidak rata dan hanya dibatasi oleh jumlah titik grid yang Anda sertakan dalam stensil Anda. Makalah ini juga memiliki rumus umum untuk kesalahan pemotongan, yang akan membantu Anda mengevaluasi skema polinomial interpolasi Lagrangian dengan skema lain yang mungkin Anda pertimbangkan. Makalah penulis harus memberikan hasil yang sama dengan metode Fornberg. Kontribusi mereka benar-benar hanya menghitung beberapa contoh dan memberikan perkiraan kesalahan, yang mungkin berguna bagi Anda.
Saya menemukan kedua makalah yang saya kutip dan karya Fornberg berguna untuk penelitian saya sendiri.
sumber
Saya menemukan makalah ini pada formula beda hingga dengan sub-interval yang tidak sama . Saya akan menggunakan ini alih-alih interpolasi. Setelah saya mengetik semua rumus, saya akan mempostingnya di sini.
sumber
Metode paling sederhana adalah dengan menggunakan perkiraan perbedaan hingga.
Estimasi dua titik sederhana adalah menghitung kemiringan garis potong terdekat melalui titik (x, f (x)) dan (x + h, f (x + h)). [1] Memilih sejumlah kecil h, h mewakili perubahan kecil dalam x, dan dapat berupa positif atau negatif. Kemiringan garis ini adalah
Ungkapan ini adalah hasil bagi perbedaan Newton.
Kemiringan garis garis potong ini berbeda dari kemiringan garis garis singgung dengan jumlah yang kira-kira sebanding dengan h. Ketika h mendekati nol, kemiringan garis garis potong mendekati kemiringan garis garis singgung. Oleh karena itu, turunan sebenarnya dari f pada x adalah batas nilai selisih hasil ketika garis potong semakin dekat dan semakin dekat menjadi garis singgung
sumber