Apa saja gejala pengondisian saat menggunakan metode langsung?

14

Misalkan kita memiliki sistem linier dan kita tidak tahu apa-apa tentang pengkondisiannya dan tidak memiliki informasi awal tentang solusinya. Kami secara membabi buta menerapkan eliminasi Gaussian dan mendapatkan beberapa solusi . Apakah mungkin untuk menentukan apakah solusi ini dapat dipercaya (yaitu bahwa sistem dikondisikan dengan baik) tanpa analisis awal yang menyeluruh dari matriks ? Apakah besarnya pivot memberikan informasi yang andal?x

Dan secara umum, apa pedoman utama untuk mendeteksi pengondisian udara "on the fly"?

faleichik
sumber

Jawaban:

13

Kapan sebuah matriks dikondisikan ? Tergantung pada keakuratan solusi yang Anda cari, sebanyak "keindahan ada di mata yang melihatnya" ...

Mungkin pertanyaan Anda sebaiknya diulang kembali karena ada penaksir angka kondisi murah dan kuat berdasarkan faktorisasi ?L.U

Dengan asumsi Anda tertarik pada masalah umum (padat, non simetris) nyata dalam aritmatika presisi ganda, saya akan menyarankan Anda untuk menggunakan pemecah ahli LAPACK DGESVX yang memberikan perkiraan kondisi dalam bentuk timbal baliknya, . Sebagai bonus Anda juga memiliki barang lain seperti persamaan / keseimbangan persamaan, penyempurnaan berulang, batas kesalahan maju dan mundur. Omong-omong, pengkondisian penyakit patologis ( ) ditandai sebagai kesalahan oleh .κ ( A ) > 1 / ϵRCOND1/κ(SEBUAH)κ(SEBUAH)>1/ϵINFO>0

Pergi ke lebih detail, LAPACK memperkirakan nomor kondisi dalam 1-norma (atau -norm jika Anda memecahkan A T x = b ) melalui DGECON . Algoritma yang mendasari dijelaskan dalam halaman 36: "Robust Triangular Solves untuk Penggunaan dalam Estimasi Kondisi" .SEBUAHTx=b

Saya harus mengakui bahwa saya bukan ahli di bidang ini, tetapi filosofi saya adalah: "jika itu cukup baik untuk LAPACK, itu untuk saya".

Stefano M
sumber
8

Solusi dari sistem persamaan yang dikondisikan buruk dengan matriks norma 1 sisi kanan acak norma 1 akan memiliki probabilitas tinggi norma urutan nomor kondisi. Jadi, menghitung beberapa solusi semacam itu akan memberi tahu Anda apa yang sedang terjadi.

Arnold Neumaier
sumber
Ini memang yang dilakukan DGECON, dengan kemahiran yang ditambahkan secara iteratif memperbaiki arah pencarian untuk memaksimalkan hasil, dan menggunakan pemecah triangular khusus (bukan yang BLAS) agar tidak memiliki hal-hal yang miring oleh kesalahan perkiraan. Karenanya biaya komputasi DGECON sebanding dengan tes sederhana Anda. +1 untuk mengingat kita tentang makna sederhana dari norma-norma matriks dan nomor kondisi. Seharusnya menarik untuk mengetahui apakah DGECON benar-benar lebih kuat dari pemeriksaan acak sederhana.
Stefano M
Mempertimbangkan bahwa jumlah kondisi penyelesaian bertepatan dengan jumlah kondisi komputasi A x apakah cukup untuk mengalikan matriks berskala dengan vektor-vektor acak tersebut, bukannya penyelesaian aktual A x = b ? SEBUAHx=bSEBUAHxSEBUAHx=b
faleichik
2
@faleichik Untuk memastikan tidak: trik di sini adalah untuk skala sehingga A = 1 dan κ ( A ) = A A - 1= A - 1 . Tentu saja, sebagai aljabar linier ini, Anda tidak harus benar-benar skala A tetapi hanya A x ... namun Anda harus terlebih dahulu menghitung A . Argumen terbalik Anda harus terlebih dahulu menghitung A - 1SEBUAHSEBUAH=1κ(SEBUAH)=SEBUAHSEBUAH-1=SEBUAH-1SEBUAHSEBUAHxSEBUAHSEBUAH-1yang mana kami berusaha untuk mengevaluasi.
Stefano M
5

Hampir mustahil untuk mengetahui apakah sistem Anda dikondisikan hanya dari satu hasil. Kecuali Anda memiliki pandangan ke depan tentang perilaku sistem Anda (yaitu tahu apa solusinya HARUS), tidak banyak yang dapat Anda katakan dari satu solusi.

Karena itu, Anda dapat memperoleh lebih banyak informasi jika Anda menyelesaikan lebih dari satu sistem dengan sama . Misalkan Anda memiliki sistem bentuk A x = b . Untuk A tertentu yang Anda tidak memiliki pengetahuan sebelumnya tentang pengkondisian, Anda dapat melakukan tes berikut: SEBUAHSEBUAHx=b

  1. Memecahkan untuk vektor sisi kanan tertentu b . SEBUAHx=bb
  2. Ganggu vektor sisi kanan Anda dengan mana | | ϵ | | sangat kecil dibandingkan dengan | | b | | .bnew=b+ε||ϵ||||b||
  3. Memecahkan .SEBUAHxnew=bnew
  4. Jika sistem Anda terkondisi dengan baik, solusi baru Anda harus cukup dekat dengan solusi lama Anda (yaitu harus kecil). Jika Anda mengamati perubahan dramatis pada solusi baru Anda (yaitu | | x - x n e w | | adalah besar), maka sistem Anda mungkin tidak terkondisi. ||x-xnew||||x-xnew||

Anda mungkin perlu menyelesaikan beberapa sistem linier dengan berbagai vektor sisi kanan yang berbeda untuk memberi Anda indikasi yang lebih baik tentang apakah sistem itu tidak dikondisikan. Tentu saja, proses ini sedikit mahal ( operasi untuk solusi pertama dan Θ ( n 2 ) operasi untuk setiap solusi berturut-turut, dengan asumsi pemecah langsung Anda menyimpan faktor-faktornya). Jika matriks A Anda cukup kecil, ini bukan masalah. Jika besar, Anda mungkin tidak ingin melakukan ini. Sebaliknya, Anda mungkin lebih baik menghitung nomor kondisi | | A | | | | A - 1 |Θ(n3)Θ(n2)dalam norma yang nyaman.||SEBUAH||||SEBUAH-1||

Paul
sumber
2
Θ(kn3)SEBUAHSEBUAHHAI(n3)HAI(n2)
@ JackPoulson: Anda benar sekali ... Saya kira saya benar-benar tidak tahu tentang itu. Jangan khawatir :) Saya akan memperbarui jawaban saya
Paul
||SEBUAHx-b||
||SEBUAH||||x||
SEBUAH
@ Reid.Atcheson: Tidak juga. Solusi perkiraan untuk sistem yang dikondisikan masih dapat menghasilkan residu kecil. Ini tidak benar-benar tidak memberi Anda indikasi seberapa jauh itu dari solusi yang sebenarnya.
Paul
1
ε b