Fungsi eksponensial atas angka aljabar

8

Diberikan bilangan aljabar , saya tertarik untuk menemukan perkiraan ( e α ) hingga presisi yang diberikan, di mana ( ) mengacu pada bagian nyata dari bilangan kompleks.α(eα)()

Secara formal, saya ingin menghitung bilangan rasional sehingga | ( e α ) - r | 2 - nr

|(eα)r|2n

diberikan oleh polinomial minimal (standar).α

Seberapa cepat kita bisa menyelesaikan masalah ini?


Ketika diberikan sebagai titik mengambang, referensi berikutα

R. Brent. Evaluasi multi fungsi presisi cepat yang cepat. JACM, 1976.

sepertinya memberikan jawaban.

Namun, saya tidak yakin dapat digunakan untuk nomor aljabar . α

pengguna22166
sumber
1
Baik exp dan log dapat diperkirakan hingga bit presisi dalam waktu O ( M ( n ) log n ) . Karena perkiraan akar numerik tidak lebih cepat secara signifikan (tentunya membutuhkan waktu setidaknya Ω ( M ( n ) ) ), pertanyaan Anda pada dasarnya setara dengan kompleksitas perkiraan α . Untuk polinom tetap, yang terakhir dapat dilakukan dalam waktu O ( M ( n ) )nO(M(n)logn)Ω(M(n))αO(M(n))menggunakan metode Newton, tapi saya tidak yakin apa yang sebenarnya terjadi ketika polinomial (dan interval pembatas!) adalah bagian dari input.
Emil Jeřábek
(Kompleksitas waktu asimptotik dari iterasi Newton kurang lebih waktu yang dibutuhkan untuk mengevaluasi polinomial pada input yang diberikan ke bit presisi).n
Emil Jeřábek
1
Oh, tapi semua yang saya tulis berlaku ketika Anda ingin kesalahan relatif , yaitu, adalah output dalam representasi eksponen-mantissa, dan kesalahan terikat berlaku untuk mantissa. Cara pertanyaan ditulis, Anda tidak bisa mendapatkan ikatan yang lebih baik daripada trioal 2 O ( n ) , karena ukuran output eksponensial dalam ukuran input yang sudah ada dalam case α adalah integer, dan ϵ = 1 . r2O(n)αϵ=1
Emil Jeřábek
2
Untuk menghindari masalah yang Emil merujuk pada kompleksitas fungsi nyata dipelajari ketika domain adalah seperangkat kompak seperti interval unit. Jika Anda bisa besar arbitrer maka exp tidak dapat dihitung dalam waktu polinomial. α
Kaveh
PS: algoritma ini umumnya bekerja untuk semua bilangan real yang dapat dihitung termasuk bilangan aljabar, kita hanya perlu memberikan perkiraan yang bagus untuk input.
Kaveh

Jawaban:

3

Seperti yang ditulis, masalahnya membutuhkan waktu , di mana m adalah panjang input (Anda sayangnya digunakan n untuk sesuatu yang lain). Memang, jika misalnya α adalah bilangan bulat positif (diberikan oleh polinomial minimal x - α ) dan n = 0 , ukuran output eksponensial dalam ukuran input. Batas ini tentu saja optimal, karena ada sejumlah cara bagaimana menghitung hasilnya dalam waktu 2 O ( m ) .2Ω(m)mnαxαn=02O(m)


Biarkan saya mencoba merumuskan kembali pertanyaan itu sehingga lebih masuk akal. Masalah utama adalah bagaimana memilih representasi input dan output, serta gagasan aproksimasi, sehingga eksponensial berpeluang untuk diperhitungkan dalam waktu polinomial.

Salah satu cara disebutkan oleh Kaveh dalam komentar: batasi domain hingga interval terbatas tetap. Meskipun ini berfungsi, itu tidak perlu membatasi; khususnya, tidak ada cara yang baik bagaimana mengubah angka aljabar menjadi angka yang dibatasi sehingga eksponensial mereka ada hubungannya satu sama lain.

Pendekatan yang lebih fleksibel adalah merepresentasikan input sebagai angka titik tetap , dan output sebagai angka titik mengambang . Untuk lebih spesifik, representasi titik tetap adalah string menunjukkan ± j a j 2 j , di mana a j{ 0 , 1 } , dan representasi titik mengambang adalah ± 2 e ×

±arar1a0.a1as
±jaj2jaj{0,1} dengan interpretasi yang sama, di mana e adalah bilangan bulat biner, dan sebuah 0 = 1 . (Sebagai pengecualian, kami juga memungkinkan 0 untuk mewakili dirinya sendiri.) Sebuah perkiraan nyata x untuk m bitmutlakakurasi adalah nyata x ' sehingga | x - x | < 2 - m , dan perkiraan ke m bitakurasirelatifadalah
±2e×a0.a1as
ea0=10xmx|xx|<2mm sedemikian rupa | 1 - x / x | < 2 - m . Kami akan menggunakan akurasi absolut untuk perkiraan titik tetap, dan akurasi relatif untuk perkiraan titik mengambang. Oleh karena itu dalam kedua kasus, kami juga dapat mengasumsikan s m (hingga kehilangan satu bit akurasi).x|1x/x|<2msm

Representasi titik tetap dan titik mengambang dari rasional Gaussian diad, dan perkiraan bilangan kompleks, didefinisikan dengan cara yang sama, menggunakan sepasang real. Di mana-mana di bawah ini, menunjukkan ukuran total input.n

xmexmxmlogxm

Selama kita mematuhi batas waktu menjalankan memenuhi beberapa kondisi keteraturan ringan, dan mengabaikan faktor multiplikasi konstan, kita memiliki:

  • a2exp(a2t)=a2t+a222t1+O(a323t)ta
  • Eksponensial dan logaritma memiliki kompleksitas yang sama. Alasannya adalah bahwa kita dapat menghitung kebalikan dari fungsi yang bagus dengan iterasi Newton (atau metode yang lebih canggih seperti dalam Brent ) menggunakan evaluasi fungsi itu sendiri. Iterasi biasanya melibatkan multiplikasi atau divisi, tetapi kita dapat membelinya pada poin sebelumnya.

αfc,ρ|cα|<ραf

αmαm

Reeααmeαm

Fakta: Hingga faktor linier, kompleksitas eksponensial bilangan aljabar sama dengan kompleksitas perkiraan bilangan aljabar ditambah kompleksitas eksponensial kompleks.

αm+O(1)αeαm

eα

Ini membagi pertanyaan menjadi dua masalah yang tidak saling berkaitan. Batas atas yang paling dikenal pada eksponensial adalah

nM(n)O(M(n)logn)

Ω(M(n))M(n)nlogn2O(logn)

O~(f(n))O(f(n)polylog(f(n)))

Untuk perkiraan akar sebenarnya , Pan dan Tsigaridas memberikan:

O~(d2τ+dm)d=deg(f)τf

O~(d3+d2m)f1+1/logd


eαReeαReeαImeαx+iyeαmy2mxx2m

Untuk eksponensial rasional yang tepat, kita dapat menghindari masalah:

α=x+iymx,yReeαmO(M(n)logn)

Reeα=excosyexcosy2mk2y/πcosy±cosy±sinyy=ykπ2|y|π/4sinyysinymm+log|y1|y=u/vu,vyπ

|π2ukv|2|y|k.
πν7.6063
|y|12kν1vν,
log|y1|ysinyysinyy

αlog|y|deg(f)

Emil Jeřábek
sumber
k0b/k<1r=(b/k)e(r,k,e)
k,b,e(r,k,e)2aaeaa/log2exp(aa/log2log2)
be
renb/k1/2r22nkerkkdapat bervariasi, yang membuatnya sulit untuk melakukan perhitungan pada representasi tersebut. Apa manfaatnya?
Emil Jeřábek