Perkirakan koefisien deret Taylor dari sampel suatu fungsi

10

Katakanlah saya memiliki pengukuran fungsi , disampel di dengan beberapa noise, yang dapat diperkirakan oleh ekspansi deret Taylor. Apakah ada cara yang diterima untuk memperkirakan koefisien untuk ekspansi dari pengukuran saya?y=y(x)xi

Saya bisa memasukkan data ke polinomial, tapi itu tidak benar, karena untuk seri Taylor aproksimasi akan menjadi lebih baik semakin dekat Anda ke titik pusat, katakanlah x = 0. Hanya pas polinomial memperlakukan setiap titik secara merata.

Saya juga bisa memperkirakan berbagai urutan turunan pada titik ekspansi saya, tetapi kemudian saya perlu membuat keputusan tentang apa yang membedakan filter yang akan digunakan dan berapa banyak koefisien filter untuk masing-masing. Apakah filter untuk turunan yang berbeda harus saling cocok?

Jadi, adakah yang tahu metode yang sudah ada untuk ini? Penjelasan atau referensi ke makalah akan dihargai.

KLARIFIKASI

Menanggapi komentar di bawah ini, pengambilan sampel saya adalah jendela persegi panjang dari fungsi tak terbatas, yang tidak selalu terbatas pada band tetapi tidak memiliki komponen frekuensi tinggi yang kuat. Untuk lebih spesifik, saya mengukur varians dari estimator (mengukur perpindahan dalam sinyal USG medis) sebagai fungsi dari parameter estimator (tingkat deformasi atau strain dari jaringan yang mendasarinya). Saya memiliki seri Taylor teoritis untuk varians sebagai fungsi deformasi, dan ingin membandingkannya dengan apa yang saya dapatkan dari simulasi.

Contoh mainan serupa mungkin: katakanlah Anda memiliki fungsi seperti ln (x), disampel pada interval dalam x dengan beberapa noise ditambahkan. Anda tidak tahu apa fungsinya sebenarnya dan Anda ingin memperkirakan seri Taylor-nya sekitar x = 5. Jadi fungsinya halus dan perlahan bervariasi untuk suatu wilayah di sekitar titik Anda tertarik (katakanlah 2 <x <8), tetapi tidak selalu bagus di luar wilayah tersebut.

Jawabannya sangat membantu, dan beberapa jenis polinomial kuadrat-kuadrat mungkin adalah rute yang harus diambil. Apa yang akan membuat seri Taylor yang diperkirakan berbeda dari kecocokan polinomial normal, adalah bahwa Anda harus dapat mengurangi persyaratan tingkat tinggi, dan memiliki polinomial yang masih mendekati fungsi asli, hanya dalam kisaran yang lebih kecil tentang titik awal Anda.

Jadi mungkin pendekatannya adalah melakukan fit polinomial linier dengan hanya menggunakan data yang dekat dengan titik awal, diikuti oleh kuadratatik dengan sedikit lebih banyak data, kubik menggunakan sedikit lebih dari itu, dll.

Mat
sumber
Beberapa pertanyaan (yang mungkin atau mungkin tidak relevan): Dengan sampel, apakah maksud Anda fungsi ini dibatasi pita di bawah beberapa frekuensi Fs / 2? Apakah sampel Anda merupakan jendela persegi panjang dari fungsi tak terbatas, fungsi berulang, atau fungsi lengkap?
hotpaw2
Seperti Dilip tunjukkan dalam jawabannya, menggunakan ekspansi seri Taylor mengharuskan Anda memiliki pengetahuan tentang turunan fungsi pada semua titik sampel. Saya kira Anda dapat menggunakan ekspresi teoretis Anda untuk turunan dari , tetapi itu agak mengurangi kegunaan menggunakan simulasi independen untuk mengkonfirmasi teori Anda. Untuk meniru yang terbaik dari seri Taylor behaivor sehubungan dengan persyaratan tingkat tinggi, pendekatan seperti yang Anda sarankan, menggunakan urutan berbeda dari polinomial, mungkin berguna. y(x)
Jason R

Jawaban:

8

Alih-alih pemasangan polinomial yang tepat, Anda bisa menggunakan kuadrat-terkecil , yang akan menemukan polinomial dari urutan tertentu yang meminimalkan kesalahan kuadrat total antara fit dan yang diukur(xsaya,ysaya)berpasangan. Ini dapat membantu mengurangi efek noise pada fit.

Pengukuran yang diberikan ysaya dari suatu fungsi y=f(x) pada nilai domain xsaya (saya=0,1,...,N), pilih urutan polinomial M.N (jika M.=N, maka Anda turun untuk pemasangan polinomial yang tepat, seperti N poin secara unik menentukan M.urutan polinomial). Kemudian, atur sistem persamaan yang linear dalam koefisien polinomial yang diinginkanhalk:

ysaya=halM.xsayaM.+halM.-1xsayaM.-1+...+hal1xsaya+hal0,saya=0,1,...,N

Masalah kuadrat-terkecil dapat diselesaikan dengan mengatur pengukuran ke dalam bentuk matriks-vektor:

SEBUAH=[x0M.x0M.-1x01x1M.x1M.-1x11xNM.xNM.-1xN1],y=[y0y1yN]

Solusi kuadrat-terkecil menghasilkan vektor koefisien polinomial[halM.,halM.-1,...,hal0]yang meminimalkan kesalahan kuadrat total dalam sistem linear di atas. Solusinya dapat dihitung sebagai:

hal~=(SEBUAHTSEBUAH)-1SEBUAHTy

Perlu dicatat bahwa matriks (SEBUAHTSEBUAH)-1SEBUAHTjuga dikenal sebagai pseudoinverse dari matriksSEBUAH. Anda kemudian dapat menggunakan vektor koefisien polinomial kuadrat-terkecilhal~ untuk mengevaluasi polinomial yang lain x nilai yang Anda inginkan.

Jason R
sumber
1
Dalam kasus abscaus equispaced, ini tidak berbeda dari menerapkan penghalusan Savitzky-Golay pada data Anda.
Plus 1 untuk jawaban yang bagus. LSE memang sangat ada di mana-mana.
Tarin Ziyaee
6

Abaikan kebisingan untuk saat ini.

Diberikan n+1 poin (xsaya,ysaya) Dimana xsaya adalah angka yang berbeda, Anda dapat, seperti yang Anda katakan, sesuai dengan jumlahnya banyak f(x) gelar paling banyak nmelalui poin-poin ini. Interpolasi lagrange, misalnya, adalah metode standar untuk ini. Namun, diyakini bahwa titik-titik tersebut sebenarnya berada pada kurvay=g(x) dimana g(x) belum tentu polinomial (misalnya, mungkin ex atau (x+Sebuah)/(x+b) dll.) dan Anda ingin mencari seri Taylor untuk fungsi ini g(x). Nah, untuk mengembangkan seri Taylor g(x) di sekitar x=0, katakanlah, membutuhkan pengetahuan tentang nilai g(0)serta nilai-nilai derivatif g(k)(x)=dkg(x)dxk,k=1,2, di x=0, sedangkan semua yang diketahui adalah nilai g(x) di n+1 poin xi. Bahkan jika xi=0 untuk beberapa saya maka g(0)diketahui, masih perlu untuk memperkirakan g(k)(0) untuk k=1,2,...

Memperkirakan nilai turunan dari suatu fungsi g(x) di x=0 dari nilainya g(xsaya)pada titik-titik yang dipilih adalah masalah yang dipelajari dengan baik dalam analisis numerik, dan formula yang digunakan sudah tersedia. Apa yang tidak dijelaskan secara rinci, atau lebih umum, tidak disebutkan sama sekali di sekitar formula ini, adalah bahwa formula ini diperoleh dengan memasang polinomialh(x)=khkxk ke poin yang diketahui dan memperkirakan g(k)(0) sebagai h(k)(0)=k!hk. Ambil jalan lain,

Dari n+1 poin (xsaya,g(xsaya)) dari g(x), kita dapat mengembangkan seri Taylor untuk g(x) hanya sampai batas derajat n, dan seri Taylor yang terpotong hanya h(x), polinomial yang dipasang pada n+1 poin.

Jadi, apa yang cocok dengan polinomial? Kesesuaian standar adalah interpolasi Lagrange yang berfungsi dengan baik ketika tidak ada noise, titikxsaya ditempatkan secara merata, dan 0 adalah nilai median dari xsaya. Jika ada noise, kuadrat-terkecil cocok dengan polinomial derajatm<n (lihat jawaban oleh JasonR untuk detail) seringkali lebih baik, dan jika kita ingin menekankan akurasi di sekitarx=0, fit kuadrat tertimbang dapat digunakan. Menimbang istilah kesalahan dari titik di sekitar0 lebih dari istilah kesalahan dari jauh memaksa algoritma minimisasi untuk menghasilkan yang lebih dekat 0 dengan mengorbankan akurasi yang lebih buruk jauh dari 0. Tentu saja, seseorang juga harus mempertahankan pilihan fungsi pembobotan terhadap penentang yang lebih memilih pembobotan yang berbeda (atau tanpa pembobotan).

Contoh: Diberikan3 poin (-1,y-1),(0,y0),(1,y1), rumus interpolasi Lagrange memberi

f(x)=y-1x(x-1)2-y0(x2-1)+y1x(x+1)2=y0+y1-y-12x+y1-2y0+y-12x2
dimana koefisien dari x dan x2adalah rumus "tiga titik" untuk turunan pertama dan kedua seperti yang diberikan dalam Tabel 25.2 dari Abramowitz dan Stegun's Handbook of Mathematical Functions, yaitu rumus interpolasi Lagrange adalah deret Taylor terpotong untuk suatu fungsi.g(x) seperti yang g(-1)=y-1,g(0)=y0,g(1)=y1.
Dilip Sarwate
sumber