Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
1 INTRODUCTION
1 IntroductionIntermediate Physics Lab I ประกอบไปดวยการทดลองทงหมด 8 การทดลอง โดยครอบคลมเนอหาทางกลศาสตร และทศนศาสตร การทำการทดลองชวยใหนกศกษาจะมความเขาใจปรากฏการณตาง ๆ ไดลกซงขน อกทงไดพฒนาทกษะสำหรบการทดลอง เชน การเกบรวบรวมขอมล(Data Acqui-sition), การวเคราะหผลการทดลองโดยใชโปรแกรม MATLAB, การนำเสนอผลการทดลอง และการ เขยนรายงานการทดลอง lab report ในรปแบบของ เอกสารวชาการ โดยทกษะ เหลาน จะมประโยชนตอการเปนนกวจยในอนาคต
ความรทางฟสกสเกดจากการสงเกตสงรอบตว และพฒนามาเปนทฤษฏซงทำใหเราเขาใจธรรมชาตไดลกซงมากขน การทำการทดลองใชทงศาสตรและศลป เปนศาสตรเพราะขนตอนการปฏบต หรอการเลอกเครองมอตองเปนไปตามกฎทางฟสกส และตองเปนทยอมรบตามหลกสากล(เชน งานวจยตองผานระบบ peer review กอนตพมพ) การทดลองซำตองไดผลเดยวกน(repeatablility) แตยงมอกสวนทเปนศลปซงหาอานไดยากในตำราเรยน มกจะเกดจากประสบการณ และการถายทอดระหวางนกทดลองดวยกน นกทดลองทดเรมจากการเปนคนชางสงเกต สงสมความร หมนตงคำถามวพากาษขอมลท ไดรบ และพฒนาตอเปนสหชญาณ(intuition)1 การรจกวพากษขอมลเปนตวอยางทกษะท เพมพนดวยประสบการณ ในทนขอยกตวอยาง ใหนกศกษาวพากษยกราฟระหวางคาคงตวเวลากบอณหภมใน Figure 1
นกศกษามความเหนอยางไรกบกราฟน ?
5
4
3
2
1
Rel
ax T
(hou
r)
12080400T (K)
Figure 1: ตวอยางผลการทดลองกราฟระหวางคาคงตวเวลากบอณหภม
เนองจากไมมขอมลอนประกอบจงไมสามารถวพากษไดลกซง สงแรกทผอานอาจจะถามคอทำไมผทดลองถงเลอกใชหนวยชวโมง คำถามตอมาคอเรองความคลาดเคลอน ขอมลในรปขาดการระบความคลาดเคลอน(error bar) ทชดเจน อกทงเสนทลากผานจดทงสเปนแคเสนตอจด ไมไดเกดจากการ cruve fitting ซงไมควรจะใสมาในกราฟ อกทงจำนวนขอมล ซงมเพยงสตวเพอแสดง trend หรอcurve fitting ไดเหมาะสม ควรทำการทดลองเพมจำนวนขอมล หามความรมากขน
1สหสชญาณ (intuition) คอ การหยงร การเขาใจ การมองเหนความสมพนธอนเปนความรใหม และสามารถใชความรเดมมาใหเหตผลสงทเปนความรใหมได โดยยงไมเคยไดรบการบอกเลาเหตผลนนจากใครมากอน
Intermediate Physics Lab I 1
1.1 ความถกตอง และความแนนอนในการวด(Accuracy and Precision Measurements) 1 INTRODUCTIONเราอาจถามคำถามทลกลงไปอก เชน เหตผลการเลอกกราฟ หากความสมพนธเปนแบบ exponentialควรแสดงผลบนกราฟ log สดทายหากสงเกตด ๆ จะเหนวาระยะหางระหวาง 0 กบ 20 บนแกน xนนกวางกวาระหวาง 20 ถง 40 ! นกวจยผอนอาจมความเหนแตกตางกบความเหนขางตน เราควรวพากยขอมลของตนเองกอนทจะนำเสนอ หลายครงปญหาขอขอมลอยทรปแบบการนำเสนอ ซงถอเปนแงศลปของการทดลองทางฟสกส
1.1 ความถกตอง และความแนนอนในการวด(Accuracy and Precision Measurements)
ขอมลทดจะตองประกอบไปดวยความถกตอง(Accuracy) และความแนนอน(Precision) การออกแบบการทดลองจะตองตระหนกถงทงสองอยาง ความถกตองกบความแนนอนนนมความหมายทแตกตางนกศกษาลองพจารณา Figure 2(a) และ 2(b)
(a) (b)
Figure 2: ผลการทดลองใน (a) มความแนนอนตำ แตโดยเฉลยมความถกตองมากกวาใน (b)ซงแมจะมความคลาดแนนอนตำแตกลบไมใกลเคยงกบคาจรง
Figure 2(a) และ 2(b) แสดงผลการทดลองสองแบบ จดศนยกลางของวงกลมแสดงคาทควรจะไดจากการทดลอง จดสดำแสดงผลการทดลองและระยะหางจากจดศนยกลางแสดงความแตกตางจากคาทควรจะได ผลการทดลองใน Figure 2(a) มความแนนอนตำ (error ใหญ) แตโดยเฉลยมคาใกลเคยงกบคาทควรจะได(accuracy) มากกวาผลการทดลองใน Figure 2(b) ซงแมจะมความคลาดเคลอนตำแตคาทไดไกลจากคาทควรจะไดมาก
Propbability density
ValuePrecision
true valueAccuracy
Figure 3: ความแตกตางระหวางความถกตอง(accuracy) กบ ความแนนอน(presision)
Figure 3 สรปความแตกตางระหวางความ accuracy and precision ผทดลองจะตองใสใจกบทงสองอยางเมอทำการวดคาใดคาหนง การทดลองทมความแนนอน(presision)สงหมายความวาหาก
Intermediate Physics Lab I 2
1.1 ความถกตอง และความแนนอนในการวด(Accuracy and Precision Measurements) 1 INTRODUCTIONทำการทดลองซำจะมโอกาสสงทจะไดคาเทาเดม precision นนเกยวของกบความละเอยดของเครองมอในการวด เชน หนาปดแสดงความเรวในรถยนตสามารถแยกระหวางความเรว 100 km/hrกบ 105 km/hr ได แตไมสามารถแยกความเรวระหวาง 100 km/hr กบ 100.5 km/hr ได (คาทอานไดจากเครองมอนจงไมควรมจดทศนยม เพราะความละเอยดไมถง) ดงนนการเลอกเครองมอ และการแสดงผลจำเปนตองคำนงถงความละเอยดของเครองมอนน ๆ ดวย สงทสำคญอกประการหนงคอ การทดลองทดจะตองมการวดคาซำ เพอตรวจความนาเชอถอของผลการทดลอง(reliability) การทดลองแตละครงอาจมตวแปรทไมสามารถควบคมไดมามอทธพลตอผลการทดลอง ดงนนหากการทดลองซำโดยผทดลองคนละคน หรอเครองมอวดแตละแบบ แลวไดผลการทดลองเดยวกนจะทำใหผลนาเชอถอยงขน โดยปรกตจะใชคาเฉลยของการทดลองซำเปนตวแทนของผลการทดลอง ในเชงสถตการทดลองสครงจะชวยลดคาความไมแนนอนไปครงหนง นอกจากนการทดลองหลายครงอาจชวยลงความคลาดเคลอนทเกดจากความละเอยดของเครองมอวดไดอกดวย
ขอมลทมความถกตองสง(high accuracy) หมายถงมคาใกล เคยงกบความเปนจรงการทำการทดลองซำทำไดแคลดความคลาดเคลอนของการทดลองแตไมสามารถเพมความถกตองได การทำการทดลองทไมถกตองซำ ๆ จงแทบไมมประโยชน กรณศกษา ในงานวจย Hubble space telescopeบรษทใชเครองมอทมความถกตองสงเพอตดและวดกระจกทจะใชสำหรบกลอง โดยระบความแนนอนของการวดระดบ 0.5µm นกดาราศาสตรเจาของแหลงทนเสนอวาจะชวยตรวจการวดความโคงกระจกใหอกครงดวยเครองมอทมความถกตองนอยกวา บรษทปฏเสธเพราะวาเครองมอของตนนนมความละเอยดสงเพยงพอแลว หลงจากกลองถกปลอยออกไป พบวาภาพทไดขาดความคมชด จงมการตรวจสอบ และพบวาบรษทลมบวกความหนาของ spacer เขาไปในความโคง คาความโคงจงผดไป 2mm สรปคอแมวาการวดจะมความแนนอนสงถง 0.5µm แตคานนผดไป 2 mm คงไมตองอธบายวาความผดพลาดครงนทำใหเกดความเสยหายอยางไรบาง
ตวอยางทสอง เครองวดมวลทำงานโดยการวดนำหนกในหนวยนวตน แลวแปลงคาเปนมวลโดยใชสตร W = mg แตคา g นนแตกตางไปในแตละจดบนผวโลก เชนทใกลเสนสตรมคา 9.79 N kg−1 แตมคา 9.82 N kg−1ใกลขวโลก ถาหากวาเครองมอถกสอบเทยบ(calibration) ทองกฤษ ซงมคาg = 9.81 N kg−1 แลวนำมาใชตรงเสนศนยสตร เครองนจะอานคาผดไปประมาณ 0.2% สำหรบมวล100 g คาทอานไดจะผดไป 0.2 g เครองวดมวลอาจมความละเอยด 0.001 g เครองชงอาจจะแสดงผลวา m = 10.542 แตนนไมไดมประโยชน เพราะวาคาผดไปตงแตททศนยมตำแหนงแรกแลว หากการทดลองตองการคาความละเอยดถงตำแหนงท 0.001 g จะตองทำกาสอบเทยบ(calibration) อกครงเพอกำจดความผดพลาดเนองจากคา g
จากตวอยางทสองจะเหนวาถาการทดลองตองการคาความละเอยดถงหลกหนวย กไมจำเปนตองทำการสอบเทยบใหม แมเราตองการขอมลทมความถกตอง และความแนนอนมากทสด แตเครองมอทมความละเอยดสงกมราคาแพง และตองใชเวลาทำการทดลองมาก หลายครงเราเพยงตองการขอมลทดเพยงพอ เชนในกรณการคาความโคงของเลนส หากเราตองการคาไปใชรวมแสงใหตกกระทบฉากจงตองการทราบระยะโฟกสแบบหยาบ ๆ กไมจำเปนตองรความละเอยดถง 0.5 µm มอกหลายครงในชวงการออกแบบการทดลอง ทผทดลองจะตองประมาณคา(approximation) ผลการทดลองคราว ๆ เพอตดสนใจทจะเลอกซออปกรณ ในการประมาณ อาจะตองการรแคลำดบขนาดคา(order ofmagnitude) เชน 106 m กบ 10980 m นนตางกน two orders of magnitude ตวอยางเชน หากตองการจะประมาณวาลฟตตวหนง ทรบนำหนกได 1000 kg จะรบผโดยสารไดกคน อาจถอวาคนหนก
Intermediate Physics Lab I 3
1.2 Data Acquisition 1 INTRODUCTION
ประมาณ 100 kg ลฟตจะรบได 10 คน ในความเปนจรง ลฟตอาจะรบนำหนกได 1001 kg แตนนกไมสำคญ อกตวอยางหนง ในวงจรไฟฟา อาจมตวตานทานสองตวทขนานกนคอ 22 Ω กบ 2200 Ω สวนมากเราแทบไมตองคำนวนหาความตานทานรวม สามารถประมาณความตานทานรวมเทากบ 22 Ω ไดเลย เพราะแมหาคาความตานทานรวมจะได 21.78 Ω ซงแทบไมตางจากคาทประมาณไว
มเกรดความรทนาสนใจเกยวกบคาของตวตานทาน ตวตานทานมาตรฐานมเพยงบางคา เชน เราสามารถหาตวตานทาน 4.7 kΩ แตไมม 4.8 kΩ จงตองใชตวตานทานสองตวมารวมกน หรอใชคาใกลเคยง นนเปนเพราะวาตวตานทานทกตวมาพรอมกบคาความผดพลาด (tolerance factor) ซงมคา 5% (สทอง) หรอ 10 %(สเงน) ดงนนตวตานทาน 100 Ω และมคา tolerence 10% จะมความตานทานอยระหวาง 90 - 110 Ω จงไมมประโยชนทจะหาตวตานทานคา 101 Ω ดงนนคาตวตานทานจงเปนชวง min-max และคามาตรฐานจงถกออกแบบใหไมมการคาบเกยวกนในของแตละชวง นอกจากนพงสงเกตวาคาของตวเกบประจมาตรฐานกจะมเพยงแคบางคาเชนกน
1.2 Data AcquisitionData acquisition (DAQ) คอขนตอนการเกบขอมลเชงกายภาพ แลวเปลยนเปนขอมลดจตล ซงคอมพวเตอรสามารถอานได อปกรณสำหรบ DAQ จะเปลยนสญญาณอนาลอก เปนสญญาณดจตอลซง สามารถทำได โดย ใช sensor หรอ analog-to-digital converter เปนตน เนองจากสญญาณอนาลอกจะเปนสญญาณตอเนอง แตสญญาณดจตอลเปนสญญาณไมตองเนอง (discrete) สงทตองระวงเปนอยางแรกคอ ความถของการเกบขอมล (sampling Rate) หรอบางคนเรยกวา bandwidthซงเปนตวบอกจำนวนขอมลในหนงชวงเวลา มหนวยเปน Hz เพอปองกนการสญหายของขอมลในสญญาณจงจำเปนตองเกบขอมลดวยความถทมากพอ โดย Nyquist-Shannon sampling theoremกลาวไววา โครงสรางสญญาณ (waveform) จะไมสญหายหากใช sampling rate ทมความถมากกวาสองเทาของสญญาณทมความถมากทสดในกลมสญญาณทตองการเกบ
Figure 4 แสดงถงผลของการ sample สญญาณอนาลอกทมความถ 1 Hz โดยใช sampling fre-quency 2 Hz 4(b) และ 1 Hz 4(c) ซงในกรณหลงจะทำใหสญเสยรปของสญญาณ ทในความเปนจรงควรใชความถทมากกวาสองเทา Nyquist sampling rate (oversampling) พอสมควร นอกจากน Sampling Rate ยงมความสำคญเมอทำ discrete fourier transform เพอวเคราะห spectrumของสญญาณ ซงจะไดทำกนในวชาน นกศกษาทสนใจอาจหาอานหาเพมเตมไดในหนงสอเรอง FourierTransform
Intermediate Physics Lab I 4
1.3 Lab Notebook 1 INTRODUCTION
V
t(s)
V
t(s)
V
t(s)
(a)
(b)
(c)
1 2
Figure 4: (a)สญญาณอนาลอกทมความถ 1 Hz ถก sample ทความถ 2 Hz เกดสญญาณดจตอลใน (b) โดยท waveform ไมสญหาย แตถาถก sample ทความถ 1 Hz จะสญเสย waveform ของสญญาณเดม
1.3 Lab NotebookLab notebook เปนเอกสารสำคญในการทำการทดลอง ผวจยใช lab notbook ในการจดขอมลรายละเอยดของการทดลอง สมมตฐาน ไอเดย และการตความการทดลอง lab notebook เกบขอมลสำหรบเมอตองการทำการทดลองซำ หรอสงผานเทคนคการทดลองไปยงนกวจยผอน นอกจากนlab notebook ยงถอเปนหลกฐานทางกฎหมาย สามารถใชปกปองทรพสนทางปญญาของผวจยอกดวย นกศกษาจงตอฝกฝนการเขยน lab notebook ทด ในวนขางหนาหากเราไดมโอกาสเปนสวนหนงของการคนพบทางวทยาศาสตรครงใหญ ๆ หนาหนงของ lab notebook ของเราอาจถกนำไปใสไวในพพธภณฑ ! อยางเชน Figure 5
โดยทวไป lab notebook จะตองใชสมดทเยบเลมถาวร มการเขยนเลขทหนาชดเจน ไมใหมการดงหนาใดหนาหนงออก สามารถนำเลขทหนามาทำสารบญไวตรงหนาแรกของ lab notebook เพอความสะดวกในการสบคน อาจะมการเซนชอกำกบทสวนลางของหนากระดาษ จดบรรทกดวยปากกาเทานนหากจดบรรทกผดพลาดหามปายทบ ใหใชวธขดฆา การจดบรรทกจะตองทำพรอมกบการทดลอง ไมใชการจดยอนหลง ระบวนทเมอเรมตนการทดลองทกครง จดดวยความละเอยดเพยงพอใหผอนสามารถทำตามขนตอนการทดลองของเราได หากมการวาดกราฟของผลการทดลอง กอาจนำมาแปะไวใน labnotebook ดวย
1.4 การเขยนรายงานการทดลอง(Lab Report)Tell what you are going to tell them.Tell them.Tell what you have just told them.
Intermediate Physics Lab I 5
1.4 การเขยนรายงานการทดลอง(Lab Report) 1 INTRODUCTION
Figure 5: หนาหนงของ lab notebook ของ Shockley แสดงการรางแนวความคดเรอง p-n junctioneffect (ทมา: Computer History Museum)
ขอความขางตนสรปสไตลของการสอสารทางวทยาศาสตรทมประสทธภาพ ในหวขอนจะเนนไปทการเขยนงานทางวทยาศสตร เพอใหนกศกษานำไปประยกตใชกบ lab report ของสงเกต งานเขยนทางวทยาศาสตรมสไตลทแตกตางจากงานเขยนในสาขาอน งานเขยนทางวทยาศาสตรจะตองสนกระทดรด ตรงประเดน เขาใจงาย ไมมการซอนความหมาย ผเขยนจะตองพยายามเรยบเรยงขอมล เสนอแนวความคด โดยใชรปประโยคทกระชบไดใจความ ในวชานนกศกษาจะมโอกาสฝกฝนการเขยนเชงวทยาศาสตรผาน lab Report แทจรงแลวสไตลการเขยน หรอโครงสรางของ lab report กไมไดตางจากสไตลทใชตพมพวารสารทางวชาการมากนน ดงนนจงขออธบายสวนประกอบของรายงานการวจยแตขอชแจงวาสงทจะกลาวตอไปเปนเพยงขอเสนอแนะ มไดเปนกฏทตองปฏบตตามทกขนตอน
รายงานการวจย มกประกอบดวยสวนตาง ๆ ดงน
• หวขอ(Title)• บทคดยอ(Abstract)• คำนำ(Introduction)• ขนตอนการทำการทดลอง (Experiment, Materials and methods)• ผลการทดลอง (Results)• การพจราณาผลการทดลองและสรป(Discussion and Conclusions)• เอกสารอางอง (Refeence)
หวขอ(Title): บอกถงหวขอของการทดลอง จะตองมคำบงช (keywords) เพอใหผอานรคราว ๆวารายงานเกยวกบอะไร บทคดยอ(Abstract): เปนรายงานฉบบยอ ปรกตประกอบดวยหนงยอหนา
Intermediate Physics Lab I 6
1.4 การเขยนรายงานการทดลอง(Lab Report) 1 INTRODUCTION
มประมาณ 200 - 300 คำ ทำใหผอานสามารถเขาใจเนอหาของรายงานไดโดยไมตองอานรายงานทเหลอ (นกวจยหลายคน อานวารสารวนละเกอบ100 ฉบบ แตอานแค Abstract ! ) เนอหาในบทคดยอจะตองม จดประสงคของการทดลอง การทดลองใชวธอะไร ผลการทดลอง และการตความจากผลการทดลอง คำนำ(Introduction): โยงผอานมาสทองเรองทเรากำลงศกษา สงทรแลวเกยวกบหวขอทกำลงเสนอ สงทยงตองมการศกษาตอไป ผ เขยนมเนอทกระดาษไมพอทจะกลาวถงความร เกยวกบหวขอทจะนำเสนอทงหมด ดงนนจงตองเลอกเฉพาะความรทเกยวของกบเนอหาทจะกลาวในสวนตอไปของรายงาน ในตอนทายผเขยนจะกลาวถงขอบเขตของงานทกำลงศกษา สมมตฐาน และสงทคาดหวงวาจะไดพบ ในสวนนจะมเนอหาคลายคลงกบบทคดยอ
ขนตอนการทำการทดลอง(method): อธบายขนตอนการทำการทดลอง เนอหาควรจะละเอยดพอใหผอานสามารถทำการทดลองซำในหองทดลองของตวเอง อาจมการบอกชอรนของอปกรณหลกทขาดไมไดสำหรบการทดลอง (ไมใชบอกวาใชไมบรรทดยหออะไร !) แตไมใชการเขยนขนตอนเปนขอๆ ผลการทดลอง(Results): สรปขอมลทไดจากการทดลอง มการโยงไปถงกราฟของผลการทดลองอธบายและชใหเหนลกษณะของผล เนอหาบางสวนเกยวกบผลการทดลอง อาจะใสไวในคำบรรบายใตกราฟ การพจารณาผลการทดลอง(Discussion and Conclusions): ไมใช การพดถงผลการทดลองอกครง แต เปนการตความผลการทดลอง มการอางถงทฤษฎ หรอสรางแบบจำลอง(model) เพออธบายผลการทดลอง อาจะพดถงแนวทางการแกไข และพฒนาการทดลองใหดยงขน จะตองลำดบเหตผลเพอสนบสนน หรอคานสมมตฐานทกลาวไวใน Introduction
เอกสารอางอง(References): เปนสวนสดทายของรายงาน ประกอบดวยรายการของเอกสารอางองจะทมตลอดรายงาน โดยเฉพาะในสวนของคำนำ และการพจารณาผลการทดลองจะมการอางองถงงานกอน ๆ หรอหนงสอ ทำใหผอานสามารถคนควาเพมเตม ชวยทำใหเนอหาทตองใสไวในรายงานสนลง อกทงถอเปนการเคารพทรพยสนทางปญญาของนกวจยผอนอกดวย รปแบบของเอกสารอางองนนแตกตางกนในแตละวารสาร เพอความสะดวกจงมการนำโปรแกรม เชน Zotero, Mendeley หรอEndnote มาชวยในการจดการเอกสารอางอง
นกศกษาอาจสงสยวางานวจยทตพมพในวารสารมเนอทเพยงพอใหกบทกหวขออยางไร โดยปรกตงานวจยทตพมพนอกจากจะใชประโยคทกระชบแลว ยงสามารถละขอมลบางอยางโดยอางผลจากเอกสารอางอง อกทงยงสามารถรวมบางหวขอไวดวยกน เชน Results and Discussions หรอการใช Appendix เพอบอกขอมลเพมเตมไวตอนทาย
สดทายนขอแนะนำเรองการใชศพทเทคนคในการเขยนรายงาน และการทำ Figure ผเขยนควรหลกเลยงการใชศพททใชในวงแคบ แตหากจำเปนตองใชจะตองมการนยามศพทเทคนคกอนใชคำศพทนนในสวนอนของรายงาน เชนเดยวกบการใชตวยอ เชน Atomic Force Microscopy (AFM) แลวใช AFM ในสวนตอมาได คำบางคำมความหมายทคลายคลงกน เชน ความแนนอน ความคลาดเคลอนความเทยงตรง แตมกจะมความหมายทตางกนในเชงฟสกส ดงนนผเขยนจะตองระวงการใชคำศพทมใหผอานสบสน (นศ.อาจสงเกตเหนการใชคำศพทผดในเอกสารนแลวกได !)
นศ.อาจเคยไดยนประโยคทวา "Picture means a thousand word." ในการทดลองใช Figureแทน picture ดงนนจงควรออกแบบ Figure อยางมประสทธภาพ Figure ประกอบดวยขอมลในรปกราฟ หรอ ตาราง จะตองใสหนวยใหชดเจน ควรจะเขาใจงาย ใช caption เพออธบายภาพ โดยทไมตองอานเนอหาของการทดลอง (นกวจยบางคน อานรายงานการทดลองวนละ 50 โดยอานแค abstractกบด figure ! ) ขอมลทนำเสนอไปแลวไมควรใสซำอก หาก Figure ประกอบดวยภาพยอย จะตอง
Intermediate Physics Lab I 7
1.4 การเขยนรายงานการทดลอง(Lab Report) 1 INTRODUCTION
ใชอกษรระบภาพแตละภาพใหชดเจน โปรแกรมทนยมใชในการจดภาพ เชน PowerPoint, Illutratorsเปนตน
นศ.ลองคดดวา สวนประกอบของรายงานการวจยสวนไหนตรงกบ Tell what you aregoing to tell them ? และสวนไหนตรงกบ Tell what you have just told them ?
วารสารทางวชาการอาจไมมการแบงสดสวนทชดเจน นศ.ลองหาวารสารทางวชาการมาอานเชนจาก Review of Scientifice Instrument เพอหาสวนประกอบดงทกลาาวขางตน
Intermediate Physics Lab I 8
2 MATLAB QUICK START GUIDE
2 MATLAB Quick Start Guideสวนใหญแลวเราไมสามารถนำเสนอขอมลดบทไดจากการทดลองโดยทนท เนองจากขอมลมจำนวนมาก เพอความสะดวก และเพอใหการนำเสนอผลการทดลองอยในรปแบบทเขาใจไดโดยงาย จงตองใชโปรแกรมสำเรจรปเขาชวยในการเขยนกราฟ(plot graph), curve fiting, ลดการรบกวนจากสภาพแวดลอม(noise reduction), error analysis, statistical analysis เปนตน โปรแกรมเหลาน ยงสามารถใชในการเกบขอมล(data acquisition) ไดอกดวย ทงนโปรแกรมทนยมใชกนโดยทวไปในทางวทยาศาสตร เชน MATLAB หรอ IGOR ลวนมการใชงานดงกลาวอยางแพรหลาย โปรแกรมอน ๆ ทใชในการทดลองคอ ORIGIN หรอ Excel ซงกสามารถใชในการเขยนกราฟ และทำวเคราะหขอมลทไมซบซอน
นกวทยาศาสตรหลายคนถอวา MATLAB เปนภาษาทสามของนกวทยาศาสตร เชนเดยวกบทภาษาทใชในการเขยนโปรแกรม เปนภาษาทสามของนกเขยนโปรแกรม การเรยน MATLAB ทดทสดคอการเรยนรจากตวอยาง ทงใน MATLAB help และ google ในหวขอนจะแนะนำการใชโปรแกรม MATLABเพอจดเกบขอมล, เขยนกราฟ และ curve fiting อยางงาย ของใหนกศกษาเปดโปรแกรม MATLABแลวทำตามไประหวางการอานเอกสาร เอกสารนจะไมกลาวถง MATLAB tools อน ๆ เชน imageprocessing, signal processing ผทสนใจ tools เหลานสามารถศกษาเพมเตมไดใน MATLAB Help
2.1 หนาตางของ MATLAB
workspace
command history
m leeditor
command window
Figure 6: หนาตางมาตรฐานเมอเปด MATLAB ซายบนคอ workspace ขวาบนคอ m-file editorซายลางคอ command history และขวาลางคอ command window
Intermediate Physics Lab I 9
2.2 Matrices in MATLAB 2 MATLAB QUICK START GUIDE
Figure 6 เปนหนาแรกทพบเหนเมอเปดโปรแกรม MATLAB ขนมา ประกอบดวยสหนาตางยอยคอ• command window (ขวาลาง) เปนหนาตางสำหรบใส command ใชปอนขอมล คำสงใหคำนวน และแสดงผลขอมล
• command history (ซายลาง) เกบคำสงทเคยปอนใหกบ command window เพอเรยกใชภายหลง
• workspace (ซายบน) บอกตวแปรทอยในหนวยความจำ(memory) ขณะน พรอมทงชนด และขนาดของขอมล
• m-file editor (ขวาบน) ใชเขยน MATLAB program ซงเกบเปนไฟลนามสกล .m สำหรบคำสงททำซำ ๆ การสราง function ใหม หรอโปรแกรมทซบซอนมากขน
การจดหนาตางทแสดงสหนาตางยอยแบบ Figure 6 อาจจะไมใชสงทพบ เมอแรกใช MATLAB ซงผใชสามารถจดรปแบบใหมไดเอง นอกจากนยงมหนาตางอยางอนอกซอนอย เชน หนาตางแสดง folderหนาตาง help เปนตน เราสามารถตงใหมการแสดงหนาตางเหลานเปนหนาตางยอย หรอแยกหนาตางออกมาตางหากกได การจดแบบ Figure 6 นเปนรปแบบทผสอนเหนวาสะดวกตอการใชงานมากทสด
2.2 Matrices in MATLABMATLAB มองทกอยางเปน matrix แต IGOR มองทกอยางเปน wave
เปนการเปรยบเทยบความแตกตางของระบบการเกบขอมลของทง MATLAB และ IGOR การเกบขอมลเปนกลมใน MATLAB และ IGOR ทำใหสามารถนำขอมลทงกอนมาคำนวนไดดวยคำสงเดยวในขณะทโปรแกรมอนสามารถรบขอมลไดทละตว ผเชยวชาญ MATLAB ควรมความรเรองเมทรกซเปนอยางด
เมทรกซใน MATLAB ไมจำเปนตองเปน square matrix แตอาจจะเปน เมทรกซแถวเดยว คอเปนarray หรอจะมสมาชกแคตวเดยว คอเปน 1 × 1 เมทรกซกได สงทเกบอยในเมทรกซไมจำเปนตองเปนตวเลข เราสามารถตรวจดวาตวแปรไหนเปน เมทรกซขนาดเทาใด ไดทหนาตาง workspace
1 2 3
4 5 6
row
column
Figure 7: row และ column สำหรบ 2 × 3 เมทรกซ
Intermediate Physics Lab I 10
2.2 Matrices in MATLAB 2 MATLAB QUICK START GUIDE
กอนทจะเรมสรางเมทรกซ ใน MATLAB ขอทวนความจำเรองคณสมบตของเมทรกซกอน เมทรกซประกอบดวย row และ column (ด Figure 7) เราเรยกขนาดของเมทรกซโดยใชจำนวน row และจำนวน column เชน เมทรกซใน Figure 7 เปน เมทรกซขนาด 2 × 3
เราสามารถใสเมทรกซเขาไปใน MATLAB ไดหลายวธ เชน ใสเปน command โดยตรง load มาจากไฟลอน หรอสรางโดยการคำนวน เรมจากการสรางเมทรกซ A ทอยใน Figure 7 โดยการใส com-mand ดานลางลงไปใน command windowA = [1 2 3; 4 5 6];
หรอA = [1 2 3; 4 5 6]
หรอA = [1, 2, 3; 4, 5, 6]
แยก แตละ ตว ในcolumnเดยวกน ดวย space หรอ เครองหมาย "," และ แยก แตละrowดวยเครองหมาย ";" หรอ การกด shift+enter จะสงเกตวาคำสงดานบนมความแตกตางกนทเครองหมาย";" ตอนทาย การเตมเครองหมาย ";" ตอนทายเชนในคำสงแรก ระบบจะไมแสดงผลของคำสงทเพงปอนเขาไป สวนการละเครองหมายน เชน ในคำสงทสองระบบจะแสดงผลของคำสง ซงกจะแสดงสวนประกอบของเมทรกซ A หากขอมลทตองการใสเขาไปเปนเลขยกกำลง เชน 9 ×109 ใหพมพวา 9E9
นกศกษาลองดความแตกตางระหวางคำสงสองคำสงนB = [1 2 3]
กบC = [1;2;3]
หากตองการรขนาดของเมทรกซ A สามารถทำไดโดยใชคำสง size โดยพมพsize(A)
ถาพมพแบบไมม ; จะแสดงผลลพธวาsize(A)ans =
2 3
หรอใชคำสงdimension = size(A)
ซงเปนเกบขนาดของเมทรกซไวในตวแปรใหมซงมชอวา dimension โดยตวแปรนกเปนเมทรกซอกตวหนง การเรยกขอมลทเกบอยในเมทรกซสามารถทำไดโดยใชคำสง A(row,column) เชนA(1,3)ans =
3
Intermediate Physics Lab I 11
2.2 Matrices in MATLAB 2 MATLAB QUICK START GUIDE
เปนการเรยกตวแปรทอย row ท 1 column ท 3 ออกมา สงเกตวาลำดบขอมลใน row แรก หรอcolumn แรก ใช index เปน 1 ซงตางจากการเขยนโปรแกรมใน C, C++
เราจะสงเกตวา MATLAB จะใช (row,column) รปแบบคอ row นำหนาเสมอ แมเวลาพดถงขนาดกใช row × column การเรยกขอมลในเมทรกซดวยการเขยนโปรแกรม ผใชจะตองทราบวาตรงไหนจะตองเรยก row ตรงไหนตองเรยก column ซงอาจทำใหผใชสบสนในบางครง
เมอรจกการสรางเมทรกซแลว เราสามารถปอนขอมลทไดจากการทดลองลงไปในMATLAB(การ load/save ขอมลจะพดถงทหลง) ยกตวอยางโดยใชเมทรกซ A, B, C ทกลาวไวขางตนหากตองการบวก ลบ คณ หาร ขอมลทกตวของเมทรกซดวยตวเลขสามารถทำไดเลย เชน ถาตองการคณเมทรกซ A ดวย 3 ใหพมพA*3
จะแสดงเมทรกซผลลพธโดยขอมลในเมทรกซทกตวจะถกคณดวยสาม หรอ สรางเมทรกซใหมซงเกดจาก A คณสามโดยการพมพD = A*3
หากตองการจด save ทบเมทรกซเดม ใหพมพA = A*3;
เมทรกซ A จะถกแทนคาดวยคาใหม หากจะใชวธนใหระวงเพราะเราจะสญเสยขอมลใน A เดมไปไมสามารถเอากลบมาได
หากตองการทำใหคาทกตวในเมทรกซ B เปนคากำลงสอง ตองพมพB.*Bans =
1 4 9
สงเกตเครองหมายจดหลงจาก B ตวแรก การใสเครองหมาย "." หลงเมทรกซเปนการบอก MATLAB ใหนำสวนประกอบของเมทรกซแตละตวมาใช หากใชคำสง B*B อาจจะได square matrix หรออาจไดขอความ "command error" สำหรบ MATLAB บางเวอรชน สงทนาสนใจคอการนำเมทรกซมาคณกนเชน หากพมพA*Cans =
1432
ซง 14 เปน dot product ของเวเตอรในแถวแรกของ A กบ เวกเตอร C สวน 32 เปน dot productของเวกเตอรในแถวแรกของ A กบ C
ลองนำ A.*C หรอ B.*C ด ผลลพธคออะไร ? ทำไดหรอไม ?เราสามารถนำเมทรกซสองอนทมขนาดเทากนมาบวกกนได เชน นำ B + B แตถาเมทรกซสองตวท
มขนาดไมเทากนจะบวกกนไมได เชน B กบ C แมสองเมทรกซนมจำนวนขอมลทเกบอยขางในสามตวเทากน แตตวหนงเปน column อกตวเปน row จงม dimension ทไมเทากน ถาตองการนำมาบวกกนตองกลบตวใดตวหนงกอนโดยใชคำสง transpose เพอเปลยน column เปน row และ rowเปน column โดยการเตมเครองหมายอะพอสทรอพหลงเมทรกซ (C')
Intermediate Physics Lab I 12
2.2 Matrices in MATLAB 2 MATLAB QUICK START GUIDE
addmatrix = B + C'
คำตอบทไดคอ addmatrix ซงม dimension เทากบ B การเตม ' ลงทหลงเมทรกซเปนการหา trans-pose ของเมทรกซนน
เราสามารถคำนวนหาขอมลเชงสถตสำหรบเวกเตอร B ได เชน คำสงsum(B)mean(B)max(B)min(B)
ซงเปนการหาคา sum, คาเฉลย, คาสงสด และตำสดตามลำดบ
ลองใชคำสงเหลานกบเมทรกซ A และ C จะไดคำตอบเปนอยางไร ?บางทเราตองการจะเรยกขอมลทละหลาย ๆ ตว หรอทำ operation กบขอมลทเดยวหลาย ๆ ตว
แตไมทกตว อาจจะใช for loop เชน หากตองการสรางเมทรกซใหมซงมขอมลเหมอนกบในแถวสองของเมทรกซ A อาจจะสราง m-file ทเขยนวาfor i = 1:3
newmatrix(i) = A(2,i)end
แลวกด run โปรแกรม ระบบจะบอกให save และตงชอ m-file กอนทจะรนให หรอจะใช colonoperator (:) เชนnewmatrix = A(2,:)
หรอnewmatrix = A(end,:)
ลองดซวาตวแปร newmatrix จากทงสองวธ จะม dimension ทเหมอนเมทรกซ B หรอ C ?
การใช colon operator จะทำใหโปรแกรมสนกระทดรด และสามารถเรยกขอมลไดเรวกวาการใชfor loop มาก นอกจากการเรยก index แลวยงใช colon operator เพอสราง array ได เชน1:4:15ans =
1 5 9 13
การใช colon operator เปนเทคนคทสำคญสำหรบการเขยนโปรแกรมใน MATLAB นกศกษาสามารถหาขอมลเพมเตมไดโดยการพมพ : ลงใน Product help หรอพมพ help colon ใน commandwindow
Intermediate Physics Lab I 13
2.3 การจดเกบขอมล 2 MATLAB QUICK START GUIDE
2.3 การจดเกบขอมลหากตองการ save ขอมลทไดมาจากการคำนวนเชน ตองการ save matrix A สามารถทำไดโดยใชคำสง save filename variable เชนsave mydata A
ซงจะเกบเมทรกซ A ในไฟล mydata.mat หากตองการ load ขอมลนขนมาจะตองเขาไปอยใน folderทมขอมลนนเกบอยและใชคำสง loadload mydata
โปรแกรมจะทำการ load ตวแปร A ขนมาโดยอตโนมต (ลอง clear A ออกไปกอน แลวจะเหน !) คำสง save/load ยงมวธใชอน ๆ อก ซงหาไดใน help
การ save ขอมลเปนไฟลนามสกล .mat ไมสามารถอานขอมลนไดดวยโปรแกรมอน สามารถเกบขอมลไวในไฟล .txt แทนโดยใชคำสง fprintf โดยคำสงนจะเรยกไฟลทเราระบ(.txt หรอ .dat) ทมอยแลวและเขยนขอมลลงไป เราสามารถระบชนดขอมล และเลขนยสำคญทเราตองการดวยคำสงน เชนfid = fopen('mydata.txt','w');fprintf(fid,'%6.1f %6.2f %6.3f\n',A');fclose(fid);
คำสง fopen เปนการสรางไฟลใหมชอวา mydata.txt และสราง fileID ชอวา fid ทชไปยงไฟลนนตามดวยการเขยนขอมลดวย fprintf และปดไฟลภายหลงดวยคำสง fclose (จำเปนตองเปดไฟลมฉะนนจะยายไฟล หรอแกไขไฟลนไมได) สวนคำสง %6.1f เปนการบอกวาตวเลขทจะเกบมเลขนยสำคญมากทสด 6 ตว และเปนตวเลขหลงจดทศนยม 1 ตว สวน f เปนการบอกวาเราใชระบบจำกดเลขนยสำคญ เนองจาก A มหลาย column และคำสง '\n' แปลวาใหขนบรรทดใหมเมอเขยน row ตอมา คำสงทงหมดทกลาวไปตองอยระหวางเครองหมาย ' ' นอกจากนพงสงเกตวาการใสตวแปรใหเรยงถกตองนนใช A' ไมใช A เฉย ๆ จะเหนไดวาคำสง fprintf ยงยากแต วธทงายทสดสำหรบการสงผานขอมลไปยงโปรแกรมอน ๆ เชน excel, Origin, หรอ IGOR ซงใชการเวนวรรค tab และการกด enterคนระหวางขอมลแตละตว
เมอตองการloadขอมลกใชคำสง fopen(filename) เชนA = fopen(mydata.txt);
หากขอมลทเขยนดวย fprintf หากใชคำสงแยกระหวางตวแปรแตละตวไมถกตอง ขอมลท load ขนใหมอาจจะเรยงเปนแถวเดยวกนหมด ใหใชคำสง reshape ในการเรยนขอมลใหม
หลงจากไดสรางตวแปรแลวหลายตว และไดจดเกบตวแปรทตองการไวเรยบรอยแลว เราสามารถลบตวแปรทงหมดไดโดยใชคำสง clear all หรอหากตองการกำจดตวแปรตวใดตวหนงเทานนกใหพมพclear newmatrix หากตองการทำความสะอาด command window ใหพมพคำสง home
Intermediate Physics Lab I 14
2.4 Plotting 2 MATLAB QUICK START GUIDE
2.4 Plottingการแสดงผลกราฟออกมากมความสำคญแบบหนง การแสดงผลการคำนวนดวย MATLAB หลงจากการคำนวนเสรจสนมความสำคญ ทำใหสามารถเหนผลการคำนวนไดทนท ทงนนกวจยอาจใช MATLAB ในการคำนวน และดผลคราว ๆ แตเลอกทจะนำผลออกไปเขยนกราฟดวยโปรแกรมอนเพอตพมพ ในหวขอนขอยกตวอยางการทำ 2D line plot และการใช subplot เพอแสดง 4 plot ในหนาตางเดยว
คำสง plot ใน MATLAB คอ plot(x,y) โดยท x และ y เปนเวกเตอร (เมทรกซทมมต row หรอcolumn เปนหนง) ทง x และ y ตองมขนาดเทากน ตวอยางของการใชคำสง เชนx = -pi:0.1:pi;y = sin(x);plot(x,y)
ในสองบรรทดแรก เปนการสรางเวกเตอร x, y และทำการ plot MATLAB จะเปดหนาตางใหมทชอวาFigure 1 และแสดงกราฟของฟงกชนไซน โดยเลอกชวงคา x, y โดยอตโนมต
หากตองการ plot ฟงกชนสองฟงกชนในกราฟเดยวกนเพอเปรยบเทยบ กสามารถทำไดโดย ใชคำสง plot(x1,y1,x2,y2)x1 = -pi:0.1:pi;y1 = sin(x1);x2 = -pi:0.2:pi;y2 = cos(x2);plot(x1,y1,x2,y2)
MATLAB จะใชสทตางกนในการ plot y1 และ y2อาจสงเกตวาในการใชคำสง plot MATLAB เปดหนาตาง Figure ใหมทกครง ซงถามการใชคำสง
plot หลาย ๆ ครงจะมหนาตางเปดใหมเยอะมาก สามารถใชคำสง close เพอปด Figure ลาสดไดหรอ close all เพอปด Figure ทงหมด หากตองการ plot ทบท Figure เดม โดยเกบ Figure เกาไวสามารถทำไดโดยx1 = -pi:0.1:pi;y1 = sin(x1);plot(x1,y1), hold on;x2 = -pi:0.2:pi;y2 = cos(x2);plot(x2,y2), hold off
การ hold on เปนการบอก MATLAB ไมใหลบกราฟเดมทง หากมคำสง plot กราฟตวใหมลงไปเมอใชคำสง hold off MATLAB จะ clear กราฟเดม เมอมการ plot กราฟใหม คำสง plot จะมการhold off เปนคา default
หากมการเปด plot ไวหลายหนาตาง มหลาย Figure สามารถเรยก Figure ใด ๆ ขนมาไดโดยใชคำสง Figure(ตวเลข) เชนเรยก Figure 1 ขนมาดวยคำสง Figure(1) หากระบบยงไมม Figure 1 อยMATLAB จะสรางหนาตางขนมาใหม หากมหนาตางนอยแลวระบบจะเรยกหนาตาง Figure 1
Intermediate Physics Lab I 15
2.4 Plotting 2 MATLAB QUICK START GUIDE
ขนมา และจะทำการ plot ลงไปบนหนาตางนน หากใชคำสง figure ระบบจะสรางหนาตาง figure
ใหม
นศ.ลองพมพคำสงตอไปนx1 = -pi:0.1:pi;y1 = sin(x1);figure(2), plot(x1,y1);x2 = -pi:0.2:pi;y2 = cos(x2);figure(2), plot(x2,y2);
ทำไมถงเหนฟงกชน cos แคตวเดยวบนหนาตาง ?
นอกจากนยงสามารถตงคาการ plot เชน เปลยนชวง ของคา x และคา y, เตมขอมลของแกน xและ y เปลยนสของกราฟ เปลยนขนาดของตวอกษร เปนตน โดยไปทเมน View > Property Editor> More Properties
อกคำสงหนงทมประโยชนในการแสดง plot คอคำสง subplot ซงแบงหนาตาง Figure เปนตารางโดยแตละชองในตารางสามารถเปนกราฟได คำสง subplot ประกอบไปดวย subplot(m,n,p) ซงแบงหนาตางเปน m x n ชอง และทำการเรยกชองท p มาใช เราจะใชคำสงนในการ plot x1, y1, x2, y2เชนfigure(10)subplot(2,3,1), plot(x1)subplot(2,3,2), plot(y1);figure(10), subplot(2,3,3), plot(x2)figure(10), subplot(2,3,5), plot(y2)
Figure 8: การใช subplot เพอสรางหนาตางยอยขนาด 2 x 3
Figure 8 เปน screenshot ของผลลพธจากคำสงขางตน ใช subplot สรางหนาตางยอขนาด 2x3แลว plot เวกเตอร x1,y1,x2, และ y2 ลงทหนาตางท 1, 2, 3, 5 และทงหนาตางท 4 กบ 6 วางไว
Intermediate Physics Lab I 16
2.5 Curve Fitting 2 MATLAB QUICK START GUIDE
นอกจากนยงใชคำสง plot(x) ซงรบคาเวกเตอรคาเดยว MATLAB จะ plot คาเวกเตอรนน ๆ ในแกนy และ ใช index เปนแกน x
ทำอยางไรถงเตม title และ axis label ลงไปในแตละ subplotเราสามารถเกบ Figure 10 นไดโดยการไปท File > save as แลวเกบ Figure ไวเปนนามสกล .fig
ซงเปนไฟลเฉพาะของ MATLAB หรอสามารถ export ออกเปนรปภาพ โดยการไปท File > ExportSetup > ตงคาชนดของรปทตองการ แลวกด Export ซง MATLAB ม option สำหรบการ exportเปนไฟลนามสกล .ai ซงสามารถนำไปเปดในโปรแกรม Illustrator ได ซงวธนมประโยชนมากในการดงเฉพาะเสนกราฟออกมา
2.5 Curve Fittingสวนสำคญของการวเคราะหขอมลคอการ analyze ขอมล โดยเฉพาะการ fit ขอมลกบฟงกชนตามทฤษฏ บทนจะพดถงการ fit curve ของฟงกชน polynomial และ gaussian อนง เราสามารถ fitขอมลหลงจากการ plot โดยไปท Toos > Basic Fitting เมน ดงทแสดงใน Figure 9
Figure 9: Basic Fitting เมน
2.5.1 การ fit ฟงกชน Polynomialการใช Basic Fitting Tools อาจสะดวกและรวดเรว แตการใชคำสง fit จะทำใหสามารถเขยนโปรแกรมและใชผลการ fit ไปคำนวนตอเนองได ซงเปนจดประสงคของบทน
เนองจากตองใชคำสงหลายคำสง อกทงอาจมการเรยกสงคำสงแบบนหลายครง จงควรเขยนคำสงเหลาน แลวเกบเปน m-file โดยการพมพคำสงดานลางลงไปใน m-file editor แลว save เปนไฟลทนามสกล .m
ใหนศ.ใสขอมลดบเหลานลงไปใน m-file แลวกด run
Intermediate Physics Lab I 17
2.5 Curve Fitting 2 MATLAB QUICK START GUIDE
Figure 10: ผลของ Polynomial fit
t = [0 0.3 0.8 1.1 1.6 2.3];y = [0.6 0.67 1.01 1.35 1.47 1.25];plot(t,y,'o')
สงเกตวาเราสงให plot แบบจดโดย o หมายถงการแทนขอมลทละตว เมอมการเพมเตมคำสงลงไปใน m-file MATLAB จะทำการ save การเปลยนแปลงนนเมอเรากด run
เราตองการ fit ดวยฟงกชน polynomial กำลงสอง ซงมรปตวไปคอ y = a2t2 + a1t + ao โดยท
an คอสมประสทธของแตละพจน ใน MATLAB การ fit ฟงกชน polynomial สามารถทำไดสองวธคอการใชคำสง polyfit หรอ fit ธรรมดา การใชฟงกชน polyfit เราจะใชคำสง p = polyfit(t,y,n) โดยp เปนเวกเตอรทประกอบไปดวยสมประสทธ an, t กบ y คอขอมลดบ และ n คอคากำลงของสงทสดจำนวนสมาชคในเวกเตอร p จะมคาเทากบ n+1 ดงนนคำสง fit polynomial กำลงสองคอp=polyfit(t,y,2)
สงเกตวาเราไมใส ; ทดานหลงคำสง เพราะเราตองการให MATLAB แสดงผลการ fit ซงจะไดp =
-0.2942 1.0231 0.4981
หากเราตองการดวาการ fit ครงนดแคไหน สามารถใชสมประสทธทเปนสมาชกของเวกเตอร p มาเขยนกราฟ หรอใชคำสง polyval ดงนt2 = 0:0.1:2.8; % Define a new time vectory2=polyval(p,t2); % Evaluate the polynomial p at t2figure % in a new Figure windowplot(t,y,'o',t2,y2) % Plot the fit on top of the data
สงทอยใน % จะไมถกปอนเขาไปใน MATLAB ซงมประโยชนในการระบวาคำสงแตบรรทด มไวทำไม เพอใหสงเกต หรอผอน อานแลวเขาใจในภายหลง Figure 10 แสดงใหเหนถงผลการ fit โดยใชคำสง polynomial fit
Intermediate Physics Lab I 18
2.5 Curve Fitting 2 MATLAB QUICK START GUIDE
2.5.2 การ fit ฟงกชน Gaussian และฟงกชนอน ๆMATLAB สามารถ fit ฟงกชนอกหลายชนดได เชน gaussian, sin, exponential เปนตน ในบทนเราจะลอง fit ฟงกชน gaussian สองตว โดยกอนอนจะตองสราง 'ขอมลดบ' ทหนาตาคลาย gaussian ขนมากอน โดยการพมพคำสงเหลานเขาไปใน m-file ตวเดม
ฟงกชน Gaussian อยในรป f(x) = ae−((x−b)/c)2
ลองคนดวาคา a, b และ c บงบอกถงลกษณะอะไรของฟงกชนน
% t = [0 0.3 0.8 1.1 1.6 2.3];% y = [0.6 0.67 1.01 1.35 1.47 1.25];% plot(t,y,'o')% p=polyfit(t,y,2)% t2 = 0:0.1:2.8; % Define a new time vector% y2=polyval(p,t2); % Evaluate the polynomial p at t2% figure % in a new Figure window% plot(t,y,'o',t2,y2) % Plot the fit on top of the data
a1 = 1; b1 = -1; c1 = 10;a2 = 1; b2 = 1; c2 = 1;x = (-20:0.2:20)';gdata = a1*exp(-((x-b1)/c1).^2) + ...
a2*exp(-((x-b2)/c2).^2) + ...0.1*(rand(size(x))-.5);
plot(x,gdata,'o')
คำสง exp คอ ฟงกชน exponential ใชสรางขอมลดบทประกอบไปดวย gaussian สองตวทมความกวางไมเทากน และจดศนยกลาง (คา b) อยท -1 กบ 1 นอกจากนยงใส 'noise' ลงไปในขอมลโดยใขคำสง rand สวน "..." นนใชสำหรบขนบรรทดใหมใน m-file โดยไมถอเปนการกด enter ใชสำหรบคำสงยาว ๆ Figure 11 แสดงขอมลดบทไดจากคำสงน จะเหนวาไมลบคำสงเกาทงไป แตทำการเตม % ลงไปดานหนาเพอมให MATLAB compile คำสงเกา วธนทำใหสามารถลองเขยนคำสงไดหลายรปแบบโดยทไมตองลบคำสงเดม
ตอมาจะเปนสวนของคำสง fit ซงเราจะตองระบ fittype ลงไปกอนทจะใชคำสง fit(x,y,fittype)ดงนftype = fittype('gauss2');gfit= fit(x,gdata,ftype)
คำสง fittype ระบวาเราตองการ fit ฟงกชน gaussian ทมสองพค ผลของการ fit จะะเกบไวในgfit ระบบจะแสดงผลลพธวาgfit =
General model Gauss2:gfit(x) = a1*exp(-((x-b1)/c1)^2) + a2*exp(-((x-b2)/c2)^2)
Intermediate Physics Lab I 19
2.5 Curve Fitting 2 MATLAB QUICK START GUIDE
Figure 11: ขอมลดบ สำหรบ fit gaussian สองตว
Coefficients (with 95% confidence bounds):a1 = 1.002 (0.9927, 1.011)b1 = 1.005 (0.9981, 1.012)c1 = 0.9923 (0.9812, 1.003)a2 = 1 (0.9968, 1.004)b2 = -0.9981 (-1.022, -0.9746)c2 = 10.03 (9.995, 10.06)
คา a1, b1, c1 เปนคาคงท ซงบอกคณลกษณะของ gaussian ตวแรก สงทอยในวงเลบคอชวงทมนใจ (confident interval) ซงบอกวาการ fit นดแคไหน ซงกรณน MATLAB สามารถ fit ไดด เพราะวาเราเตม noise ตอนสรางขอมลดบนอย
สามารถแสดงผลของการ fit นเทยบกบขอมลดบโดยใชคำสงfigure,plot(x,gdata,'o'), hold on;plot(gfit),hold off;
Figure 12 แสดงผลของคำสงน จะเหนวา ตวแปร gfit นนมไดเกบแคคาคงทของ ฟงกชน gaussianอยางเดยว แตยงเกบเสนกราฟไวอกดวย จงสามารถนำตวแปรนมา plot ไดเลย
นศ.ลองใชคำสง fit เพอ fit polynomial ของขอมลดบ ใน บทท 2.5.1
Intermediate Physics Lab I 20
2.6 สรปคำสงในบทน 2 MATLAB QUICK START GUIDE
Figure 12: ผลการ fit ฟงกชน gaussian สองพค
2.6 สรปคำสงในบทนA = [1 2 3; 4 5 6];size(matrix)A(row,column)A + constantB.*BA*CB + CC'sum(B)mean(B)
max(B)min(B):clearloadsavefprintffopenreshapeplot(x,y)
plot(x1,y1,x2,y2)plot(t,y,'o')figure(1)figuresubplot(m,n,p)polyfit(t,y,2)polyvalexpftype = fittype('gauss2fitresult = fit(x,y,f)
หนงสออางอง• http:// www.patana.ac.th/ secondary/ science/ anrophysics/ ntopic1/ commen-tary.htm
• "Academic Writing for Graduate Students," John M. Swalles and Christine B. Feak• "Style: Toward Clarity and Grace," Joseph M. Williams• "An Introduction to Error Analysis: The Study of Uncertainties in Physical Measure-ments," John R. Taylor
• MATLAB Getting Started Guide
Intermediate Physics Lab I 21