วันเสาร์ที่ 29 สิงหาคม พ.ศ. 2558

การติดตั้ง Integrator ให้กับ GC-8A เพื่อวัด CO2 (การทำวิทยานิพนธ์ภาคปฏิบัติ ตอนที่ ๗๑) MO Memoir : Saturday 29 August 2558

ในที่สุดก็ได้เวลานำเอาเครื่อง Shimadzu GC-8A ที่ติดตั้งตัวตรวจวัดแบบ Thermal Conductivity Detector (ที่เรียกกันย่อ ๆ ว่า TCD) กลับมาใช้งานใหม่อีกครั้ง หลังจากที่ไม่ได้ใช้มานาน ครั้งนี้เพื่อนำมาใช้วัด CO2  
   
รูปที่ ๑ ลำดับการออกของแก๊สชนิดต่าง ๆ เมื่อใช้คอลัมน์ Molecular Sieve 5A พึงสังเกตนะว่า CO2 จะออกมาที่อุณหภูมิที่สูงอยู่

เครื่องที่เรามีอยู่นั้นติดตั้งคอลัมน์ชนิด Molecular sieve 5A (ขนาดอนุภาค 60/80 คือมีขนาดอนุภาคอยู่ในช่วง 50-80 mesh) อยู่ที่ port 2 เพียงตัวเดียว โดยที่ port 1 นั้นไม่มีคอลัมน์ต่ออยู่ เมื่อค้นดูข้อมูลพบว่า CO2 จะออกจากคอลัมน์นี้ที่อุณหภูมิสูงสักหน่อย (ในรูปที่ ๑ นั้นออกมาที่อุณหภูมิ 225ºC) ดังนั้นคอลัมน์ที่จะนำมาต่อเข้ากับ port 1 เพื่อใช้เป็น reference column จึงต้องสามารถทนอุณหภูมิได้ด้วย
ในการนี้ผมไม่ได้เลือกใช้คอลัมน์เปล่าที่ไม่มี packing บรรจุ เพราะมันปรับอัตราการไหลได้ยาก และยังมีปัญหาเรื่องอุณหภูมิของแก๊สที่ไหลผ่านคอลัมน์เปล่านั้นมีแนวโน้มที่จะเย็นกว่าแก๊สที่ไหลผ่านคอลัมน์มี packing ก็เลยไปรื้อ ๆ ดูคอลัมน์เก่า ๆ ที่ไม่เห็นมีคนใช้ ก็ได้มาอันหนึ่งที่มันทนอุณหภูมิได้ระดับเดียวกันกับ Molecular sieve 5A
  
ความว่องไวในการตรวจวัดของ TCD นั้นเพิ่มขึ้นในสัดส่วนประมาณ (กระแส)3 กล่าวคือถ้าเราเพิ่มกระแสที่ไหลผ่าน TCD ขึ้นเป็น ๒ เท่าของค่าเดิม ความว่องไวในการตรวจวัดจะเพิ่มขึ้น ๘ เท่า แต่ทั้งนี้ก็อาจต้องแลกด้วยอายุการใช้งานของ TCD ที่อาจสั้นลง ในขณะเดียวกันก็ต้องคำนึงถึงอุณหภูมิการทำงานของ TCD และ carrier gas ที่ใช้ด้วย (รูปที่ ๒) ที่ค่ากระแสเดียวกัน ถ้าใช้ carrier gas ที่นำความร้อนได้แย่กว่า ขดลวด TCD จะร้อนจัดมากกว่า
  
รูปที่ ๒ ค่ากระแสสูงสุดที่ TCD สามารถรับได้ที่อุณหภูมิตัวตรวจวัดต่าง ๆ และเมื่อใช้ carrier gas ต่าง ๆ รูปนี้นำมาจากคู่มือ GC ของ Shimadzu
  
หลังจากที่แก้ปัญหาเรื่องคอลัมน์ได้เสร็จ ขั้นตอนต่อไปก็เป็นการนำเอา Integrator มาต่อ โดยไปนำเอาเครื่องที่ใช้อยู่กับ GC-9A ของกลุ่มเรามาใช้ก่อน แต่เมื่อจะนำมาต่อเข้ากับเครื่อง GC-8A ก็พบกับปัญหาคือ ขั้วเสียบไม่เหมือนกัน คือของเครื่อง GC-9A และ GC-14A นั้นมันเป็นแบบ ๕ ขา แต่ของ GC-8A (เป็นรุ่นที่เก่ากว่า) มันเป็นแบบ ๓ ขา (รูปที่ ๓)
  
เนื่องด้วยยังไม่สามารถหาซื้อขั้วเสียบที่เสียบเข้าพอดีได้ (ที่หาได้นั้นมันมีแต่ขนาดใหญ่เกินไป) ก็เลยแก้ปัญหาก่อนด้วยการใช้คลิปปากจระเข้จับเข้าไปที่แต่ละขาของขั้ว โดยได้ทำการวัดด้วยมัลติมิเตอร์ก่อนว่าขาข้างไหนเป็นขั้วบวก ข้างไหนเป็นขั้วลบ (ตั้งมิเตอร์ให้ไวหน่อย ให้วัดไฟ DC (กระแสตรง) ที่ต่ำกว่า 1 V ได้ เพราะสัญญาณขาออกมันมีระดับเพียงแค่ mV) ตอนเอาคลิปปากจระเข้หนีบก็ต้องระวังไม่ให้มันสัมผัสกันด้วย ทีนี้พอเอาคลิปปากจระเข้หนีบขาขั้วบวก (ตัวสีแดง) และขาขั้วลบ (ตัวสีน้ำเงิน) เรียบร้อยแล้ว มันก็ไม่มีช่องที่จะหนีบขาสายดิน (ground) ได้ ผมก็เลยย้ายขาสายดิน (ตัวสีเหลือง) ไปหนีบไว้ที่ขาสายดินของช่อง recorder ที่อยู่เหนือขึ้นไปแทน เพราะเห็นว่ามันเป็นสายดินเหมือนกัน (อันที่จริงถึงไม่หนีบสายดินมันก็ยังทำงานได้เหมือนกัน)
  
รูปที่ ๓ ขั้วสำหรับต่อเข้ากับ Recorder (ช่องบน) กับต่อเข้ากับ Integrator (ช่องล่าง) เป็นขั้ว analogue ชนิด ๓ ขา (ขั้วบวกคือขาซ้าย ขั้วลบคือขาขวา และสายดินคือขาบนสุด)
  
หมดปัญหาเรื่องการเชื่อมต่อ Integrator ปัญหาต่อไปก็คือการหาว่าต้องตั้ง polarity อย่างไรเพื่อให้มันอ่านสัญญาณจาก port 2 แต่ก่อนอื่นต้องทำการ regenerate column ก่อน (เพราะไม่ได้ใช้มานานและก็ไม่รู้ว่ามันมีอะไรตกค้างอยู่บ้างหรือเปล่า) ด้วยการให้ความร้อนแก่คอลัมน์ที่อุณหภูมิสูงพอและเปิดทิ้งไว้ทั้งวัน เมื่อวันพฤหัสบดีผมเริ่มที่ 150ºC ก่อน และเมื่อวานก็ทำที่ 170ºC คาดว่าในวันจันทร์จะทำต่อที่ 230ºC (ตรงนี้ต้องขอตรวจสอบอุณหภูมิสูงสุดที่คอลัมน์ทนได้อีกครั้ง) จากนั้นจึงค่อยหาตำแหน่งพีค CO2   
    
จากการทดสอบด้วยการฉีดอากาศ 1.5 ml ที่อุณหภูมิคอลัมน์ 170ºC และตั้งกระแสไว้ที่ 60 mA พบว่า ถ้าต้องการวัดสัญญาณจาก port 2 โดยไม่ให้พีคออกมากลับหัว ต้องกดปุ่มเลือก polarity (ปุ่ม POL สีน้ำเงินในรูปที่ ๔) ให้เป็น (-) หรือกดให้มันยุบลงไปนั่นเอง ปุ่ม Attenuation ที่อยู่ข้างใต้นั้นไม่ส่งผลอะไรต่อสัญญาณส่งออกทางช่อง Integrator (มันส่งผลต่อสัญญาณส่งออกทางช่อง Recorder เท่านั้น)
  
รูปที่ ๔ ในการวัดสัญญาณจาก port 2 นั้น ให้กดปุ่มเลือก polarity (ปุ่ม POL สีน้ำเงินในรูป) ให้เป็น (-)
   
ทดสอบการทำงานของเครื่องเสร็จเรียบร้อยแล้วก็ถ่ายรูปไว้เป็นที่ระลึกหน่อย (รูปที่ ๕) เอาไว้วันจันทร์ค่อยมาเล่นกันต่อ เครื่องนี้การเปิดเครื่องก็ง่าย แค่เปิดแก๊ส He เข้าเครื่องก่อน จากนั้นก็กดปุ่ม power เพื่อเปิดเครื่อง ปรับตั้งอัตราการไหลของ carrier gas ทั้งสองคอลัมน์ (ให้ใกล้เคียงกัน) ตั้งอุณหภูมิของ Column และ (Injector port + Detector port) ตั้งค่ากระแสสำหรับ detector และก็รอให้เครื่องนิ่ง
   
ส่วนการปิดเครื่องก็เริ่มด้วยการปิดกระแส Detector ตั้งอุณหภูมิ Column และ (Injector port + Detector port) กลับมาที่อุณหภูมิห้อง รอให้ระบบเย็นตัวลงก่อนแล้วค่อยปิดปุ่ม power สำหรับเครื่องนี้ carrier gas ไม่ถูกควบคุมด้วยระบบไฟฟ้า ดังนั้นไม่ว่าเราจะจ่ายไฟฟ้าให้เครื่องหรือไม่ carrier gas ก็ยังไหลผ่านคอลัมน์ได้อยู่

รูปที่ ๕ หลังจากเสร็จสิ้นการทดสอบในช่วงบ่ายวันวาน เดี๋ยววันจันทร์ค่อยจัดที่ทางให้มันเรียบร้อยหน่อย

วันพฤหัสบดีที่ 27 สิงหาคม พ.ศ. 2558

รับไหว้หรือสวดมนต์ MO Memoir : Thurday 27 August 2558

เห็นช่วงสัปดาห์ที่ผ่านมาทางมหาวิทยาลัยเขามีการรณรงค์เรื่องเครื่องแบบการแต่งกายของนิสิต มีการเอาป้ายไปวางไว้ตามที่ต่าง ๆ ในมหาวิทยาลัย แต่ผมเห็นท่าทางนายแบบนางแบบแล้วไม่แน่ใจว่าเขาต้องการสื่ออะไร ไม่รู้ว่าพวกคุณจะรู้สึกอย่างไรบ้าง ยังไงก็ลองดูภาพข้างล่างเอาเองก็แล้วกัน


เรื่อง "การไหว้แบบไทย" นั้นผมเคยเขียนเอาไว้ใน Memoir ปีที่ ๖ ฉบับที่ ๖๔๒ วันพุธที่ ๑๐ กรกฎาคม ๒๕๕๖ ว่าเท่าที่ผมได้เรียนรู้มาและเห็นคนทั่วไปในสังคมยึดถือปฏิบัติกันมานั้นมันมีกี่รูปแบบ 
   
การยกมือประนมที่ "ระดับอก" นั้นเป็นการไหว้ที่ใช้ใน "การสวดมนต์ ฟังพระสวดมนต์ ฟัง พระธรรมเทศนา และขณะพูดกับพระสงฆ์ซึ่งเป็นที่เคารพนับถือ" หรือไม่ก็เป็นการ "รับไหว้" คือมีไว้สำหรับ "ให้ผู้ใหญ่รับไหว้ผู้ที่อ่อนกว่า
    
หรือว่านี่กำลังเป็นท่ามาตรฐานในการถ่ายแบบ

วันอังคารที่ 25 สิงหาคม พ.ศ. 2558

คิดถึง บ้างไหม เคยยวน เคยยั่ว เหย้าหยอก เล่นหัว MO Memoir : Tuesday 25 August 2558

บ้านหลังแรกสร้างเมื่อใดและถูกรื้อทิ้งไปเมื่อใดผมก็ไม่รู้เหมือนกัน รู้แต่ว่าตอนที่ได้เข้ามาสัมผัสที่นี่เป็นครั้งแรกมันเป็นบ้านหลังที่สอง และบ้านหลังที่สองนี้ก็เกือบจะถูกรื้อทิ้งอีกครั้งเมื่อเราได้บ้านหลังที่สามและหลังที่สี่ที่ใหญ่กว่า แต่บังเอิญเหตุการณ์ฟองสบู่แตกเมื่อปี ๒๕๔๐ จึงยังทำให้เรายังคงมีบ้านหลังที่สองนี้มาจนถึงปัจจุบัน
  

  
ดังนั้นคงจะไม่ผิดถ้าจะกล่าวว่า ผู้ที่เรียนจบจากที่นี่ที่ปัจจุบันมีอายุในช่วง ๕๐ กลาง ๆ ลงมา ต่างก็เคยได้เข้ามาใช้ช่วงเวลาสั้น ๆ ช่วงหนึ่งของชีวิตในบ้านหลังที่สองหลังนี้ แต่ก็เชื่อว่ามันคงเป็นช่วงเวลาที่ได้ให้ความทรงจำที่ไม่รู้เลือนมาจนถึงปัจจุบัน
     


จะมีสักกี่คนในปัจจุบันที่ยังจำและทันได้ใช้เครื่องชั่งสองแขนที่ทางภาควิชาได้รับมาตั้งแต่ปีพ.ศ. ๒๕๐๖ แม้ว่าปัจจุบันมันยังอยู่ในสภาพดีอยู่ แต่ก็ถูกนำไปเก็บซุกไว้ใต้โต๊ะแลปที่ได้มาใหม่ ถังเซรามิกสำหรับบรรจุสารกรองน้ำเพื่อใช้ทำน้ำบริสุทธิ์สำหรับห้องปฏิบัติการ ที่ไม่รู้เหมือนกันว่าได้มาตั้งแต่เมื่อใด ตู้ไม้ที่ทำจากไม้จริงที่หาได้ยากในปัจจุบันโดยช่างไม้มีฝีมือ ที่ถูกสั่งทำขึ้นมา ๕๐ ปีที่แล้วเพื่อใช้เก็บเครื่องแก้วต่าง ๆ ในห้องปฏิบัติการเคมีที่ โต๊ะทำงานและตู้ไม้ที่ยังคงปฏิบัติหน้าที่ของมันมาตั้งแต่ปีพ.ศ. ๒๕๒๑-๒๕๒๒ จวบจนถึงปัจจุบัน พัดลมโคจร (ที่ใบพัดทำจากเหล็ก) ที่ยังคงทำหน้าที่ของมันอยู่ในขณะนี้แม้ว่ามันจะมีอายุเข้าใกล้ ๔๐ ปีเข้าไปทุกที รวมทั้งท่อหลากสีที่เดินทอดมาจากด้านล่างของอาคารและพาดผ่านด้านบนเพดานของห้องปฏิบัติการ จะมีใครสักกี่คนที่เคยได้ใช้และรู้ความหมายของสีเหล่านั้นว่าท่อเหล่านั้นเป็นท่ออะไร รวมทั้งพื้นทางเดินที่ผ่านการรับใช้จนกระเบื้องหลุดร่อนและขาดการซ่อมบำรุง









โถงด้านล่างของตึกที่ช่วงเวลาหนึ่งเมื่อ ๒๐ ปีที่แล้วเคยถูกใช้เป็นที่ริดใบจามจุรีเพื่อใช้ในงานรับขวัญ ปัจจุบันได้กลายเป็นห้องเครื่องมือวิทยาศาสตร์และที่ตั้งลิฟต์ของอาคาร ดาดฟ้าอาคารที่มีนิสิตบางคนที่ทำแลปการคืนและนอนค้างที่ตึกได้ขึ้นไปใช้เป็นที่อาบน้ำยามค่ำคืน (ในยุคสมัยที่รอบ ๆ อาคารนี้ยังไม่มีตึกที่สูงกว่า) บันไดด้านข้างอาคารที่แต่เดิมจะสามารถมองเห็นตึกสำนักงานใหญ่ธนาคารกรุงเทพที่เป็นตึกที่สูงที่สุดของประเทศในเวลานั้น โดดเด่นขึ้นมาบนถนนสีลม ตู้เหล็กที่ภาคเคยจัดหาให้นิสิตป.ตรีใช้เป็นที่เก็บของ รั้วมหาวิทยาลัยหลังป้ายรถเมล์ริมถนนพญาไทที่มักจะมีการสลับกันซ่อมกับสลับกันตัดเสาเหล็ก เพื่อเปิดเป็นช่องทางลัดสำหรับเดินเข้ามหาวิทยาลัยเวลาที่ประตูปิด จะได้ไม่ต้องเดินอ้อมไปไกล รวมทั้งร้านนวย (ที่ปัจจุบันกลายเป็นที่ตั้งร้านกาแฟหรูหรา) ที่ขายของกินให้สำหรับคนที่ขี้เกียจเดินไปหาอะไรกินที่โรงอาหาร





ผมเป็นรุ่นแรกที่ทางคณะให้เข้ามาเรียนปี ๑ ก่อนแล้วค่อยเลือกภาคตอนขึ้นปี ๒ สารพัดเรื่องที่รุ่นพี่ทั้งชักชวนทั้งข่มขู่ว่าอย่าเลือกเรียนภาคนี้ สารพัดวีรกรรมที่รุ่นพี่ได้ก่อไว้และเล่าให้ฟัง ไม่ว่าจะเป็นเรื่องการขโมยเลคเชอร์โน๊ตอาจารย์จนทำให้อาจารย์สอนหนังสือไม่ได้ (แล้วผลเป็นยังไงหรือครับ ดูเหมือนว่ารุ่นนั้นจะได้ F วิชานั้นกันเพียบ) การเอาบีกเกอร์ในห้องแลปเคมีมาต้มบะหมี่กึ่งสำเร็จรูปกินกันด้วยการใช้เตาไฟฟ้าของแลป หรือการแอบทำอาหารในห้องบรรยายขณะที่อาจารย์กำลังสอนหนังสืออยู่
  
  
ผู้ที่ทำเคยทำโปรเจคกันตลอดค่ำคืน เคยไหมครับที่มีคืนคืนหนึ่งที่ได้พบกับเหตุการณ์ที่มันกลายมาเป็นตำนานของตึกมาจนถึงปัจจุบัน ยังจำวิชาที่ต้องมีการสอบรีเกรดกันเกือบทั้งรุ่นเป็นประจำทุกปีได้ไหมครับ รายงานแลปหรือเลคเชอร์โน๊ตที่ตกทอดกันจากรุ่นหนึ่งสู่รุ่นหนึ่ง หรือการทดลองที่ทำลงไปโดยที่ไม่เข้าใจว่าทำอะไรลงไปเพราะยังเรียนเนื้อหาในส่วนภาคบรรยายไม่ถึง


  
ชื่อเรื่องบทความนี้ผมไม่ได้คิดเองหรอกครับ เพียงแต่ไปยืมเนื้อร้องท่อนหนึ่งของเพลง "สายใย" ที่เป็นเพลงที่โด่งดังเมื่อราว ๆ ๓๐ ปีที่แล้ว และปัจจุบันก็ยังคงพอได้ยินอยู่ในงานแต่งงานต่าง ๆ บ่อยครั้งที่ผมเกิดความคิดว่าเรื่องราวของบ้านที่เราเคยอยู่นั้นทำไมเราต้องให้คนอื่นมาเขียน (โดยใช้ฐานข้อมูลของทางราชการ) ทำไมเราจึงไม่เขียนในส่วนของเราเองบ้างในเมื่อมันมีหลากหลายเหตุการณ์ที่เกิดขึ้นที่หลายท่านเคยประสบ ที่บ่งบอกให้เห็นถึงสภาพการใช้ชีวิตในบ้านหลังนี้


เคยไหมครับที่คิดอยากจะกลับมายังสถานที่เดิมที่เคยเข้ามาใช้ช่วงเวลาหนึ่งของชีวิต เพื่อมารำลึกว่าในช่วงเวลานั้นได้ก่อวีรกรรมอะไรไว้บ้าง มึความทรงจำอะไรบ้างที่ประทับใจมาจนถึงปัจจุบัน ผมหวังว่าวันสำคัญที่กำลังจะมาถึงนี้คงไม่ใช่เพียงแค่วันกินข้าวเย็นพบปะสังสรรร่วมกับเพื่อนฝูงพี่น้อง แต่ควรเป็นวันที่เปิดโอกาสให้ทุกท่านได้กลับมาเยือนบ้านเดิมเพื่อกลับมาทบทวนความทรงจำและส่งต่อความทรงจำเหล่านั้นให้คนรุ่นต่อไป เพื่อบันทึกเอาไว้เป็นประวัติของภาควิชา จากมุมมองนิสิตผู้เรียน

แล้วพบกันครับ

วันเสาร์ที่ 22 สิงหาคม พ.ศ. 2558

การคำนวณเชิงตัวเลข (๑๒) LU decomposition ร่วมกับ Iterative improvement MO Memoir : Saturday 22 August 2558

Memoir ฉบับนี้จัดทำขึ้นเพื่อขยายความในเอกสารประกอบคำสอนวิชาคณิตศาสตร์สำหรับวิศวกรรมเคมี ในส่วนของการคำนวณเชิงตัวเลข เรื่องการแก้ปัญหาระบบสมการพีชคณิตเชิงเส้น

ในการแก้ปัญหาระบบสมการพีชคณิต A.x = b ด้วยเทคนิคการกำจัดของเกาส์ (Gauss elimination) นั้น จำนวนครั้งของการคูณในขั้นนตอนของการกำจัดไปข้างหน้า (Forward elimination) จะแปรผันตามจำนวนสมการยกกำลัง 2 ในขณะที่จำนวนครั้งของการคูณในขั้นตอนการแทนค่าย้อนกลับ (Back substitution) แปรผันตามจำนวนสมการยกกำลัง 1 หรือกล่าวอีกนัยหนึ่งคืองานส่วนใหญ่ไปหนักอยู่ที่ขั้นตอนการกำจัดไปข้างหน้า
  
ในกรณีที่เราต้องแก้ปัญหาระบบสมการพีชคณิต A.x = b หลายครั้ง โดยแต่ละครั้งนั้นมีเมทริกซ์ A ที่เหมือนกัน แต่แตกต่างกันตรงเวกเตอร์ b แม้ว่าเราจะสามารถใช้เทคนิคการกำจัดของเกาส์ในการแก้ปัญหาได้ แต่จะพบว่ามีการทำงานที่ซ้ำซ้อนกันอยู่ คือขั้นตอนการกำจัดไปข้างหน้าที่เราต้องทำการแปลงเมทริกซ์ A เพื่อให้ค่าตัวเลขในซีกซ้ายล่างของเมทริกซ์ A (พวกที่อยู่ใต้แนวเส้นทแยงมุม) มีค่าเป็น 0 และที่สำคัญคือขั้นตอนนี้เป็นขั้นตอนที่ใช้เวลาคำนวณมากที่สุด
 
ด้วยเหตุนี้จึงได้มีการหาวิธีที่จะทำการเก็บค่าตัวเลขที่ใช้ในการแปลงตัวเลขในตำแหน่งต่าง ๆ ที่อยู่ใต้เส้นทแยงมุมของเมทริกซ์ A ให้มีค่าเป็น 0 เพื่อที่จะได้สามารถนำไปใช้งานในครั้งต่อไปได้เลยโดยไม่ต้องทำการคำนวณใหม่ นั่นคือการแตกเมทริกซ์ A ให้กลายเป็นผลคูณของเมทริกซ์ 2 เมทริกซ์คือ L กับ U หรือ A = L.U
 
จะว่าไปแล้วการแปลงเมทริกซ์ A ให้กลายเป็นผลคูณของเมทริกซ์ 2 เมทริกซ์คือ L กับ U นั้นก็คือการทำการกำจัดไปข้างหน้าในระหว่างการใช้เทคนิคการกำจัดของเกาส์ในการแก้ปัญหา เพียงแต่เราเอาตัวเลขที่เราใช้ในการกำจัดให้ตัวเลขที่อยู่ ใต้แนวเส้นทแยงมุมให้มีค่าเป็น 0 ไปเก็บไว้ในเมทริกซ์ L ส่วนเมทริกซ์ U ก็คือเมทริกซ์ A ที่เหลือจากการกำจัดไปข้างหน้านั่นเอง
  

ดังนั้นจากโจทย์ของเรา A.x = b
จะแปลงเป็น L.(U.x) = b
กำหนดให้ U.x = y
ทำการแก้ระบบสมการ L.y = b เพื่อหาค่า y ก่อน
จากนั้นแก้ระบบสมการ U.x = y เพื่อให้ได้ค่า x

เพื่อให้ได้คำตอบที่ออกมาถูกต้อง (เท่าที่ความอุปกรณ์ที่ใช้ในการคำนวณจะให้ได้) การแก้ปัญหาด้วยเทคนิคการกำจัดของเกาส์นั้นจะเริ่มจากการทำการกำจัดไปข้างหน้าพร้อมกับการหาตัวหลัก (pivoting) ไปด้วยพร้อมกัน และในขณะเดียวกันก็จะทำการแตกเมทริกซ์ A ให้กลายเป็นผลคูณของเมทริกซ์ 2 เมทริกซ์คือ L กับ U เมื่อได้คำตอบ (คือ x) แล้วจะนำคำตอบที่ได้ไปแทนค่าในโจทย์เริ่มต้นเพื่อตรวจสอบว่าผลการคำนวณมีความคลาดเคลื่อนสะสมมากน้อยเท่าใด (ดูผลต่างระหว่างค่า b ที่โจทย์กำหนดมาให้กับค่าที่คำนวณได้จากการแทน x เข้าไปในสมการ) ถ้าพบว่าค่า b ที่ได้จากการแทนค่า x ที่คำนวณได้แตกต่างจากค่า b ที่โจทย์กำหนดมาให้ นั่นแสดงว่าค่า x ที่คำนวณได้นั้นมีความคลาดเคลื่อนสะสมอยู่ ก็จะทำการปรับแก้ด้วยการใช้เทคนิค iterative improvement
 
การปรับแก้คำตอบด้วยเทคนิค iterative improvement นั้นเป็นการแก้ปัญหาระบบสมการ A.dx = db เพื่อหาว่าค่าความคลาดเคลื่อนของคำตอบ (dx) นั้นมีค่าเท่าใด เพื่อที่จะได้ไปหักค่าความคลาดเคลื่อนนั้นออกจากค่าที่คำนวณได้ครั้งแรก กระบวนการปรับแก้ดังกล่าวเป็นกระบวนการที่ทำซ้ำไปเรื่อย ๆ จนกว่าจะพบว่าไม่สามารถปรับลดความคลาดเคลื่อนให้ต่ำลงไปได้อีกแล้ว (เกินความสามารถของเครื่องคำนวณ) และกระบวนการนี้ก็เป็นการทำให้การแก้ปัญหาระบบสมการ A.x = b ของเราเพียงข้อเดียว กลายเป็นการแก้ปัญหาระบบสมการ A.x = b หลายครั้ง โดยที่แต่ละครั้งนั้นมีค่าเวกเตอร์ b ที่แตกต่างกัน
  
เพื่อให้เห็นภาพเรามาลองดูตัวอย่างโดยใช้ระบบสมการพีชคณิต 5 สมการ 5 ตัวแปรที่เคยยกมาก่อนหน้านี้

0.001x1 + 200x2 + x3 - 10x4 - 200x5 = 5     สมการที่ (1)
0.6x1 + 5x2 + 11.5x3 + 4x4 + 3x5 = -3      สมการที่ (2)
-11x1 + 3x2 + 0.8x3 + x4 - 15.8x5 = 7      สมการที่ (3)
2x1 + 2x2 + 2x3 + 0.000067x4 + 7x5 = 6     สมการที่ (4)
-3x1 - x2 + 2x3 + 8x4 + 1.3x5 = -11     สมการที่ (5)

จะทำการหาคำตอบของระบบสมการ (ค่า x1, x2, x3, x4 และ x5) เปรียบเทียบกันระหว่างการใช้ Gauss elimination โดยไม่มีการหาตัวหลัก จากนั้นจะใช้เทคนิค Iterative improvement เพื่อทำการปรับแก้คำตอบ การคำนวณกระทำโดยใช้โปรแกรม Spreadsheet ของ OpenOffice 3.3.0
  
รูปที่ ๑ เป็นผลการคำนวณโดยไม่มีการหาตัวหลัก เมื่อนำค่า x1, x2, x3, x4 และ x5 ที่คำนวณได้แทนค่ากลับเข้าไปในสมการที่ (1)-(5) พบว่าค่า b นั้นมีความคลาดเคลื่อนอยู่ (ตัวเลขสีแดงที่มุมขวาล่างของรูป) ดังนั้นจึงทำการแก้ระบบสมการ L.U.dx = db เพื่อหาค่า dx (ณ ขณะนี้เราไม่จำเป็นต้องทำการแตกเมทริกซ์ A ให้กลายเป็นผลคูณของเมทริกซ์ L กับ U เพราะเราได้ทำไปแล้วในระหว่างการหาคำตอบ x ชุดแรก) รูปที่ ๒ แสดงขั้นตอนคำนวณเพื่อคำนวณหาค่า dx ครั้งแรกเพื่อนำไปปรับคำตอบ x ที่ได้จากการคำนวณในครั้งแรก และเมื่อได้ค่า x ชุดใหม่แล้วก็ทำการทดสอบว่ายังมีความคลาดเคลื่อนอยู่หรือไม่ คือดูว่าค่า db เป็นศูนย์หรือไม่ ซึ่งก็พบว่ายังมีความคลาดเคลื่อนอยู่ (ค่า db ยังไม่เป็นศูนย์)
  
รูปที่ ๓ แสดงการทำ Iterative improvement ซ้ำเป็นครั้งที่สอง เพื่อหาว่าค่า x ที่ได้มาจากการปรับแก้ครั้งแรกนั้นยังมีความคลาดเคลื่อนหลงเหลืออยู่เท่าใด ซึ่งก็พบว่ามีค่าความคลาดเคลื่อนลดลง (จาก 10-11-10-12 ลงเหลือ 10-16-10-17) และเมื่อนำค่าคลาดคลาดเคลื่อนที่คำนวณได้ใหม่นี้ไปหักออกจากค่า x ที่ได้จากการปรับแก้ครั้งแรก ก็จะได้ค่า x ที่ผ่านการปรับแก้สองครั้ง แต่เมื่อนำค่า x ที่ได้จากการปรับแก้ครั้งที่สองนี้แทนค่ากลับเข้าไปใหม่กลับพบว่าค่าความคลาดเคลื่อน db นั้นไม่ลดต่ำลง ทั้งนี้เป็นเพราะค่า dx ที่ได้จากการคำนวณครั้งที่สองมีขนาดประมาณ 10-16 เท่าของค่า x ที่ได้จากการปรับแก้ครั้งแรก และการคำนวณนั้นกระทำที่นัยสำคัญ 16 ตำแหน่ง ดังนั้นเมื่อนำค่า dx ที่ได้จากการคำนวณครั้งที่สองไปหักออกจากค่า x ที่ได้จาก การคำนวณครั้งแรก ผลลัพธ์ที่ได้จึงเป็นค่า x ชุดเดิม กล่าวอีกนัยหนึ่งคือเราไม่สามารถปรับคำตอบให้ถูกต้องได้มากกว่านี้อีกแล้วเนื่องด้วยข้อจำกัดของ machine precision ดังนั้นการคำนวณจะยุติลงเพียงแค่นี้

วันศุกร์ที่ 21 สิงหาคม พ.ศ. 2558

การคำนวณเชิงตัวเลข (๑๑) เปรียบเทียบ Gauss elimination ที่มีและไม่มีการทำ Pivoting MO Memoir : Friday 21 August 2558

Memoir ฉบับนี้จัดทำขึ้นเพื่อขยายความในเอกสารประกอบคำสอนวิชาคณิตศาสตร์สำหรับวิศวกรรมเคมี ในส่วนของการคำนวณเชิงตัวเลข เรื่องการแก้ปัญหาระบบสมการพีชคณิตเชิงเส้น

เทคนิคการกำจัดของเกาส์ (หรือ Gauss elimination) เป็นเทคนิคหลักในการหาคำตอบของระบบสมการพีชคณิตที่มีจำนวนสมการไม่มาก (สมการอยู่ในรูปแบบ A.x = b) เทคนิคนี้ประกอบด้วยขั้นตอนหลัก ๒ ขั้นตอนคือ ขั้นตอนแรกเป็นขั้นตอนของการกำจัดไปข้างหน้า (Forward elimination) ซึ่งเป็นการทำให้ตัวเลขในซีกซ้ายล่างของเมทริกซ์ A มีค่าเป็น 0 และขั้นตอนที่สองคือการแทนค่าย้อนกลับ (Back substitution) ที่เป็นการหาค่า ย้อนกลับจากค่า xn มาจนถึง x1 
   
แต่การแก้โจทย์นั้นไม่ใช่ว่าโจทย์เรียงลำดับสมการมาอย่างไรเราก็แก้โจทย์ไปตามนั้น แต่ควรมีการตรวจสอบและจัดเรียงลำดับสมการใหม่ (ถ้าจำเป็น) ก่อนที่จะทำกระบวนการการกำจัดไปข้างหน้าในแต่ละครั้ง ที่เรียกว่าการหาตัวหลัก (Pivoting) ทั้งนี้เพื่อให้ตัวเลขที่อยู่ในแนวทแยงมุมของเมทริกซ์ A มีขนาดใหญ่ที่สุด (ไม่คิดเครื่องหมาย) ทั้งนี้เพราะตัวเลขที่อยู่ในตำแหน่งทแยงมุมของเมทริกซ์ A จะทำหน้าที่เป็นตัวหารในระหว่างการทำการกำจัดไปข้างหน้า การที่ตัวหารมีขนาดที่ใหญ่กว่าตัวตั้งจะช่วยลดความคลาดเคลื่อนในการคำนวณให้น้อยลง
  
เพื่อให้เห็นภาพเรามาลองดูตัวอย่างกันดีกว่า โดยสมมุติว่าเรามีระบบสมการพีชคณิต 5 สมการ 5 ตัวแปรดังต่อไปนี้

0.001x1 + 200x2 + x3 - 10x4 - 200x5 = 5      สมการที่ (1)
0.6x1 + 5x2 + 11.5x3 + 4x4 + 3x5 = -3       สมการที่ (2)
-11x1 + 3x2 + 0.8x3 + x4 - 15.8x5 = 7      สมการที่ (3)
2x1 + 2x2 + 2x3 + 0.000067x4 + 7x5 = 6      สมการที่ (4)
-3x1 - x2 + 2x3 + 8x4 + 1.3x5 = -11      สมการที่ (5)

จะทำการหาคำตอบของระบบสมการ (ค่า x1, x2, x3, x4 และ x5) เปรียบเทียบกันระหว่างการใช้ Gauss elimination โดยไม่มีการหาตัวหลัก และการใช้ Gauss elimination ร่วมกับการทำการหาตัวหลักแบบบางส่วน (Partial pivoting) การคำนวณกระทำโดยใช้โปรแกรม Spreadsheet ของ OpenOffice 3.3.0

รูปที่ ๑ เป็นการหาคำตอบด้วยเทคนิค Gauss elimination โดยไม่มีการหาตัวหลัก ตัวเลขสีเขียวที่อยู่ข้างหน้าสุดคือตัวเลขที่ใช้ในการกำจัดตัวแปร xi (i = 2-5) ออกทีละตัวจากแต่ละสมการ ตัวเลขสีแดงคือตัวเลขที่อยู่ในแนวทแยงมุมที่ทำหน้าที่เป็นตัวหาร จะเห็นว่าเมื่อนำค่า xi (i = 1-5) ที่คำนวณได้แทนค่ากลับเข้าไปในโจทย์ พบว่าค่าที่ได้จากสมการที่ (2)-(5) นั้นมีความคลาดเคลื่อนไปจากค่าที่ควรจะเป็น (ค่า df ซึ่งเป็นผลต่างระหว่างค่าที่ได้จากการนำเอาค่า x1, x2, x3, x4 และ x5 ที่คำนวณได้ แทนกลับเข้าไปในโจทย์ กับค่าที่โจทย์กำหนดมาให้คือค่าทางด้านขวามือของเครื่องหมายเท่ากับ) ทั้งนี้เป็นผลของค่าความคลาดเคลื่อนที่สะสมอยู่ในตัวแปร x แต่ละตัว
  
รูปที่ ๒ เป็นการหาคำตอบด้วยเทคนิค Gauss elimination ร่วมกับการหาตัวหลักแบบบางส่วน ในที่นี้พบว่าก่อนที่จะเริ่มทำการกำจัดไปข้างหน้าเป็นครั้งแรก ควรที่จะทำการจัดลำดับสมการใหม่ก่อน โดยเลื่อนสมการที่ (3) ให้มาเป็นสมการที่ (1) ทั้งนี้เพราะค่าสัมประสิทธิ์หน้าตัวแปร x1 ในสมการที่ (3) ที่มีขนาดเท่ากับ 11 นั้นมีขนาดที่ใหญ่กว่าขนาดของค่าสัมประสิทธิ์หน้าตัวแปร x1 ในสมการที่ (1) ที่มาค่าเพียง 0.001
  
และหลังจากกำจัด x1 ออกจากสมการที่ (2) ถึง (5) ไปแล้ว (ตัวเลขในหลักที่ 1 ของแถวที่ 2-5 ของเมทริกซ์ A มีค่าเป็น 0) ก่อนที่จะทำการกำจัดไปข้างหน้าในครั้งต่อไป (เพื่อกำจัดตัวแปร x2 ออกจากสมการที่ (3) ถึง (5)) ก็ต้องทำการตรวจสอบว่าค่าสัมประสิทธิ์ของตัวแปร x2 ในสมการที่เหลือ ของสมการใดมีขนาดที่ใหญ่ที่สุด โดยในที่นี้พบว่าค่าสัมประสิทธิ์ของตัวแปร x2 ของสมการที่ (2) มีขนาดที่ใหญ่ที่สุดเมื่อเทียบกับของสมการอื่นที่เหลือ ดังนั้นจึงไม่จำเป็นต้องมีการจัดลำดับสมการใหม่ สามารถทำการกำจัดไปข้างหน้าเป็นครั้งที่สองได้เลยเพื่อกำจัดตัวแปร x2 ออกจากสมการที่ (3) ถึง (5)
  
ทำนองเดียวกันก่อนที่จะกำจัดตัวแปร x3 ออกจากสมการที่ (4) ถึง (5) ก็ต้องทำการตรวจสอบว่าค่าสัมประสิทธิ์ของตัวแปร x3 ในสมการที่เหลือ ของสมการใดมีขนาดที่ใหญ่ที่สุด โดยในที่นี้พบว่าค่าสัมประสิทธิ์ของตัวแปร x3 ของสมการที่ (3) มีขนาดที่ใหญ่ที่สุดเมื่อเทียบกับของสมการอื่นที่เหลือ ดังนั้นจึงไม่จำเป็นต้องมีการจัดลำดับสมการใหม่ สามารถทำการกำจัดไปข้างหน้าเป็นครั้งที่สองได้เลยเพื่อกำจัดตัวแปร x3 ออกจากสมการที่ (4) และ (5)
  
ในขั้นตอนสุดท้ายซึ่งเป็นการกำจัดตัวแปร x4 ออกจากสมการที่ (5) ในที่นี้พบว่าสัมประสิทธิ์หน้าตัวแปร x4 ของสมการที่ (5) (ตัวเลขสีน้ำเงิน) มีขนาดใหญ่กว่าของสัมประสิทธิ์หน้าตัวแปร x4 ในสมการที่ (4) ดังนั้นก่อนจะทำการกำจัดไปข้างหน้าจึงทำการจัดลำดับสมการใหม่ โดยสลับลำดับสมการที่ (4) และ (5)
 
รูปที่ ๒ (ต่อ) เป็นการแทนค่าย้อนกลับเพื่อหาค่าตัวแปร x1, x2, x3, x4 และ x5 และนำคำตอบที่ได้แทนค่ากลับเข้าไปในโจทย์ ในที่นี้พบว่าค่าที่ได้จากทุกสมการนั้นตรงกับค่าที่โจทย์กำหนดให้ พึงสังเกตว่าในกรณีของตัวอย่างที่ยกมานี้ความแตกต่างของ x1, x2, x3, x4 และ x5 ที่ได้จากการคำนวณโดยมีและไม่มีการหาตัวหลักนั้นอยู่ที่ทศนิยม ๓ ตำแหน่งสุดท้าย

ไฟล์ที่แนบมาด้วยเป็นไฟล์ Spreadsheet ที่ใช้ในการคำนวณ
  
รูปที่ ๑ การหาคำตอบด้วยเทคนิค Gauss elimination โดยไม่มีการหาตัวหลัก
  
รูปที่ ๒ การหาคำตอบด้วยเทคนิค Gauss elimination ร่วมกับการหาตัวหลัก ในที่นี้มีการสลับลำดับสมการสองครั้ง คือการสลับลำดับครั้งแรกกระทำก่อนที่จะทำการกำจัดไปข้างหน้าครั้งแรก โดยได้ทำการย้ายสมการที่ (3) ขึ้นไปแทนที่สมการที่ (1) และดันสมการที่ (1) ลงมาเป็นสมการที่ (2) และดันสมการที่ (2) ลงมาเป็นสมการที่ (3) การสลับลำดับสมการครั้งที่สองเกิดขึ้นอีกครั้งก่อนที่จะทำการกำจัดไปข้างหน้าในครั้งที่สี่ โดยทำการสลับลำดับสมการที่ (4) และ (5) ทั้งนี้เพราะค่าสัมประสิทธิ์ของตัวแปร x4 ในสมการที่ (5) (ตัวเลขสีน้ำเงิน) มีขนาดใหญ่กว่าค่าสัมประสิทธิ์ของตัวแปร x4 ในสมการที่ (4)
  
รูปที่ ๒ (ต่อ) การหาคำตอบด้วยเทคนิค Gauss elimination ร่วมกับการหาตัวหลัก

ดาวน์โหลดไฟล์ pdf ที่ link นี้

วันพุธที่ 19 สิงหาคม พ.ศ. 2558

เหตุเกิดศุกร์ ๑๙ กันยายน ๒๕๕๑ MO Memoir : Wednesday 19 August 2558

เดือนหน้าก็จะครบรอบ ๗ ปีของเหตุการณ์ที่เกิด เหตุการณ์อะไรหรือครับ เชิญย้อนไปอ่านได้ที่ Memoir ปีที่ ๑ ฉบับที่ ๑๕ วันเสาร์ที่ ๒๕ ตุลาคม ๒๕๕๑ เรื่อง "Pyrophoric substance" ที่ได้รายงานเหตุการณ์เอาไว้เกือบทั้งหมด แต่ไม่มีรูปสถานที่เกิดเหตุจริงประกอบ มาคราวนี้จึงขอนำเอาภาพความเสียหายมาให้ดูกัน ภาพที่ได้นำมาลงในที่นี้ผมไม่ได้เป็นคนถ่ายเอง (อันที่ผมถ่ายไว้อยู่ไหนก็ไม่รู้ มันเป็นกล้องฟิล์ม) แต่นิสิตปริญญาเอก (ในขณะนั้น) ที่อยู่ให้ห้องปฏิบัติการใกล้เคียงที่เข้าไปช่วยระงับเหตุนั้นถ่ายรูปเอาไว้หลังเหตุการณ์สงบใหม่ ๆ และได้สำเนารูปภาพดังกล่าวมาให้ผม (นิสิตผู้นี้ตอนนี้เขาเป็นอาจารย์สอนสาขาวิศวกรรมเคมีที่สถาบันอุดมศึกษาแห่งหนึ่งในใจกลางกรุงเทพมหานคร)

เรื่องมันเริ่มจากการที่นิสิตนำเอากระดาษทิชชูที่ใช้ในการทำความสะอาดอุปกรณ์ที่ใช้งานกับสาร pyrophoric ชนิดหนึ่งออกจาก glove box สาร pyrophoric ตัวนี้ถ้าโดนน้ำหรือออกซิเจนจะเกิดปฏิกิริยารุนแรงลุกติดไฟได้เอง ดังนั้นขั้นตอนปฏิบัติตามปรกตินั้นเวลาจะเอาสิ่งของใด ๆ ที่สัมผัสกับสาร pyrophoric ฃนิดนั้นจะต้องทำการทำลายสารดังกล่าวให้หมดสิ้นก่อน ด้วยการทำปฏิกิริยากับเมทานอล "ในบรรยากาศของแก๊สเฉื่อย" แต่สิ่งที่เกิดคือการทำลายสารดังกล่าวไม่สมบูรณ์ (อาจเป็นเพราะเป็นสารที่นิสิตไม่มีประสบการณ์การใช้งานมาก่อน รับมาจากอาจารย์ที่ปรึกษาโดยไม่มีข้อมูลเตือนใด ๆ รู้แต่ว่าให้ทำเหมือนกับตัวที่เคยใช้อยู่ ก็เลยทำให้ไม่รู้ว่าปริมาณเมทานอลที่ต้องใช้ในการทำลายนั้นต้องใช้มากเท่าใด) ดังพอนำเอากระดาษทิชชูดังกล่าวออกจาก glove box สารที่ตกค้างอยู่จึงทำปฏิกิริยากับออกซิเจนในอากาศแล้วเกิดไฟลุกไหม้
 
พอเห็นเหตุการณ์ดังกล่าวนิสิตจึงทำการฉีด "เมทานอล" เข้าไปยังกระดาษทิชชูดังกล่าวเพื่อหวังที่จะ "ทำลาย" สาร pyrophoric ที่ตกค้างอยู่บนกระดาษทิชชูและกำลังทำปฏิกิริยาลุกไหม้กับออกซิเจนในอากาศ แต่คงลืมไปว่าวิธีการดังกล่าวใช้ได้ก็ต่อเมื่อมันอยู่ "ในบรรยากาศของแก๊สเฉื่อย" ไม่ใช่อยู่ "ในอากาศ" ผลก็คือมันก็เลยเกิดความเสียหายตามที่เห็นในภาพ 
   
ผมเองก็ไม่ได้เกี่ยวข้องอะไรกับแลปนี้ เพียงแต่มีนิสิตที่ไม่ได้เกี่ยวข้องกับแลปนี้ แต่ต้องเข้าไปช่วยดับเพลิงให้กับนิสิตของแลปนี้ ที่กำลังจะทำให้เพลิงมันแรงกว่าเดิมมากกว่าที่จะดับ เขาโทรตามผมให้ไปช่วยหน่อย ส่วนเหตุการณ์อื่นเป็นยังไงบ้างนั้นก็ขอให้ย้อนไปอ่าน memoir ที่เขียนเอาไว้เมื่อ ๗ ปีที่แล้วก็แล้วกัน
  
เหตุการณ์ครั้งนั้นอาจารย์ที่ปรึกษานิสิตเขียนรายงานส่งผู้บังคับบัญชาระดับสูงขึ้นไปว่านิสิตมีการปฏิบัติในสิ่งที่อาจารย์ไม่ได้บอกให้ทำ ซึ่งถ้าอ่านเผิน ๆ จะเข้าใจได้ว่านิสิตทำในสิ่งที่อาจารย์ไม่ได้บอก ซึ่งก็เป็นเช่นนั้นเพราะในความเป็นจริงนั้นอาจารย์ "ไม่ได้บอกนิสิตเลย" ว่าในการนำสารนี้มาใช้งานควรปฏิบัติอย่างไร บอกแต่เพียงว่าทำเหมือนกับสารอื่นที่เคยทำมา นอกเหนือจากนี้นิสิตต้องไปหาวิธีปฏิบัติเอาเอง

รูปที่ ๑-๔ เป็นรูปที่ถ่ายในวันศุกร์ที่เกิดเหตุ ส่วนรูปที่ ๕ เป็นรูปที่ถ่ายในวันจันทร์เมื่อมีช่างมาทำการตรวจสอบความเสียหาย

รูปที่ ๑ สภาพที่เกิดเหตุ ถ่ายหลังเหตุการณ์สงบชั่วคราว ที่อยู่ข้างใต้คือปั๊มสุญญากาศ เหนือขึ้นมาคือส่วนติดตั้งอุปกรณ์ไฟฟ้าที่เกี่ยวข้องกับการทำงาน และที่เห็นมีด้ามจับสีแดงข้างขวาคือประตูสำหรับนำของเข้า-ออกตัว glove box ตัวที่อยู่ทางมุมล่างขวาของภาพคือเครื่อง voltage stabilizer
  

รูปที่ ๒ (บนและล่าง) ความเสียหายจากเพลิงไหม้ของแผงควบคุม
  

รูปที่ ๓ ปั๊มสุญญากาศที่ได้รับความเสียหายจากเพลิงไหม้ที่เกิดจากเมทานอล และมีการใช้เครื่องดับเพลิงชนิดผงเคมีแห้งฉีด
  

รูปที่ ๔ (บน) ด้านบนที่เป็นที่ตั้งจอมอนิเตอร์ได้รับความเสียหายจากความร้อน (ล่าง) ประตูของช่องสำหรับนำของเข้า-ออกตัว glove box
  

รูปที่ ๕ (บนและล่าง) ถ่ายเมื่อวันจันทร์ที่ ๒๒ กันยายน ๒๕๕๑ ช่างและนิสิตป.เอกช่วยกันเปิดฝาแผงควบคุมออกมาเพื่อตรวจสอบความเสียหายข้างใน