ประโยชน์อันหนึ่ง Schur’s complements

ถ้าเรามีเงื่อนไขว่า

q^TA^{-1}q \leq 1

โดยที่ q^Tq =1 ถ้าเราอยากหาว่า q^TAq \leq ? จะทำอย่างไร มันกลับเศษเป็นส่วนแบบตัวเลขทั่วไปไม่ได้เพราะนี่มันเมตริกซ์  แต่เรารู้ว่า

-1 + q^TA^{-1}q \leq 0

และจาก Schur’s complements เราจะได้ว่า

\begin{bmatrix}-1 & q^T \\ q & -A\end{bmatrix} \leq 0

-A\leq 0, \qquad -A + qq^T \leq 0

คูณทางซ้ายด้วย q^T และคูณทางขวาด้วย q ของสมการล่างสุด จะได้

-q^TAq + 1 \leq 0

q^TAq \geq 1

งดงามดีแท้

Advertisements

Hold all

ทุกคนที่เคยใช้ Matlab คงจะไม่มีใครไม่เคยใช้ฟังก์ชัน hold on หรือ hold off  ที่ blog ของ Loren มีการนำเสนอตัวเลือกของฟังก์ชัน hold นั่นคือ hold all และเหมือนทุกครั้ง ผมก็พึ่งรู้ว่ามีงี้ด้วย

ยกตัวอย่างปัญหาที่มักเกิดขึ้นเสมอ ๆ แล้วกันครับ เวลาเราพล็อตกราฟเพื่อเปรียบเทียบ เอาตามตัวอย่างของ Loren แต่นำเสนอให้เข้ากับสถานการณ์จริงมากขึ้นคือ สมมติว่า  เราสร้างฟังก์ชัน sin แล้วพล็อตดังนี้

t = 0:0.005:1;
f = sin(2*pi*10*t);
plot(t,f)

ซึ่งเราก็จะได้กราฟดังรูปsin

Continue reading

Monospace font for programming

ปกติจะใช้ courier new ซึ่งหน้าตาจะเป็นแบบนี้

courier new

ซึ่งจะเห็นว่ามีปัญหาหลายจุด ที่เห็นชัด ๆ และกวนใจเสมอ ๆ คือ ตัว l กับเลข 1 และตัว O กับเลข 0 ส่วนเรื่องความคมชัดบองตัวหนังสือก็พอใช้ได้ไม่มีปัญหาอะไร  จริง ๆ แล้วหลาย ๆ คนคงจะรู้มานานแล้วว่า Microsoft ได้ออกแบบฟอนต์ใหม่เอาใจโปรแกรมเมอร์ซึ่งชื่อว่า Consolas ซึ่งกลายเป็นขวัญใจโปรแกรมเมอร์ในเวลาอันรวดเร็ว ดูได้จาก Top 10 Programming Fonts ตอนวิสต้าออกมาใหม่ ๆ  ก็ลองพยายามหาโหลดมาใช้กับ XP ดู ปรากฎว่าไม่ได้แจกฟรี มันมาพร้อมกับโปรแกรมเวอร์ชันหลัง ๆ ของ Microsoft เท่านั้น พึ่งมารู้เมื่อวานว่ามันฟรีแล้วสำหรับผู้ใช้วินโดวส์แท้ หน้าตามันเป็นดังนี้ครับ

consolas

คงจะเห็นความแตกต่างได้ดีนะครับ ที่ชัด ๆ คืออักษรตัวเล็กใหญ่ขึ้น ไม่มีปัญหาเรื่องเลข 1 กับตัว l เพราะหางของเลขหนึ่งจะยาวขึ้นมาอีกนิดหน่อย ส่วนเลข 0 กับตัว O ก็แยกกันสนิท นอกจากนั้นสัญลักษณ์พิเศษต่าง ๆ ก็ดูคมชัดขึ้น ตัวเอียงก็ดีขึ้น ข้อดีที่เพิ่มขึ้นเหล่านี้จะทำให้เขียน syntax ของ LaTeX ผิดน้อยลงอย่างมาก ๆ

ใครต้องการใช้ก็เข้า google หรือ bing ไปโหลดได้เลย