การสร้างส่วนประกอบ Schur
สมมติว่าคุณได้อนุญาตและแบ่งเมทริกซ์ของคุณลงในแบบฟอร์ม
A=(A11A21A12A22),
เช่นที่มีองศาอิสระในการสนใจของคุณและมีขนาดเล็กกว่าA 11มากจากนั้นคุณสามารถสร้างส่วนประกอบ Schur ได้A22A11
S22:=A22−A21A−111A12,
ไม่ว่าจะผ่านการแยกตัวประกอบ LU ที่ดูขวาหรือสูตรที่ชัดเจนจากนั้นสามารถเข้าใจได้ในแง่ต่อไปนี้:S22
S22x=y→(A11A21A12A22)(⋆x)=(0y),
โดยที่แสดงถึงส่วน ' uninteresting ' ของโซลูชัน ดังนั้นที่ให้ทางด้านขวาซึ่งไม่ใช่ศูนย์ในองศาอิสระของ Schur เติมเต็มS 22เราต้องการเพียงแก้ไขกับS 22เพื่อให้ได้สัดส่วนของการแก้ปัญหาที่สอดคล้องกับองศาอิสระเหล่านั้น⋆S22S22
ความซับซ้อนในการคำนวณในกรณีที่ไม่มีโครงสร้างที่หนาแน่น
การตั้งค่ากับความสูงของและnความสูงของ22แล้ววิธีการมาตรฐานสำหรับการคำนวณS 22แรกคือปัจจัยL 11 U 11 : = 11 (ขอละเว้นแกนตอนนี้) ในประมาณ2 / 3 ( N - n ) 3งานจากนั้นจึงสร้างNAnA22S22L11U11:=A112/3(N−n)3
S22:=A22−(A21U−111)(L−111A12)=A22−A21A−111A12
ใช้สองแก้สามเหลี่ยมที่กำหนดให้การทำงานในแต่ละและจากนั้นทำการอัพเดตเพื่อ22ใน2 n 2 ( N - n )การทำงานn(N−n)2A222n2(N−n)
ดังนั้นการทำงานรวมเป็นประมาณ ) เมื่อnมีขนาดเล็กมากN - n ≈ Nดังนั้นค่าใช้จ่ายที่สามารถมองเห็นจะเป็นประมาณ2 / 3 N 3ซึ่งเป็นค่าใช้จ่ายของตีนเป็ดเต็ม2/3(N−n)3+2n(N−n)2+2n2(N−n)nN−n≈N2/3N3
ประโยชน์คือถ้ามีจำนวนมากของด้านขวามือจะได้รับการแก้ไขได้ด้วยระบบเดียวกันของสมการแล้วอาจจะนำกลับมาใช้เป็นจำนวนมากครั้งซึ่งแต่ละแก้เพียงจะต้องมี2 n 2งาน (มากกว่า2 N 2งาน) ถ้าS 22เป็นปัจจัยS222n22N2S22
ความซับซ้อนในการคำนวณในกรณีกระจัดกระจาย (ทั่วไป)
หากระบบกระจายของคุณเกิดขึ้นจากการประมาณค่าความแตกต่างหรือการ จำกัด องค์ประกอบบางชนิดแล้วตัวแก้ปัญหาแบบกระจัดกระจายจะเกือบจะสามารถใช้ประโยชน์จากโครงสร้างบางอย่างได้ ระบบ 2D สามารถแก้ไขได้ด้วยการทำงานและO ( N บันทึกN )การจัดเก็บข้อมูลในขณะที่ระบบ 3D ที่สามารถแก้ไขได้ด้วยO ( N 2 )การทำงานและO ( N 4 / 3 )การจัดเก็บข้อมูล ระบบที่มีการแยกตัวสามารถแก้ไขได้ด้วยปริมาณงานเท่ากันกับข้อกำหนดด้านการจัดเก็บO(N3/2)O(NlogN)O(N2)O(N4/3)
จุดนำขึ้นความซับซ้อนในการคำนวณคือว่าถ้าและคุณมีระบบ 2d จากนั้นเนื่องจากส่วนประกอบของ Schur จะมีความหนาแน่นสูงการแก้ปัญหาความซับซ้อนที่ได้รับจากส่วนประกอบ Schur ที่เป็นปัจจัยจะเป็นO(n2)=O(N)ซึ่งหายไปเพียงปัจจัยลอการิทึมเท่านั้น ระบบ! ในแบบ 3 มิติก็ต้องใช้O(N)ทำงานแทนO(N 4 / 3 )n≈N−−√O(n2)=O(N)O(N)O(N4/3)
ดังนั้นโปรดจำไว้ว่าในกรณีของคุณที่จะมีการออมที่สำคัญหากคุณทำงานในหลายมิติและมีฝ่ายขวามากมายที่จะแก้ไขn=N−−√