├── source ├── people.md ├── science.md ├── video.md ├── article.md ├── discuss.md ├── message.md ├── preface.md ├── pdffooter.htm ├── md0.js ├── Makefile ├── md0 - 複製.js ├── mimetex.exe ├── title.md ├── tex2img.bat ├── metadata.xml ├── header.htm ├── footer.htm ├── license.md ├── editor.md ├── reflink.md9 ├── message2.md ├── home.md ├── discuss1.md ├── info.md ├── article1.md ├── message1.md ├── people1.md0 ├── people1.md ├── article7.md ├── science1.md ├── science1.md0 ├── article2.md ├── video1.md ├── people2.md0 ├── people2.md ├── article3.md0 ├── people3.md0 ├── article3.md ├── people3.md └── article5.md ├── code.zip ├── book ├── A4.pdf ├── A4.epub ├── ipad.pdf └── ipad.epub ├── code ├── alu.v ├── alu2.v ├── alu3.v ├── cpu0mc.v ├── mic.gif ├── mic-slash.gif ├── mic-animate.gif ├── SpeechToText.html ├── alu ├── alu2 └── alu3 ├── img ├── AM.jpg ├── FM.jpg ├── cover.jpg ├── Ampere.jpg ├── BackEMF.jpg ├── Battery.jpg ├── EmWave.jpg ├── EmWave3D.jpg ├── Faraday.jpg ├── MagnetCD.jpg ├── Maxwell.jpg ├── Spectrum.jpg ├── coverA4.png ├── mega2560.jpg ├── motor1.jpg ├── BoyerModel.jpg ├── FieldLines.jpg ├── Inductance.jpg ├── LeydenJar.jpg ├── TVAntenna.jpg ├── egenerator.jpg ├── einmagMove.jpg ├── AmpereMeter.jpg ├── Arduino_SHT15.jpg ├── CoulombRule.jpg ├── FieldLines2.jpg ├── LemonBattery.jpg ├── MagLineShow.jpg ├── MagneticLine.jpg ├── MaxwellProof.jpg ├── MocularModel.jpg ├── Transformer.jpg ├── VoltaBattery.jpg ├── light_speed.jpg ├── ArduinoSHT15_1.png ├── FieldLineCurve2.jpg ├── FieldLinesCurve.jpg ├── GalvaniBattery.jpg ├── HertzExperiment.jpg ├── LeadAcidBattery.jpg ├── MaxwellEquation.jpg ├── MotorEGenerator.jpg ├── speechToText_en.png ├── speechToText_tw.png ├── ElectronicMagnetic.jpg ├── MotorEGenerator2.jpg ├── ZincCarbonBattery.jpg ├── optimization_flow.png ├── AmpereRightHandRule.jpg ├── AmpereRightHandRule2.jpg ├── Arduino_SHT15_board2.png ├── FieldLinesVoltageMap.jpg ├── MaxwellProofHesswei.jpg ├── arduino_sht15_board.png ├── ArduinoBluetooth_MATCH.jpg ├── Arduino_SHT15_Screen1.png ├── Arduino_SHT15_circuit1.png ├── Arduino_SHT15_library_1.png ├── ArudinoBluetooth_Module.jpg ├── FieldLineBallCapactor.jpg ├── FieldLineIrregularCurve.jpg ├── FieldLinesCapactorFill.jpg ├── MaxwellEquationOriginal.jpg ├── ArduinoBluetooth_Circuit.gif ├── ArduinoBluetooth_DSCN2103.JPG ├── ArduinoBluetooth_mega2560.jpg └── FieldLineElectronMagnatic.jpg ├── slide └── 201310.odp ├── submit └── pbdMPI.v1.1.zip ├── timg ├── f_8fa14cdd754f91cc6554c9e71929cce7.jpg ├── s_03c7c0ace395d80182db07ae2c30f034.jpg ├── w_f1290186a5d0b1ceab27f4e77c0c5d68.jpg ├── y_415290769594460e2e485922904f345d.jpg ├── L_2_07cbd6c155424e110559a84df364be5a.jpg ├── _rho_d2606be4e0cd2c9a6179c8f2e3547a85.jpg ├── x_i_1ba8aaab47179b3d3e24b0ccea9f4e30.jpg ├── y_i_8d62e469fb30ed435a668eb5c035b1f6.jpg ├── D__ii__44fc0c929fb5a83b5439317dfdf39379.jpg ├── _Gamma_07710b5c43702a8bb7b9104eacc6ba71.jpg ├── 6_073_ti_0044d1bad3a1ff122e9f39ff3c6f930a.jpg ├── 8_93_tim_a7eb7fa70cbe24f332a6d890f6df78e4.jpg ├── D__ii_fr_e805ec74096e8806a937fa11f78c5a5c.jpg ├── E_frac_d_345cf0d4c0e85277c1389852f14780cc.jpg ├── E_frac_m_58c00e38c28c11b0734320a36aa64e30.jpg ├── E_frac_m_8576bc2eefeb78106384b47681c46135.jpg ├── E_frac_q_9c5b35cea55d87c3c3e083c23cc0c6d8.jpg ├── P_y_i_pm_908e6b3623af0fa7eb7893d17b0a0577.jpg ├── V_frac_q_4c2aa0cd21a40375743fc8d554ea84e2.jpg ├── X_i_T_D__18c004e8a771369ebf46397984047ae8.jpg ├── X_left_b_b1618b1df3546befe33baf498abed9a4.jpg ├── X_left_b_e1a12bcf588f1ff52a43e8f4cf6cba81.jpg ├── _A_vec_X_0010fa7e4e1c1009258cdeb4761750d1.jpg ├── _A_vec_X_9a70096eafacb31f4b691e41688b8240.jpg ├── _A_vec_X_9b7f5816221d06aa5eb34a5fb3d8b49f.jpg ├── _A_vec_X_e086b0976a2b530c6b5ad7690461077b.jpg ├── _Gamma_k_87178ad029be326b9f5cb45690a16d54.jpg ├── _lambda__5614371f803f8a78b18b27391549a107.jpg ├── _lambda_c6a6eb61fd9c6c913da73b3642ca147d.jpg ├── _left_X__473e73c6b2be3569d3246edc76d8bec4.jpg ├── _mathrm__88021d94484de5aea293d67ac3b657c7.jpg ├── _nabla_2_26fc9f507ebe1b808449f8f0cd56c9a7.jpg ├── _nabla_2_2c4aeb2711d97003e66605c5f26281fd.jpg ├── _nabla_2_683590a0c6a1c3a77515ee29d578dbb9.jpg ├── _nabla_2_b3b44fe9479618568a50279e37b390d3.jpg ├── _nabla_2_dc6c012bd0fcddc9f54e8ea08712a89b.jpg ├── _nabla_f_7a1cfe905108e307bce9f3810a80042a.jpg ├── _nabla_f_8b89a43d93ebcb54fa54d24afb9e51b8.jpg ├── _nabla_f_b158d7803254a6fc013ba44ca41d078b.jpg ├── _nabla_t_71472b68994d8c09ae7c7f86ef45465d.jpg ├── _nabla_t_d2043e5b8de68c1f0f7e31e126f5636a.jpg ├── _nabla_t_f195a2c3ac1e7b023641cb07df0d208e.jpg ├── _oint__C_6ebb62f837eb5efd9159d5fe5fa4ed1d.jpg ├── _oint__C_9078963ed770e004bed65ace403c77a9.jpg ├── _sum__i__bfd1a8f772db71036020fac840b76d60.jpg ├── _sum__i__df417ef6ae240a2fb9153ca4ae19da2f.jpg ├── _vec_A_3_34a578b55cf6fe9b149722e9f8977aae.jpg ├── _vec_X__259132779c57997f83cc4e797de1822b.jpg ├── _y_a_b___4fb62ff1202dd258df727b57df1c26b4.jpg ├── f_w_frac_42fccca098b26396cc4b2df69921769b.jpg ├── m_frac_M_2031d341f604dcc09daa8b14a597877d.jpg ├── mpi_grad_290fd303ab3cb6433b938221466f324a.jpg ├── p__c_R_i_e1650e901408bc001d8ff6a01a451583.jpg ├── p_times__3168a2f0bd25e0593fd8b61ec901c5af.jpg ├── v_R_omeg_835d6289e38187f9a9d5f82308b05cb4.jpg ├── w_i_in_m_0898409895a04282f74716fb5b5c0e21.jpg └── y_is_na__a5ab5b42ec8fc1f5ffc5c49519c3f9ff.jpg ├── htm ├── article.html ├── message.html ├── people.html ├── video.html ├── preface.html ├── science.html ├── discuss.html ├── title.html ├── editor.html ├── license.html ├── message2.html ├── home.html ├── info.html ├── message1.html ├── discuss1.html ├── people1.html ├── article1.html └── people2.html └── css └── pmag.css /source/people.md: -------------------------------------------------------------------------------- 1 | 2 | # 人物速寫 3 | -------------------------------------------------------------------------------- /source/science.md: -------------------------------------------------------------------------------- 1 | # 程式與科學 2 | -------------------------------------------------------------------------------- /source/video.md: -------------------------------------------------------------------------------- 1 | 2 | # 影音頻道 3 | -------------------------------------------------------------------------------- /source/article.md: -------------------------------------------------------------------------------- 1 | 2 | # 程式人文集 3 | -------------------------------------------------------------------------------- /source/discuss.md: -------------------------------------------------------------------------------- 1 | # 程式人討論區 2 | 3 | -------------------------------------------------------------------------------- /source/message.md: -------------------------------------------------------------------------------- 1 | 2 | # 程式人短訊 3 | -------------------------------------------------------------------------------- /source/preface.md: -------------------------------------------------------------------------------- 1 | # 前言 2 | 3 | 4 | -------------------------------------------------------------------------------- /source/pdffooter.htm: -------------------------------------------------------------------------------- 1 |
_PAGENUM_
2 | -------------------------------------------------------------------------------- /code.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/code.zip -------------------------------------------------------------------------------- /book/A4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/book/A4.pdf -------------------------------------------------------------------------------- /code/alu.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/code/alu.v -------------------------------------------------------------------------------- /code/alu2.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/code/alu2.v -------------------------------------------------------------------------------- /code/alu3.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/code/alu3.v -------------------------------------------------------------------------------- /img/AM.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/AM.jpg -------------------------------------------------------------------------------- /img/FM.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FM.jpg -------------------------------------------------------------------------------- /book/A4.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/book/A4.epub -------------------------------------------------------------------------------- /book/ipad.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/book/ipad.pdf -------------------------------------------------------------------------------- /code/cpu0mc.v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/code/cpu0mc.v -------------------------------------------------------------------------------- /code/mic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/code/mic.gif -------------------------------------------------------------------------------- /img/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/cover.jpg -------------------------------------------------------------------------------- /source/md0.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/source/md0.js -------------------------------------------------------------------------------- /book/ipad.epub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/book/ipad.epub -------------------------------------------------------------------------------- /img/Ampere.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Ampere.jpg -------------------------------------------------------------------------------- /img/BackEMF.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/BackEMF.jpg -------------------------------------------------------------------------------- /img/Battery.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Battery.jpg -------------------------------------------------------------------------------- /img/EmWave.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/EmWave.jpg -------------------------------------------------------------------------------- /img/EmWave3D.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/EmWave3D.jpg -------------------------------------------------------------------------------- /img/Faraday.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Faraday.jpg -------------------------------------------------------------------------------- /img/MagnetCD.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MagnetCD.jpg -------------------------------------------------------------------------------- /img/Maxwell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Maxwell.jpg -------------------------------------------------------------------------------- /img/Spectrum.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Spectrum.jpg -------------------------------------------------------------------------------- /img/coverA4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/coverA4.png -------------------------------------------------------------------------------- /img/mega2560.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/mega2560.jpg -------------------------------------------------------------------------------- /img/motor1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/motor1.jpg -------------------------------------------------------------------------------- /slide/201310.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/slide/201310.odp -------------------------------------------------------------------------------- /source/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/source/Makefile -------------------------------------------------------------------------------- /code/mic-slash.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/code/mic-slash.gif -------------------------------------------------------------------------------- /img/BoyerModel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/BoyerModel.jpg -------------------------------------------------------------------------------- /img/FieldLines.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FieldLines.jpg -------------------------------------------------------------------------------- /img/Inductance.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Inductance.jpg -------------------------------------------------------------------------------- /img/LeydenJar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/LeydenJar.jpg -------------------------------------------------------------------------------- /img/TVAntenna.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/TVAntenna.jpg -------------------------------------------------------------------------------- /img/egenerator.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/egenerator.jpg -------------------------------------------------------------------------------- /img/einmagMove.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/einmagMove.jpg -------------------------------------------------------------------------------- /source/md0 - 複製.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/source/md0 - 複製.js -------------------------------------------------------------------------------- /source/mimetex.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/source/mimetex.exe -------------------------------------------------------------------------------- /code/mic-animate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/code/mic-animate.gif -------------------------------------------------------------------------------- /img/AmpereMeter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/AmpereMeter.jpg -------------------------------------------------------------------------------- /img/Arduino_SHT15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Arduino_SHT15.jpg -------------------------------------------------------------------------------- /img/CoulombRule.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/CoulombRule.jpg -------------------------------------------------------------------------------- /img/FieldLines2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FieldLines2.jpg -------------------------------------------------------------------------------- /img/LemonBattery.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/LemonBattery.jpg -------------------------------------------------------------------------------- /img/MagLineShow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MagLineShow.jpg -------------------------------------------------------------------------------- /img/MagneticLine.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MagneticLine.jpg -------------------------------------------------------------------------------- /img/MaxwellProof.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MaxwellProof.jpg -------------------------------------------------------------------------------- /img/MocularModel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MocularModel.jpg -------------------------------------------------------------------------------- /img/Transformer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Transformer.jpg -------------------------------------------------------------------------------- /img/VoltaBattery.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/VoltaBattery.jpg -------------------------------------------------------------------------------- /img/light_speed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/light_speed.jpg -------------------------------------------------------------------------------- /img/ArduinoSHT15_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/ArduinoSHT15_1.png -------------------------------------------------------------------------------- /img/FieldLineCurve2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FieldLineCurve2.jpg -------------------------------------------------------------------------------- /img/FieldLinesCurve.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FieldLinesCurve.jpg -------------------------------------------------------------------------------- /img/GalvaniBattery.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/GalvaniBattery.jpg -------------------------------------------------------------------------------- /img/HertzExperiment.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/HertzExperiment.jpg -------------------------------------------------------------------------------- /img/LeadAcidBattery.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/LeadAcidBattery.jpg -------------------------------------------------------------------------------- /img/MaxwellEquation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MaxwellEquation.jpg -------------------------------------------------------------------------------- /img/MotorEGenerator.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MotorEGenerator.jpg -------------------------------------------------------------------------------- /img/speechToText_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/speechToText_en.png -------------------------------------------------------------------------------- /img/speechToText_tw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/speechToText_tw.png -------------------------------------------------------------------------------- /source/title.md: -------------------------------------------------------------------------------- 1 | % 程式人雜誌 2 | % 2013 年 10 月號 3 | % [程式人雜誌社出版](https://www.facebook.com/groups/programmerMagazine/) -------------------------------------------------------------------------------- /submit/pbdMPI.v1.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/submit/pbdMPI.v1.1.zip -------------------------------------------------------------------------------- /img/ElectronicMagnetic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/ElectronicMagnetic.jpg -------------------------------------------------------------------------------- /img/MotorEGenerator2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MotorEGenerator2.jpg -------------------------------------------------------------------------------- /img/ZincCarbonBattery.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/ZincCarbonBattery.jpg -------------------------------------------------------------------------------- /img/optimization_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/optimization_flow.png -------------------------------------------------------------------------------- /img/AmpereRightHandRule.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/AmpereRightHandRule.jpg -------------------------------------------------------------------------------- /img/AmpereRightHandRule2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/AmpereRightHandRule2.jpg -------------------------------------------------------------------------------- /img/Arduino_SHT15_board2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Arduino_SHT15_board2.png -------------------------------------------------------------------------------- /img/FieldLinesVoltageMap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FieldLinesVoltageMap.jpg -------------------------------------------------------------------------------- /img/MaxwellProofHesswei.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MaxwellProofHesswei.jpg -------------------------------------------------------------------------------- /img/arduino_sht15_board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/arduino_sht15_board.png -------------------------------------------------------------------------------- /img/ArduinoBluetooth_MATCH.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/ArduinoBluetooth_MATCH.jpg -------------------------------------------------------------------------------- /img/Arduino_SHT15_Screen1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Arduino_SHT15_Screen1.png -------------------------------------------------------------------------------- /img/Arduino_SHT15_circuit1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Arduino_SHT15_circuit1.png -------------------------------------------------------------------------------- /img/Arduino_SHT15_library_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/Arduino_SHT15_library_1.png -------------------------------------------------------------------------------- /img/ArudinoBluetooth_Module.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/ArudinoBluetooth_Module.jpg -------------------------------------------------------------------------------- /img/FieldLineBallCapactor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FieldLineBallCapactor.jpg -------------------------------------------------------------------------------- /img/FieldLineIrregularCurve.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FieldLineIrregularCurve.jpg -------------------------------------------------------------------------------- /img/FieldLinesCapactorFill.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FieldLinesCapactorFill.jpg -------------------------------------------------------------------------------- /img/MaxwellEquationOriginal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/MaxwellEquationOriginal.jpg -------------------------------------------------------------------------------- /img/ArduinoBluetooth_Circuit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/ArduinoBluetooth_Circuit.gif -------------------------------------------------------------------------------- /img/ArduinoBluetooth_DSCN2103.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/ArduinoBluetooth_DSCN2103.JPG -------------------------------------------------------------------------------- /img/ArduinoBluetooth_mega2560.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/ArduinoBluetooth_mega2560.jpg -------------------------------------------------------------------------------- /img/FieldLineElectronMagnatic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/img/FieldLineElectronMagnatic.jpg -------------------------------------------------------------------------------- /source/tex2img.bat: -------------------------------------------------------------------------------- 1 | if not exist {%2.jpg} ( 2 | mimetex -d %1 -e %2.gif 3 | convert %2.gif %2.jpg 4 | rm %2.gif 5 | ) 6 | -------------------------------------------------------------------------------- /source/metadata.xml: -------------------------------------------------------------------------------- 1 | Creative Commons Non-Commercial Share Alike 3.0 2 | en-US 3 | -------------------------------------------------------------------------------- /timg/f_8fa14cdd754f91cc6554c9e71929cce7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/f_8fa14cdd754f91cc6554c9e71929cce7.jpg -------------------------------------------------------------------------------- /timg/s_03c7c0ace395d80182db07ae2c30f034.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/s_03c7c0ace395d80182db07ae2c30f034.jpg -------------------------------------------------------------------------------- /timg/w_f1290186a5d0b1ceab27f4e77c0c5d68.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/w_f1290186a5d0b1ceab27f4e77c0c5d68.jpg -------------------------------------------------------------------------------- /timg/y_415290769594460e2e485922904f345d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/y_415290769594460e2e485922904f345d.jpg -------------------------------------------------------------------------------- /timg/L_2_07cbd6c155424e110559a84df364be5a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/L_2_07cbd6c155424e110559a84df364be5a.jpg -------------------------------------------------------------------------------- /timg/_rho_d2606be4e0cd2c9a6179c8f2e3547a85.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_rho_d2606be4e0cd2c9a6179c8f2e3547a85.jpg -------------------------------------------------------------------------------- /timg/x_i_1ba8aaab47179b3d3e24b0ccea9f4e30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/x_i_1ba8aaab47179b3d3e24b0ccea9f4e30.jpg -------------------------------------------------------------------------------- /timg/y_i_8d62e469fb30ed435a668eb5c035b1f6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/y_i_8d62e469fb30ed435a668eb5c035b1f6.jpg -------------------------------------------------------------------------------- /timg/D__ii__44fc0c929fb5a83b5439317dfdf39379.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/D__ii__44fc0c929fb5a83b5439317dfdf39379.jpg -------------------------------------------------------------------------------- /timg/_Gamma_07710b5c43702a8bb7b9104eacc6ba71.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_Gamma_07710b5c43702a8bb7b9104eacc6ba71.jpg -------------------------------------------------------------------------------- /timg/6_073_ti_0044d1bad3a1ff122e9f39ff3c6f930a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/6_073_ti_0044d1bad3a1ff122e9f39ff3c6f930a.jpg -------------------------------------------------------------------------------- /timg/8_93_tim_a7eb7fa70cbe24f332a6d890f6df78e4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/8_93_tim_a7eb7fa70cbe24f332a6d890f6df78e4.jpg -------------------------------------------------------------------------------- /timg/D__ii_fr_e805ec74096e8806a937fa11f78c5a5c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/D__ii_fr_e805ec74096e8806a937fa11f78c5a5c.jpg -------------------------------------------------------------------------------- /timg/E_frac_d_345cf0d4c0e85277c1389852f14780cc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/E_frac_d_345cf0d4c0e85277c1389852f14780cc.jpg -------------------------------------------------------------------------------- /timg/E_frac_m_58c00e38c28c11b0734320a36aa64e30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/E_frac_m_58c00e38c28c11b0734320a36aa64e30.jpg -------------------------------------------------------------------------------- /timg/E_frac_m_8576bc2eefeb78106384b47681c46135.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/E_frac_m_8576bc2eefeb78106384b47681c46135.jpg -------------------------------------------------------------------------------- /timg/E_frac_q_9c5b35cea55d87c3c3e083c23cc0c6d8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/E_frac_q_9c5b35cea55d87c3c3e083c23cc0c6d8.jpg -------------------------------------------------------------------------------- /timg/P_y_i_pm_908e6b3623af0fa7eb7893d17b0a0577.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/P_y_i_pm_908e6b3623af0fa7eb7893d17b0a0577.jpg -------------------------------------------------------------------------------- /timg/V_frac_q_4c2aa0cd21a40375743fc8d554ea84e2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/V_frac_q_4c2aa0cd21a40375743fc8d554ea84e2.jpg -------------------------------------------------------------------------------- /timg/X_i_T_D__18c004e8a771369ebf46397984047ae8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/X_i_T_D__18c004e8a771369ebf46397984047ae8.jpg -------------------------------------------------------------------------------- /timg/X_left_b_b1618b1df3546befe33baf498abed9a4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/X_left_b_b1618b1df3546befe33baf498abed9a4.jpg -------------------------------------------------------------------------------- /timg/X_left_b_e1a12bcf588f1ff52a43e8f4cf6cba81.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/X_left_b_e1a12bcf588f1ff52a43e8f4cf6cba81.jpg -------------------------------------------------------------------------------- /timg/_A_vec_X_0010fa7e4e1c1009258cdeb4761750d1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_A_vec_X_0010fa7e4e1c1009258cdeb4761750d1.jpg -------------------------------------------------------------------------------- /timg/_A_vec_X_9a70096eafacb31f4b691e41688b8240.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_A_vec_X_9a70096eafacb31f4b691e41688b8240.jpg -------------------------------------------------------------------------------- /timg/_A_vec_X_9b7f5816221d06aa5eb34a5fb3d8b49f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_A_vec_X_9b7f5816221d06aa5eb34a5fb3d8b49f.jpg -------------------------------------------------------------------------------- /timg/_A_vec_X_e086b0976a2b530c6b5ad7690461077b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_A_vec_X_e086b0976a2b530c6b5ad7690461077b.jpg -------------------------------------------------------------------------------- /timg/_Gamma_k_87178ad029be326b9f5cb45690a16d54.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_Gamma_k_87178ad029be326b9f5cb45690a16d54.jpg -------------------------------------------------------------------------------- /timg/_lambda__5614371f803f8a78b18b27391549a107.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_lambda__5614371f803f8a78b18b27391549a107.jpg -------------------------------------------------------------------------------- /timg/_lambda_c6a6eb61fd9c6c913da73b3642ca147d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_lambda_c6a6eb61fd9c6c913da73b3642ca147d.jpg -------------------------------------------------------------------------------- /timg/_left_X__473e73c6b2be3569d3246edc76d8bec4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_left_X__473e73c6b2be3569d3246edc76d8bec4.jpg -------------------------------------------------------------------------------- /timg/_mathrm__88021d94484de5aea293d67ac3b657c7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_mathrm__88021d94484de5aea293d67ac3b657c7.jpg -------------------------------------------------------------------------------- /timg/_nabla_2_26fc9f507ebe1b808449f8f0cd56c9a7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_2_26fc9f507ebe1b808449f8f0cd56c9a7.jpg -------------------------------------------------------------------------------- /timg/_nabla_2_2c4aeb2711d97003e66605c5f26281fd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_2_2c4aeb2711d97003e66605c5f26281fd.jpg -------------------------------------------------------------------------------- /timg/_nabla_2_683590a0c6a1c3a77515ee29d578dbb9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_2_683590a0c6a1c3a77515ee29d578dbb9.jpg -------------------------------------------------------------------------------- /timg/_nabla_2_b3b44fe9479618568a50279e37b390d3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_2_b3b44fe9479618568a50279e37b390d3.jpg -------------------------------------------------------------------------------- /timg/_nabla_2_dc6c012bd0fcddc9f54e8ea08712a89b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_2_dc6c012bd0fcddc9f54e8ea08712a89b.jpg -------------------------------------------------------------------------------- /timg/_nabla_f_7a1cfe905108e307bce9f3810a80042a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_f_7a1cfe905108e307bce9f3810a80042a.jpg -------------------------------------------------------------------------------- /timg/_nabla_f_8b89a43d93ebcb54fa54d24afb9e51b8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_f_8b89a43d93ebcb54fa54d24afb9e51b8.jpg -------------------------------------------------------------------------------- /timg/_nabla_f_b158d7803254a6fc013ba44ca41d078b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_f_b158d7803254a6fc013ba44ca41d078b.jpg -------------------------------------------------------------------------------- /timg/_nabla_t_71472b68994d8c09ae7c7f86ef45465d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_t_71472b68994d8c09ae7c7f86ef45465d.jpg -------------------------------------------------------------------------------- /timg/_nabla_t_d2043e5b8de68c1f0f7e31e126f5636a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_t_d2043e5b8de68c1f0f7e31e126f5636a.jpg -------------------------------------------------------------------------------- /timg/_nabla_t_f195a2c3ac1e7b023641cb07df0d208e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_nabla_t_f195a2c3ac1e7b023641cb07df0d208e.jpg -------------------------------------------------------------------------------- /timg/_oint__C_6ebb62f837eb5efd9159d5fe5fa4ed1d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_oint__C_6ebb62f837eb5efd9159d5fe5fa4ed1d.jpg -------------------------------------------------------------------------------- /timg/_oint__C_9078963ed770e004bed65ace403c77a9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_oint__C_9078963ed770e004bed65ace403c77a9.jpg -------------------------------------------------------------------------------- /timg/_sum__i__bfd1a8f772db71036020fac840b76d60.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_sum__i__bfd1a8f772db71036020fac840b76d60.jpg -------------------------------------------------------------------------------- /timg/_sum__i__df417ef6ae240a2fb9153ca4ae19da2f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_sum__i__df417ef6ae240a2fb9153ca4ae19da2f.jpg -------------------------------------------------------------------------------- /timg/_vec_A_3_34a578b55cf6fe9b149722e9f8977aae.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_vec_A_3_34a578b55cf6fe9b149722e9f8977aae.jpg -------------------------------------------------------------------------------- /timg/_vec_X__259132779c57997f83cc4e797de1822b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_vec_X__259132779c57997f83cc4e797de1822b.jpg -------------------------------------------------------------------------------- /timg/_y_a_b___4fb62ff1202dd258df727b57df1c26b4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/_y_a_b___4fb62ff1202dd258df727b57df1c26b4.jpg -------------------------------------------------------------------------------- /timg/f_w_frac_42fccca098b26396cc4b2df69921769b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/f_w_frac_42fccca098b26396cc4b2df69921769b.jpg -------------------------------------------------------------------------------- /timg/m_frac_M_2031d341f604dcc09daa8b14a597877d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/m_frac_M_2031d341f604dcc09daa8b14a597877d.jpg -------------------------------------------------------------------------------- /timg/mpi_grad_290fd303ab3cb6433b938221466f324a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/mpi_grad_290fd303ab3cb6433b938221466f324a.jpg -------------------------------------------------------------------------------- /timg/p__c_R_i_e1650e901408bc001d8ff6a01a451583.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/p__c_R_i_e1650e901408bc001d8ff6a01a451583.jpg -------------------------------------------------------------------------------- /timg/p_times__3168a2f0bd25e0593fd8b61ec901c5af.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/p_times__3168a2f0bd25e0593fd8b61ec901c5af.jpg -------------------------------------------------------------------------------- /timg/v_R_omeg_835d6289e38187f9a9d5f82308b05cb4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/v_R_omeg_835d6289e38187f9a9d5f82308b05cb4.jpg -------------------------------------------------------------------------------- /timg/w_i_in_m_0898409895a04282f74716fb5b5c0e21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/w_i_in_m_0898409895a04282f74716fb5b5c0e21.jpg -------------------------------------------------------------------------------- /timg/y_is_na__a5ab5b42ec8fc1f5ffc5c49519c3f9ff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmermagazine/201310b/gh-pages/timg/y_is_na__a5ab5b42ec8fc1f5ffc5c49519c3f9ff.jpg -------------------------------------------------------------------------------- /source/header.htm: -------------------------------------------------------------------------------- 1 |
2 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

3 |
4 |
5 | -------------------------------------------------------------------------------- /source/footer.htm: -------------------------------------------------------------------------------- 1 |
2 | 5 | -------------------------------------------------------------------------------- /source/license.md: -------------------------------------------------------------------------------- 1 | ## 授權聲明 2 | 3 | 本雜誌採用 創作共用:[姓名標示、相同方式分享] 授權,若您想要修改本書產生衍生著作時,至少應該遵守下列授權條件: 4 | 5 | 1. 標示原作者姓名 6 | 3. 採用 創作共用:[姓名標示、相同方式分享] 的方式公開衍生著作。 7 | 8 | 另外、當本雜誌中有文章或素材並非採用 [姓名標示、相同方式分享] 時,將會在該文章或素材後面標示其授權,此時該文章將以該標示的方式授權釋出,請修改者注意這些授權標示,以避免產生侵權糾紛。 9 | 10 | 例如有些文章可能不希望被作為「商業性使用」,此時就可能會採用創作共用:[姓名標示、非商業性、相同方式分享] 的授權,此時您就不應當將該文章用於商業用途上。 11 | 12 | 最後、懇請勿移除公益捐贈的相關描述,以便讓愛心得以持續散播! 13 | 14 | -------------------------------------------------------------------------------- /source/editor.md: -------------------------------------------------------------------------------- 1 | ## 編輯小語 2 | 3 | 在本期的「程式人雜誌」中,聚焦的一個主題是「電磁學」,這是一個對於程式人而言,通常有概念卻又無法深入理解的領域, 4 | 我們試圖在本期當中讓讀者能更進一步理解「電磁學」的「人物、歷史、理論、以及應用」等等面向。 5 | 6 | 在前幾期當中,我們通常用「程式人介紹、程式人頻道、....」等等以程式人開頭的標題。但是最近編輯常常將觸角 7 | 延伸到程式相關領域的主題上,因此我們將標題改為「人物速寫、影音頻道」等等,希望能更忠實的反應所呈現的內容。 8 | 9 | 當然、在程式人文集當中,我們同樣有關於「Arduino、JavaScript、R、Verilog 與開放電腦計畫」的文章,讓大家可以吸收到 10 | 專業的程式資訊,希望您會喜歡這些文章。 11 | 12 | ---- (程式人雜誌編輯 - 陳鍾誠) 13 | -------------------------------------------------------------------------------- /source/reflink.md9: -------------------------------------------------------------------------------- 1 | [程式人雜誌社團]: https://www.facebook.com/groups/programmerMagazine/ 2 | [姓名標示、相同方式分享]: http://creativecommons.org/licenses/by-sa/3.0/tw/ 3 | [姓名標示、非商業性、相同方式分享]: http://creativecommons.org/licenses/by-nc-sa/3.0/tw/ 4 | [馬萬圳]: http://coopermaa2nd.blogspot.tw/ 5 | [陳鍾誠]: http://ccckmit.wikidot.com/ 6 | [雜誌訂閱]: https://docs.google.com/spreadsheet/viewform?fromEmail=true&formkey=dG1TcER6Q3h1ZkpacFpDeEVFTDBLeVE6MQ 7 | [College Physics]:http://openstaxcollege.org/textbooks/college-physics 8 | [維基百科]:http://zh.wikipedia.org/ -------------------------------------------------------------------------------- /htm/article.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |

# 程式人文集

17 |
18 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /htm/message.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |

# 程式人短訊

17 |
18 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /htm/people.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |

# 人物速寫

17 |
18 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /htm/video.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |

# 影音頻道

17 |
18 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /htm/preface.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |
17 | 20 |
21 |

前言

22 |
23 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /htm/science.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |
17 | 20 |
21 |

程式與科學

22 |
23 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /htm/discuss.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |
17 | 20 |
21 |

程式人討論區

22 |
23 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /htm/title.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 程式人雜誌 9 | 10 | 11 | 12 | 13 |
14 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

15 |
16 |
17 | 22 | 23 |
24 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /source/message2.md: -------------------------------------------------------------------------------- 1 | ## 電容的原理 2 | 3 | 電容器(Capacitor)是兩金屬板之間存在絕緣介質的一種電路元件。其單位為法拉,符號為F。電容器利用二個導體之間的電場來儲存能量,二導體所帶的電荷大小相等,但符號相反。 4 | 5 | 若根據國際單位制,若一電容器兩極施加一伏特的電壓,其儲存電荷量為一庫侖,則此電容器的電容量為一法拉(F)。在實務上,法拉是相當大的單位,電容器的電容量一般常以毫法拉 (mF, 1mF = 10-3F)、微法拉 (µF, 1µF = 10-6F)、納法拉 (nF, 1nF = 10-9F) 或皮法拉 (pF, 1pF = 10-12F)表示。 6 | 7 | Nollet 是一個對電學特別有興趣的法國神父,1746 年時、他做了一個實驗 8 | 9 | Nollet was particularly interested in the new science of electricity, which he explored with the help of Du Fay and Réaumur. He joined the Royal Society of London in 1734 and later became the first professor of experimental physics at the University of Paris. He is reputed to have given the name to the Leyden jar after it was invented by Pieter van Musschenbroek. 10 | 11 | In 1746 he gathered about two hundred monks into a circle about a mile (1.6 km) in circumference, with pieces of iron wire connecting them. He then discharged a battery of Leyden jars through the human chain and observed that each man reacted at substantially the same time to the electric shock, showing that the speed of electricity's propagation was very high. In 1748 he discovered the phenomenon of osmosis in natural membranes. 12 | 13 | In 1750 Nollet made some advances on electrospray. He noted water flowing from a vessel would aerosolize if the vessel was electrified and placed near electrical ground. He also noted that similarly “a person, electrified by connection to a high-voltage generator, would not bleed normally if he were to cut himself; blood would spray from the wound.” 14 | 15 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 16 | -------------------------------------------------------------------------------- /htm/editor.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |
17 | 20 |
21 |

編輯小語

22 |

在本期的「程式人雜誌」中,聚焦的一個主題是「電磁學」,這是一個對於程式人而言,通常有概念卻又無法深入理解的領域, 我們試圖在本期當中讓讀者能更進一步理解「電磁學」的「人物、歷史、理論、以及應用」等等面向。

23 |

在前幾期當中,我們通常用「程式人介紹、程式人頻道、....」等等以程式人開頭的標題。但是最近編輯常常將觸角 延伸到程式相關領域的主題上,因此我們將標題改為「人物速寫、影音頻道」等等,希望能更忠實的反應所呈現的內容。

24 |

當然、在程式人文集當中,我們同樣有關於「Arduino、JavaScript、R、Verilog 與開放電腦計畫」的文章,讓大家可以吸收到 專業的程式資訊,希望您會喜歡這些文章。

25 |

---- (程式人雜誌編輯 - 陳鍾誠)

26 |
27 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /htm/license.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |
17 | 20 |
21 |

授權聲明

22 |

本雜誌採用 創作共用:姓名標示、相同方式分享 授權,若您想要修改本書產生衍生著作時,至少應該遵守下列授權條件:

23 |
    24 |
  1. 標示原作者姓名
  2. 25 |
  3. 採用 創作共用:姓名標示、相同方式分享 的方式公開衍生著作。
  4. 26 |
27 |

另外、當本雜誌中有文章或素材並非採用 姓名標示、相同方式分享 時,將會在該文章或素材後面標示其授權,此時該文章將以該標示的方式授權釋出,請修改者注意這些授權標示,以避免產生侵權糾紛。

28 |

例如有些文章可能不希望被作為「商業性使用」,此時就可能會採用創作共用:姓名標示、非商業性、相同方式分享 的授權,此時您就不應當將該文章用於商業用途上。

29 |

最後、懇請勿移除公益捐贈的相關描述,以便讓愛心得以持續散播!

30 |
31 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /source/home.md: -------------------------------------------------------------------------------- 1 | ### 關於程式人雜誌 2 | 3 | 程式人雜誌是一個結合「開放原始碼與公益捐款活動」的雜誌,簡稱「開放公益雜誌」。開放公益雜誌本著「讀書做善事、寫書做公益」的精神,我們非常歡迎程式人認養專欄、或者捐出您的網誌。 4 | 5 | ### 雜誌下載 6 | 7 | 出刊年月 epub ipad:PDF A4:PDF 單頁 HTM 原始碼 全部下載 8 | ------------ ---------- ----------- -------- ----------- ---------- ------------- 9 | 2013年10月 [epub] [ipad.pdf] [A4.pdf] [pmag.html] [code.zip] [all.zip] 10 | 11 | 說明:本期前半部的焦點在電磁學等領域,對此不感興趣的朋友可以直接從「程式人文集」開始閱讀,謝謝! 12 | 13 | ### 本期內容 14 | * 前言 15 | * [編輯小語](editor.html) 16 | * [授權聲明](license.html) 17 | * 人物速寫 18 | * [電磁學先鋒:安德烈-馬里·安培 (André-Marie Ampère)](people1.html) 19 | * [電磁學奇才:麥可·法拉第 (Michael Faraday)](people2.html) 20 | * [電磁學大師:詹姆斯·馬克士威 (James Clerk Maxwell)](people3.html) 21 | * 程式人短訊 22 | * [電池的歷史與原理](message1.html) 23 | * 影音頻道 24 | * [看影片學電磁物理實驗](video1.html) 25 | * 程式人討論區 26 | * [討論:關於 C 語言的「資料結構函式庫」與「記憶體分配」問題](discuss1.html) 27 | * 程式與科學 28 | * [電磁學基礎 (1) -- 關於電磁場的一些疑問?](science1.html) 29 | * 程式人文集 30 | * [Arduino入門教學(10) – 使用 SHT15 溫溼度計 (作者:Cooper Maa)](article1.html) 31 | * [JavaScript (10) – Google 的語音辨識 API 之使用 (作者:陳鍾誠)](article2.html) 32 | * [R 統計軟體(7) – 主成分分析與因子分析 (作者:陳鍾誠)](article3.html) 33 | * [Verilog (4) – 算術邏輯單元 ALU 的設計 (作者:陳鍾誠)](article4.html) 34 | * [開放電腦計畫 (4) – CPU0mc 處理器:使用 Verilog 實作 (作者:陳鍾誠)](article5.html) 35 | * [R 講題分享 – 在雲端運算環境使用 R 和 MPI (作者:Taiwan R User Group)](article6.html) 36 | * [Arduino 專題分享 – 利用藍牙模組達到兩台 arduino 互相通訊 (作者:許肇驛)](article7.html) 37 | * [雜誌訊息](info.html) 38 | 39 | ### 雜誌取得 40 | 41 | 程式人雜誌預定於每個月 1 日出刊,您可以從下列網址取得程式人雜誌的所有內容 (包含當月最新出刊的雜誌)。 42 | 43 | * 44 | 45 | ### 連絡我們 46 | 47 | 竭誠歡迎程式人投稿,或者成為本雜誌的專欄作家,現在就可以加入 [程式人雜誌社團] 一同共襄盛舉。 48 | 49 | 本雜誌編輯為「陳鍾誠 (@ccckmit)」,若要聯絡編輯,請寄信到 。 50 | 51 | [epub]: ../book/A4.epub 52 | [ipad.pdf]: ../book/ipad.pdf 53 | [A4.pdf]: ../book/A4.pdf 54 | [code.zip]: ../code.zip 55 | [pmag.html]: ../book/pmag.html 56 | [all.zip]: https://github.com/programmermagazine/201309/archive/gh-pages.zip 57 | 58 | -------------------------------------------------------------------------------- /source/discuss1.md: -------------------------------------------------------------------------------- 1 | ## 討論:關於 C 語言的「資料結構函式庫」與「記憶體分配」問題 2 | 3 | ### 問題 1: C 語言的 HashTable 4 | 5 | 討論網址: 6 | 7 | > 請問大家在寫 C 語言的時候,如果需要一個 HashTable ,那你會怎麼做呢? 8 | > 9 | > 1. 用 OpenSource .... 哪一個呢? 10 | > 2. 自己寫一個 ..... 11 | > 3. 其他 ..... 12 | 13 | 心得: 14 | 15 | 1. C 語言標準函式庫當中,沒有納入「常用的資料結構」,於是只好選用「非標準函式庫」。 16 | 2. 如果用 C++,則有 std:map 可以用。 17 | 3. 如果用 GNU glibc 或 POSIX 平台,則可以用 hsearch 函數。 18 | 4. 如果用 GTK 的基礎函式庫 glib,則有完整的「常用的資料結構」。 19 | 5. 網路上也有很多 C 的資料結構函式庫,請參考下列討論網址: 20 | * Stackoverflow: [Are there any open source C libraries with common data structures?](http://stackoverflow.com/questions/668501/are-there-any-open-source-c-libraries-with-common-data-structures) 21 | 22 | 23 | ### 問題 2: GTK 裏的 Glib 好用嗎? 24 | 25 | 討論網址: 26 | 27 | > 請問 Glib 好用嗎?在 windows 上呢? 28 | > 29 | > 30 | 31 | 心得: 32 | 33 | 1. 雖然 GTK 似乎被批評的很慘,但是 Glib 應該是很好用的,風評很不錯! 34 | 2. GTK 與 Glib 的用法,可以參考良葛格的網站 35 | * 36 | 37 | ### 問題 3: malloc 的使用會影響效能嗎? 38 | 39 | 討論網址: 40 | 41 | > 再一個問題是,你在 C 語言裡會盡可能使用靜態宣告,或常常使用 malloc 分配呢? 42 | > 43 | > 1. 盡可能使用靜態 44 | > 2. 每次都使用動態 malloc 分配,即使是字串複製也會使用 strdup 45 | > 3. malloc 時盡可能一次分配大塊,然後在慢慢使用。(例如用一大塊記憶體當字串表 ) 46 | 47 | 心得: 48 | 49 | 1. 這個問題引起的爭論特別多,所以有 158 則回應。 50 | 2. 似乎只要考慮好區域性的問題 (locality),那麼用哪一種分配策略應該對效能影向不大 (但嵌入式就不見得了)。 51 | 3. 如果採用 「2. 每次 malloc 小塊的方式」,有可能「區域性」會不好,所以要小心。 52 | 4. 區域性的問題主要是影響到快取的 Hit Rate (cache hit/cache miss)。 53 | 5. 二維以上陣列的存取順序,影響快取非常嚴重,因此必須要注意存取順序問題,例如以下狀況。 54 | 55 | 我最近讀一本書,書名是 「 [深入理解计算机系统](http://book.douban.com/subject/5333562/) 」, 56 | 發現二維以上陣列的存取順序對 locality 影響很深,而 locality 對「cache hit rate 影響很深」 57 | 特別是像以下程式: 58 | 59 | ```CPP 60 | for (i=0; i
顱顏患者 銀行:009彰化銀行民生分行
33 |
(如唇顎裂、小耳症或其他罕見顱顏缺陷) 帳號:5234-01-41778-800 34 | 02-27190408分機 232 35 | 36 | 社團法人台灣省兒童少年成長協會
單親、隔代教養.弱勢及一般家庭之兒童青少年 銀行:新光銀行
37 |
戶名:台灣省兒童少年成長協會
38 | 04-23058005 帳號:103-0912-10-000212-0 39 | ------------------------------- ----------------------------- ----------------------------------------- ------------------------------------------- 40 | 41 | [看影片學 markdown 編輯出版流程]:https://dl.dropboxusercontent.com/u/101584453/pmag/201304/htm/video1.html 42 | -------------------------------------------------------------------------------- /htm/message2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |
17 | 20 |
21 |

電容的原理

22 |

電容器(Capacitor)是兩金屬板之間存在絕緣介質的一種電路元件。其單位為法拉,符號為F。電容器利用二個導體之間的電場來儲存能量,二導體所帶的電荷大小相等,但符號相反。

23 |

若根據國際單位制,若一電容器兩極施加一伏特的電壓,其儲存電荷量為一庫侖,則此電容器的電容量為一法拉(F)。在實務上,法拉是相當大的單位,電容器的電容量一般常以毫法拉 (mF, 1mF = 10-3F)、微法拉 (µF, 1µF = 10-6F)、納法拉 (nF, 1nF = 10-9F) 或皮法拉 (pF, 1pF = 10-12F)表示。

24 |

Nollet 是一個對電學特別有興趣的法國神父,1746 年時、他做了一個實驗

25 |

Nollet was particularly interested in the new science of electricity, which he explored with the help of Du Fay and Réaumur. He joined the Royal Society of London in 1734 and later became the first professor of experimental physics at the University of Paris. He is reputed to have given the name to the Leyden jar after it was invented by Pieter van Musschenbroek.

26 |

In 1746 he gathered about two hundred monks into a circle about a mile (1.6 km) in circumference, with pieces of iron wire connecting them. He then discharged a battery of Leyden jars through the human chain and observed that each man reacted at substantially the same time to the electric shock, showing that the speed of electricity's propagation was very high. In 1748 he discovered the phenomenon of osmosis in natural membranes.

27 |

In 1750 Nollet made some advances on electrospray. He noted water flowing from a vessel would aerosolize if the vessel was electrified and placed near electrical ground. He also noted that similarly “a person, electrified by connection to a high-voltage generator, would not bleed normally if he were to cut himself; blood would spray from the wound.”

28 |

【本文由陳鍾誠取材並修改自 維基百科 與 OpenStax College 的 College Physics 一書,採用創作共用的 姓名標示、相同方式分享 授權】

29 |
30 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /code/SpeechToText.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 65 |
66 | 最後結果:
67 | 中間結果:
68 | 辨識語言: 69 | 73 |
74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /source/article1.md: -------------------------------------------------------------------------------- 1 | ## Arduino入門教學(10) – 使用 SHT15 溫溼度計 (作者:Cooper Maa) 2 | 3 | ### 實驗目的 4 | 5 | 練習使用 SHT15 溫溼度計,將讀到的溫溼度讀值輸出到 Serial Port 上。下圖為 SHT15 模組的外觀: 6 | 7 | ![](../img/Arduino_SHT15.jpg) 8 | 9 | ### 材料 10 | 11 | * 麵包板 x 1 12 | * Arduino 主板 x 1 13 | * SHT15 Breakout Board (分接板) x 1 14 | * 單心線 x N 15 | * 接線 16 | * 將 SHT15 的 VCC 接到 Arduino 的 +5V,GND 接到 Arduino 的 GND 17 | * 將 SHT15 的 Data 腳接到 pin11, SCK 接到 pin10 18 | 19 | ![](../img/arduino_sht15_board.png) 20 | 21 | 實際接線照片: 22 | 23 | ![](../img/Arduino_SHT15_board2.png) 24 | 25 | ### 電路圖 26 | 27 | ![](../img/Arduino_SHT15_circuit1.png) 28 | 29 | ### SHT1x 函式庫 30 | 31 | 關於 SHT1x 溫溼計,原本使用程序是很繁瑣的(見 SHT1x and SHT7x Sample Code),SHT1x Library 已經把事情變簡單了,現在只要安裝 SHT1x Library,就可以很輕鬆地讀取 SHT1x 系列(SHT10, SHT11, SHT15) 溫溼度計的讀值。 32 | 33 | SHT1x Library 的安裝辦法很簡單,先到官網或直接點此下載函式庫後,把檔案解壓縮放到 Arduino 的 Libraries 資料夾底下即可: 34 | 35 | ![](../img/Arduino_SHT15_library_1.png) 36 | 37 | ### 程式碼 38 | 39 | 底下是 SHT15 溫溼度計的讀取範例,程式讓 Arduino 向 SHT15 讀取資料,並將讀到的溫溼度讀值輸出到 Serial Port,每秒鐘做一次(ReadSHT1x.pde): 40 | 41 | ```CPP 42 | /* Lab10 - SHT1x 系列(SHT10, SHT11, SHT15)溫溼度計的讀取範例 43 | * 44 | * 須安裝 SHT1x Library: 45 | * https://github.com/practicalarduino/SHT1x/ 46 | */ 47 | 48 | #include 49 | 50 | // 定義 SHT1x 連接的腳位 51 | #define dataPin 11 52 | #define clockPin 10 53 | 54 | // 初始化 sht1x 物件 55 | SHT1x sht1x(dataPin, clockPin); 56 | 57 | void setup() 58 | { 59 | Serial.begin(9600); 60 | } 61 | 62 | void loop() 63 | { 64 | // 宣告三個變數,分別代表溫度(攝氏), 溫度(華氏) 以及溼度 65 | float temp_c, temp_f, humidity; 66 | 67 | // 讀取 SHT1x 溫溼度值 68 | temp_c = sht1x.readTemperatureC(); 69 | temp_f = sht1x.readTemperatureF(); 70 | humidity = sht1x.readHumidity(); 71 | 72 | // 將讀到的溫溼度讀值輸出至 Serial Port 73 | Serial.print("Temperature: "); 74 | Serial.print(temp_c, 1); // 顯示到小數點後一位 75 | Serial.print("C / "); 76 | Serial.print(temp_f, 1); // 顯示到小數點後一位 77 | Serial.print("F. Humidity: "); 78 | Serial.print(humidity); 79 | Serial.println("%"); 80 | 81 | delay(1000); 82 | } 83 | ``` 84 | 85 | ### 範例照片/影片 86 | 87 | 上傳程式到 Arduino 後,打開 Serial Monitor,就會看到 Arduino 送過來的溫溼度資料,如下圖: 88 | 89 | ![](../img/Arduino_SHT15_Screen1.png) 90 | 91 | ### 動動腦 92 | 93 | 試修改程式,把從 SHT15 讀到的溫溼度資料輸出到 2x16 的 LCD 上。2x16 LCD 的使用方法可參考「 [Lab9 在 2x16 LCD 上顯示 "Hello World” 訊息](http://coopermaa2nd.blogspot.com/2010/12/arduino-lab9-2x16-lcd-world.html) 」 94 | Arduino 現在可以把溫溼度資料送到 Serial Port,試在 PC 端寫一支「溫溼度 Data Log」程式,把 Arduino 送過來的溫溼度資料寫到資料庫,資料庫軟體任君選擇,要用 Excel, Access, SQLite 或 MySQL 都可以。 95 | 96 | 使用你熟悉的工具(如 Excel, JavaScript/flot, Tcl),繒製一張每日溫溼度曲線度。 97 | 98 | ### 延伸閱讀 99 | 100 | * [Sensirion SHT1x Datasheet](http://www.sensirion.com/en/pdf/product_information/Datasheet-humidity-sensor-SHT1x.pdf) 101 | * [SHT1x and SHT7x Sample Code](http://www.sensirion.com/en/pdf/product_information/Sample_Code_humidity_sensor_SHTxx.pdf) 102 | * [Sparkfun - SHT15 Breakout board](http://www.sparkfun.com/products/8257) 103 | * [SHT1x Library for Arduino](https://github.com/practicalarduino/SHT1x) 104 | 105 | 【本文作者為馬萬圳,原文網址為: ,由陳鍾誠編輯後納入本雜誌】 106 | -------------------------------------------------------------------------------- /source/message1.md: -------------------------------------------------------------------------------- 1 | ## 電池的歷史與原理 2 | 3 | 電池,一般狹義上的定義是將本身儲存的化學能轉成電能的裝置,廣義的定義為將預先儲存起的能量轉化為可供外用電能的裝置。因此,像太陽能電池只有轉化而無儲存功能的裝置不算是電池。其他名稱有電瓶、電芯,而中文池及瓶也有儲存作用之意。 4 | 5 | ### 萊頓瓶 6 | 7 | 萊頓瓶(英語:Leyden jar)是一種用以儲存靜電的裝置,最先由 Pieter van Musschenbroek(1692年-1761年)在荷蘭的萊頓試用。 8 | 作為原始形式的電容器,萊頓瓶曾被用來作為電學實驗的供電來源,也是電學研究的重大基礎。萊頓瓶的發明,標誌著對電的本質和特性進行研究的開始。 9 | 10 | 典型的萊頓瓶是一個玻璃容器,內外包覆著導電金屬箔作為極板。瓶口上端接一個球形電極,下端利用導體(通常是金屬鎖鏈)與內側金屬箔連接。萊頓瓶的充電方式是將電極接上靜電產生器等來源,外部金屬箔接地;內部與外部的金屬將會攜帶相等但極性相反的電荷。 11 | 12 | 嚴格來說,萊頓瓶並不屬於電池,而是一種電容,但早期還沒有電池的時候,常被事先充好電之後,拿來當一次性的放電體使用,所以可以說是最早的「電池」。 13 | 14 | ![圖、萊頓瓶的實體與結構](../img/LeydenJar.jpg) 15 | 16 | 以下有個關於萊頓瓶如何被用在早期電學實驗上的故事,相信大家會有興趣,故事如下: 17 | 18 | Jean-Antoine Nollet 是一個對電學特別有興趣的法國神父,1746 年時、他想要測試電流到底跑得多快,所以請兩百位修道士每個人手池金屬條 19 | 連接成總長一英哩 (1.6 公里) 的環狀迴路,然後他手持一只特大的萊頓瓶,連接上兩端的電極,結果這些修道士幾乎同時因被電極而癱軟在地。 20 | 21 | 後來他還想再做這類的實驗,但是修道士們都避之唯恐不及,拒絕再當一次實驗品,後來他只好去找法皇路易十五,讓皇帝命令一百八十名御林軍在凡爾賽宮當實驗品。 22 | 23 | 在萊頓瓶剛發明不久的那個年代,很多王公貴族對這些新奇的小玩意都很有興趣,甚這後來在酒吧裏,還流行用小的萊頓瓶去「電吻」, 24 | 也就是「觸碰一下萊頓瓶、感受被電到的感覺」。 25 | 26 | ### 伏打電堆與伽伐尼電池 27 | 28 | 在1780年,路易吉·伽伐尼 (義大利文:Luigi Galvani) 發現,兩種不同的金屬(例如,銅和鋅)連接後,如果同一時間觸摸青蛙腿的兩處神經,青蛙腿會發生收縮。 29 | 他稱這是「動物電」(animal electricity)。 30 | 31 | 伏打電堆(Voltaic pile),又名伏打堆,是最早出現的化學電池,是在1800年由義大利物理學家亞歷山卓·伏打伯爵發明。 32 | 33 | 伏打電堆由很多個單元堆積而成,每一單元有鋅板與銅板各一,其中夾著浸有鹽水的布或紙板以作為電解質。如下所示: 34 | 35 | ![圖、伏打電堆的結構與實體](../img/VoltaBattery.jpg) 36 | 37 | 後來、這類由兩種不同的金屬與一種電解質組成的電池,通常被稱為「伽伐尼電池」,其結構通常改由兩個半電池間以鹽橋或多孔物相連而成。 38 | 其電路與反應式如下: 39 | 40 | ![圖、鋅-銅 伽凡尼電池的電路圖與反應式](../img/GalvaniBattery.jpg) 41 | 42 | ### 碳鋅電池 43 | 44 | 碳鋅電池 (zinc–carbon battery) 的容器是一個鋅罐。裡面有一層由 NH4Cl 和 ZnCl2 所構成的糊狀液體, 45 | 這個糊狀液體通過一個紙層與粉末狀的碳和二氧化錳隔開。這些粉末填充在一個碳棒的周圍。 46 | 47 | 此電池正極的碳棒與二氧化錳中所混合的碳只負責引出電流,並不參與反應,正極實際參與還原反應並提供 48 | 正電的是二氧化錳,因此,又稱為錳鋅電池、鋅錳電池或鋅-二氧化錳電池,也有簡稱錳乾電池的。 49 | 50 | 碳鋅電池的電動勢大約是1.5V。電動勢的不確定是由於陰極反應十分複雜,相比來說,陽極反應(鋅端)則有一個已知的電勢。 51 | 副反應及活性反應物的消耗直接導致電池的內阻增加,電池電動勢降低。 52 | 53 | ![圖、碳鋅電池的反應式、實體與結構](../img/ZincCarbonBattery.jpg) 54 | 55 | 56 | ### 鉛酸蓄電池 57 | 58 | 蓄電池的原理是通過將化學能和直流電能相互轉化,在放電後經充電後能復原,從而達到重複使用效果。 59 | 60 | 鉛酸蓄電池 (Lead–acid battery) 的氧化還原總反應電壓為 2 V (伏特) ,所以一顆由 K 的電磁單元所組成的 61 | 鉛蓄電池之電壓通常為 2K 伏特。 62 | 63 | ![圖、鉛酸蓄電池的反應式、實體與用途](../img/LeadAcidBattery.jpg) 64 | 65 | ### 電池 DIY : 檸檬電池 66 | 67 | 看了以上這麼多電池,雖然感覺原理並不難,但是要自己動手做一顆,卻還是不知如何下手。 68 | 69 | 不過還好、我們可以用檸檬! 70 | 71 | YouTube 上已經有人做了詳細的示範,告訴我們「如何用檸檬做出電池」,請參考以下影片: 72 | 73 | * Create a Lemon Battery -- 74 | 75 | 所以、我們應該也可以用「50 元或 1 元的銅板」,加上鐵釘去做出檸檬電池,其中銅板是正極,而鐵釘因為表面通常會 76 | 鍍鋅以防止生鏽,再加上檸檬所含的電解質可以扮演鹽橋的功能,所以就可以組合成標準的「銅-鋅、伽凡尼」電池。 77 | 78 | ![圖、檸檬電池的做法](../img/LemonBattery.jpg) 79 | 80 | 「銅-鋅反應」釋放的電壓大約是 1.1 伏特,而點亮一顆 LED 需要 3 伏特以上的電壓,所以必須要用三顆以上的檸檬電池 81 | 串連,就可以點亮 LED 燈了。 82 | 83 | ### 結語 84 | 85 | 電池通常是由「化學反應」所供電的,而這些化學反應釋放的電壓經常是固定的,假如該電池的化學反應釋放的電壓是 n 86 | 伏特,那麼這類電池所釋放的電壓通常是 n*k 伏特,因為一顆電池通常是由 k 個電池單元 (Battery Cell) 所組成的。 87 | 88 | ### 參考文獻 89 | * 維基百科:[電池](http://zh.wikipedia.org/wiki/%E7%94%B5%E6%B1%A0) 90 | * 維基百科:[伽凡尼電池](http://zh.wikipedia.org/wiki/%E4%BC%BD%E5%87%A1%E5%B0%BC%E9%9B%BB%E6%B1%A0) 91 | * 維基百科:[伏打電堆](http://zh.wikipedia.org/wiki/%E4%BC%8F%E6%89%93%E7%94%B5%E5%A0%86) 92 | * 維基百科:[鉛酸蓄電池](http://zh.wikipedia.org/wiki/%E9%89%9B%E9%85%B8%E9%9B%BB%E6%B1%A0) 93 | * 維基百科:[碳鋅電池](http://zh.wikipedia.org/wiki/%E9%8B%85%E9%8C%B3%E9%9B%BB%E6%B1%A0) 94 | * 95 | * [檸檬電池如何讓燈泡發亮?](http://jeanniepix.pixnet.net/blog/post/116589175-%E6%AA%B8%E6%AA%AC%E9%9B%BB%E6%B1%A0%E5%A6%82%E4%BD%95%E8%AE%93%E7%87%88%E6%B3%A1%E7%99%BC%E4%BA%AE%EF%BC%9F) 96 | 97 | 98 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 99 | 100 | -------------------------------------------------------------------------------- /source/people1.md0: -------------------------------------------------------------------------------- 1 | ## 電磁學先鋒:安德烈-馬里·安培 (André-Marie Ampère) 2 | 3 | ![圖、安德烈-馬里·安培](../img/Ampere.jpg) 4 | 5 | 安德烈-馬里·安培(André-Marie Ampère,FRS,1775年-1836年),法國化學家,在電磁作用方面的研究成就卓著, 6 | 對物理學及數學也有重要貢獻。電流的國際單位安培即以其姓氏命名。 7 | 8 | 1820年 7月,H.C.奧斯特發表關於電流磁效應的論文後,安培馬上集中精力研究,幾周內就提出了安培定則即右手螺旋定則。 9 | 隨後很快在幾個月之內連續發表了 3 篇論文,並設計了 9 個著名的實驗,總結了載流迴路中電流元在電磁場中的運動規律, 10 | 即安培定律。 11 | 12 | 1820年 9月25日,安培報告了兩根載流導線存在相互影響,相同方向的平行電流彼此相吸,相反方向的平行電流彼此相斥; 13 | 對兩個線圈之間的吸引和排斥也作了討論。通過一系列經典的和簡單的實驗,他認識到磁是由運動的電產生的。 14 | 15 | 1821~1825年,安培做了關於電流相互作用的四個精巧的實驗,並根據這四個實驗導出兩個電流源之間的相互作用力公式。 16 | 17 | 1827年,安培將他的電磁現象的研究綜合在《電動力學現象的數學理論》一書中 ,這是電磁學史上一部重要的經典論著, 18 | 對以後電磁學的發展起了深遠的影響。 19 | 20 | ### 安培的科學貢獻 21 | 22 | 1、直線電流的安培定則用右手握住導線,讓伸直的大拇指所指的方向跟電流的方向一致,那麼彎曲的四指所指的方向就是磁感線的環繞方向。 23 | 24 | ![圖、安培右手定則](../img/AmpereRightHandRule.jpg) 25 | 26 | 然後、安培用數學描述這個現象,於是提出了著名的「安培定律」。 27 | 28 | | | 積分形式 | 微分形式 | 「馬克士威-安培方程式」的微分形式 | 29 | |----------|----------------------------------------|-------------------------------|------------------------------------------------------------------------------| 30 | | 安培定律 | $\oint_{C} B \cdot \vec{dl} = \mu_0 I$ | $\nabla \times B = \mu_0 J$ | $\nabla \times B = \mu_0 J+ \mu_0\varepsilon_0\frac{\partial E}{\partial t}$ | 31 | 32 | 「安培定律的積分形式」所述說的是:「電流直線流動 I 會造成環形磁場 $\oint_{C} B \cdot \vec{dl}$ 」,而後人所改寫的「微分形式」所述說的是: 33 | 「磁通量 B 的旋度 $\nabla \times B$ 來自於(產生該磁場的)傳導電流密度 J」。 34 | 35 | 這個定律後來經過馬克斯威的修正之後,成了「馬克斯威電磁波方程式」裏重要的一個公式,如上表最右邊的公式所示, 36 | 該公式主要加入了「電流的變化 (或說電通量變化) 也會造成磁場的改變」這個修正。 37 | 38 | 2、環形電流的安培定則讓右手彎曲的四指和環形電流的方向一致,那麼伸直的大拇指所指的方向就是環形電流中心軸線上磁感線的方向。 39 | 40 | ![圖、環形電流的安培定則](../img/AmpereRightHandRule2.jpg) 41 | 42 | 3. 安培還發現,電流在線圈中流動的時候表現出來的磁性和磁鐵相似,創製出第一個螺線管,在這個基礎上發明了探測和量度電流的電流計。 43 | 44 | ![圖、安培電流計](../img/AmpereMeter.jpg) 45 | 46 | 4. 提出分子電流假說,認為構成磁體的分子內部存在一種環形電流,這在當時物質結構的知識甚少的情況下無法證實。但後來的科學家了解到物質由 47 | 分子組成,而分子由原子組成,原子中有繞核運動的電子,安培的分子電流假說有了實在的內容,已成為認識物質磁性的重要依據。 48 | 49 | > 補充 1:1911年,拉塞福提出電子環繞原子旋轉的模型,此時距離安培電子流假說已將近百年, 50 | 51 | ![圖、安德烈-馬里·安培](../img/MocularModel.jpg) 52 | 53 | > 補充 2: 1913年,波耳提出了拉塞福模型的改良版,加入了軌域的觀念。距離原子核越遠,軌域的能量就越高。當電子從距離原子核更遠的軌域,躍遷到距離原子核更近的軌域時,會以光子的形式釋放出能量。相反的,從低能級軌域躍遷到高能級軌域則會吸收能量。 54 | 55 | ![圖、波耳的能階軌域模型](../img/BoyerModel.jpg) 56 | 57 | 藉著這些量子化軌域,波耳正確地計算出氫原子光譜。但是,使用波耳模型,並不能夠解釋譜線的相對強度,也無法計算出更複雜原子的光譜。 58 | 這些難題,尚待後來量子力學的解釋。 59 | 60 | ### 安培的小故事 61 | 62 | 安培思考科學問題專心致志,據說有一次,安培正慢慢地向他任教的學校走去,邊走邊思索著一個電學問題。 63 | 經過塞納河的時候,他隨手揀起一塊鵝卵石裝進口袋。過一會兒,又從口袋裡掏出來扔到河裡。到學校後, 64 | 他走進教室,習慣地掏懷錶看時間,拿出來的卻是一塊鵝卵石。原來,懷錶已被扔進了塞納河。 65 | 66 | 還有一次,安培在街上散步,走著走著,想出了一個電學問題的算式,正為沒有地方運算而發愁。突然, 67 | 他見到面前有一塊「黑板」,就拿出隨身攜帶的粉筆,在上面運算起來。那「黑板」原來是一輛馬車的車廂背面。 68 | 馬車走動了,他也跟著走,邊走邊寫;馬車越來越快,他就跑了起來,一心一意要完成他的推導, 69 | 直到他實在追不上馬車了才停下腳步。安培這個失常的行動,使街上的人笑得前仰後合。 70 | 71 | ### 結語 72 | 73 | 從以上的小故事我們可以看到,安培能夠在電磁學上有卓越的貢獻,並非僥倖而已,當一個人全心投入某個領域時, 74 | 才有可能在該領域散發出無比耀眼的光芒啊! 75 | 76 | ### 參考文獻 77 | * 維基百科:[安德烈-瑪麗·安培](http://zh.wikipedia.org/wiki/%E5%AE%89%E5%BE%B7%E7%83%88-%E7%8E%9B%E4%B8%BD%C2%B7%E5%AE%89%E5%9F%B9) 78 | * 維基百科:[安培定律](http://zh.wikipedia.org/wiki/%E5%AE%89%E5%9F%B9%E5%AE%9A%E5%BE%8B) 79 | * 維基百科:[安培计](http://zh.wikipedia.org/wiki/%E5%AE%89%E5%9F%B9%E8%AE%A1) 80 | * 維基百科:[電感](http://zh.wikipedia.org/zh-tw/%E7%94%B5%E6%84%9F) 81 | * 維基百科:[電子](http://zh.wikipedia.org/zh-tw/%E7%94%B5%E5%AD%90) 82 | * 維基百科:[拉塞福模型](http://zh.wikipedia.org/wiki/%E6%8B%89%E5%A1%9E%E7%A6%8F%E6%A8%A1%E5%9E%8B) 83 | * [電的旅程:探索人類駕馭電子的歷史過程](http://www.books.com.tw/products/0010498148), 作者:張大凱, 遠見天下出版社 84 | * [電磁波 :一本電機系學生的入門書](http://www.tenlong.com.tw/items/9866184897?item_id=462096), 高銘盛, 滄海出版社 85 | 86 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 87 | 88 | 89 | -------------------------------------------------------------------------------- /code/alu: -------------------------------------------------------------------------------- 1 | #! /c/iverilog/bin/vvp 2 | :ivl_version "0.9.5 " "(v0_9_5)"; 3 | :vpi_time_precision + 0; 4 | :vpi_module "system"; 5 | :vpi_module "v2005_math"; 6 | :vpi_module "va_math"; 7 | S_0071FE30 .scope module, "main" "main" 2 19; 8 | .timescale 0 0; 9 | v0071E850_0 .var "a", 7 0; 10 | v0071E8A8_0 .var "b", 7 0; 11 | v0071E900_0 .var "op", 2 0; 12 | v0071E958_0 .net "y", 7 0, v0071E7F8_0; 1 drivers 13 | S_00719918 .scope module, "alu1" "alu" 2 24, 2 2, S_0071FE30; 14 | .timescale 0 0; 15 | v007199A0_0 .net "a", 7 0, v0071E850_0; 1 drivers 16 | v007199F8_0 .net "b", 7 0, v0071E8A8_0; 1 drivers 17 | v0071E7A0_0 .net "op", 2 0, v0071E900_0; 1 drivers 18 | v0071E7F8_0 .var "y", 7 0; 19 | E_0071F7A0 .event edge, v0071E7A0_0, v007199F8_0, v007199A0_0; 20 | .scope S_00719918; 21 | T_0 ; 22 | %wait E_0071F7A0; 23 | %load/v 8, v0071E7A0_0, 3; 24 | %cmpi/u 8, 0, 3; 25 | %jmp/1 T_0.0, 6; 26 | %cmpi/u 8, 1, 3; 27 | %jmp/1 T_0.1, 6; 28 | %cmpi/u 8, 2, 3; 29 | %jmp/1 T_0.2, 6; 30 | %cmpi/u 8, 3, 3; 31 | %jmp/1 T_0.3, 6; 32 | %cmpi/u 8, 4, 3; 33 | %jmp/1 T_0.4, 6; 34 | %cmpi/u 8, 5, 3; 35 | %jmp/1 T_0.5, 6; 36 | %cmpi/u 8, 6, 3; 37 | %jmp/1 T_0.6, 6; 38 | %cmpi/u 8, 7, 3; 39 | %jmp/1 T_0.7, 6; 40 | %jmp T_0.8; 41 | T_0.0 ; 42 | %load/v 8, v007199A0_0, 8; 43 | %load/v 16, v007199F8_0, 8; 44 | %add 8, 16, 8; 45 | %set/v v0071E7F8_0, 8, 8; 46 | %jmp T_0.8; 47 | T_0.1 ; 48 | %load/v 8, v007199A0_0, 8; 49 | %load/v 16, v007199F8_0, 8; 50 | %sub 8, 16, 8; 51 | %set/v v0071E7F8_0, 8, 8; 52 | %jmp T_0.8; 53 | T_0.2 ; 54 | %load/v 8, v007199A0_0, 8; 55 | %load/v 16, v007199F8_0, 8; 56 | %mul 8, 16, 8; 57 | %set/v v0071E7F8_0, 8, 8; 58 | %jmp T_0.8; 59 | T_0.3 ; 60 | %load/v 8, v007199A0_0, 8; 61 | %load/v 16, v007199F8_0, 8; 62 | %div 8, 16, 8; 63 | %set/v v0071E7F8_0, 8, 8; 64 | %jmp T_0.8; 65 | T_0.4 ; 66 | %load/v 8, v007199A0_0, 8; 67 | %load/v 16, v007199F8_0, 8; 68 | %and 8, 16, 8; 69 | %set/v v0071E7F8_0, 8, 8; 70 | %jmp T_0.8; 71 | T_0.5 ; 72 | %load/v 8, v007199A0_0, 8; 73 | %load/v 16, v007199F8_0, 8; 74 | %or 8, 16, 8; 75 | %set/v v0071E7F8_0, 8, 8; 76 | %jmp T_0.8; 77 | T_0.6 ; 78 | %load/v 8, v007199A0_0, 8; 79 | %inv 8, 8; 80 | %set/v v0071E7F8_0, 8, 8; 81 | %jmp T_0.8; 82 | T_0.7 ; 83 | %load/v 8, v007199A0_0, 8; 84 | %load/v 16, v007199F8_0, 8; 85 | %xor 8, 16, 8; 86 | %set/v v0071E7F8_0, 8, 8; 87 | %jmp T_0.8; 88 | T_0.8 ; 89 | %vpi_call 2 14 "$display", "base 10 : %dns : op=%d a=%d b=%d y=%d", $stime, v0071E7A0_0, v007199A0_0, v007199F8_0, v0071E7F8_0; 90 | %vpi_call 2 15 "$display", "base 2 : %dns : op=%b a=%b b=%b y=%b", $stime, v0071E7A0_0, v007199A0_0, v007199F8_0, v0071E7F8_0; 91 | %jmp T_0; 92 | .thread T_0, $push; 93 | .scope S_0071FE30; 94 | T_1 ; 95 | %movi 8, 7, 8; 96 | %set/v v0071E850_0, 8, 8; 97 | %movi 8, 3, 8; 98 | %set/v v0071E8A8_0, 8, 8; 99 | %set/v v0071E900_0, 0, 3; 100 | %end; 101 | .thread T_1; 102 | .scope S_0071FE30; 103 | T_2 ; 104 | %delay 50, 0; 105 | %load/v 8, v0071E900_0, 3; 106 | %mov 11, 0, 29; 107 | %addi 8, 1, 32; 108 | %set/v v0071E900_0, 8, 3; 109 | %jmp T_2; 110 | .thread T_2; 111 | .scope S_0071FE30; 112 | T_3 ; 113 | %delay 1000, 0; 114 | %vpi_call 2 36 "$finish"; 115 | %end; 116 | .thread T_3; 117 | # The file index is used to find the file name in the following table. 118 | :file_names 3; 119 | "N/A"; 120 | ""; 121 | "alu.v"; 122 | -------------------------------------------------------------------------------- /code/alu2: -------------------------------------------------------------------------------- 1 | #! /c/iverilog/bin/vvp 2 | :ivl_version "0.9.5 " "(v0_9_5)"; 3 | :vpi_time_precision + 0; 4 | :vpi_module "system"; 5 | :vpi_module "v2005_math"; 6 | :vpi_module "va_math"; 7 | S_0086FE30 .scope module, "main" "main" 2 20; 8 | .timescale 0 0; 9 | v0086E850_0 .var "a", 7 0; 10 | v0086E8A8_0 .var "b", 7 0; 11 | v0086E900_0 .var "op", 2 0; 12 | v0086E958_0 .net "y", 7 0, v0086E7F8_0; 1 drivers 13 | S_00869918 .scope module, "alu1" "alu" 2 25, 2 2, S_0086FE30; 14 | .timescale 0 0; 15 | v008699A0_0 .net "a", 7 0, v0086E850_0; 1 drivers 16 | v008699F8_0 .net "b", 7 0, v0086E8A8_0; 1 drivers 17 | v0086E7A0_0 .net "op", 2 0, v0086E900_0; 1 drivers 18 | v0086E7F8_0 .var "y", 7 0; 19 | E_0086F7A0 .event edge, v0086E7A0_0, v008699F8_0, v008699A0_0; 20 | .scope S_00869918; 21 | T_0 ; 22 | %wait E_0086F7A0; 23 | %load/v 8, v0086E7A0_0, 3; 24 | %cmpi/u 8, 0, 3; 25 | %jmp/1 T_0.0, 6; 26 | %cmpi/u 8, 1, 3; 27 | %jmp/1 T_0.1, 6; 28 | %cmpi/u 8, 2, 3; 29 | %jmp/1 T_0.2, 6; 30 | %cmpi/u 8, 3, 3; 31 | %jmp/1 T_0.3, 6; 32 | %cmpi/u 8, 4, 3; 33 | %jmp/1 T_0.4, 6; 34 | %cmpi/u 8, 5, 3; 35 | %jmp/1 T_0.5, 6; 36 | %cmpi/u 8, 6, 3; 37 | %jmp/1 T_0.6, 6; 38 | %cmpi/u 8, 7, 3; 39 | %jmp/1 T_0.7, 6; 40 | %jmp T_0.8; 41 | T_0.0 ; 42 | %load/v 8, v008699A0_0, 8; 43 | %load/v 16, v008699F8_0, 8; 44 | %add 8, 16, 8; 45 | %set/v v0086E7F8_0, 8, 8; 46 | %jmp T_0.8; 47 | T_0.1 ; 48 | %load/v 8, v008699A0_0, 8; 49 | %load/v 16, v008699F8_0, 8; 50 | %sub 8, 16, 8; 51 | %set/v v0086E7F8_0, 8, 8; 52 | %jmp T_0.8; 53 | T_0.2 ; 54 | %load/v 8, v008699A0_0, 8; 55 | %load/v 16, v008699F8_0, 8; 56 | %mul 8, 16, 8; 57 | %set/v v0086E7F8_0, 8, 8; 58 | %jmp T_0.8; 59 | T_0.3 ; 60 | %load/v 8, v008699A0_0, 8; 61 | %load/v 16, v008699F8_0, 8; 62 | %div 8, 16, 8; 63 | %set/v v0086E7F8_0, 8, 8; 64 | %jmp T_0.8; 65 | T_0.4 ; 66 | %load/v 8, v008699A0_0, 8; 67 | %load/v 16, v008699F8_0, 8; 68 | %and 8, 16, 8; 69 | %set/v v0086E7F8_0, 8, 8; 70 | %jmp T_0.8; 71 | T_0.5 ; 72 | %load/v 8, v008699A0_0, 8; 73 | %load/v 16, v008699F8_0, 8; 74 | %or 8, 16, 8; 75 | %set/v v0086E7F8_0, 8, 8; 76 | %jmp T_0.8; 77 | T_0.6 ; 78 | %load/v 8, v008699A0_0, 8; 79 | %inv 8, 8; 80 | %set/v v0086E7F8_0, 8, 8; 81 | %jmp T_0.8; 82 | T_0.7 ; 83 | %load/v 8, v008699A0_0, 8; 84 | %load/v 16, v008699F8_0, 8; 85 | %xor 8, 16, 8; 86 | %set/v v0086E7F8_0, 8, 8; 87 | %jmp T_0.8; 88 | T_0.8 ; 89 | %vpi_call 2 15 "$display", "base 10 : %dns : op=%d a=%d b=%d y=%d", $stime, v0086E7A0_0, v008699A0_0, v008699F8_0, v0086E7F8_0; 90 | %vpi_call 2 16 "$display", "base 2 : %dns : op=%b a=%b b=%b y=%b", $stime, v0086E7A0_0, v008699A0_0, v008699F8_0, v0086E7F8_0; 91 | %jmp T_0; 92 | .thread T_0, $push; 93 | .scope S_0086FE30; 94 | T_1 ; 95 | %movi 8, 7, 8; 96 | %set/v v0086E850_0, 8, 8; 97 | %movi 8, 3, 8; 98 | %set/v v0086E8A8_0, 8, 8; 99 | %set/v v0086E900_0, 0, 3; 100 | %end; 101 | .thread T_1; 102 | .scope S_0086FE30; 103 | T_2 ; 104 | %delay 50, 0; 105 | %load/v 8, v0086E900_0, 3; 106 | %mov 11, 0, 29; 107 | %addi 8, 1, 32; 108 | %set/v v0086E900_0, 8, 3; 109 | %jmp T_2; 110 | .thread T_2; 111 | .scope S_0086FE30; 112 | T_3 ; 113 | %delay 1000, 0; 114 | %vpi_call 2 37 "$finish"; 115 | %end; 116 | .thread T_3; 117 | # The file index is used to find the file name in the following table. 118 | :file_names 3; 119 | "N/A"; 120 | ""; 121 | "alu2.v"; 122 | -------------------------------------------------------------------------------- /source/people1.md: -------------------------------------------------------------------------------- 1 | ## 電磁學先鋒:安德烈-馬里·安培 (André-Marie Ampère) 2 | 3 | ![圖、安德烈-馬里·安培](../img/Ampere.jpg) 4 | 5 | 安德烈-馬里·安培(André-Marie Ampère,FRS,1775年-1836年),法國化學家,在電磁作用方面的研究成就卓著, 6 | 對物理學及數學也有重要貢獻。電流的國際單位安培即以其姓氏命名。 7 | 8 | 1820年 7月,H.C.奧斯特發表關於電流磁效應的論文後,安培馬上集中精力研究,幾周內就提出了安培定則即右手螺旋定則。 9 | 隨後很快在幾個月之內連續發表了 3 篇論文,並設計了 9 個著名的實驗,總結了載流迴路中電流元在電磁場中的運動規律, 10 | 即安培定律。 11 | 12 | 1820年 9月25日,安培報告了兩根載流導線存在相互影響,相同方向的平行電流彼此相吸,相反方向的平行電流彼此相斥; 13 | 對兩個線圈之間的吸引和排斥也作了討論。通過一系列經典的和簡單的實驗,他認識到磁是由運動的電產生的。 14 | 15 | 1821~1825年,安培做了關於電流相互作用的四個精巧的實驗,並根據這四個實驗導出兩個電流源之間的相互作用力公式。 16 | 17 | 1827年,安培將他的電磁現象的研究綜合在《電動力學現象的數學理論》一書中 ,這是電磁學史上一部重要的經典論著, 18 | 對以後電磁學的發展起了深遠的影響。 19 | 20 | ### 安培的科學貢獻 21 | 22 | 1、直線電流的安培定則用右手握住導線,讓伸直的大拇指所指的方向跟電流的方向一致,那麼彎曲的四指所指的方向就是磁感線的環繞方向。 23 | 24 | ![圖、安培右手定則](../img/AmpereRightHandRule.jpg) 25 | 26 | 然後、安培用數學描述這個現象,於是提出了著名的「安培定律」。 27 | 28 | | | 積分形式 | 微分形式 | 「馬克士威-安培方程式」的微分形式 | 29 | |----------|----------------------------------------|-------------------------------|------------------------------------------------------------------------------| 30 | | 安培定律 | ![](../timg/_oint__C_9078963ed770e004bed65ace403c77a9.jpg) | ![](../timg/_nabla_t_f195a2c3ac1e7b023641cb07df0d208e.jpg) | ![](../timg/_nabla_t_71472b68994d8c09ae7c7f86ef45465d.jpg) | 31 | 32 | 「安培定律的積分形式」所述說的是:「電流直線流動 I 會造成環形磁場 ![](../timg/_oint__C_6ebb62f837eb5efd9159d5fe5fa4ed1d.jpg) 」,而後人所改寫的「微分形式」所述說的是: 33 | 「磁通量 B 的旋度 ![](../timg/_nabla_t_d2043e5b8de68c1f0f7e31e126f5636a.jpg) 來自於(產生該磁場的)傳導電流密度 J」。 34 | 35 | 這個定律後來經過馬克斯威的修正之後,成了「馬克斯威電磁波方程式」裏重要的一個公式,如上表最右邊的公式所示, 36 | 該公式主要加入了「電流的變化 (或說電通量變化) 也會造成磁場的改變」這個修正。 37 | 38 | 2、環形電流的安培定則讓右手彎曲的四指和環形電流的方向一致,那麼伸直的大拇指所指的方向就是環形電流中心軸線上磁感線的方向。 39 | 40 | ![圖、環形電流的安培定則](../img/AmpereRightHandRule2.jpg) 41 | 42 | 3. 安培還發現,電流在線圈中流動的時候表現出來的磁性和磁鐵相似,創製出第一個螺線管,在這個基礎上發明了探測和量度電流的電流計。 43 | 44 | ![圖、安培電流計](../img/AmpereMeter.jpg) 45 | 46 | 4. 提出分子電流假說,認為構成磁體的分子內部存在一種環形電流,這在當時物質結構的知識甚少的情況下無法證實。但後來的科學家了解到物質由 47 | 分子組成,而分子由原子組成,原子中有繞核運動的電子,安培的分子電流假說有了實在的內容,已成為認識物質磁性的重要依據。 48 | 49 | > 補充 1:1911年,拉塞福提出電子環繞原子旋轉的模型,此時距離安培電子流假說已將近百年, 50 | 51 | ![圖、安德烈-馬里·安培](../img/MocularModel.jpg) 52 | 53 | > 補充 2: 1913年,波耳提出了拉塞福模型的改良版,加入了軌域的觀念。距離原子核越遠,軌域的能量就越高。當電子從距離原子核更遠的軌域,躍遷到距離原子核更近的軌域時,會以光子的形式釋放出能量。相反的,從低能級軌域躍遷到高能級軌域則會吸收能量。 54 | 55 | ![圖、波耳的能階軌域模型](../img/BoyerModel.jpg) 56 | 57 | 藉著這些量子化軌域,波耳正確地計算出氫原子光譜。但是,使用波耳模型,並不能夠解釋譜線的相對強度,也無法計算出更複雜原子的光譜。 58 | 這些難題,尚待後來量子力學的解釋。 59 | 60 | ### 安培的小故事 61 | 62 | 安培思考科學問題專心致志,據說有一次,安培正慢慢地向他任教的學校走去,邊走邊思索著一個電學問題。 63 | 經過塞納河的時候,他隨手揀起一塊鵝卵石裝進口袋。過一會兒,又從口袋裡掏出來扔到河裡。到學校後, 64 | 他走進教室,習慣地掏懷錶看時間,拿出來的卻是一塊鵝卵石。原來,懷錶已被扔進了塞納河。 65 | 66 | 還有一次,安培在街上散步,走著走著,想出了一個電學問題的算式,正為沒有地方運算而發愁。突然, 67 | 他見到面前有一塊「黑板」,就拿出隨身攜帶的粉筆,在上面運算起來。那「黑板」原來是一輛馬車的車廂背面。 68 | 馬車走動了,他也跟著走,邊走邊寫;馬車越來越快,他就跑了起來,一心一意要完成他的推導, 69 | 直到他實在追不上馬車了才停下腳步。安培這個失常的行動,使街上的人笑得前仰後合。 70 | 71 | ### 結語 72 | 73 | 從以上的小故事我們可以看到,安培能夠在電磁學上有卓越的貢獻,並非僥倖而已,當一個人全心投入某個領域時, 74 | 才有可能在該領域散發出無比耀眼的光芒啊! 75 | 76 | ### 參考文獻 77 | * 維基百科:[安德烈-瑪麗·安培](http://zh.wikipedia.org/wiki/%E5%AE%89%E5%BE%B7%E7%83%88-%E7%8E%9B%E4%B8%BD%C2%B7%E5%AE%89%E5%9F%B9) 78 | * 維基百科:[安培定律](http://zh.wikipedia.org/wiki/%E5%AE%89%E5%9F%B9%E5%AE%9A%E5%BE%8B) 79 | * 維基百科:[安培计](http://zh.wikipedia.org/wiki/%E5%AE%89%E5%9F%B9%E8%AE%A1) 80 | * 維基百科:[電感](http://zh.wikipedia.org/zh-tw/%E7%94%B5%E6%84%9F) 81 | * 維基百科:[電子](http://zh.wikipedia.org/zh-tw/%E7%94%B5%E5%AD%90) 82 | * 維基百科:[拉塞福模型](http://zh.wikipedia.org/wiki/%E6%8B%89%E5%A1%9E%E7%A6%8F%E6%A8%A1%E5%9E%8B) 83 | * [電的旅程:探索人類駕馭電子的歷史過程](http://www.books.com.tw/products/0010498148), 作者:張大凱, 遠見天下出版社 84 | * [電磁波 :一本電機系學生的入門書](http://www.tenlong.com.tw/items/9866184897?item_id=462096), 高銘盛, 滄海出版社 85 | 86 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 87 | 88 | 89 | -------------------------------------------------------------------------------- /code/alu3: -------------------------------------------------------------------------------- 1 | #! /c/iverilog/bin/vvp 2 | :ivl_version "0.9.5 " "(v0_9_5)"; 3 | :vpi_time_precision + 0; 4 | :vpi_module "system"; 5 | :vpi_module "v2005_math"; 6 | :vpi_module "va_math"; 7 | S_00679918 .scope module, "main" "main" 2 21; 8 | .timescale 0 0; 9 | v0067E340_0 .var "a", 7 0; 10 | v0067E398_0 .var "b", 7 0; 11 | v0067E3F0_0 .var "op", 2 0; 12 | v0067E448_0 .net "y", 7 0, L_0067E4A0; 1 drivers 13 | S_006799A0 .scope module, "alu1" "alu" 2 26, 2 2, S_00679918; 14 | .timescale 0 0; 15 | v00679A28_0 .net *"_s3", 6 0, C4<0000000>; 1 drivers 16 | v0067FE70_0 .net "a", 7 0, v0067E340_0; 1 drivers 17 | v0067FEC8_0 .net "b", 7 0, v0067E398_0; 1 drivers 18 | v0067FF20_0 .net "op", 2 0, v0067E3F0_0; 1 drivers 19 | v0067FF78_0 .var "ty", 0 0; 20 | v0067E2E8_0 .alias "y", 7 0, v0067E448_0; 21 | E_00674128 .event edge, v0067FF20_0, v0067FEC8_0, v0067FE70_0; 22 | L_0067E4A0 .concat [ 1 7 0 0], v0067FF78_0, C4<0000000>; 23 | .scope S_006799A0; 24 | T_0 ; 25 | %wait E_00674128; 26 | %load/v 8, v0067FF20_0, 3; 27 | %cmpi/u 8, 0, 3; 28 | %jmp/1 T_0.0, 6; 29 | %cmpi/u 8, 1, 3; 30 | %jmp/1 T_0.1, 6; 31 | %cmpi/u 8, 2, 3; 32 | %jmp/1 T_0.2, 6; 33 | %cmpi/u 8, 3, 3; 34 | %jmp/1 T_0.3, 6; 35 | %cmpi/u 8, 4, 3; 36 | %jmp/1 T_0.4, 6; 37 | %cmpi/u 8, 5, 3; 38 | %jmp/1 T_0.5, 6; 39 | %cmpi/u 8, 6, 3; 40 | %jmp/1 T_0.6, 6; 41 | %cmpi/u 8, 7, 3; 42 | %jmp/1 T_0.7, 6; 43 | %jmp T_0.8; 44 | T_0.0 ; 45 | %load/v 8, v0067FE70_0, 8; 46 | %load/v 16, v0067FEC8_0, 8; 47 | %add 8, 16, 8; 48 | %set/v v0067FF78_0, 8, 1; 49 | %jmp T_0.8; 50 | T_0.1 ; 51 | %load/v 8, v0067FE70_0, 8; 52 | %load/v 16, v0067FEC8_0, 8; 53 | %sub 8, 16, 8; 54 | %set/v v0067FF78_0, 8, 1; 55 | %jmp T_0.8; 56 | T_0.2 ; 57 | %load/v 8, v0067FE70_0, 8; 58 | %load/v 16, v0067FEC8_0, 8; 59 | %mul 8, 16, 8; 60 | %set/v v0067FF78_0, 8, 1; 61 | %jmp T_0.8; 62 | T_0.3 ; 63 | %load/v 8, v0067FE70_0, 8; 64 | %load/v 16, v0067FEC8_0, 8; 65 | %div 8, 16, 8; 66 | %set/v v0067FF78_0, 8, 1; 67 | %jmp T_0.8; 68 | T_0.4 ; 69 | %load/v 8, v0067FE70_0, 8; 70 | %load/v 16, v0067FEC8_0, 8; 71 | %and 8, 16, 8; 72 | %set/v v0067FF78_0, 8, 1; 73 | %jmp T_0.8; 74 | T_0.5 ; 75 | %load/v 8, v0067FE70_0, 8; 76 | %load/v 16, v0067FEC8_0, 8; 77 | %or 8, 16, 8; 78 | %set/v v0067FF78_0, 8, 1; 79 | %jmp T_0.8; 80 | T_0.6 ; 81 | %load/v 8, v0067FE70_0, 8; 82 | %inv 8, 8; 83 | %set/v v0067FF78_0, 8, 1; 84 | %jmp T_0.8; 85 | T_0.7 ; 86 | %load/v 8, v0067FE70_0, 8; 87 | %load/v 16, v0067FEC8_0, 8; 88 | %xor 8, 16, 8; 89 | %set/v v0067FF78_0, 8, 1; 90 | %jmp T_0.8; 91 | T_0.8 ; 92 | %vpi_call 2 15 "$display", "base 10 : %dns : op=%d a=%d b=%d y=%d", $stime, v0067FF20_0, v0067FE70_0, v0067FEC8_0, v0067E2E8_0; 93 | %vpi_call 2 16 "$display", "base 2 : %dns : op=%b a=%b b=%b y=%b", $stime, v0067FF20_0, v0067FE70_0, v0067FEC8_0, v0067E2E8_0; 94 | %jmp T_0; 95 | .thread T_0, $push; 96 | .scope S_00679918; 97 | T_1 ; 98 | %movi 8, 7, 8; 99 | %set/v v0067E340_0, 8, 8; 100 | %movi 8, 3, 8; 101 | %set/v v0067E398_0, 8, 8; 102 | %set/v v0067E3F0_0, 0, 3; 103 | %end; 104 | .thread T_1; 105 | .scope S_00679918; 106 | T_2 ; 107 | %delay 50, 0; 108 | %load/v 8, v0067E3F0_0, 3; 109 | %mov 11, 0, 29; 110 | %addi 8, 1, 32; 111 | %set/v v0067E3F0_0, 8, 3; 112 | %jmp T_2; 113 | .thread T_2; 114 | .scope S_00679918; 115 | T_3 ; 116 | %delay 1000, 0; 117 | %vpi_call 2 38 "$finish"; 118 | %end; 119 | .thread T_3; 120 | # The file index is used to find the file name in the following table. 121 | :file_names 3; 122 | "N/A"; 123 | ""; 124 | "alu3.v"; 125 | -------------------------------------------------------------------------------- /source/article7.md: -------------------------------------------------------------------------------- 1 | ## Arduino 專題分享 – 利用藍牙模組達到兩台 arduino 互相通訊 (作者:許肇驛) 2 | 3 | 我所實驗用的藍牙模組為 P-BSMi Silver 藍牙模組 4 | 5 | ![](../img/ArudinoBluetooth_Module.jpg) 6 | 7 | 我所使用的板子為 Arduino MEGA 2560 8 | 9 | ![](../img/ArduinoBluetooth_mega2560.jpg) 10 | 11 | ![圖、ARDUINO 官方提供的藍牙接線圖](../img/ArduinoBluetooth_Circuit.gif) 12 | 13 | 照著官方提供之藍牙接線圖,接完後 14 | 15 | 我們開始設定兩塊 arduino 端的程式,藍牙通訊的關係為 Master - Slave,選定一塊arudnio版作為我們的master端,並編寫程式 16 | 17 | ### 程式流程說明 18 | 19 | 我們的master端 會尋找指定的配對對象,當配對成功後, slave 端會先傳送 'y' 字元 給 master 端,當 master 端收到後作為確認後, 20 | 進入 autosend() 副程式,開始傳送'a' 's' 'd' 三個字元給slave端的藍牙,當slave端收到後 會依照收到的順序做不一樣的 led 明滅方式。 21 | 22 | * 'a' 做五次明滅 23 | * 's' LED恆亮 24 | * 'd' LED恆滅 25 | 26 | ```CPP 27 | //Master code 28 | /************ 29 | Created 2012 30 | by 許肇驛 Hsu Chao-YI 31 | E-mail: ps2steve2005@hotmail.com 32 | This code is use for communication between BT and BT with each arduino board 33 | ***********/ 34 | char cometemp; 35 | void setup() { 36 | Serial3.begin(9600); 37 | Serial3.print("$$$"); 38 | delay(100); 39 | Serial3.println("SM,1"); 40 | delay(100); 41 | Serial3.println("C,00066648548F"); 42 | delay(100); 43 | Serial3.println("---"); 44 | } 45 | void loop(){ 46 | if(Serial3.available()) 47 | { 48 | cometemp = Serial3.read(); 49 | if (cometemp ='y'){ 50 | autosend(); 51 | } 52 | else { 53 | Serial.print("Can't no find the bluetooth device."); 54 | Serial.print("Try again after 5 seconds.."); 55 | delay(5000); 56 | Serial3.print("$$$"); 57 | delay(100); 58 | Serial3.println("SM,1"); 59 | delay(100); 60 | Serial3.println("C,00066648548F"); 61 | delay(100); 62 | Serial3.println("---"); 63 | } 64 | } 65 | } 66 | void autosend(){ 67 | Serial3.print('a'); 68 | Serial.print("Sent a. "); 69 | delay(300); 70 | Serial3.print('s'); 71 | Serial.print("Sent s. "); 72 | delay(300); 73 | Serial3.print('d'); 74 | Serial.print("Sent d"); 75 | delay(300); 76 | } 77 | ``` 78 | 79 | 程式註解: 80 | 81 | * Serial.available() - serial 收到訊息 82 | * $$$ - 依照 RN42 官方指令說明書 為進入命令模式 83 | * SM, `<5,4,3,2,1,0>` -設定此藍牙模組的模式 84 | * (0=slave, 1=master,2=trigger, 3=auto, 4=DTR, 5=ANY) 85 | * Example : “SM,1” 設定藍牙模組為master端 86 | * C, `
` -設定要指定去配對的藍牙模組, address 為另外一端的mac位址 87 | * --- -離開命令模式 exit command mode 88 | * Serial.print() - 89 | * print 東西 藉由 serial 腳,因為我的藍牙模組 是接在 Serial3 腳為 因此若要 print 東西給那個 pin 腳上所插的東西 就只要改成 Serial.print 90 | * 這裡有兩個Serial(Serial, Serial3) 我使用Serial是因為想要在 serial monitor上也可以顯示 91 | * Serial.println() - 跟 Serial.print 一樣,只是多了換行的功能。 92 | * Serial3.read - 讀取Serial3 腳位接收到的資料 93 | * delay() - () 裡面的數字單位為毫秒 , 一秒=1000 毫秒 因此若要 delay 一秒 就是 delay(1000) 94 | 95 | ```CPP 96 | //Slave code 97 | /************ 98 | Created 2012 99 | by 許肇驛 Hsu Chao-YI 100 | E-mail: ps2steve2005@hotmail.com 101 | This code is use for communication between BT and BT with each arduino board. 102 | ***********/ 103 | int ledPin= 13; 104 | char cometemp; 105 | void setup() { 106 | pinMode(ledPin,OUTPUT); 107 | Serial.begin(9600); 108 | Serial.print("$$$"); 109 | delay(100); 110 | Serial.println("SM,0"); 111 | delay(100); 112 | Serial.println("---"); 113 | } 114 | void loop() 115 | { 116 | if( Serial.available()) 117 | { 118 | Serial.print('y'); 119 | cometemp= Serial.read(); 120 | switch(cometemp){ 121 | case a: 122 | for(int i=0;i<=5;i++){ 123 | digitalWrite(ledPin,HIGH); 124 | delay(400); 125 | digitalWrite(ledPin,LOW); 126 | delay(300);} 127 | break; 128 | case s: 129 | digitalWrite(ledPin,HIGH); 130 | delay(5000); 131 | break; 132 | case d: 133 | digitalWrite(ledPin,LOW); 134 | delay(5000); 135 | break;} 136 | }} 137 | ``` 138 | 139 | 140 | 141 | ![圖、當在尋找配對的裝置時 會紅燈閃爍](../img/ArduinoBluetooth_DSCN2103.JPG) 142 | 143 | ![圖、配對成功後會顯示綠燈](../img/ArduinoBluetooth_MATCH.jpg) 144 | 145 | ### 參考文獻 146 | * [Wireless communication with PC and Arduino board using bluetooth](http://playground.arduino.cc/Learning/Tutorial01) 147 | * [Roving Networks Bluetooth™ Product User Manual (PDF)](https://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bluetooth-um.pdf) 148 | * [Arduino Mega 2560](http://arduino.cc/en/Main/ArduinoBoardMega2560) 149 | 150 | 【本文作者為許肇驛,原文網址為: ,由陳鍾誠編輯後納入本雜誌】 151 | 152 | -------------------------------------------------------------------------------- /htm/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |

關於程式人雜誌

17 |

程式人雜誌是一個結合「開放原始碼與公益捐款活動」的雜誌,簡稱「開放公益雜誌」。開放公益雜誌本著「讀書做善事、寫書做公益」的精神,我們非常歡迎程式人認養專欄、或者捐出您的網誌。

18 |

雜誌下載

19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
出刊年月epubipad:PDFA4:PDF單頁 HTM原始碼全部下載
2013年10月epubipad.pdfA4.pdfpmag.htmlcode.zipall.zip
43 |

說明:本期前半部的焦點在電磁學等領域,對此不感興趣的朋友可以直接從「程式人文集」開始閱讀,謝謝!

44 |

本期內容

45 | 85 |

雜誌取得

86 |

程式人雜誌預定於每個月 1 日出刊,您可以從下列網址取得程式人雜誌的所有內容 (包含當月最新出刊的雜誌)。

87 | 90 |

連絡我們

91 |

竭誠歡迎程式人投稿,或者成為本雜誌的專欄作家,現在就可以加入 程式人雜誌社團 一同共襄盛舉。

92 |

本雜誌編輯為「陳鍾誠 (@ccckmit)」,若要聯絡編輯,請寄信到

98 |
99 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /htm/info.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |
17 | 25 |
26 |

雜誌訊息

27 |

讀者訂閱

28 |

程式人雜誌是一個結合「開放原始碼與公益捐款活動」的雜誌,簡稱「開放公益雜誌」。開放公益雜誌本著「讀書做善事、寫書做公益」的精神,我們非常歡迎程式人認養專欄、或者捐出您的網誌,如果您願意成為本雜誌的專欄作家,請加入 程式人雜誌社團 一同共襄盛舉。

29 |

我們透過發行這本雜誌,希望讓大家可以讀到想讀的書,學到想學的技術,同時也讓寫作的朋友的作品能產生良好價值 – 那就是讓讀者根據雜誌的價值捐款給慈善團體。 讀雜誌做公益也不需要有壓力,您不需要每讀一本就急著去捐款,您可以讀了十本再捐,或者使用固定的月捐款方式,當成是雜誌訂閱費,或者是季捐款、一年捐一次等都 OK ! 甚至是單純當個讀者我們也都很歡迎!

30 |

本雜誌每期參考價:NT 50 元,如果您喜歡本雜誌,請將書款捐贈公益團體。例如可捐贈給「羅慧夫顱顏基金會 彰化銀行(009) 帳號:5234-01-41778-800」。(若匯款要加註可用「程式人雜誌」五個字)

31 |

投稿須知

32 |

給專欄寫作者: 做公益不需要有壓力。如果您願意撰寫專欄,您可以輕鬆的寫,如果當月的稿件出不來,我們會安排其他稿件上場。

33 |

給網誌捐贈者: 如果您沒時間寫專欄或投稿,沒關係,只要將您的網誌以 [創作共用的「姓名標示、非商業性、相同方式分享」授權] 並通知我們,我們會自動從中選取需要的文章進行編輯,放入適當的雜誌當中出刊。

34 |

給文章投稿者: 程式人雜誌非常歡迎您加入作者的行列,如果您想撰寫任何文章或投稿,請用 markdown 或 LibreOffice 編輯好您的稿件,並於每個月 25 日前投稿到程式人雜誌社團 的檔案區,我們會盡可能將稿件編入隔月1號出版程式人雜誌當中,也歡迎您到社團中與我們一同討論。

35 |

如果您要投稿給程式人雜誌,我們最希望的格式是採用 markdown 的格式撰寫,然後將所有檔按壓縮為 zip 上傳到社團檔案區給我們, 如您想學習 markdown 的撰寫出版方式,可以參考 看影片學 markdown 編輯出版流程 一文。

36 |

如果您無法採用 markdown 的方式撰寫,也可以直接給我們您的稿件,像是 MS. Word 的 doc 檔或 LibreOffice 的 odt 檔都可以,我們 會將這些稿件改寫為 markdown 之後編入雜誌當中。

37 |

參與編輯

38 |

您也可以擔任程式人雜誌的編輯,甚至創造一個全新的公益雜誌,我們誠摯的邀請您加入「開放公益出版」的行列,如果您想擔任編輯或創造新雜誌,也歡迎到 程式人雜誌社團 來與我們討論相關事宜。

39 |

公益資訊

40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 74 | 75 | 76 | 77 |
公益團體聯絡資訊服務對象捐款帳號
財團法人羅慧夫顱顏基金會http://www.nncf.org/

02-27190408分機 232
顱顏患者 (如唇顎裂、小耳症或其他罕見顱顏缺陷)銀行:009彰化銀行民生分行
帳號:5234-01-41778-800
社團法人台灣省兒童少年成長協會http://www.cyga.org/

04-23058005
單親、隔代教養.弱勢及一般家庭之兒童青少年銀行:新光銀行
戶名:台灣省兒童少年成長協會
帳號:103-0912-10-000212-0
78 |
79 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /source/science1.md: -------------------------------------------------------------------------------- 1 | ## 電磁學基礎 (1) -- 關於電磁場的一些疑問? 2 | 3 | ### 前言 4 | 5 | 在學習電磁學之前,一定要先有幾個數學慨念,才能瞭解馬克士威方程式的意義。 6 | 7 | 這幾個數學概念分別是:「向量、微分、積分」,因為、電磁學的基礎是:「向量微積分」。 8 | 9 | 如果、讀者對於這三個主題已經有慨念了,那麼、就應該具備閱讀本文的基本能力了。 10 | 11 | 在本文中、我們將從「磁場、電場」等物理概念開始介紹,並且提出一些常見的電磁學問題? 12 | 像是「電場長甚麼樣?磁場長甚麼樣?電磁交互作用的方式?」等等,然後再看看一些電磁場 13 | 範例的圖片,以及電磁裝置的案例,讓讀者累積足夠多對電磁場的感覺後,再來探究背後的原理。 14 | 15 | 然後在下一期當中,我們將導入數學裏「向量場」的概念,接著介紹「向量微積分」的基本觀念, 16 | 像是「通量、環量、散度、旋度」等等。 17 | 18 | 最後、我們將從「向量微積分」回到電磁學領域,說明「馬克士威方程式」的意義與用途, 19 | 讓讀者能夠初步的理解電磁波的概念。 20 | 21 | ### 力場的概念 22 | 23 | 學習電磁學,第一個遇到的困難,就是要先理解「場」的概念。 24 | 25 | 很多人物理學得還不錯,但是到了「電場、磁場」的時候就卡關了,有這種情況的人,通嘗是無法接受「力場」 26 | 概念的學習者。 27 | 28 | 因為在機械的世界裏,所有的力都是接觸後才會生效的,也就是要人去推,東西才會動,我們很難接受那種 29 | 不需要推就會動的「神秘力量」。 30 | 31 | 但是、如果你就是不相信這種力量的存在,因而學不會電磁學,那就真的太冤枉了,只要轉變一下念頭,相信 32 | 這件事情存在,就有機會進入電磁學的神秘領域。 33 | 34 | 事實上、在牛頓的機械論世界了,就已經有「力場」的概念了,那個力場就是「重力場」。 35 | 36 | 重力也是一種「不需要推就會動的神秘力量」,當你從 101 大樓往下跳的時候,你會發現並沒有人推你,你還 37 | 是往下掉了,但是這種經驗與平常從樓梯上跳下來的經驗太像,以致於我們都覺得理所當然,因而不覺得這裏 38 | 需要用到像「電磁場」一樣的概念,就可以理解了。 39 | 40 | 如果、您能夠接受重力場的概念,那麼就應該有機會瞭解「電場」了。 41 | 42 | ### 電場的概念與疑問 43 | 44 | 學過原子模型的人都知道,電子繞著原子核旋轉,而且有時候電子會脫離原子核,跑到別的地方去,特別是在導體裏面更是如此。 45 | 46 | 我們通常會將原子想像成地球或行星,繞著太陽旋轉。這樣的類比其實是好的,因為行星與太陽之間有「重力場」,所以才不會脫離之後就飛走。 47 | 48 | 同樣的、電子與質子之間,也有一種「不需要接觸就能拉住的神秘力量」,那就是「帶負電的電子」與「帶正電的質子」之間的電吸引力, 49 | 這種吸引力讓電子繞著原子核旋轉,但不同的是,電子繞得很快,而且在導體內很容易受到「場」的力量而到處移動。 50 | 51 | 所以、像庫倫就提出了庫倫定律,表達兩個帶電粒子之間的力量,如以下圖片與公式所示: 52 | 53 | ![圖、庫倫定律
(a) 負負相斥 (b) 正負相吸 (c) 庫倫定律公式](../img/CoulombRule.jpg) 54 | 55 | 假如兩個電荷的電性相同,那麼就會產生排斥力,如果相反,就會產生吸引力。 56 | 57 | 庫倫定律是容易接受的,因為我們很多人都玩過磁鐵,可以接受「同性相吸、異性相斥」的概念,而且能夠真實的感覺到那種力量。 58 | 59 | 然後、我們可能也還可以接受,將那些場的力量給畫出來的示意圖,像是以下的圖形所示: 60 | 61 | ![圖、場線的畫法 1](../img/FieldLines.jpg) 62 | 63 | 但是、相信您應該能看出上圖中的 (a) , (b) 兩者有不同,但是如果我們問一些問題,像是: 64 | 65 | 1. 這兩個圖都是場線嗎? 66 | 2. 那每一點的力量個是多少呢? 67 | 3. 那邊的力場比較大,哪邊的比較小呢? 68 | 69 | 這時恐怕很多人都說不出來了! 70 | 71 | 但是如果我們讓大家看以下的場線,可能就有人覺得可以說出一些道理: 72 | 73 | ![圖、場線的畫法 2
(a) 正電荷 (b) 負電荷 (c) 更大的負電荷](../img/FieldLines2.jpg) 74 | 75 | 為什麼我們說上圖中的 (c) 是比 (b) 更大的負電荷呢?視覺上的原因是 (c) 的場線畫得比較密。 76 | 77 | 但問題是、既然空間中到處都充滿了電場,為甚麼我們只畫了幾條線呢?這些線的長短代表甚麼意義呢? 78 | 79 | 然後、更難接受的是,像以下這種彎彎曲曲的電場線,到底代表的力量是多大呢? 80 | 81 | ![圖、場線的畫法 3](../img/FieldLinesCurve.jpg) 82 | 83 | 然後、我們會看到像下列的金屬球,其表面的場線竟然自動轉彎,呈垂直角度射入或離開表面,這到底是甚麼意思呢? 84 | 85 | ![圖、場線的畫法 4](../img/FieldLineCurve2.jpg) 86 | 87 | 而且、上圖與下圖 (a) 中的金屬球內部都沒有畫任何線,這是代表內部沒有電場嗎? 88 | 89 | ![圖、場線的畫法 5](../img/FieldLineBallCapactor.jpg) 90 | 91 | 為何上圖中 (b) 的平行板場線在內部是直線,到了邊緣卻成了彎曲狀的呢? 92 | 93 | 場線怎麼這麼厲害,碰到金屬就會自動像下圖一樣立正站好,難到「金屬是電場線的長官嗎?」。 94 | 95 | ![圖、場線的畫法 6](../img/FieldLineIrregularCurve.jpg) 96 | 97 | 而且、好像在彎曲度越大的地方,帶電粒子就越多,這些電子是有智慧嗎?會自動感知表面的彎曲度,然後擠到那邊去嗎? 98 | 這不是人才會做的事嗎? 99 | 100 | 然後像下列這樣有場線又有伏特數標示的等高線圖又是甚麼意思呢? 101 | 102 | ![圖、場線的畫法 7](../img/FieldLinesVoltageMap.jpg) 103 | 104 | 從下圖看來,電容當中的填充物好像會影響場線,那應該填些甚麼東西?才能讓電容量盡可能變大呢? 105 | 106 | ![圖、場線的畫法 8](../img/FieldLinesCapactorFill.jpg) 107 | 108 | ### 磁場的概念與疑問 109 | 110 | 問題:磁力也會形成力場嗎?那磁力線應該怎麼畫呢? 111 | 112 | ![圖、場線的畫法 9](../img/MagLineShow.jpg) 113 | 114 | 問題:磁場與電場有關嗎?兩種力會互相影響嗎?是互相抵消、互相促進,還是怎麼樣呢? 115 | 116 | ![圖、場線的畫法 10](../img/FieldLineElectronMagnatic.jpg) 117 | 118 | 問題:磁場與電場同時存在的場線該怎麼畫呢? 119 | 120 | 問題:一般的鐵塊在線圈裏為何會變成電磁鐵呢?硬碟、磁帶、電磁爐等裝置的電磁原理是甚麼呢? 121 | 122 | ![圖、場線的畫法 11](../img/MagnetCD.jpg) 123 | 124 | 問題:我們要怎樣才能看到磁力線呢?指南針會受磁力線影響嗎? 125 | 126 | ![圖、場線的畫法 12](../img/MagneticLine.jpg) 127 | 128 | 問題:電力和磁力會互相影響嗎?關係式是甚麼呢? 129 | 130 | ![圖、電與磁的關係](../img/ElectronicMagnetic.jpg) 131 | 132 | 問題:垂直磁場中的電子會如何移動呢?平飛還是轉圈圈呢? 133 | 134 | ![圖、磁場中的電子如何運動?](../img/einmagMove.jpg) 135 | 136 | 問題:大一物理裏面的「感應電動勢」(EMF) 到底是一種電場還是磁場呢? 137 | 138 | ### 關於電磁交互作用的疑問? 139 | 140 | 問題:馬達為甚麼會轉?發電機如何發電? 141 | 142 | ![圖、馬達與發電機](../img/MotorEGenerator2.jpg) 143 | 144 | 問題:馬達為何會產生逆向電動勢 (Back Emf),其原理為何? 145 | 146 | ![圖、馬達的逆向電動勢 (Back Emf)](../img/BackEMF.jpg) 147 | 148 | Back Emf 的原理請參考下列影片: 149 | 150 | * Back Emf 動畫原理 (讚!): Commutators: Basics on AC and DC Generation 151 | * 152 | * Back Emf 原理說明: (Back Emf of a DC Motor) 153 | * 154 | * Back Emf 量測實驗: ("Back EMF" Theory and Practice Paul Wesley Lewis) 155 | * 156 | 157 | 問題:變壓器的原理是甚麼,那些線圈的數量與電磁效應有何關係? 158 | 159 | ![圖、變壓器的原理](../img/Transformer.jpg) 160 | 161 | 問題:電感是甚麼?我們有可能做出無線隔空充電的裝置嗎? 162 | 163 | ![圖、電感的原理](../img/Inductance.jpg) 164 | 165 | 問題:電磁波如何產生,如何傳遞,有方向性嗎? 166 | 167 | 問題:第一個用證明電磁波可傳遞的赫茲 (Hertz) ,他的實驗是怎麼做的呢? 168 | 169 | ![圖、赫茲的實驗](../img/HertzExperiment.jpg) 170 | 171 | 問題:電磁波是如何傳遞的?有沒有方向性的呢?該如何才能接收的更清楚呢? 172 | 173 | ![圖、電磁波的傳遞](../img/EmWave.jpg) 174 | 175 | 問題:電波和磁波的震盪方向一樣嗎? 176 | 177 | ![圖、電波與磁波的震盪方向](../img/EmWave3D.jpg) 178 | 179 | 問題:「收音機、微波爐、X 射線」等電磁波,其震盪頻率與波長各約多少呢? 180 | 181 | ![圖、各種電磁波的頻率與波長](../img/Spectrum.jpg) 182 | 183 | 問題:收音機廣播的聲音,是如何放到電磁波裏傳播的呢?FM 調頻與 AM 調幅有甚麼差異呢? 184 | 185 | ![圖、AM 調幅的原理](../img/AM.jpg) 186 | 187 | ![圖、FM 調頻的原理](../img/FM.jpg) 188 | 189 | 問題:電視天線為何長那樣?那接收國外節目的小耳朵為何長得不一樣呢? 190 | 191 | ![圖、電視天線與小耳朵](../img/TVAntenna.jpg) 192 | 193 | ### 小結 194 | 195 | 現在、讀者應該心裏已經充滿了一堆問號了吧! 196 | 197 | 不過、如果您仔細看那些圖片,應該就可對照大一物理課本想起來那些問題的解答。 198 | 199 | 如果想不起來,推薦給大家一本很棒的物理課本,而且是免費的,那就是由 RICE University 所成立的 OpenStax College 網站, 200 | 提供的一本 [College Physics] 物理學電子書,這本書是我所找到網路上最棒的物理學電子書了。 201 | 202 | 如果您看看上述的電子書,特別是有關電磁學的那部份,相信會感受到 OpenStax 在編輯上是很用心的。 203 | 204 | 疑問是求知背後最大的驅動力,有了這些物理學的基礎,我們就可以在下期解釋這些現象背後的數學原理:「向量微積分」與「馬克斯威方程式」了。 205 | 206 | ### 參考文獻 207 | * [College Physics], OpenStax College. 208 | * 維基百科:[庫侖定律](http://zh.wikipedia.org/wiki/%E5%BA%93%E4%BB%91%E5%AE%9A%E5%BE%8B) 209 | 210 | 211 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 212 | 213 | -------------------------------------------------------------------------------- /source/science1.md0: -------------------------------------------------------------------------------- 1 | ## 電磁學基礎 (1) -- 關於電磁場的一些疑問? 2 | 3 | ### 前言 4 | 5 | 在學習電磁學之前,一定要先有幾個數學慨念,才能瞭解馬克士威方程式的意義。 6 | 7 | 這幾個數學概念分別是:「向量、微分、積分」,因為、電磁學的基礎是:「向量微積分」。 8 | 9 | 如果、讀者對於這三個主題已經有慨念了,那麼、就應該具備閱讀本文的基本能力了。 10 | 11 | 在本文中、我們將從「磁場、電場」等物理概念開始介紹,並且提出一些常見的電磁學問題? 12 | 像是「電場長甚麼樣?磁場長甚麼樣?電磁交互作用的方式?」等等,然後再看看一些電磁場 13 | 範例的圖片,以及電磁裝置的案例,讓讀者累積足夠多對電磁場的感覺後,再來探究背後的原理。 14 | 15 | 然後在下一期當中,我們將導入數學裏「向量場」的概念,接著介紹「向量微積分」的基本觀念, 16 | 像是「通量、環量、散度、旋度」等等。 17 | 18 | 最後、我們將從「向量微積分」回到電磁學領域,說明「馬克士威方程式」的意義與用途, 19 | 讓讀者能夠初步的理解電磁波的概念。 20 | 21 | ### 力場的概念 22 | 23 | 學習電磁學,第一個遇到的困難,就是要先理解「場」的概念。 24 | 25 | 很多人物理學得還不錯,但是到了「電場、磁場」的時候就卡關了,有這種情況的人,通嘗是無法接受「力場」 26 | 概念的學習者。 27 | 28 | 因為在機械的世界裏,所有的力都是接觸後才會生效的,也就是要人去推,東西才會動,我們很難接受那種 29 | 不需要推就會動的「神秘力量」。 30 | 31 | 但是、如果你就是不相信這種力量的存在,因而學不會電磁學,那就真的太冤枉了,只要轉變一下念頭,相信 32 | 這件事情存在,就有機會進入電磁學的神秘領域。 33 | 34 | 事實上、在牛頓的機械論世界了,就已經有「力場」的概念了,那個力場就是「重力場」。 35 | 36 | 重力也是一種「不需要推就會動的神秘力量」,當你從 101 大樓往下跳的時候,你會發現並沒有人推你,你還 37 | 是往下掉了,但是這種經驗與平常從樓梯上跳下來的經驗太像,以致於我們都覺得理所當然,因而不覺得這裏 38 | 需要用到像「電磁場」一樣的概念,就可以理解了。 39 | 40 | 如果、您能夠接受重力場的概念,那麼就應該有機會瞭解「電場」了。 41 | 42 | ### 電場的概念與疑問 43 | 44 | 學過原子模型的人都知道,電子繞著原子核旋轉,而且有時候電子會脫離原子核,跑到別的地方去,特別是在導體裏面更是如此。 45 | 46 | 我們通常會將原子想像成地球或行星,繞著太陽旋轉。這樣的類比其實是好的,因為行星與太陽之間有「重力場」,所以才不會脫離之後就飛走。 47 | 48 | 同樣的、電子與質子之間,也有一種「不需要接觸就能拉住的神秘力量」,那就是「帶負電的電子」與「帶正電的質子」之間的電吸引力, 49 | 這種吸引力讓電子繞著原子核旋轉,但不同的是,電子繞得很快,而且在導體內很容易受到「場」的力量而到處移動。 50 | 51 | 所以、像庫倫就提出了庫倫定律,表達兩個帶電粒子之間的力量,如以下圖片與公式所示: 52 | 53 | ![圖、庫倫定律
(a) 負負相斥 (b) 正負相吸 (c) 庫倫定律公式](../img/CoulombRule.jpg) 54 | 55 | 假如兩個電荷的電性相同,那麼就會產生排斥力,如果相反,就會產生吸引力。 56 | 57 | 庫倫定律是容易接受的,因為我們很多人都玩過磁鐵,可以接受「同性相吸、異性相斥」的概念,而且能夠真實的感覺到那種力量。 58 | 59 | 然後、我們可能也還可以接受,將那些場的力量給畫出來的示意圖,像是以下的圖形所示: 60 | 61 | ![圖、場線的畫法 1](../img/FieldLines.jpg) 62 | 63 | 但是、相信您應該能看出上圖中的 (a) , (b) 兩者有不同,但是如果我們問一些問題,像是: 64 | 65 | 1. 這兩個圖都是場線嗎? 66 | 2. 那每一點的力量個是多少呢? 67 | 3. 那邊的力場比較大,哪邊的比較小呢? 68 | 69 | 這時恐怕很多人都說不出來了! 70 | 71 | 但是如果我們讓大家看以下的場線,可能就有人覺得可以說出一些道理: 72 | 73 | ![圖、場線的畫法 2
(a) 正電荷 (b) 負電荷 (c) 更大的負電荷](../img/FieldLines2.jpg) 74 | 75 | 為什麼我們說上圖中的 (c) 是比 (b) 更大的負電荷呢?視覺上的原因是 (c) 的場線畫得比較密。 76 | 77 | 但問題是、既然空間中到處都充滿了電場,為甚麼我們只畫了幾條線呢?這些線的長短代表甚麼意義呢? 78 | 79 | 然後、更難接受的是,像以下這種彎彎曲曲的電場線,到底代表的力量是多大呢? 80 | 81 | ![圖、場線的畫法 3](../img/FieldLinesCurve.jpg) 82 | 83 | 然後、我們會看到像下列的金屬球,其表面的場線竟然自動轉彎,呈垂直角度射入或離開表面,這到底是甚麼意思呢? 84 | 85 | ![圖、場線的畫法 4](../img/FieldLineCurve2.jpg) 86 | 87 | 而且、上圖與下圖 (a) 中的金屬球內部都沒有畫任何線,這是代表內部沒有電場嗎? 88 | 89 | ![圖、場線的畫法 5](../img/FieldLineBallCapactor.jpg) 90 | 91 | 為何上圖中 (b) 的平行板場線在內部是直線,到了邊緣卻成了彎曲狀的呢? 92 | 93 | 場線怎麼這麼厲害,碰到金屬就會自動像下圖一樣立正站好,難到「金屬是電場線的長官嗎?」。 94 | 95 | ![圖、場線的畫法 6](../img/FieldLineIrregularCurve.jpg) 96 | 97 | 而且、好像在彎曲度越大的地方,帶電粒子就越多,這些電子是有智慧嗎?會自動感知表面的彎曲度,然後擠到那邊去嗎? 98 | 這不是人才會做的事嗎? 99 | 100 | 然後像下列這樣有場線又有伏特數標示的等高線圖又是甚麼意思呢? 101 | 102 | ![圖、場線的畫法 7](../img/FieldLinesVoltageMap.jpg) 103 | 104 | 從下圖看來,電容當中的填充物好像會影響場線,那應該填些甚麼東西?才能讓電容量盡可能變大呢? 105 | 106 | ![圖、場線的畫法 8](../img/FieldLinesCapactorFill.jpg) 107 | 108 | ### 磁場的概念與疑問 109 | 110 | 問題:磁力也會形成力場嗎?那磁力線應該怎麼畫呢? 111 | 112 | ![圖、場線的畫法 9](../img/MagLineShow.jpg) 113 | 114 | 問題:磁場與電場有關嗎?兩種力會互相影響嗎?是互相抵消、互相促進,還是怎麼樣呢? 115 | 116 | ![圖、場線的畫法 10](../img/FieldLineElectronMagnatic.jpg) 117 | 118 | 問題:磁場與電場同時存在的場線該怎麼畫呢? 119 | 120 | 問題:一般的鐵塊在線圈裏為何會變成電磁鐵呢?硬碟、磁帶、電磁爐等裝置的電磁原理是甚麼呢? 121 | 122 | ![圖、場線的畫法 11](../img/MagnetCD.jpg) 123 | 124 | 問題:我們要怎樣才能看到磁力線呢?指南針會受磁力線影響嗎? 125 | 126 | ![圖、場線的畫法 12](../img/MagneticLine.jpg) 127 | 128 | 問題:電力和磁力會互相影響嗎?關係式是甚麼呢? 129 | 130 | ![圖、電與磁的關係](../img/ElectronicMagnetic.jpg) 131 | 132 | 問題:垂直磁場中的電子會如何移動呢?平飛還是轉圈圈呢? 133 | 134 | ![圖、磁場中的電子如何運動?](../img/einmagMove.jpg) 135 | 136 | 問題:大一物理裏面的「感應電動勢」(EMF) 到底是一種電場還是磁場呢? 137 | 138 | ### 關於電磁交互作用的疑問? 139 | 140 | 問題:馬達為甚麼會轉?發電機如何發電? 141 | 142 | ![圖、馬達與發電機](../img/MotorEGenerator2.jpg) 143 | 144 | 問題:馬達為何會產生逆向電動勢 (Back Emf),其原理為何? 145 | 146 | ![圖、馬達的逆向電動勢 (Back Emf)](../img/BackEMF.jpg) 147 | 148 | Back Emf 的原理請參考下列影片: 149 | 150 | * Back Emf 動畫原理 (讚!): Commutators: Basics on AC and DC Generation 151 | * 152 | * Back Emf 原理說明: (Back Emf of a DC Motor) 153 | * 154 | * Back Emf 量測實驗: ("Back EMF" Theory and Practice Paul Wesley Lewis) 155 | * 156 | 157 | 問題:變壓器的原理是甚麼,那些線圈的數量與電磁效應有何關係? 158 | 159 | ![圖、變壓器的原理](../img/Transformer.jpg) 160 | 161 | 問題:電感是甚麼?我們有可能做出無線隔空充電的裝置嗎? 162 | 163 | ![圖、電感的原理](../img/Inductance.jpg) 164 | 165 | 問題:電磁波如何產生,如何傳遞,有方向性嗎? 166 | 167 | 問題:第一個用證明電磁波可傳遞的赫茲 (Hertz) ,他的實驗是怎麼做的呢? 168 | 169 | ![圖、赫茲的實驗](../img/HertzExperiment.jpg) 170 | 171 | 問題:電磁波是如何傳遞的?有沒有方向性的呢?該如何才能接收的更清楚呢? 172 | 173 | ![圖、電磁波的傳遞](../img/EmWave.jpg) 174 | 175 | 問題:電波和磁波的震盪方向一樣嗎? 176 | 177 | ![圖、電波與磁波的震盪方向](../img/EmWave3D.jpg) 178 | 179 | 問題:「收音機、微波爐、X 射線」等電磁波,其震盪頻率與波長各約多少呢? 180 | 181 | ![圖、各種電磁波的頻率與波長](../img/Spectrum.jpg) 182 | 183 | 問題:收音機廣播的聲音,是如何放到電磁波裏傳播的呢?FM 調頻與 AM 調幅有甚麼差異呢? 184 | 185 | ![圖、AM 調幅的原理](../img/AM.jpg) 186 | 187 | ![圖、FM 調頻的原理](../img/FM.jpg) 188 | 189 | 問題:電視天線為何長那樣?那接收國外節目的小耳朵為何長得不一樣呢? 190 | 191 | ![圖、電視天線與小耳朵](../img/TVAntenna.jpg) 192 | 193 | ### 小結 194 | 195 | 現在、讀者應該心裏已經充滿了一堆問號了吧! 196 | 197 | 不過、如果您仔細看那些圖片,應該就可對照大一物理課本想起來那些問題的解答。 198 | 199 | 如果想不起來,推薦給大家一本很棒的物理課本,而且是免費的,那就是由 RICE University 所成立的 OpenStax College 網站, 200 | 提供的一本 [College Physics] 物理學電子書,這本書是我所找到網路上最棒的物理學電子書了。 201 | 202 | 如果您看看上述的電子書,特別是有關電磁學的那部份,相信會感受到 OpenStax 在編輯上是很用心的。 203 | 204 | 疑問是求知背後最大的驅動力,有了這些物理學的基礎,我們就可以在下期解釋這些現象背後的數學原理:「向量微積分」與「馬克斯威方程式」了。 205 | 206 | ### 參考文獻 207 | * [College Physics], OpenStax College. 208 | * 維基百科:[庫侖定律](http://zh.wikipedia.org/wiki/%E5%BA%93%E4%BB%91%E5%AE%9A%E5%BE%8B) 209 | 210 | 211 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 212 | 213 | -------------------------------------------------------------------------------- /css/pmag.css: -------------------------------------------------------------------------------- 1 | html, body, div, span, applet, object, iframe, 2 | p, blockquote, pre, 3 | a, abbr, acronym, address, big, cite, code, 4 | del, dfn, em, img, ins, kbd, q, s, samp, 5 | small, strike, strong, sub, sup, tt, var, 6 | b, u, i, center, 7 | dl, dt, dd, 8 | fieldset, form, label, legend, 9 | table, caption, tbody, tfoot, thead, tr, th, td, 10 | article, aside, canvas, details, embed, 11 | figure, figcaption, footer, header, hgroup, 12 | menu, nav, output, ruby, section, summary, 13 | time, mark, audio, video { 14 | margin: 0; 15 | padding: 0; 16 | border: 0; 17 | font: inherit; 18 | vertical-align: baseline; 19 | line-height:160%; 20 | font-family: 'Tahoma', 'Pmingliu'; 21 | } 22 | 23 | #cover-image { 24 | width:100%; 25 | } 26 | 27 | div>ol.toc { 28 | list-style-type:disc; 29 | } 30 | 31 | ol.toc { 32 | list-style-type:circle; 33 | } 34 | 35 | blockquote { 36 | margin: 10px; 37 | padding-left: 10px; 38 | padding-right: 10px; 39 | padding-top: 1px; 40 | padding-bottom: 1px; 41 | border: 1px solid #373737; 42 | background-color: #efefef; 43 | } 44 | 45 | h1, h1 a { font-size: xx-large; color:#050505; text-align:center; margin:30px; font-weight: bold; font-family: 'Tahoma', 'DFKai-sb'; } 46 | 47 | h2, h2 a { font-size: x-large; color:#000033; margin-top:30px; margin-bottom:30px; font-weight: bold; font-family: 'Tahoma', 'DFKai-sb'; } 48 | 49 | h3, h3 a { font-size: large; color:#000066; font-weight: bold; font-family: 'Tahoma', 'DFKai-sb'; } 50 | 51 | h4, h4 a { font-size: medium; color:#4B0082; font-weight: bold; font-family: 'Tahoma', 'DFKai-sb'; } 52 | 53 | h5, h5 a { font-size: small ; color:#708090; font-weight: bold; font-family: 'Tahoma', 'DFKai-sb'; } 54 | 55 | h6, h6 a { font-size: x-small; color:#000080; } 56 | 57 | p { 58 | font-family: 'Tahoma', 'Pmingliu'; 59 | margin: 10px 0 15px 0; 60 | font-size:100%; 61 | color:#353535; 62 | } 63 | 64 | li { 65 | font-size:100%; 66 | } 67 | 68 | footer p { 69 | color: #f2f2f2; 70 | } 71 | 72 | a { 73 | text-decoration: none; 74 | color: #007edf; 75 | text-shadow: none; 76 | 77 | transition: color 0.5s ease; 78 | transition: text-shadow 0.5s ease; 79 | -webkit-transition: color 0.5s ease; 80 | -webkit-transition: text-shadow 0.5s ease; 81 | -moz-transition: color 0.5s ease; 82 | -moz-transition: text-shadow 0.5s ease; 83 | -o-transition: color 0.5s ease; 84 | -o-transition: text-shadow 0.5s ease; 85 | -ms-transition: color 0.5s ease; 86 | -ms-transition: text-shadow 0.5s ease; 87 | } 88 | 89 | table { 90 | border-collapse: collapse; 91 | border-spacing: 0; 92 | border: 1px solid #373737; 93 | margin-bottom: 20px; 94 | text-align: left; 95 | margin-left:auto; 96 | margin-right:auto; 97 | } 98 | 99 | th { 100 | padding: 10px; 101 | background-color:black; 102 | color:white; 103 | } 104 | 105 | td { 106 | padding: 10px; 107 | vertical-align: middle; 108 | border: 1px solid #373737; 109 | } 110 | 111 | em { 112 | font-weight:bold; 113 | } 114 | 115 | #header_wrap { 116 | margin: 0; 117 | padding: 16px; 118 | border: 0; 119 | font: inherit; 120 | vertical-align: baseline; 121 | background-color:black; 122 | color:white; 123 | } 124 | 125 | #header_wrap h1, #header_wrap h1 sub, #header_wrap h1 a { 126 | color:white; 127 | font-family: 'Tahoma', 'DFKai-sb'; 128 | } 129 | 130 | #header_wrap sub { 131 | color:white; 132 | font-size:60%; 133 | } 134 | 135 | .title, .author, .date { 136 | color:#333333; 137 | text-align:center; 138 | font-family: 'Tahoma', 'DFKai-sb'; 139 | } 140 | 141 | .title { font-size:xx-large; line-height:800%; } 142 | 143 | .author { font-size:large; line-height:300%; } 144 | 145 | .date { font-size:large; line-height:300%; } 146 | 147 | 148 | #content { 149 | margin:10px; 150 | padding:10px; 151 | } 152 | 153 | pre { 154 | border: 1px solid #373737; 155 | background-color:#efefef; 156 | color:#3f3f3f; 157 | font-size:medium; 158 | width:95%; 159 | padding:10px; 160 | } 161 | 162 | code { 163 | font-family: SimSun; 164 | font-size:100%; 165 | } 166 | 167 | .figure { 168 | margin:10px; 169 | padding:10px; 170 | margin-left: auto; 171 | margin-right: auto; 172 | display: block; 173 | } 174 | 175 | img { vertical-align:middle; } 176 | 177 | .figure img { 178 | // border: 1px solid #373737; 179 | margin-left: auto; 180 | margin-right: auto; 181 | display: block; 182 | } 183 | 184 | .figure .caption { 185 | text-align:center; 186 | } 187 | 188 | #TOC { 189 | } 190 | 191 | #footer { 192 | text-align:center; 193 | font-size:small; 194 | color:#6f6f6f; 195 | margin: 10px; 196 | padding: 10px; 197 | } 198 | 199 | /* JavaScript Style */ 200 | table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode { 201 | margin: 0; padding: 0; vertical-align: baseline; border: none; } 202 | table.sourceCode { width: 100%; } 203 | td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #afafaf; border-right: 1px solid #aaaaaa; } 204 | td.sourceCode { padding-left: 5px; } 205 | code > span.kw { color: #007020; font-weight: bold; } 206 | code > span.dt { color: #902000; } 207 | code > span.dv { color: #40a070; } 208 | code > span.bn { color: #40a070; } 209 | code > span.fl { color: #40a070; } 210 | code > span.ch { color: #4070a0; } 211 | code > span.st { color: #4070a0; } 212 | code > span.co { color: #60a0b0; font-style: italic; } 213 | code > span.ot { color: #007020; } 214 | code > span.al { color: #ff0000; font-weight: bold; } 215 | code > span.fu { color: #06287e; } 216 | code > span.er { color: #ff0000; font-weight: bold; } 217 | 218 | -------------------------------------------------------------------------------- /htm/message1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 |
17 | 20 |
21 |

電池的歷史與原理

22 |

電池,一般狹義上的定義是將本身儲存的化學能轉成電能的裝置,廣義的定義為將預先儲存起的能量轉化為可供外用電能的裝置。因此,像太陽能電池只有轉化而無儲存功能的裝置不算是電池。其他名稱有電瓶、電芯,而中文池及瓶也有儲存作用之意。

23 |

萊頓瓶

24 |

萊頓瓶(英語:Leyden jar)是一種用以儲存靜電的裝置,最先由 Pieter van Musschenbroek(1692年-1761年)在荷蘭的萊頓試用。 作為原始形式的電容器,萊頓瓶曾被用來作為電學實驗的供電來源,也是電學研究的重大基礎。萊頓瓶的發明,標誌著對電的本質和特性進行研究的開始。

25 |

典型的萊頓瓶是一個玻璃容器,內外包覆著導電金屬箔作為極板。瓶口上端接一個球形電極,下端利用導體(通常是金屬鎖鏈)與內側金屬箔連接。萊頓瓶的充電方式是將電極接上靜電產生器等來源,外部金屬箔接地;內部與外部的金屬將會攜帶相等但極性相反的電荷。

26 |

嚴格來說,萊頓瓶並不屬於電池,而是一種電容,但早期還沒有電池的時候,常被事先充好電之後,拿來當一次性的放電體使用,所以可以說是最早的「電池」。

27 |
28 | 圖、萊頓瓶的實體與結構

圖、萊頓瓶的實體與結構

29 |
30 |

以下有個關於萊頓瓶如何被用在早期電學實驗上的故事,相信大家會有興趣,故事如下:

31 |

Jean-Antoine Nollet 是一個對電學特別有興趣的法國神父,1746 年時、他想要測試電流到底跑得多快,所以請兩百位修道士每個人手池金屬條 連接成總長一英哩 (1.6 公里) 的環狀迴路,然後他手持一只特大的萊頓瓶,連接上兩端的電極,結果這些修道士幾乎同時因被電極而癱軟在地。

32 |

後來他還想再做這類的實驗,但是修道士們都避之唯恐不及,拒絕再當一次實驗品,後來他只好去找法皇路易十五,讓皇帝命令一百八十名御林軍在凡爾賽宮當實驗品。

33 |

在萊頓瓶剛發明不久的那個年代,很多王公貴族對這些新奇的小玩意都很有興趣,甚這後來在酒吧裏,還流行用小的萊頓瓶去「電吻」, 也就是「觸碰一下萊頓瓶、感受被電到的感覺」。

34 |

伏打電堆與伽伐尼電池

35 |

在1780年,路易吉·伽伐尼 (義大利文:Luigi Galvani) 發現,兩種不同的金屬(例如,銅和鋅)連接後,如果同一時間觸摸青蛙腿的兩處神經,青蛙腿會發生收縮。 他稱這是「動物電」(animal electricity)。

36 |

伏打電堆(Voltaic pile),又名伏打堆,是最早出現的化學電池,是在1800年由義大利物理學家亞歷山卓·伏打伯爵發明。

37 |

伏打電堆由很多個單元堆積而成,每一單元有鋅板與銅板各一,其中夾著浸有鹽水的布或紙板以作為電解質。如下所示:

38 |
39 | 圖、伏打電堆的結構與實體

圖、伏打電堆的結構與實體

40 |
41 |

後來、這類由兩種不同的金屬與一種電解質組成的電池,通常被稱為「伽伐尼電池」,其結構通常改由兩個半電池間以鹽橋或多孔物相連而成。 其電路與反應式如下:

42 |
43 | 圖、鋅-銅 伽凡尼電池的電路圖與反應式

圖、鋅-銅 伽凡尼電池的電路圖與反應式

44 |
45 |

碳鋅電池

46 |

碳鋅電池 (zinc–carbon battery) 的容器是一個鋅罐。裡面有一層由 NH4Cl 和 ZnCl2 所構成的糊狀液體, 這個糊狀液體通過一個紙層與粉末狀的碳和二氧化錳隔開。這些粉末填充在一個碳棒的周圍。

47 |

此電池正極的碳棒與二氧化錳中所混合的碳只負責引出電流,並不參與反應,正極實際參與還原反應並提供 正電的是二氧化錳,因此,又稱為錳鋅電池、鋅錳電池或鋅-二氧化錳電池,也有簡稱錳乾電池的。

48 |

碳鋅電池的電動勢大約是1.5V。電動勢的不確定是由於陰極反應十分複雜,相比來說,陽極反應(鋅端)則有一個已知的電勢。 副反應及活性反應物的消耗直接導致電池的內阻增加,電池電動勢降低。

49 |
50 | 圖、碳鋅電池的反應式、實體與結構

圖、碳鋅電池的反應式、實體與結構

51 |
52 |

鉛酸蓄電池

53 |

蓄電池的原理是通過將化學能和直流電能相互轉化,在放電後經充電後能復原,從而達到重複使用效果。

54 |

鉛酸蓄電池 (Lead–acid battery) 的氧化還原總反應電壓為 2 V (伏特) ,所以一顆由 K 的電磁單元所組成的 鉛蓄電池之電壓通常為 2K 伏特。

55 |
56 | 圖、鉛酸蓄電池的反應式、實體與用途

圖、鉛酸蓄電池的反應式、實體與用途

57 |
58 |

電池 DIY : 檸檬電池

59 |

看了以上這麼多電池,雖然感覺原理並不難,但是要自己動手做一顆,卻還是不知如何下手。

60 |

不過還好、我們可以用檸檬!

61 |

YouTube 上已經有人做了詳細的示範,告訴我們「如何用檸檬做出電池」,請參考以下影片:

62 | 65 |

所以、我們應該也可以用「50 元或 1 元的銅板」,加上鐵釘去做出檸檬電池,其中銅板是正極,而鐵釘因為表面通常會 鍍鋅以防止生鏽,再加上檸檬所含的電解質可以扮演鹽橋的功能,所以就可以組合成標準的「銅-鋅、伽凡尼」電池。

66 |
67 | 圖、檸檬電池的做法

圖、檸檬電池的做法

68 |
69 |

「銅-鋅反應」釋放的電壓大約是 1.1 伏特,而點亮一顆 LED 需要 3 伏特以上的電壓,所以必須要用三顆以上的檸檬電池 串連,就可以點亮 LED 燈了。

70 |

結語

71 |

電池通常是由「化學反應」所供電的,而這些化學反應釋放的電壓經常是固定的,假如該電池的化學反應釋放的電壓是 n 伏特,那麼這類電池所釋放的電壓通常是 n*k 伏特,因為一顆電池通常是由 k 個電池單元 (Battery Cell) 所組成的。

72 |

參考文獻

73 | 82 |

【本文由陳鍾誠取材並修改自 維基百科 與 OpenStax College 的 College Physics 一書,採用創作共用的 姓名標示、相同方式分享 授權】

83 |
84 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /htm/discuss1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 28 | 29 | 30 | 31 |
32 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

33 |
34 |
35 | 40 |

討論:關於 C 語言的「資料結構函式庫」與「記憶體分配」問題

41 |

問題 1: C 語言的 HashTable

42 |

討論網址: https://www.facebook.com/groups/programmerMagazine/permalink/707649472585105/

43 |
44 |

請問大家在寫 C 語言的時候,如果需要一個 HashTable ,那你會怎麼做呢?

45 |
    46 |
  1. 用 OpenSource .... 哪一個呢?
  2. 47 |
  3. 自己寫一個 .....
  4. 48 |
  5. 其他 .....
  6. 49 |
50 |
51 |

心得:

52 |
    53 |
  1. C 語言標準函式庫當中,沒有納入「常用的資料結構」,於是只好選用「非標準函式庫」。
  2. 54 |
  3. 如果用 C++,則有 std:map 可以用。
  4. 55 |
  5. 如果用 GNU glibc 或 POSIX 平台,則可以用 hsearch 函數。
  6. 56 |
  7. 如果用 GTK 的基礎函式庫 glib,則有完整的「常用的資料結構」。
  8. 57 |
  9. 網路上也有很多 C 的資料結構函式庫,請參考下列討論網址: 58 |
  10. 61 |
62 |

問題 2: GTK 裏的 Glib 好用嗎?

63 |

討論網址: https://www.facebook.com/groups/programmerMagazine/permalink/707669262583126/

64 |
65 |

請問 Glib 好用嗎?在 windows 上呢?

66 |

http://fred-zone.blogspot.tw/2008/03/glib-programing-io-giochannel.html

67 |
68 |

心得:

69 |
    70 |
  1. 雖然 GTK 似乎被批評的很慘,但是 Glib 應該是很好用的,風評很不錯!
  2. 71 |
  3. GTK 與 Glib 的用法,可以參考良葛格的網站 72 |
  4. 75 |
76 |

問題 3: malloc 的使用會影響效能嗎?

77 |

討論網址: https://www.facebook.com/groups/programmerMagazine/permalink/707655949251124/

78 |
79 |

再一個問題是,你在 C 語言裡會盡可能使用靜態宣告,或常常使用 malloc 分配呢?

80 |
    81 |
  1. 盡可能使用靜態
  2. 82 |
  3. 每次都使用動態 malloc 分配,即使是字串複製也會使用 strdup
  4. 83 |
  5. malloc 時盡可能一次分配大塊,然後在慢慢使用。(例如用一大塊記憶體當字串表 )
  6. 84 |
85 |
86 |

心得:

87 |
    88 |
  1. 這個問題引起的爭論特別多,所以有 158 則回應。
  2. 89 |
  3. 似乎只要考慮好區域性的問題 (locality),那麼用哪一種分配策略應該對效能影向不大 (但嵌入式就不見得了)。
  4. 90 |
  5. 如果採用 「2. 每次 malloc 小塊的方式」,有可能「區域性」會不好,所以要小心。
  6. 91 |
  7. 區域性的問題主要是影響到快取的 Hit Rate (cache hit/cache miss)。
  8. 92 |
  9. 二維以上陣列的存取順序,影響快取非常嚴重,因此必須要注意存取順序問題,例如以下狀況。
  10. 93 |
94 |

我最近讀一本書,書名是 「 深入理解计算机系统 」, 發現二維以上陣列的存取順序對 locality 影響很深,而 locality 對「cache hit rate 影響很深」 特別是像以下程式:

95 |
for (i=0; i<n; i++)
 96 |   for (j=0; j<m; j++)
 97 |     sum += a[i][j];
98 |

如果反過來

99 |
for (j=0; j<m; j++)
100 |   for (i=0; i<n; i++)
101 |     sum += a[i][j];
102 |

這樣 locality 就會很差,執行速度可能因此而慢上數十倍啊 ....

103 |

結語

104 |

雖然 C 語言是很多人都學過的,甚至還是很多人學的第一門程式語言,但其實 C 語言並不好學, 而且有很多「陷阱」。

105 |

另外、C 語言的出現很早,但是標準函式庫卻很小,因此常常要使用非標準函式庫,所以更要懂得使用 OpenSource, 而且要避免採用重複功能的函式庫,以免程式膨脹過快。

106 |

但是 C 語言的速度快,而且在嵌入式系統與作業系統上有強大的用途,因此很多快速與底層的應用仍然必須仰賴 C 語言。 但是要達到高速,對硬體的很多考慮仍然是必須的,像是 locality 就是其中之一。

107 |
108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /source/article2.md: -------------------------------------------------------------------------------- 1 | ## JavaScript (10) – Google 的語音辨識 API 之使用 (作者:陳鍾誠) 2 | 3 | 在上期「程式人雜誌」當中,我們介紹了的語音合成的主題,也就是如何讓網頁念出中文或英文,文章網址如下: 4 | 5 | * [JavaScript (9) – Google 的語音合成 API 之使用](https://dl.dropboxusercontent.com/u/101584453/pmag/201309/htm/article2.html) 6 | 7 | 本期中,我們將介紹如何製作可以進行語音辨識的網頁,同樣也是利用 Google 的服務。但不同的是,目前 8 | 好像只有 Chrome 瀏覽器之援這個功能。 9 | 10 | ### 簡介 11 | 12 | 2012 年,W3C 釋出了 [W3C:Web Speech API Specification] 這份文件,讓瀏覽器可以具備語音辨識的功能,而 Google 的 Chrome 13 | 在第 25 beta 版當中,就開始支援語音辨識功能了,這個功能的主角是一個稱為 webkitSpeechRecognition 的物件,用法如下所示。 14 | 15 | ```javascript 16 | var recognition = new webkitSpeechRecognition(); 17 | recognition.continuous = true; // 連續辨識 18 | recognition.interimResults = true; // 是否要輸出中間結果 19 | recognition.onstart = function() { ... } // 開始辨識時會自動呼叫這個函數 20 | recognition.onend = function() { ... } // 辨識完成時會自動呼叫這個函數 21 | recognition.onresult = function(event) { ... } // 辨識有任何結果時會呼叫這個函數 22 | ... 23 | ``` 24 | 25 | 透過這個物件,我們就能輕易的寫出語音辨識的 HTML+JavaScript 程式了。 26 | 27 | ### 範例程式 28 | 29 | 以下是筆者根據 Google 釋出的 [Web Speech API Demonstration] 這個範例所修改而來的一個簡化範例,其執行畫面如下。 30 | 31 | ![圖、本程式的英文的語音辨識結果](../img/speechToText_en.png) 32 | 33 | ![圖、本程式的中文的語音辨識結果](../img/speechToText_tw.png) 34 | 35 | 以下是筆者自己使用這個程式的錄影示範,您可以先看完之後再來使用這個範例,可能會比較順利。 36 | 37 | * 38 | 39 | 必須注意的是,當您直接將以下範例放在「電腦硬碟」當中執行時,是會因為安全性問題而被檔下的,因此您必須將此範例 40 | 放到 Web Server 上或 Dropbox 等環境下,然後再用 Google Chrome 25 版之後的瀏覽器開啟執行,這樣就可以正常運作了。 41 | 42 | 檔案:speechToText.html 43 | 44 | 網址: 45 | 46 | ```html 47 | 48 | 49 | 50 | 111 |
112 | 最後結果:
113 | 中間結果:
114 | 辨識語言: 115 | 119 |
120 | 121 | 122 | 123 | ``` 124 | 125 | ### 結語 126 | 127 | 透過 webkitSpeechRecognition 這個物件,我們可以用不是很長的程式碼,完成語音辨識的功能,當然也可以將這個功能進一步包裝 128 | 讓大家更方便使用,而不需要每次都寫幾十行程式碼。 129 | 130 | 如果您想更進一步瞭解 webkitSpeechRecognition 這個物件,可以參考以下 Google 釋出的專案,這個專案的介面較美觀,支援更多語言, 131 | 但是程式碼也較多,建議您先讀懂上述範例的寫法之後,再來閱讀這個專案。 132 | 133 | * [Web Speech API Demonstration] 134 | * [GoogleChrome/webplatform-samples : 上述範例的原始碼] 135 | 136 | 原本、筆者認為 Web 程式要做語音辨識是一項很困難的任務,但在 Web 越來越發達的時代,似乎甚麼樣困難的任務都變得很簡單了, 137 | 或許再過不久,所有的程式都可以用 Web 的方式製作了也不一定。 138 | 139 | ### 參考文獻 140 | * [Voice Driven Web Apps: Introduction to the Web Speech API](http://updates.html5rocks.com/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API), By Glen Shires at 14 January, 2013 141 | * [Web Speech API Demonstration] 142 | * [GoogleChrome/webplatform-samples : 上述範例的原始碼] 143 | * [W3C:Web Speech API Specification, 19 October 2012] 144 | * [The WebSpeech API Enables Voice Recognition and Speech Synthesis in the Browser](http://badassjs.com/post/40534144131/the-webspeech-api-enables-voice-recognition-and-speech) 145 | * [Textarea value Property](http://www.w3schools.com/jsref/prop_textarea_value.asp), W3Schools. 146 | 147 | [W3C:Web Speech API Specification, 19 October 2012]:https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html 148 | [Web Speech API Demonstration]:https://www.google.com/intl/en/chrome/demos/speech.html 149 | [GoogleChrome/webplatform-samples : 上述範例的原始碼]:https://github.com/GoogleChrome/webplatform-samples/blob/master/webspeechdemo/webspeechdemo.html 150 | 151 | -------------------------------------------------------------------------------- /htm/people1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 | 21 |

電磁學先鋒:安德烈-馬里·安培 (André-Marie Ampère)

22 |
23 | 圖、安德烈-馬里·安培

圖、安德烈-馬里·安培

24 |
25 |

安德烈-馬里·安培(André-Marie Ampère,FRS,1775年-1836年),法國化學家,在電磁作用方面的研究成就卓著, 對物理學及數學也有重要貢獻。電流的國際單位安培即以其姓氏命名。

26 |

1820年 7月,H.C.奧斯特發表關於電流磁效應的論文後,安培馬上集中精力研究,幾周內就提出了安培定則即右手螺旋定則。 隨後很快在幾個月之內連續發表了 3 篇論文,並設計了 9 個著名的實驗,總結了載流迴路中電流元在電磁場中的運動規律, 即安培定律。

27 |

1820年 9月25日,安培報告了兩根載流導線存在相互影響,相同方向的平行電流彼此相吸,相反方向的平行電流彼此相斥; 對兩個線圈之間的吸引和排斥也作了討論。通過一系列經典的和簡單的實驗,他認識到磁是由運動的電產生的。

28 |

1821~1825年,安培做了關於電流相互作用的四個精巧的實驗,並根據這四個實驗導出兩個電流源之間的相互作用力公式。

29 |

1827年,安培將他的電磁現象的研究綜合在《電動力學現象的數學理論》一書中 ,這是電磁學史上一部重要的經典論著, 對以後電磁學的發展起了深遠的影響。

30 |

安培的科學貢獻

31 |

1、直線電流的安培定則用右手握住導線,讓伸直的大拇指所指的方向跟電流的方向一致,那麼彎曲的四指所指的方向就是磁感線的環繞方向。

32 |
33 | 圖、安培右手定則

圖、安培右手定則

34 |
35 |

然後、安培用數學描述這個現象,於是提出了著名的「安培定律」。

36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
積分形式微分形式「馬克士威-安培方程式」的微分形式
安培定律
54 |

「安培定律的積分形式」所述說的是:「電流直線流動 I 會造成環形磁場 」,而後人所改寫的「微分形式」所述說的是: 「磁通量 B 的旋度 來自於(產生該磁場的)傳導電流密度 J」。

55 |

這個定律後來經過馬克斯威的修正之後,成了「馬克斯威電磁波方程式」裏重要的一個公式,如上表最右邊的公式所示, 該公式主要加入了「電流的變化 (或說電通量變化) 也會造成磁場的改變」這個修正。

56 |

2、環形電流的安培定則讓右手彎曲的四指和環形電流的方向一致,那麼伸直的大拇指所指的方向就是環形電流中心軸線上磁感線的方向。

57 |
58 | 圖、環形電流的安培定則

圖、環形電流的安培定則

59 |
60 |
    61 |
  1. 安培還發現,電流在線圈中流動的時候表現出來的磁性和磁鐵相似,創製出第一個螺線管,在這個基礎上發明了探測和量度電流的電流計。
  2. 62 |
63 |
64 | 圖、安培電流計

圖、安培電流計

65 |
66 |
    67 |
  1. 提出分子電流假說,認為構成磁體的分子內部存在一種環形電流,這在當時物質結構的知識甚少的情況下無法證實。但後來的科學家了解到物質由 分子組成,而分子由原子組成,原子中有繞核運動的電子,安培的分子電流假說有了實在的內容,已成為認識物質磁性的重要依據。
  2. 68 |
69 |
70 |

補充 1:1911年,拉塞福提出電子環繞原子旋轉的模型,此時距離安培電子流假說已將近百年,

71 |
72 |
73 | 圖、安德烈-馬里·安培

圖、安德烈-馬里·安培

74 |
75 |
76 |

補充 2: 1913年,波耳提出了拉塞福模型的改良版,加入了軌域的觀念。距離原子核越遠,軌域的能量就越高。當電子從距離原子核更遠的軌域,躍遷到距離原子核更近的軌域時,會以光子的形式釋放出能量。相反的,從低能級軌域躍遷到高能級軌域則會吸收能量。

77 |
78 |
79 | 圖、波耳的能階軌域模型

圖、波耳的能階軌域模型

80 |
81 |

藉著這些量子化軌域,波耳正確地計算出氫原子光譜。但是,使用波耳模型,並不能夠解釋譜線的相對強度,也無法計算出更複雜原子的光譜。 這些難題,尚待後來量子力學的解釋。

82 |

安培的小故事

83 |

安培思考科學問題專心致志,據說有一次,安培正慢慢地向他任教的學校走去,邊走邊思索著一個電學問題。 經過塞納河的時候,他隨手揀起一塊鵝卵石裝進口袋。過一會兒,又從口袋裡掏出來扔到河裡。到學校後, 他走進教室,習慣地掏懷錶看時間,拿出來的卻是一塊鵝卵石。原來,懷錶已被扔進了塞納河。

84 |

還有一次,安培在街上散步,走著走著,想出了一個電學問題的算式,正為沒有地方運算而發愁。突然, 他見到面前有一塊「黑板」,就拿出隨身攜帶的粉筆,在上面運算起來。那「黑板」原來是一輛馬車的車廂背面。 馬車走動了,他也跟著走,邊走邊寫;馬車越來越快,他就跑了起來,一心一意要完成他的推導, 直到他實在追不上馬車了才停下腳步。安培這個失常的行動,使街上的人笑得前仰後合。

85 |

結語

86 |

從以上的小故事我們可以看到,安培能夠在電磁學上有卓越的貢獻,並非僥倖而已,當一個人全心投入某個領域時, 才有可能在該領域散發出無比耀眼的光芒啊!

87 |

參考文獻

88 | 98 |

【本文由陳鍾誠取材並修改自 維基百科 與 OpenStax College 的 College Physics 一書,採用創作共用的 姓名標示、相同方式分享 授權】

99 |
100 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /source/video1.md: -------------------------------------------------------------------------------- 1 | ## 看影片學電磁物理實驗 2 | 3 | 當我看完「安培、法拉第、馬克士威」等人的故事之後,就會更想動手來做些有關「電磁學」的物理實驗了, 4 | 可惜我似乎沒有足夠的器材可以用,也不知道需要哪些器材,該怎麼做實驗等等資訊。還好、現在我們有 5 | 網路與 YouTube,讓我們可以透過影片學習這些「電磁學」實驗的作法。 6 | 7 | 因此、我又上網找了一推電磁學實驗的影片,其中內容最豐富的,我想是由「中央大學物理系物理演示實驗室」 8 | 所做的一系列影片與網頁,其中包含了各式各樣的物理學實驗,光是電磁學的部份就有二十幾片,非常建議有 9 | 興趣的朋友們將以下的網頁打開,然後仔細的看其中的說明與影片,應該對電磁學會有更深入的瞭解。 10 | 11 | * 電磁學 -- 12 | 13 | | 實驗名稱 | 說明 | 影片 | 14 | |-----------------------------|--------------------------------------|-------| 15 | | [帶電流導線在磁場中的運動] | | 有 | 16 | | [韋式起電器] | | 有 | 17 | | [靜電杯] | (萊頓瓶) | 有 | 18 | | [哪來的電?] | (伏打堆) 化學電能 | 有 | 19 | | [通電導線的磁力有多大?] | | 有 | 20 | | [高斯來福槍-U型軌道版] | | 有 | 21 | | [范氏起電器] | | 有 | 22 | | [推廣版高斯來福槍] | | 有 | 23 | | [推廣版磁鐵太空漫步] | | 有 | 24 | | [電吉他] | | 有 | 25 | | [避雷針效應] | | 有 | 26 | | [看見磁力線] | | 有 | 27 | | [高斯來福槍] | | 有 | 28 | | [磁通訊] | | 有 | 29 | | [高斯來福槍] | | 有 | 30 | | [磁鐵太空漫步] | | 有 | 31 | | [手機電磁波] | | 有 | 32 | | [電容充放電] | | 有 | 33 | | [鋁片飄浮] | | 有 | 34 | | [感應煞車] | | 有 | 35 | | [下落磁環] | | 有 | 36 | | [磁鐵點燈] | | 有 | 37 | | [電偶極靜電實驗] | | 有 | 38 | | [搖搖生電] | | 無 | 39 | | [簡易風力發電] | | 無 | 40 | | [奇妙的鋁罐] | | 無 | 41 | | [靜電球] | | 無 | 42 | | [居里溫度] | | 無 | 43 | 44 | 45 | 當然、在英文的世界理,還有更多的「電磁學相關物理實驗」的影片,以下是我所找到的一些值得觀看的 46 | 影片,也一並提供給讀者們參考。 47 | 48 | Eric Giler 示範無線電力傳輸 49 | 50 | * 51 | 52 | Wireless Power Experiments 53 | 54 | * 55 | 56 | Heinrich Hertz's Wireless Experiment (1887) 57 | 58 | * 59 | 60 | 愛迪生科技中心的教學影片: 61 | 62 | * EdisonTechCenter : 63 | 64 | 另外、如果您住在台北市,假日有空時不妨帶著全家人到「國立臺灣科學教育館」參觀,科教館裏有各式各樣的 65 | 科學器材與實驗展示,當然也包含「電磁學」的物理實驗,上面的那些經典實驗很多在科教館裏都有,而且可以 66 | 讓你親自動手玩,直接以互動的方式體會這些「電磁學原理」的奧妙喔! 67 | 68 | * 69 | 70 | 71 | [帶電流導線在磁場中的運動]:http://demo.phy.tw/experiments/electromagnetics/page/3/#!experiments/electromagnetics/ac-magnetic-contrast/ 72 | [韋式起電器]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/wimshurst-machine/ 73 | [靜電杯]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/leyden-jar/ 74 | [哪來的電?]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/voltaic-pile/ 75 | [通電導線的磁力有多大?]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/force-between-current-carry-wire/ 76 | [高斯來福槍-U型軌道版]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/u-type-track-gauss-rifle/ 77 | [范氏起電器]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/van-de-graaf-generator/ 78 | [推廣版高斯來福槍]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/compact-gauss-rifle/ 79 | [推廣版磁鐵太空漫步]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/hand_on-float-magnet/ 80 | [電吉他]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/electric-guitar/ 81 | [避雷針效應]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/lightening-rod/ 82 | [看見磁力線]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/visible-magnetic-field-line-2/ 83 | [高斯來福槍]:http://demo.phy.tw/experiments/electromagnetics/gauss-rifle/ 84 | [磁通訊]:http://demo.phy.tw/experiments/electromagnetics/magnetic-communication/ 85 | [磁鐵太空漫步]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/magnet_lenz-law_spacewalk/ 86 | [消失的電力]:http://demo.phy.tw/experiments/electromagnetics/#!experiments/electromagnetics/disappeared-electricity/ 87 | [手機電磁波]:http://demo.phy.tw/experiments/electromagnetics/#!experiments/electromagnetics/electromagnetic-wave-of-mobile-phone/ 88 | [電容充放電]:http://demo.phy.tw/experiments/electromagnetics/capacitor/ 89 | [鋁片飄浮]:http://demo.phy.tw/experiments/electromagnetics/#!experiments/electromagnetics/flying-aluminum-foil/ 90 | [感應煞車]:http://demo.phy.tw/experiments/electromagnetics/#!experiments/electromagnetics/pendulum-stop/ 91 | [下落磁環]:http://demo.phy.tw/experiments/electromagnetics/#!experiments/electromagnetics/falling-magnet/ 92 | [磁鐵點燈]:http://demo.phy.tw/experiments/electromagnetics/#!experiments/electromagnetics/lenzs-law/ 93 | [電偶極靜電實驗]:http://demo.phy.tw/experiments/electromagnetics/#!experiments/electromagnetics/electrostatics/ 94 | 95 | [搖搖生電]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/%e6%90%96%e6%90%96%e7%94%9f%e9%9b%bb/ 96 | [簡易風力發電]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/%e7%b0%a1%e6%98%93%e9%a2%a8%e5%8a%9b%e7%99%bc%e9%9b%bb/ 97 | [奇妙的鋁罐]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/%e5%a5%87%e5%a6%99%e7%9a%84%e9%8b%81%e7%bd%90/ 98 | [靜電球]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/static-charged-ball/ 99 | [居里溫度]:http://demo.phy.tw/experiments/electromagnetics/page/2/#!experiments/electromagnetics/curie-temperature/ 100 | 101 | 102 | [姓名標示-非商業性-相同方式分享 2.5 台灣]:http://creativecommons.org/licenses/by-nc-sa/2.5/tw/ 103 | 104 | -------------------------------------------------------------------------------- /htm/article1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 28 | 29 | 30 | 31 |
32 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

33 |
34 |
35 | 40 |

Arduino入門教學(10) – 使用 SHT15 溫溼度計 (作者:Cooper Maa)

41 |

實驗目的

42 |

練習使用 SHT15 溫溼度計,將讀到的溫溼度讀值輸出到 Serial Port 上。下圖為 SHT15 模組的外觀:

43 |
44 | 45 |
46 |

材料

47 |
    48 |
  • 麵包板 x 1
  • 49 |
  • Arduino 主板 x 1
  • 50 |
  • SHT15 Breakout Board (分接板) x 1
  • 51 |
  • 單心線 x N
  • 52 |
  • 接線
  • 53 |
  • 將 SHT15 的 VCC 接到 Arduino 的 +5V,GND 接到 Arduino 的 GND
  • 54 |
  • 將 SHT15 的 Data 腳接到 pin11, SCK 接到 pin10
  • 55 |
56 |
57 | 58 |
59 |

實際接線照片:

60 |
61 | 62 |
63 |

電路圖

64 |
65 | 66 |
67 |

SHT1x 函式庫

68 |

關於 SHT1x 溫溼計,原本使用程序是很繁瑣的(見 SHT1x and SHT7x Sample Code),SHT1x Library 已經把事情變簡單了,現在只要安裝 SHT1x Library,就可以很輕鬆地讀取 SHT1x 系列(SHT10, SHT11, SHT15) 溫溼度計的讀值。

69 |

SHT1x Library 的安裝辦法很簡單,先到官網或直接點此下載函式庫後,把檔案解壓縮放到 Arduino 的 Libraries 資料夾底下即可:

70 |
71 | 72 |
73 |

程式碼

74 |

底下是 SHT15 溫溼度計的讀取範例,程式讓 Arduino 向 SHT15 讀取資料,並將讀到的溫溼度讀值輸出到 Serial Port,每秒鐘做一次(ReadSHT1x.pde):

75 |
/* Lab10 - SHT1x 系列(SHT10, SHT11, SHT15)溫溼度計的讀取範例
 76 |  * 
 77 |  * 須安裝 SHT1x Library:
 78 |  *    https://github.com/practicalarduino/SHT1x/
 79 |  */
 80 | 
 81 | #include <SHT1x.h>
 82 | 
 83 | // 定義 SHT1x 連接的腳位
 84 | #define dataPin  11
 85 | #define clockPin 10
 86 | 
 87 | // 初始化 sht1x 物件
 88 | SHT1x sht1x(dataPin, clockPin);
 89 | 
 90 | void setup()
 91 | {
 92 |    Serial.begin(9600);
 93 | }
 94 | 
 95 | void loop()
 96 | {
 97 |   // 宣告三個變數&#65292;分別代表溫度(攝氏), 溫度(華氏) 以及溼度
 98 |   float temp_c, temp_f, humidity;
 99 | 
100 |   // 讀取 SHT1x 溫溼度值
101 |   temp_c = sht1x.readTemperatureC();
102 |   temp_f = sht1x.readTemperatureF();
103 |   humidity = sht1x.readHumidity();
104 | 
105 |   // 將讀到的溫溼度讀值輸出至 Serial Port
106 |   Serial.print("Temperature: ");
107 |   Serial.print(temp_c, 1);  // 顯示到小數點後一位
108 |   Serial.print("C / ");
109 |   Serial.print(temp_f, 1);  // 顯示到小數點後一位
110 |   Serial.print("F. Humidity: ");
111 |   Serial.print(humidity);
112 |   Serial.println("%");
113 | 
114 |   delay(1000);
115 | }
116 |

範例照片/影片

117 |

上傳程式到 Arduino 後,打開 Serial Monitor,就會看到 Arduino 送過來的溫溼度資料,如下圖:

118 |
119 | 120 |
121 |

動動腦

122 |

試修改程式,把從 SHT15 讀到的溫溼度資料輸出到 2x16 的 LCD 上。2x16 LCD 的使用方法可參考「 Lab9 在 2x16 LCD 上顯示 "Hello World” 訊息 」 Arduino 現在可以把溫溼度資料送到 Serial Port,試在 PC 端寫一支「溫溼度 Data Log」程式,把 Arduino 送過來的溫溼度資料寫到資料庫,資料庫軟體任君選擇,要用 Excel, Access, SQLite 或 MySQL 都可以。

123 |

使用你熟悉的工具(如 Excel, JavaScript/flot, Tcl),繒製一張每日溫溼度曲線度。

124 |

延伸閱讀

125 | 131 |

【本文作者為馬萬圳,原文網址為: http://coopermaa2nd.blogspot.tw/2010/12/arduino-sht15.html ,由陳鍾誠編輯後納入本雜誌】

132 |
133 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /source/people2.md0: -------------------------------------------------------------------------------- 1 | ## 電磁學奇才:麥可·法拉第 (Michael Faraday) 2 | 3 | ![圖、麥可·法拉第的肖象素描
由約翰·瓦特金所畫,現存於大英圖書館](../img/Faraday.jpg) 4 | 5 | 麥可·法拉第(英語:Michael Faraday,1791年9月22日-1867年8月25日),英國物理學家在電磁學及電化學領域 6 | 做出很多重要貢獻。 7 | 8 | 西方科學與工業之間,總是存在某種相互促進的關係,在科學的發展過程當中,總是呈現「理論 - 實驗 - 理論 - 實驗 ....」 9 | 這樣的發展循環,而法拉第所代表的,極度的偏向「實驗」這一端,他一生當中做過了無數的實驗,這些實驗遍佈了 10 | 整個電磁學領域,讓後來的「馬克斯威」可以透過解讀他的實驗結果,運用深厚的數學內功提出了電磁學的完整理論架構, 11 | 並創造出了「馬克斯威方程式」,如果沒有法拉第,或許就沒有「馬克斯威」的電磁學理論了。 12 | 13 | ### 出身 14 | 15 | 法拉第出生於英國紐因頓,接近現在的倫敦大象堡。法拉第家的經濟狀況並不好,他的父親詹姆士是個鐵匠以及 16 | 基督教桑地馬尼安教派的一員,於1780年代從英格蘭的西北部來到倫敦。由於家境貧窮,因此他只好靠自學 17 | 求取知識。14歲時,他成為書本裝訂商及銷售人喬治·雷伯的門生。7年學徒生涯中,他讀過大量書籍,包括以 18 | 撒·華茲的「悟性的提升」,書中對於學習的原則與建議,法拉第一直遵行不輟。另外,他也從由珍·瑪西女士 19 | 所寫的「化學閒聊」中得到很多啟發。在這些大量的閱讀之中,法拉第漸漸樹立起對科學的興趣,這其中, 20 | 又以電學為甚。 21 | 22 | 1812年,時齡二十歲,隨著門生生涯走入尾聲,法拉第開始旁聽由赫赫有名的皇家研究機構的一員以及 23 | 英國皇家學會會長:漢弗里·戴維爵士以及市立哲學協會的創始者:約翰·塔特姆所開的演講。 24 | 參加這些演講的門票大多是由威廉·譚斯(皇家愛樂協會的創辦人之一)給予法拉第。之後有一次,法拉第將 25 | 自己在演講中細心抄錄,並旁徵博引,內容達三百頁的筆記拿給戴維過目,戴維立刻給予他相當友善且正面的答覆。 26 | 也因此,戴維在一次三氯化氮實驗中發生意外,視力受損之後,便僱用了法拉第作為他的秘書。當皇家研究院中一位 27 | 助手約翰·培恩離開後,他們便請求戴維尋找替代人選。戴維在1813年3月1日推薦法拉第成為化學助理。 28 | 由於法拉第在印書店的新僱主亨利·德拉羅許脾氣暴躁,他毫不猶豫的離開了這份舊工作。 29 | 30 | ### 行事作風在當時的階級分明的英國社會中,出身卑微的法拉第並不被認同為一個紳士。在1813年五月, 31 | 戴維展開一次長期的歐洲巡迴。由於他的侍從並不想跟隨,法拉第原本是以助手的身份跟去, 32 | 卻被要求同時作戴維的僕人,直到在巴黎找到人代替為止。戴維最後沒有找到代替者, 33 | 法拉第也因此被強迫在整個旅行中同時兼任僕人與助手。戴維的妻子珍·亞普莉絲不願意平等 34 | 對待法拉第,旅行時要他坐在馬車外,與傭人一起吃飯,法拉第的處境越來越悽慘,甚至開始 35 | 考慮獨自回到英國放棄科學研究。不過這次旅行,也讓他接觸了歐洲許多的科學菁英, 36 | 刺激出他許多想法。逆境最終沒有阻擋住法拉第在科學上的貢獻。在旅行過後不久, 37 | 法拉第的成就便超越了戴維。 38 | 39 | 法拉第的主要贊助者兼顧問為約翰·『瘋狂傑克』·富勒,他在皇家研究院裡創立了富勒里安化學教授這個職位。 40 | 41 | 在1824年,法拉第被選為皇家學會院士,並於1825年被指派為實驗室主任。1833年他被選為皇家研究院終身職,任職而不需講課。 42 | 43 | 法拉第是一名高度虔誠的教徒,他是桑地馬尼安教派(蘇格蘭國教會的一分支)的信徒,曾在其中任兩任長老。 44 | 此教派是由蘇格蘭長老會牧師格拉斯於1730年創立,此教要求完全的信奉和承諾。傳記學家曾經認為"一種神與 45 | 自然融為一體的感覺貫穿了法拉第的生活與工作。法拉第在1821年娶沙拉·巴娜德為妻,不過膝下無子。 46 | 他們由於參加桑地馬尼安教會而認識。 47 | 48 | 雖然法拉第只受過很少的正式教育,這使得他的高等數學知識(例如微積分)相對有限,但不可否認, 49 | 法拉第仍是歷史上最有影響力的科學家之一。某些科學史學家認為他是科學史上最優秀的 50 | 「實驗主義者」。其科學知識可能主要是在擔任另一科學家戴維的助手時所學習而來,因而雖然 51 | 法拉第不曾受過高等教育,但仍可把漢弗里·戴維視為法拉第的指導教授。 52 | 53 | 由於道德原因,法拉第拒絕參與為「克里米亞戰爭」製造化學武器。在倫敦薩弗伊廣場,電工程師協會外,聳立著一個法拉第的雕像, 54 | 而在布魯內爾大學新建的一個接待廳以法拉第為名。 55 | 56 | ### 電磁學研究 57 | 58 | 1821 年,在丹麥化學家「漢斯·奧斯特」發現電磁現象後,「戴維」和「威廉·海德·渥拉斯」頓嘗試設計一部電動機,但沒有成功。 59 | 法拉第在與他們討論過這個問題後,繼續工作並建造了兩個裝置以產生他稱為「電磁轉動」的現象:由線圈外環狀磁場造成的連續旋轉運動。 60 | 他把導線接上化學電池,使其導電,再將導線放入內有磁鐵的汞池之中,則導線將繞著磁鐵旋轉。這個裝置現稱為單極電動機。 61 | 這些實驗與發明成為了現代電磁科技的基石。 62 | 63 | 但此時法拉第卻做了一件不智之舉,在沒有通知戴維跟渥拉斯頓情況下,擅自發表了此項研究成果。此舉招來諸多爭議, 64 | 也迫使他離開電磁學研究數年之久。 65 | 66 | 在這個階段,有些證據指出戴維可能有意阻礙法拉第在科學界的發展。如在1825年,戴維指派法拉第進行光學玻璃實驗, 67 | 此實驗歷時六年,但沒有顯著的進展。直到1829年,戴維去世,法拉第停止了這個無意義的工作並開始其他有意義的實驗。 68 | 在1831年,他開始一連串重大的實驗,並發現了電磁感應,雖然在福朗席斯科·札德啟稍早的工作可能便預見了此結果, 69 | 此發現仍可稱為法拉第最大的貢獻之一。 70 | 71 | 這個重要的發現來自於,當他將兩條獨立的電線環繞在一個大鐵環,固定在椅子上,並在其中一條導線通以電流時, 72 | 另外一條導線竟也產生電流。他因此進行了另外一項實驗,並發現若移動一塊磁鐵通過導線線圈,則線圈中將有電流產生。 73 | 同樣的現象也發生在移動線圈通過靜止的磁鐵上方時。 74 | 75 | 他的展示向世人建立起「磁場的改變產生電場」的觀念。此關係由法拉第電磁感應定律建立起數學模型, 76 | 並成為四條馬克士威方程組之一。這個方程組之後則歸納入場論之中。 77 | 78 | 1839年他成功了一連串的實驗帶領人類了解電的本質。法拉第使用「靜電」、電池以及「生物生電」已產生靜電相吸、 79 | 電解、磁力等現象。他由這些實驗,做出與當時主流想法相悖的結論,即雖然來源不同,產生出的電都是一樣的, 80 | 另外若改變大小及密度(電壓及電荷),則可產生不同的現象。 81 | 82 | 在他生涯的晚年,他提出電磁力不僅存在於導體中,更延伸入導體附近的空間裡。這個想法被他的同儕排斥, 83 | 法拉第也終究沒有活著看到這個想法被世人所接受。法拉第也提出電磁線的概念:這些流線由帶電體或者是磁鐵 84 | 的其中一極中放射出,射向另一電性的帶電體或是磁性異極的物體。這個概念幫助世人能夠將抽象的電磁場具象化, 85 | 對於電力機械裝置在十九世紀的發展有重大的影響。而這些裝置在之後的十九世紀中主宰了整個工程與工業界。 86 | 87 | 1845年他發現了被他命名為抗磁性 (diamagnetism) 的現像 (現在則稱為法拉第效應):一個線性極化的光線在經過一 88 | 物體介質時,外加一磁場並與光線的前進方向對齊,則此磁場將使光線在空間中劃出的平面轉向。 89 | 他在筆記本中寫下:『我終於在「闡釋一條磁力曲線」—或者說「力線」—及「磁化光線」中取得成功。』 90 | ("I have at last succeeded in illuminating a magnetic curve or line of force and in magnetising a ray of light")。 91 | 這個實驗證明了光和磁力有所聯繫。 92 | 93 | > 筆者註:這個實驗暗示了光很可能是一種電磁波,於是後來馬克士威推論出電磁波速度等於光速時,幾乎就立刻體悟了這個結論。 94 | 95 | 在對於靜電的研究中,法拉第發現在帶電導體上的電荷僅依附於導體表面,且這些表面上的電荷對於導體內部沒有任何影響。 96 | 造成這樣的原因在於在導體表面的電荷彼此受到對方的靜電力作用而重新分佈至一穩定狀態,使得每個電荷對內部造成的 97 | 靜電力互相抵銷。這個效應稱為遮蔽效應,並被應用於「法拉第籠」這個隔絕電磁波的裝置上。 98 | 99 | ### 化學研究 100 | 101 | 法拉第最早的化學成果來自於擔任戴維助手的時期。他花了很多心血研究氯氣,並發現了兩種碳化氯。 102 | 他也研究過氣體擴散現象,並成功的液化了多種氣體;然後研究過不同的鋼合金,並進行過光學的實驗,更製造出多種新型的玻璃。 103 | 其中一塊玻璃樣品後來在歷史上佔有一席之地,因為在一次當法拉第將此玻璃放入磁場中時,他發現了極化光平面受磁力造成偏轉 104 | 及被磁力排斥。 105 | 106 | 法拉第在戴維去旅行時曾代理職務,並接受分析委託,其中最著名的三項委託是: 107 | 108 | 1. 分析源自托斯卡尼的天然生石灰、2. 原住土著的標槍頭研究 (分析出「矽鋼」) 和 3. 大馬士革騎兵彎刀 109 | 110 | 其中第三項的彎刀研究,發現古敘利亞可能有鉑礦場,並加入鉑礦使之輕巧但卻鋒利無比,連西方騎兵重軍刀都能被削斷。 111 | 112 | 後來英國人經過不斷的嘗試之後,終於發明了「碳鋼」,這使大英帝國的騎兵在中東戰場能夠擊破大馬士革的彎刀。 113 | 114 | 他也盡心於創造出於一些化學的常用方法,用結果、研究目標以及大眾展示做為分類,並從中獲得一些成果。 115 | 他發明了一種加熱工具,是本生燈的前身,在科學實驗室廣為採用,作為熱能的來源。 116 | 117 | 法拉第在多個化學領域中都有所成果,發現了諸如苯等化學物質(他稱此物質為雙碳化氫(bicarburet of hydrogen)),發明氧化數,將如氯等氣體液化。他找出一種氯水合物的組成,這個物質最早在1810年由戴維發現。 118 | 119 | 法拉第也發現了電解定律,以及推廣許多專業用語,如陽極、陰極、電極及離子等,這些詞語大多由威廉·休艾爾 120 | 發明。由於這些成就,很多現代的化學家視法拉第為有史以來最出色的實驗科學家之一。 121 | 122 | ### 法拉第電磁感應定律 123 | 124 | 法拉第電磁感應定律是電磁學中的一條基本定律,跟變壓器、電感元件及多種發電機的運作有密切關係。定律指出: 125 | 任何封閉電路中感應電動勢的大小,等於穿過這一電路磁通量的變化率。 126 | 127 | $E=-\frac{d\Phi_B }{dt}$ 128 | 129 | 這個定律與安培定律,基本上就是馬克斯威方程式的兩大核心定律。 130 | 131 | 這兩大定律,讓「電生磁、磁生電」的循環建立起來了,於是、「電磁學的世界」有了一個堅實的理論基礎。 132 | 133 | 然後、這個世界裏更多的科學家與工程師連手,打造出了「發電機、馬達、天線、電磁爐、有線與無線的電子電機設備」等等, 134 | 像是「馬達」與「發電機」就完全是依靠「法拉第與安培」定律所打造出來的設備,如下圖所示。 135 | 136 | ![圖、馬達與發電機的構造與原理](../img/MotorEGenerator.jpg) 137 | 138 | ### 法拉第電解定律 139 | 140 | 法拉第在電化學上也貢獻良多,例如他發現在物質電解過程中,參與電極反應的質量與通過電極的電量成正比。 141 | 換句話說,不同物質電解的質量則正比於該物質的化學當量,這個發現可以寫成以下定律。 142 | 143 | $m=\frac{MQ}{Fn}$ 144 | 145 | 其中 n 為 1 莫耳物質電解時參與電極反應的電子的摩爾數(即化合價),(M/n)又稱化學當量(Eq); 146 | F 為法拉第常數,即電解1電化學當量物質所需電量。 147 | 148 | 法拉第電解定律適用於一切電極反應的氧化還原過程,是電化學反應中的基本定量定律。 149 | 150 | ### 晚年 151 | 152 | 1848年,受到艾伯特王夫引見,法拉第受賜在薩里漢普頓宮的恩典之屋,並免繳所有開銷與維修費。這曾是石匠師傅之屋, 153 | 後稱為法拉第之屋,現位於漢普頓宮道37號(No.37 Hampton Court Road)。在1858年,法拉第退休並在此定居。 154 | 155 | 在他有生之年中,他推辭了封爵並且兩次拒絕成為皇家學會會長。他在 1867 年 8 月 25 日死於位於漢普頓宮的家中。 156 | 在西敏寺,艾薩克·牛頓的墓旁座落著他的紀念碑。但是他拒絕在西敏寺下葬,而入土於桑地馬尼安教派的海格特墓園中。 157 | 158 | ### 結語 159 | 160 | 在閱讀了法拉第的故事之後,感覺到科學界似乎有兩類不同的典型,像是「法拉第、愛迪生、瓦特、萊特兄弟」等人, 161 | 是屬於做實驗與應用的「劍宗高手」,這類科學家往往可以創造出很多偉大的發明與實驗結果。 162 | 163 | 而另一類科學家,像是「馬克斯威、牛頓、愛因斯坦」等人,則是數學很強的「氣宗高手」,他們雖然實驗與應用能力 164 | 不見得很好,但是透過深厚的數學內功,往往可以把前人的實驗結果解讀後,創建出一個完整的理論體系,而這個理論體系, 165 | 最後會成為下一波「劍宗高手」的「武學秘笈」,指引他們「邁向下一個偉大的航道」啊! 166 | 167 | 最令我感動的是,法拉第的謙虛,以及對馬克士威的友好態度,並且與他結成忘年之交,兩人共同構築了電磁學理論的科學體系。 168 | (雖然當初戴維與她太太瞧不起法拉第,但是法拉第成名後並沒有向他們一樣變成高傲的人,相反的卻很樂意提攜後進)。 169 | 170 | 這種透過「理論與實驗結合」,以及「學術與產業的結合」,讓整個世界的科學,不斷的突破進展的精神,是我一直認為台灣所缺乏的, 171 | 我想,整個國家需要的不是「個人利益的算計」,而是一種「無私奉獻精神的良性循環」,只有透過這種良性循環,才能讓國家或全人類都能真正獲得 172 | 進步的動力啊! 173 | 174 | 如果、這個世界只有「氣宗」或者只有「劍宗」的話,應該不會如此多采多姿吧! 175 | 176 | ### 參考文獻 177 | * 維基百科:[麥可‧法拉第](http://zh.wikipedia.org/wiki/%E9%BA%A5%E5%8F%AF%C2%B7%E6%B3%95%E6%8B%89%E7%AC%AC) 178 | * 維基百科:[法拉第電解定律](http://zh.wikipedia.org/wiki/%E6%B3%95%E6%8B%89%E7%AC%AC%E7%94%B5%E8%A7%A3%E5%AE%9A%E5%BE%8B) 179 | * 維基百科:[法拉第電磁感應定律](http://zh.wikipedia.org/wiki/%E6%B3%95%E6%8B%89%E7%AC%AC%E7%94%B5%E7%A3%81%E6%84%9F%E5%BA%94%E5%AE%9A%E5%BE%8B) 180 | * [電學之父-法拉第的故事](http://www.books.com.tw/products/0010060703), 作者:張文亮著, 出版社:文經社 181 | * [電的旅程:探索人類駕馭電子的歷史過程](http://www.books.com.tw/products/0010498148), 作者:張大凱, 遠見天下出版社 182 | * [電磁波 :一本電機系學生的入門書](http://www.tenlong.com.tw/items/9866184897?item_id=462096), 高銘盛, 滄海出版社 183 | * [College Physics], OpenStax College. 184 | 185 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 186 | 187 | 188 | 189 | -------------------------------------------------------------------------------- /source/people2.md: -------------------------------------------------------------------------------- 1 | ## 電磁學奇才:麥可·法拉第 (Michael Faraday) 2 | 3 | ![圖、麥可·法拉第的肖象素描
由約翰·瓦特金所畫,現存於大英圖書館](../img/Faraday.jpg) 4 | 5 | 麥可·法拉第(英語:Michael Faraday,1791年9月22日-1867年8月25日),英國物理學家在電磁學及電化學領域 6 | 做出很多重要貢獻。 7 | 8 | 西方科學與工業之間,總是存在某種相互促進的關係,在科學的發展過程當中,總是呈現「理論 - 實驗 - 理論 - 實驗 ....」 9 | 這樣的發展循環,而法拉第所代表的,極度的偏向「實驗」這一端,他一生當中做過了無數的實驗,這些實驗遍佈了 10 | 整個電磁學領域,讓後來的「馬克斯威」可以透過解讀他的實驗結果,運用深厚的數學內功提出了電磁學的完整理論架構, 11 | 並創造出了「馬克斯威方程式」,如果沒有法拉第,或許就沒有「馬克斯威」的電磁學理論了。 12 | 13 | ### 出身 14 | 15 | 法拉第出生於英國紐因頓,接近現在的倫敦大象堡。法拉第家的經濟狀況並不好,他的父親詹姆士是個鐵匠以及 16 | 基督教桑地馬尼安教派的一員,於1780年代從英格蘭的西北部來到倫敦。由於家境貧窮,因此他只好靠自學 17 | 求取知識。14歲時,他成為書本裝訂商及銷售人喬治·雷伯的門生。7年學徒生涯中,他讀過大量書籍,包括以 18 | 撒·華茲的「悟性的提升」,書中對於學習的原則與建議,法拉第一直遵行不輟。另外,他也從由珍·瑪西女士 19 | 所寫的「化學閒聊」中得到很多啟發。在這些大量的閱讀之中,法拉第漸漸樹立起對科學的興趣,這其中, 20 | 又以電學為甚。 21 | 22 | 1812年,時齡二十歲,隨著門生生涯走入尾聲,法拉第開始旁聽由赫赫有名的皇家研究機構的一員以及 23 | 英國皇家學會會長:漢弗里·戴維爵士以及市立哲學協會的創始者:約翰·塔特姆所開的演講。 24 | 參加這些演講的門票大多是由威廉·譚斯(皇家愛樂協會的創辦人之一)給予法拉第。之後有一次,法拉第將 25 | 自己在演講中細心抄錄,並旁徵博引,內容達三百頁的筆記拿給戴維過目,戴維立刻給予他相當友善且正面的答覆。 26 | 也因此,戴維在一次三氯化氮實驗中發生意外,視力受損之後,便僱用了法拉第作為他的秘書。當皇家研究院中一位 27 | 助手約翰·培恩離開後,他們便請求戴維尋找替代人選。戴維在1813年3月1日推薦法拉第成為化學助理。 28 | 由於法拉第在印書店的新僱主亨利·德拉羅許脾氣暴躁,他毫不猶豫的離開了這份舊工作。 29 | 30 | ### 行事作風在當時的階級分明的英國社會中,出身卑微的法拉第並不被認同為一個紳士。在1813年五月, 31 | 戴維展開一次長期的歐洲巡迴。由於他的侍從並不想跟隨,法拉第原本是以助手的身份跟去, 32 | 卻被要求同時作戴維的僕人,直到在巴黎找到人代替為止。戴維最後沒有找到代替者, 33 | 法拉第也因此被強迫在整個旅行中同時兼任僕人與助手。戴維的妻子珍·亞普莉絲不願意平等 34 | 對待法拉第,旅行時要他坐在馬車外,與傭人一起吃飯,法拉第的處境越來越悽慘,甚至開始 35 | 考慮獨自回到英國放棄科學研究。不過這次旅行,也讓他接觸了歐洲許多的科學菁英, 36 | 刺激出他許多想法。逆境最終沒有阻擋住法拉第在科學上的貢獻。在旅行過後不久, 37 | 法拉第的成就便超越了戴維。 38 | 39 | 法拉第的主要贊助者兼顧問為約翰·『瘋狂傑克』·富勒,他在皇家研究院裡創立了富勒里安化學教授這個職位。 40 | 41 | 在1824年,法拉第被選為皇家學會院士,並於1825年被指派為實驗室主任。1833年他被選為皇家研究院終身職,任職而不需講課。 42 | 43 | 法拉第是一名高度虔誠的教徒,他是桑地馬尼安教派(蘇格蘭國教會的一分支)的信徒,曾在其中任兩任長老。 44 | 此教派是由蘇格蘭長老會牧師格拉斯於1730年創立,此教要求完全的信奉和承諾。傳記學家曾經認為"一種神與 45 | 自然融為一體的感覺貫穿了法拉第的生活與工作。法拉第在1821年娶沙拉·巴娜德為妻,不過膝下無子。 46 | 他們由於參加桑地馬尼安教會而認識。 47 | 48 | 雖然法拉第只受過很少的正式教育,這使得他的高等數學知識(例如微積分)相對有限,但不可否認, 49 | 法拉第仍是歷史上最有影響力的科學家之一。某些科學史學家認為他是科學史上最優秀的 50 | 「實驗主義者」。其科學知識可能主要是在擔任另一科學家戴維的助手時所學習而來,因而雖然 51 | 法拉第不曾受過高等教育,但仍可把漢弗里·戴維視為法拉第的指導教授。 52 | 53 | 由於道德原因,法拉第拒絕參與為「克里米亞戰爭」製造化學武器。在倫敦薩弗伊廣場,電工程師協會外,聳立著一個法拉第的雕像, 54 | 而在布魯內爾大學新建的一個接待廳以法拉第為名。 55 | 56 | ### 電磁學研究 57 | 58 | 1821 年,在丹麥化學家「漢斯·奧斯特」發現電磁現象後,「戴維」和「威廉·海德·渥拉斯」頓嘗試設計一部電動機,但沒有成功。 59 | 法拉第在與他們討論過這個問題後,繼續工作並建造了兩個裝置以產生他稱為「電磁轉動」的現象:由線圈外環狀磁場造成的連續旋轉運動。 60 | 他把導線接上化學電池,使其導電,再將導線放入內有磁鐵的汞池之中,則導線將繞著磁鐵旋轉。這個裝置現稱為單極電動機。 61 | 這些實驗與發明成為了現代電磁科技的基石。 62 | 63 | 但此時法拉第卻做了一件不智之舉,在沒有通知戴維跟渥拉斯頓情況下,擅自發表了此項研究成果。此舉招來諸多爭議, 64 | 也迫使他離開電磁學研究數年之久。 65 | 66 | 在這個階段,有些證據指出戴維可能有意阻礙法拉第在科學界的發展。如在1825年,戴維指派法拉第進行光學玻璃實驗, 67 | 此實驗歷時六年,但沒有顯著的進展。直到1829年,戴維去世,法拉第停止了這個無意義的工作並開始其他有意義的實驗。 68 | 在1831年,他開始一連串重大的實驗,並發現了電磁感應,雖然在福朗席斯科·札德啟稍早的工作可能便預見了此結果, 69 | 此發現仍可稱為法拉第最大的貢獻之一。 70 | 71 | 這個重要的發現來自於,當他將兩條獨立的電線環繞在一個大鐵環,固定在椅子上,並在其中一條導線通以電流時, 72 | 另外一條導線竟也產生電流。他因此進行了另外一項實驗,並發現若移動一塊磁鐵通過導線線圈,則線圈中將有電流產生。 73 | 同樣的現象也發生在移動線圈通過靜止的磁鐵上方時。 74 | 75 | 他的展示向世人建立起「磁場的改變產生電場」的觀念。此關係由法拉第電磁感應定律建立起數學模型, 76 | 並成為四條馬克士威方程組之一。這個方程組之後則歸納入場論之中。 77 | 78 | 1839年他成功了一連串的實驗帶領人類了解電的本質。法拉第使用「靜電」、電池以及「生物生電」已產生靜電相吸、 79 | 電解、磁力等現象。他由這些實驗,做出與當時主流想法相悖的結論,即雖然來源不同,產生出的電都是一樣的, 80 | 另外若改變大小及密度(電壓及電荷),則可產生不同的現象。 81 | 82 | 在他生涯的晚年,他提出電磁力不僅存在於導體中,更延伸入導體附近的空間裡。這個想法被他的同儕排斥, 83 | 法拉第也終究沒有活著看到這個想法被世人所接受。法拉第也提出電磁線的概念:這些流線由帶電體或者是磁鐵 84 | 的其中一極中放射出,射向另一電性的帶電體或是磁性異極的物體。這個概念幫助世人能夠將抽象的電磁場具象化, 85 | 對於電力機械裝置在十九世紀的發展有重大的影響。而這些裝置在之後的十九世紀中主宰了整個工程與工業界。 86 | 87 | 1845年他發現了被他命名為抗磁性 (diamagnetism) 的現像 (現在則稱為法拉第效應):一個線性極化的光線在經過一 88 | 物體介質時,外加一磁場並與光線的前進方向對齊,則此磁場將使光線在空間中劃出的平面轉向。 89 | 他在筆記本中寫下:『我終於在「闡釋一條磁力曲線」—或者說「力線」—及「磁化光線」中取得成功。』 90 | ("I have at last succeeded in illuminating a magnetic curve or line of force and in magnetising a ray of light")。 91 | 這個實驗證明了光和磁力有所聯繫。 92 | 93 | > 筆者註:這個實驗暗示了光很可能是一種電磁波,於是後來馬克士威推論出電磁波速度等於光速時,幾乎就立刻體悟了這個結論。 94 | 95 | 在對於靜電的研究中,法拉第發現在帶電導體上的電荷僅依附於導體表面,且這些表面上的電荷對於導體內部沒有任何影響。 96 | 造成這樣的原因在於在導體表面的電荷彼此受到對方的靜電力作用而重新分佈至一穩定狀態,使得每個電荷對內部造成的 97 | 靜電力互相抵銷。這個效應稱為遮蔽效應,並被應用於「法拉第籠」這個隔絕電磁波的裝置上。 98 | 99 | ### 化學研究 100 | 101 | 法拉第最早的化學成果來自於擔任戴維助手的時期。他花了很多心血研究氯氣,並發現了兩種碳化氯。 102 | 他也研究過氣體擴散現象,並成功的液化了多種氣體;然後研究過不同的鋼合金,並進行過光學的實驗,更製造出多種新型的玻璃。 103 | 其中一塊玻璃樣品後來在歷史上佔有一席之地,因為在一次當法拉第將此玻璃放入磁場中時,他發現了極化光平面受磁力造成偏轉 104 | 及被磁力排斥。 105 | 106 | 法拉第在戴維去旅行時曾代理職務,並接受分析委託,其中最著名的三項委託是: 107 | 108 | 1. 分析源自托斯卡尼的天然生石灰、2. 原住土著的標槍頭研究 (分析出「矽鋼」) 和 3. 大馬士革騎兵彎刀 109 | 110 | 其中第三項的彎刀研究,發現古敘利亞可能有鉑礦場,並加入鉑礦使之輕巧但卻鋒利無比,連西方騎兵重軍刀都能被削斷。 111 | 112 | 後來英國人經過不斷的嘗試之後,終於發明了「碳鋼」,這使大英帝國的騎兵在中東戰場能夠擊破大馬士革的彎刀。 113 | 114 | 他也盡心於創造出於一些化學的常用方法,用結果、研究目標以及大眾展示做為分類,並從中獲得一些成果。 115 | 他發明了一種加熱工具,是本生燈的前身,在科學實驗室廣為採用,作為熱能的來源。 116 | 117 | 法拉第在多個化學領域中都有所成果,發現了諸如苯等化學物質(他稱此物質為雙碳化氫(bicarburet of hydrogen)),發明氧化數,將如氯等氣體液化。他找出一種氯水合物的組成,這個物質最早在1810年由戴維發現。 118 | 119 | 法拉第也發現了電解定律,以及推廣許多專業用語,如陽極、陰極、電極及離子等,這些詞語大多由威廉·休艾爾 120 | 發明。由於這些成就,很多現代的化學家視法拉第為有史以來最出色的實驗科學家之一。 121 | 122 | ### 法拉第電磁感應定律 123 | 124 | 法拉第電磁感應定律是電磁學中的一條基本定律,跟變壓器、電感元件及多種發電機的運作有密切關係。定律指出: 125 | 任何封閉電路中感應電動勢的大小,等於穿過這一電路磁通量的變化率。 126 | 127 | ![](../timg/E_frac_d_345cf0d4c0e85277c1389852f14780cc.jpg) 128 | 129 | 這個定律與安培定律,基本上就是馬克斯威方程式的兩大核心定律。 130 | 131 | 這兩大定律,讓「電生磁、磁生電」的循環建立起來了,於是、「電磁學的世界」有了一個堅實的理論基礎。 132 | 133 | 然後、這個世界裏更多的科學家與工程師連手,打造出了「發電機、馬達、天線、電磁爐、有線與無線的電子電機設備」等等, 134 | 像是「馬達」與「發電機」就完全是依靠「法拉第與安培」定律所打造出來的設備,如下圖所示。 135 | 136 | ![圖、馬達與發電機的構造與原理](../img/MotorEGenerator.jpg) 137 | 138 | ### 法拉第電解定律 139 | 140 | 法拉第在電化學上也貢獻良多,例如他發現在物質電解過程中,參與電極反應的質量與通過電極的電量成正比。 141 | 換句話說,不同物質電解的質量則正比於該物質的化學當量,這個發現可以寫成以下定律。 142 | 143 | ![](../timg/m_frac_M_2031d341f604dcc09daa8b14a597877d.jpg) 144 | 145 | 其中 n 為 1 莫耳物質電解時參與電極反應的電子的摩爾數(即化合價),(M/n)又稱化學當量(Eq); 146 | F 為法拉第常數,即電解1電化學當量物質所需電量。 147 | 148 | 法拉第電解定律適用於一切電極反應的氧化還原過程,是電化學反應中的基本定量定律。 149 | 150 | ### 晚年 151 | 152 | 1848年,受到艾伯特王夫引見,法拉第受賜在薩里漢普頓宮的恩典之屋,並免繳所有開銷與維修費。這曾是石匠師傅之屋, 153 | 後稱為法拉第之屋,現位於漢普頓宮道37號(No.37 Hampton Court Road)。在1858年,法拉第退休並在此定居。 154 | 155 | 在他有生之年中,他推辭了封爵並且兩次拒絕成為皇家學會會長。他在 1867 年 8 月 25 日死於位於漢普頓宮的家中。 156 | 在西敏寺,艾薩克·牛頓的墓旁座落著他的紀念碑。但是他拒絕在西敏寺下葬,而入土於桑地馬尼安教派的海格特墓園中。 157 | 158 | ### 結語 159 | 160 | 在閱讀了法拉第的故事之後,感覺到科學界似乎有兩類不同的典型,像是「法拉第、愛迪生、瓦特、萊特兄弟」等人, 161 | 是屬於做實驗與應用的「劍宗高手」,這類科學家往往可以創造出很多偉大的發明與實驗結果。 162 | 163 | 而另一類科學家,像是「馬克斯威、牛頓、愛因斯坦」等人,則是數學很強的「氣宗高手」,他們雖然實驗與應用能力 164 | 不見得很好,但是透過深厚的數學內功,往往可以把前人的實驗結果解讀後,創建出一個完整的理論體系,而這個理論體系, 165 | 最後會成為下一波「劍宗高手」的「武學秘笈」,指引他們「邁向下一個偉大的航道」啊! 166 | 167 | 最令我感動的是,法拉第的謙虛,以及對馬克士威的友好態度,並且與他結成忘年之交,兩人共同構築了電磁學理論的科學體系。 168 | (雖然當初戴維與她太太瞧不起法拉第,但是法拉第成名後並沒有向他們一樣變成高傲的人,相反的卻很樂意提攜後進)。 169 | 170 | 這種透過「理論與實驗結合」,以及「學術與產業的結合」,讓整個世界的科學,不斷的突破進展的精神,是我一直認為台灣所缺乏的, 171 | 我想,整個國家需要的不是「個人利益的算計」,而是一種「無私奉獻精神的良性循環」,只有透過這種良性循環,才能讓國家或全人類都能真正獲得 172 | 進步的動力啊! 173 | 174 | 如果、這個世界只有「氣宗」或者只有「劍宗」的話,應該不會如此多采多姿吧! 175 | 176 | ### 參考文獻 177 | * 維基百科:[麥可‧法拉第](http://zh.wikipedia.org/wiki/%E9%BA%A5%E5%8F%AF%C2%B7%E6%B3%95%E6%8B%89%E7%AC%AC) 178 | * 維基百科:[法拉第電解定律](http://zh.wikipedia.org/wiki/%E6%B3%95%E6%8B%89%E7%AC%AC%E7%94%B5%E8%A7%A3%E5%AE%9A%E5%BE%8B) 179 | * 維基百科:[法拉第電磁感應定律](http://zh.wikipedia.org/wiki/%E6%B3%95%E6%8B%89%E7%AC%AC%E7%94%B5%E7%A3%81%E6%84%9F%E5%BA%94%E5%AE%9A%E5%BE%8B) 180 | * [電學之父-法拉第的故事](http://www.books.com.tw/products/0010060703), 作者:張文亮著, 出版社:文經社 181 | * [電的旅程:探索人類駕馭電子的歷史過程](http://www.books.com.tw/products/0010498148), 作者:張大凱, 遠見天下出版社 182 | * [電磁波 :一本電機系學生的入門書](http://www.tenlong.com.tw/items/9866184897?item_id=462096), 高銘盛, 滄海出版社 183 | * [College Physics], OpenStax College. 184 | 185 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 186 | 187 | 188 | 189 | -------------------------------------------------------------------------------- /source/article3.md0: -------------------------------------------------------------------------------- 1 | ## R 統計軟體(7) – 主成分分析與因子分析 (作者:陳鍾誠) 2 | 3 | ### 簡介 4 | 5 | 雖然「主成分分析」(Principle Component Analysis) 通常出現在機率統計的課本當中,但事實上要理解這個技術 6 | 的核心數學知識,卻是線性代數。 7 | 8 | 學過線性代數的朋友們通常會知道一個很重要但卻又難以理解的抽象概念,那就是「特徵值」與「特徵向量」, 9 | 其數學算式如下: 10 | 11 |   $[A] \vec{X} = \lambda \vec{X}$ 12 | 13 | 符合這種條件的的 $\lambda$ 就稱為特徵值,而 $\vec{X}$ 則稱為特徵向量。 14 | 15 | 表面上來看,所謂的特徵向量 $\vec{X}$ 就是矩陣 [A] 乘法運算上的一個方向不動點,乘完之後只會在該向量上進行常數倍的縮放,但方向不變。 16 | 17 | 不過、一個 n*n 矩陣的「特徵值」與「特徵向量」不止有一個,最大可以到達 n 個,假如共有 k 個特徵值,那我們可以列出下列運算式。 18 | 19 |   $[A] \vec{X_1} = \lambda_1 \vec{X_1}$ 20 |   $[A] \vec{X_2} = \lambda_2 \vec{X_2}$ 21 |   ... 22 |   $[A] \vec{X_k} = \lambda_k \vec{X_k}$ 23 | 24 | 基本上、特徵值 $\lambda_i$ 越大的,代表該特徵向量越能用來描述整個矩陣 (或者說越能代表該矩陣),所以如果我們只用特徵值最大的幾個 25 | 代表整個矩陣,將特徵值小的去除,基本上不會對整個矩陣造成太大的失真。 26 | 27 | 或許這樣講也不太精確,不過如果您還記得線性代數裏的 Rank 這個慨念,假如一個 3*3 矩陣的 rank 只有 2,那麼就代表三行當中,有一行可以用 28 | 其他兩行的線性組合取代,也就是 $\vec{A_3}=a \vec{A_1} + b \vec{A_2}$ 。 29 | 30 | 在這種情況下,該矩陣只會有兩個不為零的特徵值 (也就是有一個特徵值為 0),因此我們可以用兩組特徵值與特徵向量,就重建出整個矩陣。 31 | 32 | 而所謂的主成分,就是那些對重建矩陣有強大影響力,特徵值較大的那些向量。而那些特徵值很小的,基本上就可以被忽略了。 33 | 34 | ### 主成分分析範例 1 (Rank=2) 35 | 36 | 為了展示上述的數學論點,我們用 R 軟體建構出 4 組樣本,每組有 25 個元素,其中第 3, 4 組是第 1, 2 組的線性組合,因此這個 4*25 矩陣的 rank 37 | 將只有 2,所以透過主成分分析,我們應該會看到只有兩個主成分。 38 | 39 | 以下是我們的範例程式。 40 | 41 | ```R 42 | > x1=rnorm(25, mean=5, sd=1) # x1 是常態分布隨機產生的 25 個樣本 43 | > x2=rnorm(25, mean=5, sd=1) # x2 是常態分布隨機產生的 25 個樣本 44 | > x3=x1+x2 # x3=x1+x2, 是 x1, x2 的線性組合 45 | > x4=x1+2*x3 # x4=x1+2*x3=x1+2*(x1+x2)=3x1+2x2, 因此也是 x1, x2 的線性組合。 46 | > x14 = data.frame(x1, x2, x3, x4) # 用這四組樣本建立一個 frame 變數 x14 47 | > pr = princomp(x14, cor=TRUE) # 開始進行主成分分析 48 | > summary(pr, loading=TRUE) # 顯示主成分分析的結果 49 | Importance of components: 50 | Comp.1 Comp.2 Comp.3 Comp.4 51 | Standard deviation 1.7281767 1.0066803 4.712161e-08 8.339758e-09 52 | Proportion of Variance 0.7466487 0.2533513 5.551115e-16 1.738789e-17 53 | Cumulative Proportion 0.7466487 1.0000000 1.000000e+00 1.000000e+00 54 | 55 | Loadings: 56 | Comp.1 Comp.2 Comp.3 Comp.4 57 | x1 -0.449 0.626 0.637 58 | x2 -0.367 -0.768 0.495 0.176 59 | x3 -0.576 -0.311 -0.750 60 | x4 -0.576 -0.502 0.638 61 | > 62 | ``` 63 | 64 | 在上述分析結果中,我們看到累積貢獻比率 (Cumulative Proportion) 在第一主成分 Comp.1 上為 0.7466487, 65 | 而累積到第二主成分 Comp.2 時就達到 1.0 了,這代表只要用兩個主成分就可以建構出整個樣本集合。 66 | 67 | 根據 Loadings 中的 Comp.1 那一列可知,第一主成分 Comp.1 = -0.449 x1 - 0.367 x2 - 0.576 x3 - 0.576 x4, 68 | 也就是我們用這個主成分就可以掌握整組資料的 7 成 (0.7466487),而加上第二主成份 Comp.2 = 0.626 x1 - 0.768 x2 之後, 69 | 就可以掌握 100% 的資料,完全重建整個矩陣了。(因為這組資料的 rank 為 2)。 70 | 71 | ### 主成分分析範例 2 (Rank=3) 72 | 73 | 為了驗證上述的「線性代數」想法,我們接著將 x3 改掉,成為獨立常態序列,然後讓 x4=3*x1+2*x2+x3,如下列程式所示。 74 | 75 | ```R 76 | > x1=rnorm(25, mean=5, sd=1) # x1 是常態分布隨機產生的 25 個樣本 77 | > x2=rnorm(25, mean=5, sd=1) # x2 是常態分布隨機產生的 25 個樣本 78 | > x3=rnorm(25, mean=5, sd=1) # x3 是常態分布隨機產生的 25 個樣本 79 | > x4=3*x1+2*x2+x3 # x4=3*x1+2*x2+x3, 是 x1, x2, x3 的線性組合 80 | > x14 = data.frame(x1, x2, x3, x4) # 用這四組樣本建立一個 frame 變數 x14 81 | > pr = princomp(x14, cor=TRUE) # 開始進行主成分分析 82 | > summary(pr, loading=TRUE)) # 顯示主成分分析的結果 83 | Importance of components: 84 | Comp.1 Comp.2 Comp.3 Comp.4 85 | Standard deviation 1.4659862 1.1233489 0.767445 4.712161e-08 86 | Proportion of Variance 0.5372789 0.3154782 0.147243 5.551115e-16 87 | Cumulative Proportion 0.5372789 0.8527570 1.000000 1.000000e+00 88 | 89 | Loadings: 90 | Comp.1 Comp.2 Comp.3 Comp.4 91 | x1 0.634 0.104 0.458 0.615 92 | x2 0.310 -0.669 -0.625 0.259 93 | x3 0.194 0.736 -0.632 0.146 94 | x4 0.682 -0.731 95 | 96 | ``` 97 | 98 | 您可以看到在下列的累積貢獻比率 (Cumulative Proportion) 當中,要到第三個主成分才到達 1.0,而非第二個主成分。 99 | 100 | ``` 101 | Cumulative Proportion 0.5372789 0.8527570 1.000000 1.000000e+00 102 | ``` 103 | 104 | 而且在標準差 (Standard deviation) 與 變異比率 (Proportion of Variance) 上也反映了類似的情況,必須要到 Comp.4 的時候, 105 | 這兩個數值才會突然下降到幾近為 0 的程度 (4.712161e-08, 5.551115e-16)。 106 | 107 | ### 主成分分析範例 3 (Rank=3 加上隨機誤差) 108 | 109 | 接著、讓我們為 x4 加上一點隨機誤差,看看主成分分析的結果會有何改變。 110 | 111 | ```R 112 | > x1=rnorm(25, mean=5, sd=1) # x1 是常態分布隨機產生的 25 個樣本 113 | > x2=rnorm(25, mean=5, sd=1) # x2 是常態分布隨機產生的 25 個樣本 114 | > x3=rnorm(25, mean=5, sd=1) # x3 是常態分布隨機產生的 25 個樣本 115 | > x4=3*x1+2*x2+x3+rnorm(25, mean=0, sd=1) # x4=3*x1+2*x2+x3, 是 x1, x2, x3 的線性組合加上常態隨機誤差 116 | > x14 = data.frame(x1, x2, x3, x4) # 用這四組樣本建立一個 frame 變數 x14 117 | > pr = princomp(x14, cor=TRUE) # 開始進行主成分分析 118 | > summary(pr, loading=TRUE)) # 顯示主成分分析的結果 119 | Importance of components: 120 | Comp.1 Comp.2 Comp.3 Comp.4 121 | Standard deviation 1.4565751 1.1233728 0.7704314 0.151189097 122 | Proportion of Variance 0.5304027 0.3154916 0.1483911 0.005714536 123 | Cumulative Proportion 0.5304027 0.8458943 0.9942855 1.000000000 124 | 125 | Loadings: 126 | Comp.1 Comp.2 Comp.3 Comp.4 127 | x1 -0.642 0.117 0.410 0.637 128 | x2 -0.306 -0.662 -0.645 0.228 129 | x3 -0.173 0.740 -0.641 0.103 130 | x4 -0.681 -0.729 131 | > 132 | ``` 133 | 134 | 您可以看到在累積貢獻比率 (Cumulative Proportion) 當中,到了第三主成分時已經達到 99.4% (0.9942855), 135 | 而到了第四主成分時才達到 100%,這代表若用前三個主成份重建仍然會有少許誤差。 136 | 137 | ``` 138 | Cumulative Proportion 0.5304027 0.8458943 0.9942855 1.000000000 139 | ``` 140 | 141 | 上述的誤差量可以從標準差 (Standard deviation) 與 變異比率 (Proportion of Variance) 這兩組數字上看到。 142 | 143 | ``` 144 | Comp.1 Comp.2 Comp.3 Comp.4 145 | Standard deviation 1.4565751 1.1233728 0.7704314 0.151189097 146 | Proportion of Variance 0.5304027 0.3154916 0.1483911 0.005714536 147 | ``` 148 | 149 | ### 因子分析 150 | 151 | 另外、還有一個與主成分分析用法相當類似的方法,稱為因子分析 (Factor Analysis),這種方法的使用與主成分分析 152 | 之差異點,在於必須指定要事先指定使用多少因子,如果使用的因子過多,則會導致失敗的結果。 153 | 154 | 以下是我們同樣針對上述範例所進行的因子分析結果,您可以發現在下列的分析中,只有指定一個因子的時候可以成功 155 | 的進行分析,而指定兩個以上的因子時,就會導致分析失敗的結果。 156 | 157 | ```R 158 | > x1=rnorm(25, mean=5, sd=1) # x1 是常態分布隨機產生的 25 個樣本 159 | > x2=rnorm(25, mean=5, sd=1) # x2 是常態分布隨機產生的 25 個樣本 160 | > x3=rnorm(25, mean=5, sd=1) # x3 是常態分布隨機產生的 25 個樣本 161 | > x4=3*x1+2*x2+x3+rnorm(25, mean=0, sd=1) # x4=3*x1+2*x2+x3, 是 x1, x2, x3 的線性組合加上常態隨機誤差 162 | > x14 = data.frame(x1, x2, x3, x4) # 用這四組樣本建立一個 frame 變數 x14 163 | > fa = factanal(x14, factors=2) 164 | 錯誤在factanal(x14, factors = 2) : 165 | 2 factors is too many for 4 variables 166 | > fa = factanal(x14, factors=1) 167 | > fa 168 | 169 | Call: 170 | factanal(x = x14, factors = 1) 171 | 172 | Uniquenesses: 173 | x1 x2 x3 x4 174 | 0.126 0.834 0.951 0.005 175 | 176 | Loadings: 177 | Factor1 178 | x1 0.935 179 | x2 0.407 180 | x3 0.222 181 | x4 0.998 182 | 183 | Factor1 184 | SS loadings 2.084 185 | Proportion Var 0.521 186 | 187 | Test of the hypothesis that 1 factor is sufficient. 188 | The chi square statistic is 21.97 on 2 degrees of freedom. 189 | The p-value is 1.7e-05 190 | > fa = factanal(x14, factors=3) 191 | 錯誤在factanal(x14, factors = 3) : 192 | 3 factors is too many for 4 variables 193 | ``` 194 | 195 | ### 結語 196 | 197 | 從主成分分析這個案例中,我們可以看到「機率統計」技術背後的原理,竟然是「線性代數」,數學果然是一門博大精深的學問啊! 198 | 199 | 事實上、上一期的「迴歸分析」主題,背後的原理乃是「最小平方法」,必須用到「微積分」與「線性代數」進行理論解釋。 200 | 201 | 我想、這也是為甚麼大學資工系的課程當中,「微積分、線性代數、離散數學、機率統計」通常是必修的原因啊! 202 | 203 | 204 | ### 參考文獻 205 | * [R语言与统计分析](http://book.douban.com/subject/3337668/), 作者: 汤银才, ISBN: 9787040250626。 206 | 207 | -------------------------------------------------------------------------------- /source/people3.md0: -------------------------------------------------------------------------------- 1 | ## 電磁學大師:詹姆斯·馬克士威 (James Clerk Maxwell) 2 | 3 | ![圖、詹姆斯·馬克士威](../img/Maxwell.jpg) 4 | 5 | 詹姆斯·馬克士威(英語:James Clerk Maxwell,1831年6月13日-1879年11月5日)是英國理論物理學家和數學家,雖然才華洋溢, 6 | 但卻英年早逝,只活了短短的四十八年。 7 | 8 | 學過物理學的人,通常會知道「馬克士威方程式」,而且知道這是電磁學領域的集大成之作。但是、到底「馬克士威」是何許人也, 9 | 他這輩子又做過哪些事情呢? 10 | 11 | ### 年輕時代 12 | 13 | 馬克士威八歲時母親因癌症病逝,還好父親對他很好,十歲時進入愛丁堡學院就讀,並認識終身的好朋友 Tait,十四歲時在愛丁堡 14 | 皇家學會發表第一篇論文:「論橢圓的製圖法」,展現了其數學天賦。 15 | 16 | 十六歲時,馬克士威與 Tait 兩人一起進入愛丁堡大學就讀,三年後又進入劍橋大學三一學院 (Trinity College),後來成為三一學院的研究員。 17 | 18 | ### 馬克士威與法拉第 19 | 20 | 說來也巧,馬克士威出生的 1831 年,正是法拉第提出電磁感應定理的那年。 21 | 22 | 後來、馬克士威注意到法拉第的研究,閱讀了 [Experimental Researches in Electricity] 這本書,於是深深的著迷了。 23 | 24 | 25 歲時,馬克士威年發表了一篇論文,名稱為 [論法拉第力線] (On Faraday's Lines of Force),於是將這篇論文寄給法拉第看。 25 | 隔年、64 歲的法拉第回了一封信給 24 歲的馬克士威,說到下列這段話。 26 | 27 | > ... I was at first almost frightened when I saw such mathematical force made to bear upon the subject, and then wondered to see that the subject stood it so well. .... 28 | 29 | 翻譯成中文就是:「當我看到你論文中的那些數學,我幾乎是被嚇到了。但是很好奇你為何會將這個主題做得這麼好 ...」, 30 | 31 | 在那時期的電磁學可以形容為眾多實驗結果和數學分析的大雜燴,急需整合成一套內外一致,有條有理的學術理論。 32 | 法拉地的數學背景不夠強,無法完成這件任務,結果馬克士威漂亮的完成的這個任務,成為電磁學領域的大師。 33 | 34 | 到底、馬克士威在 [論法拉第力線] 這篇論文裏寫了甚麼呢?維基百科裏有中文的摘要版,讓我們稍微的看看這篇 35 | 經典論文的內容與時代背景。 36 | 37 | ### 馬克士威的論文:論法拉第力線 (1855年) 38 | 39 | 馬克士威將法拉第想出的力線延伸為裝滿了不可壓縮流體的「力管」。這力管的方向代表力場(電場或磁場)的方向, 40 | 力管的截面面積與力管內的流體速度成反比,而這流體速度可以比擬為電場或磁場。 41 | 42 | 然後、透過借用「威廉·湯姆森」等人在流體力學的一些數學框架,馬克士威推導出一系列初成形的電磁學雛論。 43 | 44 | 像是在「傅立葉熱傳導定律」裏有下列的公式: 45 | 46 | $\Gamma= - k\frac{\mathrm{d} T}{\mathrm{d}x}$ 47 | 48 | 其中, $\Gamma$ 是熱通量(heat flux),k 是物質的熱導率,T 是溫度。 49 | 50 | 如果將這樣個概念套用到電磁學領域中,電場和電勢之間的關係式可表達為 51 | 52 | $E= - \frac{\mathrm{d} \phi}{\mathrm{d}x}$ 53 | 54 | 其中,E 是電場,\phi 是電勢。 55 | 56 | 很明顯地,設定熱導率 k=1,則電勢可以比擬為溫度,而電場可以比擬為熱通量。 57 | 58 | 法拉第的電力線變為了熱流線,等勢線(equipotential)變為了等溫線。所以,解析熱傳導問題的方法,可以用來解析靜電學問題。 59 | 60 | 馬克士威又注意到一個問題:熱傳導依賴的是物質的緊鄰的兩個粒子之間互相接觸而產生的「鄰接作用」(contiguous action); 61 | 62 | 思考兩個相距很遠的電荷,不經過任何媒介,互相直接施加於對方的作用力,假若電場力是這種作用力,則電場力是一種超距作用 63 | (action at a distance)。兩種完全不同的物理現象,居然可以用同樣形式的數學方式來描述,這給予馬克士威很大的遐想空間。 64 | 65 | 然後、透過這樣的比擬(將源電荷 q 比擬為力管源,將電場比擬為流速),馬克士威越推論越深遠,結果得到了「庫倫定律」與 66 | 「高斯定律」等電學的基本公式。 67 | 68 | $E=\frac{q}{4\pi r^2}$ 69 | 70 | $V=\frac{q}{4\pi r}$ 71 | 72 | $E= - \frac{\mathrm{d} V}{\mathrm{d}r}$ 73 | 74 | 但是、這篇論文還不是很成熟,而且、接下來的幾年,馬克士威暫時沒有這方面的論文,反而走向光學領域去了。 75 | 76 | ### 土星光環與彩色照片 77 | 78 | 1856 年,馬克士威因父親生病,申請調回 Marischal 學院任教,並於這時期完成土星光環的研究而得到 Adams 獎,該研究結論 79 | 是土星光環應該是由小碎塊所構成,不可能是整塊固體,也不可能是純粹液體 (這點在卡西尼-惠更斯號於 2006 年 9 月 15 日拍得的土星環全貌後被證實了)。 80 | 81 | 接著、馬克士威還利用在陀羅上塗色並旋轉的方式,證明大多數顏色可用「紅綠藍」三原色混合而成,並在 1861 年製作出了全世界 82 | 第一張彩色照片。 83 | 84 | 在完成這些光學研究後,馬克士威又回到了電磁學領域繼續努力,在 30 歲的那年,又發表了一篇重要的電磁學論文「[論物理力線]」 85 | (On Physical Lines of Force)。 86 | 87 | ### 馬克士威的論文:論物理力線 (1861年) 88 | 89 | 在 [論物理力線] 這篇論文裏,馬克士威提出了力線 (或稱場線) 這樣的概念,這種力線可以描述「電力、磁力、重力」所形成的 90 | 力場,並且透過微積分的數學原理,計算這些力場的強度。 91 | 92 | 在這篇文章中,馬克士威對自己在 [論法拉第力線] 時想出的分子渦流模型,提出了幾點質疑,並且他假設在兩個相鄰渦胞之間, 93 | 有一排微小圓珠,將這兩個渦胞隔離分開。這些圓珠只能滾動(rolling),不能滑動。圓珠旋轉的方向相反於這兩個渦胞的旋轉方向, 94 | 這樣,就不會引起摩擦。 95 | 96 | 然後、馬克士威透過這種改良的分子渦流想法,推論出一些數學公式,以下是幾個範例: 97 | 98 | > $\mathrm{d}F_{c}=\rho r^2\omega^2\mathrm{d}r\mathrm{d}\theta\mathrm{d}z$ 99 | > 100 | > 其中, $\rho$ 是流體的密度,是一個常數。 101 | > 102 | > $p_{c_R}=\int^r_0\rho r\omega^2\mathrm{d}r=\rho R^2\omega^2 /2=\rho v^2/2$ 103 | > 104 | > 其中,R 是渦胞的半徑,$v=R\omega$ 是流體位於周邊的周邊速度。 105 | 106 | 從這模型,經過一番複雜的運算,馬克士威能夠推導出安培定律、法拉第感應定律等,這也就是後來被稱為「馬克士威方程組」的那些公式。 107 | 108 | 但是、事實上馬克士威所用的方程式並沒有像後來用散度與旋度表示的數學這麼漂亮,而是如下所示的一大堆方程式 109 | 110 | (評論:不過說真的,其實已經很漂亮了,只是沒有加上「散度、旋度」這種總合算子的包裝而已)。 111 | 112 | ![圖、馬克士威論物理力線中的四大群方程式](../img/MaxwellEquationOriginal.jpg) 113 | 114 | 然後、馬克士威從彈性物質會以波動形式傳播能量於空間,聯想到電磁場應該也會以波動形式傳播能量於空間,並且會產生反射,折射等等波動行為。 115 | 於是馬克士威計算出電磁波的傳播速度,發覺這數值非常接近於光速。因此,馬克士威認為光是一種電磁波。以下是摘自維基百科 [論物理力線] 文章 116 | 中的推論。 117 | 118 | ![圖、光波就是電磁波的推論](../img/light_speed.jpg) 119 | 120 | 於是馬克士威在論文中寫下了一段話,翻譯成中文如下。 121 | 122 | > 根據韋伯和科爾勞施完成的電磁實驗,在我們的假想介質裏的橫向波盪的速度,與從斐索的光學實驗計算求得的光速,是如此精確地符合,這使我們難以排除如下的推論:光是由引起電現象和磁現象的同一介質中的橫波組成的。 123 | > ——馬克士威,於《論物理力線》 124 | 125 | 不過、在這篇文章中馬克士威也擁有了一些後來被認為不夠好的想法,像是他認為完美真空不存在,乙太瀰漫於整個宇宙。與普通物質不同,馬克士威 126 | 假想的乙太具有能量與動量,因此可以說具有質量,但是牛頓萬有引力定律不適用於它,因為它沒有重量。 127 | 128 | 129 | ### 馬克士威的論文:電磁場的動力學理論 (1864年) 130 | 131 | 在這篇論文的標題為電磁場一般方程式的第三章裏,馬克士威列出了涉及二十個未知量的二十個方程式,在那時期,稱為馬克士威方程組。 132 | 由於向量微積分尚在發展中,這二十個方程式都是以分量形式表示,其中,有十八個方程式可以用六個向量方程式集中表示(對應於每一個直角坐標, 133 | 有一個方程式),另外剩下的兩個是純量方程式。所以,以向量標記,馬克士威方程組可以表示為八個方程式。如下所示: 134 | 135 | ![圖、馬克士威方程組表示為八個方程式的版本](../img/MaxwellEquation.jpg) 136 | 137 | 馬克士威在對於光波是一種電磁現象的推導裏,並沒有使用法拉第電磁感應定律,而是使用方程式(D)來解釋電磁感應作用。 138 | 139 | 以下是馬克士威原始版的推導過程: 140 | 141 | ![圖、馬克士威原始版的推導](../img/MaxwellProof.jpg) 142 | 143 | 1884年,從這八個方程式,奧利弗·黑維塞重新編排出四個方程式,並且稱這一組方程式為馬克士威方程組。今天廣泛使用的馬克士威方程組就是黑維塞編成的這一組方程式。 144 | 145 | 黑維塞版本的馬克士威方程組是以現代向量標記法寫出。在原先版本的八個方程式裏,只有一個方程式,高斯定律的方程式(G),完整不變地出現於黑維塞版本。 146 | 另外一個在黑維塞版本的方程式,乃是由總電流定律的方程式(A)與安培環路定理的方程式(C)共同湊合而成。這方程式包含了馬克士威的位移電流,是安培環路定理的延伸。 147 | 148 | 以下是現代所用的黑維塞版推導過程: 149 | 150 | ![圖、黑維塞現代版的推導](../img/MaxwellProofHesswei.jpg) 151 | 152 | 153 | ### 結語 154 | 155 | 從以上三篇電磁學論文,我們可以看到,馬克士威的主要貢獻是建立了馬克士威方程組,創立了古典電動力學,並且預言了電磁波的存在,提出了光的電磁說。 156 | 所以說馬克士威是電磁學理論的集大成者。 157 | 158 | 另外、這三篇論文的出版時間橫跨了九年,再加上第一篇論文的醞釀期,馬克士威在這組方程式上所下的功夫,恐怕遠超過十年以上。 159 | 160 | 對於一個劍客而言,花費「十年磨一劍」的功夫,只是為了等待那「十步殺一人」的重要時刻,但是對於一個研究者而言,花費「十年磨一劍」 161 | 的原因,通常是為了要發現隱藏在事物背後更深層的秘密。 162 | 163 | 馬克士威的十年,並沒有磨出任何一把劍,但卻磨出了整個近代科學的「易筋經」,從此整個工業宛如「脫胎換骨」一般,從機械的 164 | 世界跨入到「電磁學」的世界當中,那十二個方程式,就是整個現代工業的至高無上的「武功祕笈」。 165 | 166 | 只要練成這種武功,你可以「隔空殺人」,也可以用「內力煮一頓晚餐」,只要你有「電磁波」就行了。於是、我們有了「電磁爐與電磁炸彈」, 167 | 以及更多的現代電磁設備,整個高科技領域的秘密,幾乎都蘊含在這十二個方程式當中。 168 | 169 | 難怪、1931年愛因斯坦在馬克士威百年誕辰的紀念會上,評價馬克士威的建樹「是牛頓以來,物理學最深刻和最富有成果的工作」。 170 | 171 | 172 | ### 參考文獻 173 | * Wikipedia:[James Clerk Maxwell](http://en.wikipedia.org/wiki/James_Clerk_Maxwell) 174 | * 維基百科:[馬克士威方程組](http://zh.wikipedia.org/zh-tw/%E9%BA%A6%E5%85%8B%E6%96%AF%E9%9F%A6%E6%96%B9%E7%A8%8B%E7%BB%84) 175 | * 維基百科:[詹姆斯·克拉克·馬克士威](http://zh.wikipedia.org/wiki/%E8%A9%B9%E5%A7%86%E6%96%AF%C2%B7%E5%85%8B%E6%8B%89%E5%85%8B%C2%B7%E9%BA%A6%E5%85%8B%E6%96%AF%E9%9F%A6) 176 | * 維基百科:[論法拉第力線] 177 | * 維基百科:[論物理力線] 178 | * 維基百科:[電磁場的動力學理論] 179 | * 維基百科:[麥克斯韋關係式](http://zh.wikipedia.org/wiki/%E9%BA%A6%E5%85%8B%E6%96%AF%E9%9F%A6%E5%85%B3%E7%B3%BB) 180 | * 維基百科:[馬克士威–波茲曼分布](http://zh.wikipedia.org/wiki/%E9%BA%A6%E5%85%8B%E6%96%AF%E9%9F%A6%E9%80%9F%E5%BA%A6%E5%88%86%E5%B8%83%E5%BE%8B) 181 | * [法拉第以高明的科學想像力,體認到電荷之間的場才是描述電磁現象的關鍵。](http://case.ntu.edu.tw/sts/?tag=%E9%A6%AC%E5%85%8B%E5%A3%AB%E5%A8%81) 182 | * Wikiquote:[Michael Faraday](http://en.wikiquote.org/wiki/Michael_Faraday) 183 | * [On Faraday's Lines of Force (PDF)](http://www.ffn.ub.es/luisnavarro/nuevo_maletin/Maxwell_1856_Faraday_lines_excerpt.pdf) 184 | * [馬克士威 James clerk Maxwell 的科學與詩](http://fang500301.blogspot.tw/2012/06/james-clerk-maxwell.html) 185 | * [Experimental Researches in Electricity], Volume 1, by Michael Faraday, The Project Gutenberg eBook. 186 | * 維基百科:[土星環](http://zh.wikipedia.org/wiki/%E5%9C%9F%E6%98%9F%E7%92%B0) 187 | * [College Physics], OpenStax College. 188 | 189 | [論法拉第力線]:http://zh.wikipedia.org/wiki/%E8%AB%96%E6%B3%95%E6%8B%89%E7%AC%AC%E5%8A%9B%E7%B7%9A 190 | [論物理力線]:http://zh.wikipedia.org/wiki/%E8%AB%96%E7%89%A9%E7%90%86%E5%8A%9B%E7%B7%9A 191 | [電磁場的動力學理論]:http://zh.wikipedia.org/wiki/%E9%9B%BB%E7%A3%81%E5%A0%B4%E7%9A%84%E5%8B%95%E5%8A%9B%E5%AD%B8%E7%90%86%E8%AB%96 192 | [Experimental Researches in Electricity]:http://www.gutenberg.org/files/14986/14986-h/14986-h.htm 193 | 194 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 195 | 196 | 197 | -------------------------------------------------------------------------------- /source/article3.md: -------------------------------------------------------------------------------- 1 | ## R 統計軟體(7) – 主成分分析與因子分析 (作者:陳鍾誠) 2 | 3 | ### 簡介 4 | 5 | 雖然「主成分分析」(Principle Component Analysis) 通常出現在機率統計的課本當中,但事實上要理解這個技術 6 | 的核心數學知識,卻是線性代數。 7 | 8 | 學過線性代數的朋友們通常會知道一個很重要但卻又難以理解的抽象概念,那就是「特徵值」與「特徵向量」, 9 | 其數學算式如下: 10 | 11 |   ![](../timg/_A_vec_X_0010fa7e4e1c1009258cdeb4761750d1.jpg) 12 | 13 | 符合這種條件的的 ![](../timg/_lambda_c6a6eb61fd9c6c913da73b3642ca147d.jpg) 就稱為特徵值,而 ![](../timg/_vec_X__259132779c57997f83cc4e797de1822b.jpg) 則稱為特徵向量。 14 | 15 | 表面上來看,所謂的特徵向量 ![](../timg/_vec_X__259132779c57997f83cc4e797de1822b.jpg) 就是矩陣 [A] 乘法運算上的一個方向不動點,乘完之後只會在該向量上進行常數倍的縮放,但方向不變。 16 | 17 | 不過、一個 n*n 矩陣的「特徵值」與「特徵向量」不止有一個,最大可以到達 n 個,假如共有 k 個特徵值,那我們可以列出下列運算式。 18 | 19 |   ![](../timg/_A_vec_X_9b7f5816221d06aa5eb34a5fb3d8b49f.jpg) 20 |   ![](../timg/_A_vec_X_9a70096eafacb31f4b691e41688b8240.jpg) 21 |   ... 22 |   ![](../timg/_A_vec_X_e086b0976a2b530c6b5ad7690461077b.jpg) 23 | 24 | 基本上、特徵值 ![](../timg/_lambda__5614371f803f8a78b18b27391549a107.jpg) 越大的,代表該特徵向量越能用來描述整個矩陣 (或者說越能代表該矩陣),所以如果我們只用特徵值最大的幾個 25 | 代表整個矩陣,將特徵值小的去除,基本上不會對整個矩陣造成太大的失真。 26 | 27 | 或許這樣講也不太精確,不過如果您還記得線性代數裏的 Rank 這個慨念,假如一個 3*3 矩陣的 rank 只有 2,那麼就代表三行當中,有一行可以用 28 | 其他兩行的線性組合取代,也就是 ![](../timg/_vec_A_3_34a578b55cf6fe9b149722e9f8977aae.jpg) 。 29 | 30 | 在這種情況下,該矩陣只會有兩個不為零的特徵值 (也就是有一個特徵值為 0),因此我們可以用兩組特徵值與特徵向量,就重建出整個矩陣。 31 | 32 | 而所謂的主成分,就是那些對重建矩陣有強大影響力,特徵值較大的那些向量。而那些特徵值很小的,基本上就可以被忽略了。 33 | 34 | ### 主成分分析範例 1 (Rank=2) 35 | 36 | 為了展示上述的數學論點,我們用 R 軟體建構出 4 組樣本,每組有 25 個元素,其中第 3, 4 組是第 1, 2 組的線性組合,因此這個 4*25 矩陣的 rank 37 | 將只有 2,所以透過主成分分析,我們應該會看到只有兩個主成分。 38 | 39 | 以下是我們的範例程式。 40 | 41 | ```R 42 | > x1=rnorm(25, mean=5, sd=1) # x1 是常態分布隨機產生的 25 個樣本 43 | > x2=rnorm(25, mean=5, sd=1) # x2 是常態分布隨機產生的 25 個樣本 44 | > x3=x1+x2 # x3=x1+x2, 是 x1, x2 的線性組合 45 | > x4=x1+2*x3 # x4=x1+2*x3=x1+2*(x1+x2)=3x1+2x2, 因此也是 x1, x2 的線性組合。 46 | > x14 = data.frame(x1, x2, x3, x4) # 用這四組樣本建立一個 frame 變數 x14 47 | > pr = princomp(x14, cor=TRUE) # 開始進行主成分分析 48 | > summary(pr, loading=TRUE) # 顯示主成分分析的結果 49 | Importance of components: 50 | Comp.1 Comp.2 Comp.3 Comp.4 51 | Standard deviation 1.7281767 1.0066803 4.712161e-08 8.339758e-09 52 | Proportion of Variance 0.7466487 0.2533513 5.551115e-16 1.738789e-17 53 | Cumulative Proportion 0.7466487 1.0000000 1.000000e+00 1.000000e+00 54 | 55 | Loadings: 56 | Comp.1 Comp.2 Comp.3 Comp.4 57 | x1 -0.449 0.626 0.637 58 | x2 -0.367 -0.768 0.495 0.176 59 | x3 -0.576 -0.311 -0.750 60 | x4 -0.576 -0.502 0.638 61 | > 62 | ``` 63 | 64 | 在上述分析結果中,我們看到累積貢獻比率 (Cumulative Proportion) 在第一主成分 Comp.1 上為 0.7466487, 65 | 而累積到第二主成分 Comp.2 時就達到 1.0 了,這代表只要用兩個主成分就可以建構出整個樣本集合。 66 | 67 | 根據 Loadings 中的 Comp.1 那一列可知,第一主成分 Comp.1 = -0.449 x1 - 0.367 x2 - 0.576 x3 - 0.576 x4, 68 | 也就是我們用這個主成分就可以掌握整組資料的 7 成 (0.7466487),而加上第二主成份 Comp.2 = 0.626 x1 - 0.768 x2 之後, 69 | 就可以掌握 100% 的資料,完全重建整個矩陣了。(因為這組資料的 rank 為 2)。 70 | 71 | ### 主成分分析範例 2 (Rank=3) 72 | 73 | 為了驗證上述的「線性代數」想法,我們接著將 x3 改掉,成為獨立常態序列,然後讓 x4=3*x1+2*x2+x3,如下列程式所示。 74 | 75 | ```R 76 | > x1=rnorm(25, mean=5, sd=1) # x1 是常態分布隨機產生的 25 個樣本 77 | > x2=rnorm(25, mean=5, sd=1) # x2 是常態分布隨機產生的 25 個樣本 78 | > x3=rnorm(25, mean=5, sd=1) # x3 是常態分布隨機產生的 25 個樣本 79 | > x4=3*x1+2*x2+x3 # x4=3*x1+2*x2+x3, 是 x1, x2, x3 的線性組合 80 | > x14 = data.frame(x1, x2, x3, x4) # 用這四組樣本建立一個 frame 變數 x14 81 | > pr = princomp(x14, cor=TRUE) # 開始進行主成分分析 82 | > summary(pr, loading=TRUE)) # 顯示主成分分析的結果 83 | Importance of components: 84 | Comp.1 Comp.2 Comp.3 Comp.4 85 | Standard deviation 1.4659862 1.1233489 0.767445 4.712161e-08 86 | Proportion of Variance 0.5372789 0.3154782 0.147243 5.551115e-16 87 | Cumulative Proportion 0.5372789 0.8527570 1.000000 1.000000e+00 88 | 89 | Loadings: 90 | Comp.1 Comp.2 Comp.3 Comp.4 91 | x1 0.634 0.104 0.458 0.615 92 | x2 0.310 -0.669 -0.625 0.259 93 | x3 0.194 0.736 -0.632 0.146 94 | x4 0.682 -0.731 95 | 96 | ``` 97 | 98 | 您可以看到在下列的累積貢獻比率 (Cumulative Proportion) 當中,要到第三個主成分才到達 1.0,而非第二個主成分。 99 | 100 | ``` 101 | Cumulative Proportion 0.5372789 0.8527570 1.000000 1.000000e+00 102 | ``` 103 | 104 | 而且在標準差 (Standard deviation) 與 變異比率 (Proportion of Variance) 上也反映了類似的情況,必須要到 Comp.4 的時候, 105 | 這兩個數值才會突然下降到幾近為 0 的程度 (4.712161e-08, 5.551115e-16)。 106 | 107 | ### 主成分分析範例 3 (Rank=3 加上隨機誤差) 108 | 109 | 接著、讓我們為 x4 加上一點隨機誤差,看看主成分分析的結果會有何改變。 110 | 111 | ```R 112 | > x1=rnorm(25, mean=5, sd=1) # x1 是常態分布隨機產生的 25 個樣本 113 | > x2=rnorm(25, mean=5, sd=1) # x2 是常態分布隨機產生的 25 個樣本 114 | > x3=rnorm(25, mean=5, sd=1) # x3 是常態分布隨機產生的 25 個樣本 115 | > x4=3*x1+2*x2+x3+rnorm(25, mean=0, sd=1) # x4=3*x1+2*x2+x3, 是 x1, x2, x3 的線性組合加上常態隨機誤差 116 | > x14 = data.frame(x1, x2, x3, x4) # 用這四組樣本建立一個 frame 變數 x14 117 | > pr = princomp(x14, cor=TRUE) # 開始進行主成分分析 118 | > summary(pr, loading=TRUE)) # 顯示主成分分析的結果 119 | Importance of components: 120 | Comp.1 Comp.2 Comp.3 Comp.4 121 | Standard deviation 1.4565751 1.1233728 0.7704314 0.151189097 122 | Proportion of Variance 0.5304027 0.3154916 0.1483911 0.005714536 123 | Cumulative Proportion 0.5304027 0.8458943 0.9942855 1.000000000 124 | 125 | Loadings: 126 | Comp.1 Comp.2 Comp.3 Comp.4 127 | x1 -0.642 0.117 0.410 0.637 128 | x2 -0.306 -0.662 -0.645 0.228 129 | x3 -0.173 0.740 -0.641 0.103 130 | x4 -0.681 -0.729 131 | > 132 | ``` 133 | 134 | 您可以看到在累積貢獻比率 (Cumulative Proportion) 當中,到了第三主成分時已經達到 99.4% (0.9942855), 135 | 而到了第四主成分時才達到 100%,這代表若用前三個主成份重建仍然會有少許誤差。 136 | 137 | ``` 138 | Cumulative Proportion 0.5304027 0.8458943 0.9942855 1.000000000 139 | ``` 140 | 141 | 上述的誤差量可以從標準差 (Standard deviation) 與 變異比率 (Proportion of Variance) 這兩組數字上看到。 142 | 143 | ``` 144 | Comp.1 Comp.2 Comp.3 Comp.4 145 | Standard deviation 1.4565751 1.1233728 0.7704314 0.151189097 146 | Proportion of Variance 0.5304027 0.3154916 0.1483911 0.005714536 147 | ``` 148 | 149 | ### 因子分析 150 | 151 | 另外、還有一個與主成分分析用法相當類似的方法,稱為因子分析 (Factor Analysis),這種方法的使用與主成分分析 152 | 之差異點,在於必須指定要事先指定使用多少因子,如果使用的因子過多,則會導致失敗的結果。 153 | 154 | 以下是我們同樣針對上述範例所進行的因子分析結果,您可以發現在下列的分析中,只有指定一個因子的時候可以成功 155 | 的進行分析,而指定兩個以上的因子時,就會導致分析失敗的結果。 156 | 157 | ```R 158 | > x1=rnorm(25, mean=5, sd=1) # x1 是常態分布隨機產生的 25 個樣本 159 | > x2=rnorm(25, mean=5, sd=1) # x2 是常態分布隨機產生的 25 個樣本 160 | > x3=rnorm(25, mean=5, sd=1) # x3 是常態分布隨機產生的 25 個樣本 161 | > x4=3*x1+2*x2+x3+rnorm(25, mean=0, sd=1) # x4=3*x1+2*x2+x3, 是 x1, x2, x3 的線性組合加上常態隨機誤差 162 | > x14 = data.frame(x1, x2, x3, x4) # 用這四組樣本建立一個 frame 變數 x14 163 | > fa = factanal(x14, factors=2) 164 | 錯誤在factanal(x14, factors = 2) : 165 | 2 factors is too many for 4 variables 166 | > fa = factanal(x14, factors=1) 167 | > fa 168 | 169 | Call: 170 | factanal(x = x14, factors = 1) 171 | 172 | Uniquenesses: 173 | x1 x2 x3 x4 174 | 0.126 0.834 0.951 0.005 175 | 176 | Loadings: 177 | Factor1 178 | x1 0.935 179 | x2 0.407 180 | x3 0.222 181 | x4 0.998 182 | 183 | Factor1 184 | SS loadings 2.084 185 | Proportion Var 0.521 186 | 187 | Test of the hypothesis that 1 factor is sufficient. 188 | The chi square statistic is 21.97 on 2 degrees of freedom. 189 | The p-value is 1.7e-05 190 | > fa = factanal(x14, factors=3) 191 | 錯誤在factanal(x14, factors = 3) : 192 | 3 factors is too many for 4 variables 193 | ``` 194 | 195 | ### 結語 196 | 197 | 從主成分分析這個案例中,我們可以看到「機率統計」技術背後的原理,竟然是「線性代數」,數學果然是一門博大精深的學問啊! 198 | 199 | 事實上、上一期的「迴歸分析」主題,背後的原理乃是「最小平方法」,必須用到「微積分」與「線性代數」進行理論解釋。 200 | 201 | 我想、這也是為甚麼大學資工系的課程當中,「微積分、線性代數、離散數學、機率統計」通常是必修的原因啊! 202 | 203 | 204 | ### 參考文獻 205 | * [R语言与统计分析](http://book.douban.com/subject/3337668/), 作者: 汤银才, ISBN: 9787040250626。 206 | 207 | -------------------------------------------------------------------------------- /source/people3.md: -------------------------------------------------------------------------------- 1 | ## 電磁學大師:詹姆斯·馬克士威 (James Clerk Maxwell) 2 | 3 | ![圖、詹姆斯·馬克士威](../img/Maxwell.jpg) 4 | 5 | 詹姆斯·馬克士威(英語:James Clerk Maxwell,1831年6月13日-1879年11月5日)是英國理論物理學家和數學家,雖然才華洋溢, 6 | 但卻英年早逝,只活了短短的四十八年。 7 | 8 | 學過物理學的人,通常會知道「馬克士威方程式」,而且知道這是電磁學領域的集大成之作。但是、到底「馬克士威」是何許人也, 9 | 他這輩子又做過哪些事情呢? 10 | 11 | ### 年輕時代 12 | 13 | 馬克士威八歲時母親因癌症病逝,還好父親對他很好,十歲時進入愛丁堡學院就讀,並認識終身的好朋友 Tait,十四歲時在愛丁堡 14 | 皇家學會發表第一篇論文:「論橢圓的製圖法」,展現了其數學天賦。 15 | 16 | 十六歲時,馬克士威與 Tait 兩人一起進入愛丁堡大學就讀,三年後又進入劍橋大學三一學院 (Trinity College),後來成為三一學院的研究員。 17 | 18 | ### 馬克士威與法拉第 19 | 20 | 說來也巧,馬克士威出生的 1831 年,正是法拉第提出電磁感應定理的那年。 21 | 22 | 後來、馬克士威注意到法拉第的研究,閱讀了 [Experimental Researches in Electricity] 這本書,於是深深的著迷了。 23 | 24 | 25 歲時,馬克士威年發表了一篇論文,名稱為 [論法拉第力線] (On Faraday's Lines of Force),於是將這篇論文寄給法拉第看。 25 | 隔年、64 歲的法拉第回了一封信給 24 歲的馬克士威,說到下列這段話。 26 | 27 | > ... I was at first almost frightened when I saw such mathematical force made to bear upon the subject, and then wondered to see that the subject stood it so well. .... 28 | 29 | 翻譯成中文就是:「當我看到你論文中的那些數學,我幾乎是被嚇到了。但是很好奇你為何會將這個主題做得這麼好 ...」, 30 | 31 | 在那時期的電磁學可以形容為眾多實驗結果和數學分析的大雜燴,急需整合成一套內外一致,有條有理的學術理論。 32 | 法拉地的數學背景不夠強,無法完成這件任務,結果馬克士威漂亮的完成的這個任務,成為電磁學領域的大師。 33 | 34 | 到底、馬克士威在 [論法拉第力線] 這篇論文裏寫了甚麼呢?維基百科裏有中文的摘要版,讓我們稍微的看看這篇 35 | 經典論文的內容與時代背景。 36 | 37 | ### 馬克士威的論文:論法拉第力線 (1855年) 38 | 39 | 馬克士威將法拉第想出的力線延伸為裝滿了不可壓縮流體的「力管」。這力管的方向代表力場(電場或磁場)的方向, 40 | 力管的截面面積與力管內的流體速度成反比,而這流體速度可以比擬為電場或磁場。 41 | 42 | 然後、透過借用「威廉·湯姆森」等人在流體力學的一些數學框架,馬克士威推導出一系列初成形的電磁學雛論。 43 | 44 | 像是在「傅立葉熱傳導定律」裏有下列的公式: 45 | 46 | ![](../timg/_Gamma_k_87178ad029be326b9f5cb45690a16d54.jpg) 47 | 48 | 其中, ![](../timg/_Gamma_07710b5c43702a8bb7b9104eacc6ba71.jpg) 是熱通量(heat flux),k 是物質的熱導率,T 是溫度。 49 | 50 | 如果將這樣個概念套用到電磁學領域中,電場和電勢之間的關係式可表達為 51 | 52 | ![](../timg/E_frac_m_8576bc2eefeb78106384b47681c46135.jpg) 53 | 54 | 其中,E 是電場,\phi 是電勢。 55 | 56 | 很明顯地,設定熱導率 k=1,則電勢可以比擬為溫度,而電場可以比擬為熱通量。 57 | 58 | 法拉第的電力線變為了熱流線,等勢線(equipotential)變為了等溫線。所以,解析熱傳導問題的方法,可以用來解析靜電學問題。 59 | 60 | 馬克士威又注意到一個問題:熱傳導依賴的是物質的緊鄰的兩個粒子之間互相接觸而產生的「鄰接作用」(contiguous action); 61 | 62 | 思考兩個相距很遠的電荷,不經過任何媒介,互相直接施加於對方的作用力,假若電場力是這種作用力,則電場力是一種超距作用 63 | (action at a distance)。兩種完全不同的物理現象,居然可以用同樣形式的數學方式來描述,這給予馬克士威很大的遐想空間。 64 | 65 | 然後、透過這樣的比擬(將源電荷 q 比擬為力管源,將電場比擬為流速),馬克士威越推論越深遠,結果得到了「庫倫定律」與 66 | 「高斯定律」等電學的基本公式。 67 | 68 | ![](../timg/E_frac_q_9c5b35cea55d87c3c3e083c23cc0c6d8.jpg) 69 | 70 | ![](../timg/V_frac_q_4c2aa0cd21a40375743fc8d554ea84e2.jpg) 71 | 72 | ![](../timg/E_frac_m_58c00e38c28c11b0734320a36aa64e30.jpg) 73 | 74 | 但是、這篇論文還不是很成熟,而且、接下來的幾年,馬克士威暫時沒有這方面的論文,反而走向光學領域去了。 75 | 76 | ### 土星光環與彩色照片 77 | 78 | 1856 年,馬克士威因父親生病,申請調回 Marischal 學院任教,並於這時期完成土星光環的研究而得到 Adams 獎,該研究結論 79 | 是土星光環應該是由小碎塊所構成,不可能是整塊固體,也不可能是純粹液體 (這點在卡西尼-惠更斯號於 2006 年 9 月 15 日拍得的土星環全貌後被證實了)。 80 | 81 | 接著、馬克士威還利用在陀羅上塗色並旋轉的方式,證明大多數顏色可用「紅綠藍」三原色混合而成,並在 1861 年製作出了全世界 82 | 第一張彩色照片。 83 | 84 | 在完成這些光學研究後,馬克士威又回到了電磁學領域繼續努力,在 30 歲的那年,又發表了一篇重要的電磁學論文「[論物理力線]」 85 | (On Physical Lines of Force)。 86 | 87 | ### 馬克士威的論文:論物理力線 (1861年) 88 | 89 | 在 [論物理力線] 這篇論文裏,馬克士威提出了力線 (或稱場線) 這樣的概念,這種力線可以描述「電力、磁力、重力」所形成的 90 | 力場,並且透過微積分的數學原理,計算這些力場的強度。 91 | 92 | 在這篇文章中,馬克士威對自己在 [論法拉第力線] 時想出的分子渦流模型,提出了幾點質疑,並且他假設在兩個相鄰渦胞之間, 93 | 有一排微小圓珠,將這兩個渦胞隔離分開。這些圓珠只能滾動(rolling),不能滑動。圓珠旋轉的方向相反於這兩個渦胞的旋轉方向, 94 | 這樣,就不會引起摩擦。 95 | 96 | 然後、馬克士威透過這種改良的分子渦流想法,推論出一些數學公式,以下是幾個範例: 97 | 98 | > ![](../timg/_mathrm__88021d94484de5aea293d67ac3b657c7.jpg) 99 | > 100 | > 其中, ![](../timg/_rho_d2606be4e0cd2c9a6179c8f2e3547a85.jpg) 是流體的密度,是一個常數。 101 | > 102 | > ![](../timg/p__c_R_i_e1650e901408bc001d8ff6a01a451583.jpg) 103 | > 104 | > 其中,R 是渦胞的半徑, ![](../timg/v_R_omeg_835d6289e38187f9a9d5f82308b05cb4.jpg) 是流體位於周邊的周邊速度。 105 | 106 | 從這模型,經過一番複雜的運算,馬克士威能夠推導出安培定律、法拉第感應定律等,這也就是後來被稱為「馬克士威方程組」的那些公式。 107 | 108 | 但是、事實上馬克士威所用的方程式並沒有像後來用散度與旋度表示的數學這麼漂亮,而是如下所示的一大堆方程式 109 | 110 | (評論:不過說真的,其實已經很漂亮了,只是沒有加上「散度、旋度」這種總合算子的包裝而已)。 111 | 112 | ![圖、馬克士威論物理力線中的四大群方程式](../img/MaxwellEquationOriginal.jpg) 113 | 114 | 然後、馬克士威從彈性物質會以波動形式傳播能量於空間,聯想到電磁場應該也會以波動形式傳播能量於空間,並且會產生反射,折射等等波動行為。 115 | 於是馬克士威計算出電磁波的傳播速度,發覺這數值非常接近於光速。因此,馬克士威認為光是一種電磁波。以下是摘自維基百科 [論物理力線] 文章 116 | 中的推論。 117 | 118 | ![圖、光波就是電磁波的推論](../img/light_speed.jpg) 119 | 120 | 於是馬克士威在論文中寫下了一段話,翻譯成中文如下。 121 | 122 | > 根據韋伯和科爾勞施完成的電磁實驗,在我們的假想介質裏的橫向波盪的速度,與從斐索的光學實驗計算求得的光速,是如此精確地符合,這使我們難以排除如下的推論:光是由引起電現象和磁現象的同一介質中的橫波組成的。 123 | > ——馬克士威,於《論物理力線》 124 | 125 | 不過、在這篇文章中馬克士威也擁有了一些後來被認為不夠好的想法,像是他認為完美真空不存在,乙太瀰漫於整個宇宙。與普通物質不同,馬克士威 126 | 假想的乙太具有能量與動量,因此可以說具有質量,但是牛頓萬有引力定律不適用於它,因為它沒有重量。 127 | 128 | 129 | ### 馬克士威的論文:電磁場的動力學理論 (1864年) 130 | 131 | 在這篇論文的標題為電磁場一般方程式的第三章裏,馬克士威列出了涉及二十個未知量的二十個方程式,在那時期,稱為馬克士威方程組。 132 | 由於向量微積分尚在發展中,這二十個方程式都是以分量形式表示,其中,有十八個方程式可以用六個向量方程式集中表示(對應於每一個直角坐標, 133 | 有一個方程式),另外剩下的兩個是純量方程式。所以,以向量標記,馬克士威方程組可以表示為八個方程式。如下所示: 134 | 135 | ![圖、馬克士威方程組表示為八個方程式的版本](../img/MaxwellEquation.jpg) 136 | 137 | 馬克士威在對於光波是一種電磁現象的推導裏,並沒有使用法拉第電磁感應定律,而是使用方程式(D)來解釋電磁感應作用。 138 | 139 | 以下是馬克士威原始版的推導過程: 140 | 141 | ![圖、馬克士威原始版的推導](../img/MaxwellProof.jpg) 142 | 143 | 1884年,從這八個方程式,奧利弗·黑維塞重新編排出四個方程式,並且稱這一組方程式為馬克士威方程組。今天廣泛使用的馬克士威方程組就是黑維塞編成的這一組方程式。 144 | 145 | 黑維塞版本的馬克士威方程組是以現代向量標記法寫出。在原先版本的八個方程式裏,只有一個方程式,高斯定律的方程式(G),完整不變地出現於黑維塞版本。 146 | 另外一個在黑維塞版本的方程式,乃是由總電流定律的方程式(A)與安培環路定理的方程式(C)共同湊合而成。這方程式包含了馬克士威的位移電流,是安培環路定理的延伸。 147 | 148 | 以下是現代所用的黑維塞版推導過程: 149 | 150 | ![圖、黑維塞現代版的推導](../img/MaxwellProofHesswei.jpg) 151 | 152 | 153 | ### 結語 154 | 155 | 從以上三篇電磁學論文,我們可以看到,馬克士威的主要貢獻是建立了馬克士威方程組,創立了古典電動力學,並且預言了電磁波的存在,提出了光的電磁說。 156 | 所以說馬克士威是電磁學理論的集大成者。 157 | 158 | 另外、這三篇論文的出版時間橫跨了九年,再加上第一篇論文的醞釀期,馬克士威在這組方程式上所下的功夫,恐怕遠超過十年以上。 159 | 160 | 對於一個劍客而言,花費「十年磨一劍」的功夫,只是為了等待那「十步殺一人」的重要時刻,但是對於一個研究者而言,花費「十年磨一劍」 161 | 的原因,通常是為了要發現隱藏在事物背後更深層的秘密。 162 | 163 | 馬克士威的十年,並沒有磨出任何一把劍,但卻磨出了整個近代科學的「易筋經」,從此整個工業宛如「脫胎換骨」一般,從機械的 164 | 世界跨入到「電磁學」的世界當中,那十二個方程式,就是整個現代工業的至高無上的「武功祕笈」。 165 | 166 | 只要練成這種武功,你可以「隔空殺人」,也可以用「內力煮一頓晚餐」,只要你有「電磁波」就行了。於是、我們有了「電磁爐與電磁炸彈」, 167 | 以及更多的現代電磁設備,整個高科技領域的秘密,幾乎都蘊含在這十二個方程式當中。 168 | 169 | 難怪、1931年愛因斯坦在馬克士威百年誕辰的紀念會上,評價馬克士威的建樹「是牛頓以來,物理學最深刻和最富有成果的工作」。 170 | 171 | 172 | ### 參考文獻 173 | * Wikipedia:[James Clerk Maxwell](http://en.wikipedia.org/wiki/James_Clerk_Maxwell) 174 | * 維基百科:[馬克士威方程組](http://zh.wikipedia.org/zh-tw/%E9%BA%A6%E5%85%8B%E6%96%AF%E9%9F%A6%E6%96%B9%E7%A8%8B%E7%BB%84) 175 | * 維基百科:[詹姆斯·克拉克·馬克士威](http://zh.wikipedia.org/wiki/%E8%A9%B9%E5%A7%86%E6%96%AF%C2%B7%E5%85%8B%E6%8B%89%E5%85%8B%C2%B7%E9%BA%A6%E5%85%8B%E6%96%AF%E9%9F%A6) 176 | * 維基百科:[論法拉第力線] 177 | * 維基百科:[論物理力線] 178 | * 維基百科:[電磁場的動力學理論] 179 | * 維基百科:[麥克斯韋關係式](http://zh.wikipedia.org/wiki/%E9%BA%A6%E5%85%8B%E6%96%AF%E9%9F%A6%E5%85%B3%E7%B3%BB) 180 | * 維基百科:[馬克士威–波茲曼分布](http://zh.wikipedia.org/wiki/%E9%BA%A6%E5%85%8B%E6%96%AF%E9%9F%A6%E9%80%9F%E5%BA%A6%E5%88%86%E5%B8%83%E5%BE%8B) 181 | * [法拉第以高明的科學想像力,體認到電荷之間的場才是描述電磁現象的關鍵。](http://case.ntu.edu.tw/sts/?tag=%E9%A6%AC%E5%85%8B%E5%A3%AB%E5%A8%81) 182 | * Wikiquote:[Michael Faraday](http://en.wikiquote.org/wiki/Michael_Faraday) 183 | * [On Faraday's Lines of Force (PDF)](http://www.ffn.ub.es/luisnavarro/nuevo_maletin/Maxwell_1856_Faraday_lines_excerpt.pdf) 184 | * [馬克士威 James clerk Maxwell 的科學與詩](http://fang500301.blogspot.tw/2012/06/james-clerk-maxwell.html) 185 | * [Experimental Researches in Electricity], Volume 1, by Michael Faraday, The Project Gutenberg eBook. 186 | * 維基百科:[土星環](http://zh.wikipedia.org/wiki/%E5%9C%9F%E6%98%9F%E7%92%B0) 187 | * [College Physics], OpenStax College. 188 | 189 | [論法拉第力線]:http://zh.wikipedia.org/wiki/%E8%AB%96%E6%B3%95%E6%8B%89%E7%AC%AC%E5%8A%9B%E7%B7%9A 190 | [論物理力線]:http://zh.wikipedia.org/wiki/%E8%AB%96%E7%89%A9%E7%90%86%E5%8A%9B%E7%B7%9A 191 | [電磁場的動力學理論]:http://zh.wikipedia.org/wiki/%E9%9B%BB%E7%A3%81%E5%A0%B4%E7%9A%84%E5%8B%95%E5%8A%9B%E5%AD%B8%E7%90%86%E8%AB%96 192 | [Experimental Researches in Electricity]:http://www.gutenberg.org/files/14986/14986-h/14986-h.htm 193 | 194 | 【本文由陳鍾誠取材並修改自 [維基百科] 與 OpenStax College 的 [College Physics] 一書,採用創作共用的 [姓名標示、相同方式分享] 授權】 195 | 196 | 197 | -------------------------------------------------------------------------------- /source/article5.md: -------------------------------------------------------------------------------- 1 | ## 開放電腦計畫 (4) – CPU0mc 處理器:使用 Verilog 實作 (作者:陳鍾誠) 2 | 3 | 從本期開始,我們將陸續介紹開放電腦計畫中的處理器,CPU0 的設計方式,我們將使用 Verilog 硬體描述語言來設計 4 | CPU0 處理器。 5 | 6 | 但是由於處理器的設計比較複雜,若採用一步到位的方式,恐怕讀者會難以理解。因此我們將採用循序漸進的方式,從 7 | 只支援 4 個指令的超微小處理器 CPU0-Mini 開始,來解說處理器的設計方式。 8 | 9 | 在本文中,我們將用最簡單的方式,在完全不考慮成本與實用性的情況之下,設計一個將記憶體內建在 CPU0-Mini 內部 10 | 的處理器,稱為 CPU0mc,也就是 CPU0-Mini-Cache 的簡稱。 11 | 12 | ### 簡介 13 | 14 | 還記得我們在 2013 年 6 月號的程式人雜誌中,刊載過的下列文章嗎?這篇文章說明了 CPU0 處理器的架構。 15 | 16 | * [開放電腦計畫 (1) – 整體架構與 CPU0 處理器](https://dl.dropboxusercontent.com/u/101584453/pmag/201306/htm/article5.html) 17 | 18 | 在本文中,我們將從 CPU0 的指令集當中,挑出幾個指令,以便寫出一個可以計算 1+2+.....+n+.... 的組合語言程式 19 | (喔!不、應該說是機器語言程式),然後用 Verilog 實作一個可以執行這些指令的 CPU,這個微小的 CPU 版本稱為 CPU0mc。 20 | 21 | 我們所挑的幾個指令如下: 22 | 23 | 格式 指令 OP 說明 語法 語意 24 | ----- --------- ------ --------------------- -------------------- --------------------- 25 | L LD 00 載入word LD Ra, [Rb+Cx] Ra=[Rb+Cx] 26 | L ST 01 儲存word ST Ra, [Rb+Cx] Ra=[Rb+Cx] 27 | A ADD 13 加法 ADD Ra, Rb, Rc Ra=Rb+Rc 28 | J JMP 26 跳躍 (無條件) JMP Cx PC=PC+Cx 29 | 30 | 然後,我們就可以用這幾個指令寫出以下的程式: 31 | 32 | 位址 機器碼 標記 組合語言 對照的 C 語言 33 | ---- --------- ----- ---------------- ---------------------------- 34 | 0000 001F0018 LD R1, K1 R1 = K1 35 | 0004 002F0010 LD R2, K0 R2 = K0 36 | 0008 003F0014 LD R3, SUM R3 = SUM 37 | 000C 13221000 LOOP: ADD R2, R2, R1 R2 = R2 + R1 38 | 0010 13332000 ADD R3, R3, R2 R3 = R3 + R2 39 | 0014 26FFFFF4 JMP LOOP goto LOOP 40 | 0018 00000000 K0: WORD 0 int K0=0 41 | 001C 00000001 K1: WORD 1 int K1=1 42 | 0020 00000000 SUM: WORD 0 int SUM=0 43 | 44 | 這個程式的行為模式,是會讓暫存器 R3 (對應到 SUM) 從 0, 1, 1+2, 1+2+3, .... 一路向上跑,而且是永無止境的無窮迴圈。 45 | 因此我們會看到 R3 的內容會是 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55 ... ,的情況。 46 | 47 | ### CPU0mc 模組 48 | 49 | 以下就是我們所設計的 CPU0mc 模組,以及測試的主程式,我們在程式中寫了詳細的說明,請讀者對照閱讀。 50 | 51 | 檔案:[CPU0mc](https://dl.dropboxusercontent.com/u/101584453/pmag/201310/code/cpu0mc.v) 52 | 53 | ```verilog 54 | `define PC R[15] // 程式計數器 PC 其實是 R[15] 的別名 55 | 56 | module cpu0mc(input clock); // CPU0-Mini 的快取版:cpu0mc 模組 57 | parameter [7:0] LD = 8'h00, ST=8'h01, ADD=8'h13, JMP=8'h26; // 支援 4 個指令 58 | reg signed [31:0] R [0:15]; // 宣告暫存器 R[0..15] 等 16 個 32 位元暫存器 59 | reg signed [31:0] IR; // 指令暫存器 IR 60 | reg [7:0] m [0:128]; // 內部的快取記憶體 61 | reg [7:0] op; // 變數:運算代碼 op 62 | reg [3:0] ra, rb, rc; // 變數:暫存器代號 ra, rb, rc 63 | reg signed [11:0] cx12; // 變數:12 位元常數 cx12 64 | reg signed [15:0] cx16; // 變數:16 位元常數 cx16 65 | reg signed [23:0] cx24; // 變數:24 位元常數 cx24 66 | reg signed [31:0] addr; // 變數:暫存記憶體位址 67 | 68 | initial // 初始化 69 | begin 70 | `PC = 0; // 將 PC 設為起動位址 0 71 | R[0] = 0; // 將 R[0] 暫存器強制設定為 0 72 | {m[0],m[1],m[2],m[3]} = 32'h001F0018; // 0000 LD R1, K1 73 | {m[4],m[5],m[6],m[7]} = 32'h002F0010; // 0004 LD R2, K0 74 | {m[8],m[9],m[10],m[11]} = 32'h003F0014; // 0008 LD R3, SUM 75 | {m[12],m[13],m[14],m[15]}= 32'h13221000; // 000C LOOP: ADD R2, R2, R1 76 | {m[16],m[17],m[18],m[19]}= 32'h13332000; // 0010 ADD R3, R3, R2 77 | {m[20],m[21],m[22],m[23]}= 32'h26FFFFF4; // 0014 JMP LOOP 78 | {m[24],m[25],m[26],m[27]}= 32'h00000000; // 0018 K0: WORD 0 79 | {m[28],m[29],m[30],m[31]}= 32'h00000001; // 001C K1: WORD 1 80 | {m[32],m[33],m[34],m[35]}= 32'h00000000; // 0020 SUM: WORD 0 81 | end 82 | 83 | always @(posedge clock) begin // 在 clock 時脈的正邊緣時觸發 84 | IR = {m[`PC], m[`PC+1], m[`PC+2], m[`PC+3]}; // 指令擷取階段:IR=m[PC], 4 個 Byte 的記憶體 85 | `PC = `PC+4; // 擷取完成,PC 前進到下一個指令位址 86 | {op,ra,rb,rc,cx12} = IR; // 解碼階段:將 IR 解為 {op, ra, rb, rc, cx12} 87 | cx24 = IR[23:0]; // 解出 IR[23:0] 放入 cx24 88 | cx16 = IR[15:0]; // 解出 IR[15:0] 放入 cx16 89 | addr = `PC+cx16; // 記憶體存取位址 = PC+cx16 90 | case (op) // 根據 OP 執行對應的動作 91 | LD: begin // 載入指令: R[ra] = m[addr] 92 | R[ra] = {m[addr], m[addr+1], m[addr+2], m[addr+3]}; 93 | $write("%4dns %8x : LD %x,%x,%-4x", $stime, `PC, ra, rb, cx16); 94 | end 95 | ST: begin // 儲存指令: m[addr] = R[ra] 96 | {m[addr], m[addr+1], m[addr+2], m[addr+3]} = R[ra]; 97 | $write("%4dns %8x : ST %x,%x,%-4x", $stime, `PC, ra, rb, cx16); 98 | end 99 | ADD: begin // 加法指令: R[ra] = R[rb]+R[rc] 100 | R[ra] = R[rb]+R[rc]; 101 | $write("%4dns %8x : ADD %x,%x,%-4x", $stime, `PC, ra, rb, rc); 102 | end 103 | JMP:begin // 跳躍指令: PC = PC + cx24 104 | addr = cx24; // 取出 cx 並轉為 32 位元有號數 105 | `PC = `PC + addr; // 跳躍目標位址=PC+cx 106 | $write("%4dns %8x : JMP %-8x", $stime, `PC, cx24); 107 | end 108 | endcase 109 | $display(" R[%2d]=%4d", ra, R[ra]); // 顯示目標暫存器的值 110 | end 111 | endmodule 112 | 113 | module main; // 測試程式開始 114 | reg clock; // 時脈 clock 變數 115 | 116 | cpu0mc cpu(clock); // 宣告 cpu0mc 處理器 117 | 118 | initial clock = 0; // 一開始 clock 設定為 0 119 | always #10 clock=~clock; // 每隔 10 奈秒將 clock 反相,產生週期為 20 奈秒的時脈 120 | initial #640 $finish; // 在 640 奈秒的時候停止測試。(因為這時的 R[1] 恰好是 1+2+...+10=55 的結果) 121 | endmodule 122 | ``` 123 | 124 | ### 測試結果 125 | 126 | 上述程式使用 icarus 測試與執行的結果如下所示。 127 | 128 | 129 | ``` 130 | 131 | D:\Dropbox\Public\web\oc\code>iverilog -o cpu0mc cpu0mc.v 132 | 133 | D:\Dropbox\Public\web\oc\code>vvp cpu0mc 134 | 10ns 00000004 : LD 1,f,0018 R[ 1]= 1 135 | 30ns 00000008 : LD 2,f,0010 R[ 2]= 0 136 | 50ns 0000000c : LD 3,f,0014 R[ 3]= 0 137 | 70ns 00000010 : ADD 2,2,1 R[ 2]= 1 138 | 90ns 00000014 : ADD 3,3,2 R[ 3]= 1 139 | 110ns 0000000c : JMP fffff4 R[15]= 12 140 | 130ns 00000010 : ADD 2,2,1 R[ 2]= 2 141 | 150ns 00000014 : ADD 3,3,2 R[ 3]= 3 142 | 170ns 0000000c : JMP fffff4 R[15]= 12 143 | 190ns 00000010 : ADD 2,2,1 R[ 2]= 3 144 | 210ns 00000014 : ADD 3,3,2 R[ 3]= 6 145 | 230ns 0000000c : JMP fffff4 R[15]= 12 146 | 250ns 00000010 : ADD 2,2,1 R[ 2]= 4 147 | 270ns 00000014 : ADD 3,3,2 R[ 3]= 10 148 | 290ns 0000000c : JMP fffff4 R[15]= 12 149 | 310ns 00000010 : ADD 2,2,1 R[ 2]= 5 150 | 330ns 00000014 : ADD 3,3,2 R[ 3]= 15 151 | 350ns 0000000c : JMP fffff4 R[15]= 12 152 | 370ns 00000010 : ADD 2,2,1 R[ 2]= 6 153 | 390ns 00000014 : ADD 3,3,2 R[ 3]= 21 154 | 410ns 0000000c : JMP fffff4 R[15]= 12 155 | 430ns 00000010 : ADD 2,2,1 R[ 2]= 7 156 | 450ns 00000014 : ADD 3,3,2 R[ 3]= 28 157 | 470ns 0000000c : JMP fffff4 R[15]= 12 158 | 490ns 00000010 : ADD 2,2,1 R[ 2]= 8 159 | 510ns 00000014 : ADD 3,3,2 R[ 3]= 36 160 | 530ns 0000000c : JMP fffff4 R[15]= 12 161 | 550ns 00000010 : ADD 2,2,1 R[ 2]= 9 162 | 570ns 00000014 : ADD 3,3,2 R[ 3]= 45 163 | 590ns 0000000c : JMP fffff4 R[15]= 12 164 | 610ns 00000010 : ADD 2,2,1 R[ 2]= 10 165 | 630ns 00000014 : ADD 3,3,2 R[ 3]= 55 166 | ``` 167 | 168 | 從上述輸出訊息當中,您可以看到程式的執行是正確的,其中 R[2] 從 0, 1, 2, ..... 一路上數, 169 | 而 R[3] 則從 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55 一路累加上來,完成了我們想要的程式功能。 170 | 171 | 172 | ### 結語 173 | 174 | 其實、CPU0mc 這樣的設計應該還不能稱之為快取,而是在程式不大的情況之下,將 SRAM 直接包入在 CPU 當中的一種作法, 175 | 這種作法的好處是記憶體存取速度很快,但相對的記憶體成本也很貴,因為這些記憶體是直接用靜態記憶體的方式內建在 176 | CPU 當中的。 177 | 178 | 這種方式比較像 SOC 系統單晶片的做法,在程式很小的情況之下,直接將記憶體包入 SOC 當中,會得到比較高速的電路, 179 | 可惜的是這種做法不像目前的電腦架構一樣,是採用外掛 DRAM 的方式,可以大幅降低記憶體的成本,增大記憶體的容量 180 | 就是了。 181 | 182 | ### 參考文獻 183 | * [陳鍾誠的網站:使用 Verilog 設計 CPU0 處理器](http://ccckmit.wikidot.com/ve:cpu0s) 184 | * [陳鍾誠的網站:CPU0-Mini 處理器設計](http://ccckmit.wikidot.com/ve:cpu0m) 185 | 186 | -------------------------------------------------------------------------------- /htm/people2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |

程式人雜誌 -- 2013 年 10 月號 (開放公益出版品)

14 |
15 |
16 | 21 |

電磁學奇才:麥可·法拉第 (Michael Faraday)

22 |
23 | 圖、麥可·法拉第的肖象素描由約翰·瓦特金所畫,現存於大英圖書館

圖、麥可·法拉第的肖象素描
由約翰·瓦特金所畫,現存於大英圖書館

24 |
25 |

麥可·法拉第(英語:Michael Faraday,1791年9月22日-1867年8月25日),英國物理學家在電磁學及電化學領域 做出很多重要貢獻。

26 |

西方科學與工業之間,總是存在某種相互促進的關係,在科學的發展過程當中,總是呈現「理論 - 實驗 - 理論 - 實驗 ....」 這樣的發展循環,而法拉第所代表的,極度的偏向「實驗」這一端,他一生當中做過了無數的實驗,這些實驗遍佈了 整個電磁學領域,讓後來的「馬克斯威」可以透過解讀他的實驗結果,運用深厚的數學內功提出了電磁學的完整理論架構, 並創造出了「馬克斯威方程式」,如果沒有法拉第,或許就沒有「馬克斯威」的電磁學理論了。

27 |

出身

28 |

法拉第出生於英國紐因頓,接近現在的倫敦大象堡。法拉第家的經濟狀況並不好,他的父親詹姆士是個鐵匠以及 基督教桑地馬尼安教派的一員,於1780年代從英格蘭的西北部來到倫敦。由於家境貧窮,因此他只好靠自學 求取知識。14歲時,他成為書本裝訂商及銷售人喬治·雷伯的門生。7年學徒生涯中,他讀過大量書籍,包括以 撒·華茲的「悟性的提升」,書中對於學習的原則與建議,法拉第一直遵行不輟。另外,他也從由珍·瑪西女士 所寫的「化學閒聊」中得到很多啟發。在這些大量的閱讀之中,法拉第漸漸樹立起對科學的興趣,這其中, 又以電學為甚。

29 |

1812年,時齡二十歲,隨著門生生涯走入尾聲,法拉第開始旁聽由赫赫有名的皇家研究機構的一員以及 英國皇家學會會長:漢弗里·戴維爵士以及市立哲學協會的創始者:約翰·塔特姆所開的演講。 參加這些演講的門票大多是由威廉·譚斯(皇家愛樂協會的創辦人之一)給予法拉第。之後有一次,法拉第將 自己在演講中細心抄錄,並旁徵博引,內容達三百頁的筆記拿給戴維過目,戴維立刻給予他相當友善且正面的答覆。 也因此,戴維在一次三氯化氮實驗中發生意外,視力受損之後,便僱用了法拉第作為他的秘書。當皇家研究院中一位 助手約翰·培恩離開後,他們便請求戴維尋找替代人選。戴維在1813年3月1日推薦法拉第成為化學助理。 由於法拉第在印書店的新僱主亨利·德拉羅許脾氣暴躁,他毫不猶豫的離開了這份舊工作。

30 |

行事作風在當時的階級分明的英國社會中,出身卑微的法拉第並不被認同為一個紳士。在1813年五月,

31 |

戴維展開一次長期的歐洲巡迴。由於他的侍從並不想跟隨,法拉第原本是以助手的身份跟去, 卻被要求同時作戴維的僕人,直到在巴黎找到人代替為止。戴維最後沒有找到代替者, 法拉第也因此被強迫在整個旅行中同時兼任僕人與助手。戴維的妻子珍·亞普莉絲不願意平等 對待法拉第,旅行時要他坐在馬車外,與傭人一起吃飯,法拉第的處境越來越悽慘,甚至開始 考慮獨自回到英國放棄科學研究。不過這次旅行,也讓他接觸了歐洲許多的科學菁英, 刺激出他許多想法。逆境最終沒有阻擋住法拉第在科學上的貢獻。在旅行過後不久, 法拉第的成就便超越了戴維。

32 |

法拉第的主要贊助者兼顧問為約翰·『瘋狂傑克』·富勒,他在皇家研究院裡創立了富勒里安化學教授這個職位。

33 |

在1824年,法拉第被選為皇家學會院士,並於1825年被指派為實驗室主任。1833年他被選為皇家研究院終身職,任職而不需講課。

34 |

法拉第是一名高度虔誠的教徒,他是桑地馬尼安教派(蘇格蘭國教會的一分支)的信徒,曾在其中任兩任長老。 此教派是由蘇格蘭長老會牧師格拉斯於1730年創立,此教要求完全的信奉和承諾。傳記學家曾經認為"一種神與 自然融為一體的感覺貫穿了法拉第的生活與工作。法拉第在1821年娶沙拉·巴娜德為妻,不過膝下無子。 他們由於參加桑地馬尼安教會而認識。

35 |

雖然法拉第只受過很少的正式教育,這使得他的高等數學知識(例如微積分)相對有限,但不可否認, 法拉第仍是歷史上最有影響力的科學家之一。某些科學史學家認為他是科學史上最優秀的 「實驗主義者」。其科學知識可能主要是在擔任另一科學家戴維的助手時所學習而來,因而雖然 法拉第不曾受過高等教育,但仍可把漢弗里·戴維視為法拉第的指導教授。

36 |

由於道德原因,法拉第拒絕參與為「克里米亞戰爭」製造化學武器。在倫敦薩弗伊廣場,電工程師協會外,聳立著一個法拉第的雕像, 而在布魯內爾大學新建的一個接待廳以法拉第為名。

37 |

電磁學研究

38 |

1821 年,在丹麥化學家「漢斯·奧斯特」發現電磁現象後,「戴維」和「威廉·海德·渥拉斯」頓嘗試設計一部電動機,但沒有成功。 法拉第在與他們討論過這個問題後,繼續工作並建造了兩個裝置以產生他稱為「電磁轉動」的現象:由線圈外環狀磁場造成的連續旋轉運動。 他把導線接上化學電池,使其導電,再將導線放入內有磁鐵的汞池之中,則導線將繞著磁鐵旋轉。這個裝置現稱為單極電動機。 這些實驗與發明成為了現代電磁科技的基石。

39 |

但此時法拉第卻做了一件不智之舉,在沒有通知戴維跟渥拉斯頓情況下,擅自發表了此項研究成果。此舉招來諸多爭議, 也迫使他離開電磁學研究數年之久。

40 |

在這個階段,有些證據指出戴維可能有意阻礙法拉第在科學界的發展。如在1825年,戴維指派法拉第進行光學玻璃實驗, 此實驗歷時六年,但沒有顯著的進展。直到1829年,戴維去世,法拉第停止了這個無意義的工作並開始其他有意義的實驗。 在1831年,他開始一連串重大的實驗,並發現了電磁感應,雖然在福朗席斯科·札德啟稍早的工作可能便預見了此結果, 此發現仍可稱為法拉第最大的貢獻之一。

41 |

這個重要的發現來自於,當他將兩條獨立的電線環繞在一個大鐵環,固定在椅子上,並在其中一條導線通以電流時, 另外一條導線竟也產生電流。他因此進行了另外一項實驗,並發現若移動一塊磁鐵通過導線線圈,則線圈中將有電流產生。 同樣的現象也發生在移動線圈通過靜止的磁鐵上方時。

42 |

他的展示向世人建立起「磁場的改變產生電場」的觀念。此關係由法拉第電磁感應定律建立起數學模型, 並成為四條馬克士威方程組之一。這個方程組之後則歸納入場論之中。

43 |

1839年他成功了一連串的實驗帶領人類了解電的本質。法拉第使用「靜電」、電池以及「生物生電」已產生靜電相吸、 電解、磁力等現象。他由這些實驗,做出與當時主流想法相悖的結論,即雖然來源不同,產生出的電都是一樣的, 另外若改變大小及密度(電壓及電荷),則可產生不同的現象。

44 |

在他生涯的晚年,他提出電磁力不僅存在於導體中,更延伸入導體附近的空間裡。這個想法被他的同儕排斥, 法拉第也終究沒有活著看到這個想法被世人所接受。法拉第也提出電磁線的概念:這些流線由帶電體或者是磁鐵 的其中一極中放射出,射向另一電性的帶電體或是磁性異極的物體。這個概念幫助世人能夠將抽象的電磁場具象化, 對於電力機械裝置在十九世紀的發展有重大的影響。而這些裝置在之後的十九世紀中主宰了整個工程與工業界。

45 |

1845年他發現了被他命名為抗磁性 (diamagnetism) 的現像 (現在則稱為法拉第效應):一個線性極化的光線在經過一 物體介質時,外加一磁場並與光線的前進方向對齊,則此磁場將使光線在空間中劃出的平面轉向。 他在筆記本中寫下:『我終於在「闡釋一條磁力曲線」—或者說「力線」—及「磁化光線」中取得成功。』 ("I have at last succeeded in illuminating a magnetic curve or line of force and in magnetising a ray of light")。 這個實驗證明了光和磁力有所聯繫。

46 |
47 |

筆者註:這個實驗暗示了光很可能是一種電磁波,於是後來馬克士威推論出電磁波速度等於光速時,幾乎就立刻體悟了這個結論。

48 |
49 |

在對於靜電的研究中,法拉第發現在帶電導體上的電荷僅依附於導體表面,且這些表面上的電荷對於導體內部沒有任何影響。 造成這樣的原因在於在導體表面的電荷彼此受到對方的靜電力作用而重新分佈至一穩定狀態,使得每個電荷對內部造成的 靜電力互相抵銷。這個效應稱為遮蔽效應,並被應用於「法拉第籠」這個隔絕電磁波的裝置上。

50 |

化學研究

51 |

法拉第最早的化學成果來自於擔任戴維助手的時期。他花了很多心血研究氯氣,並發現了兩種碳化氯。 他也研究過氣體擴散現象,並成功的液化了多種氣體;然後研究過不同的鋼合金,並進行過光學的實驗,更製造出多種新型的玻璃。 其中一塊玻璃樣品後來在歷史上佔有一席之地,因為在一次當法拉第將此玻璃放入磁場中時,他發現了極化光平面受磁力造成偏轉 及被磁力排斥。

52 |

法拉第在戴維去旅行時曾代理職務,並接受分析委託,其中最著名的三項委託是:

53 |
    54 |
  1. 分析源自托斯卡尼的天然生石灰、2. 原住土著的標槍頭研究 (分析出「矽鋼」) 和 3. 大馬士革騎兵彎刀
  2. 55 |
56 |

其中第三項的彎刀研究,發現古敘利亞可能有鉑礦場,並加入鉑礦使之輕巧但卻鋒利無比,連西方騎兵重軍刀都能被削斷。

57 |

後來英國人經過不斷的嘗試之後,終於發明了「碳鋼」,這使大英帝國的騎兵在中東戰場能夠擊破大馬士革的彎刀。

58 |

他也盡心於創造出於一些化學的常用方法,用結果、研究目標以及大眾展示做為分類,並從中獲得一些成果。 他發明了一種加熱工具,是本生燈的前身,在科學實驗室廣為採用,作為熱能的來源。

59 |

法拉第在多個化學領域中都有所成果,發現了諸如苯等化學物質(他稱此物質為雙碳化氫(bicarburet of hydrogen)),發明氧化數,將如氯等氣體液化。他找出一種氯水合物的組成,這個物質最早在1810年由戴維發現。

60 |

法拉第也發現了電解定律,以及推廣許多專業用語,如陽極、陰極、電極及離子等,這些詞語大多由威廉·休艾爾 發明。由於這些成就,很多現代的化學家視法拉第為有史以來最出色的實驗科學家之一。

61 |

法拉第電磁感應定律

62 |

法拉第電磁感應定律是電磁學中的一條基本定律,跟變壓器、電感元件及多種發電機的運作有密切關係。定律指出: 任何封閉電路中感應電動勢的大小,等於穿過這一電路磁通量的變化率。

63 |
64 | 65 |
66 |

這個定律與安培定律,基本上就是馬克斯威方程式的兩大核心定律。

67 |

這兩大定律,讓「電生磁、磁生電」的循環建立起來了,於是、「電磁學的世界」有了一個堅實的理論基礎。

68 |

然後、這個世界裏更多的科學家與工程師連手,打造出了「發電機、馬達、天線、電磁爐、有線與無線的電子電機設備」等等, 像是「馬達」與「發電機」就完全是依靠「法拉第與安培」定律所打造出來的設備,如下圖所示。

69 |
70 | 圖、馬達與發電機的構造與原理

圖、馬達與發電機的構造與原理

71 |
72 |

法拉第電解定律

73 |

法拉第在電化學上也貢獻良多,例如他發現在物質電解過程中,參與電極反應的質量與通過電極的電量成正比。 換句話說,不同物質電解的質量則正比於該物質的化學當量,這個發現可以寫成以下定律。

74 |
75 | 76 |
77 |

其中 n 為 1 莫耳物質電解時參與電極反應的電子的摩爾數(即化合價),(M/n)又稱化學當量(Eq); F 為法拉第常數,即電解1電化學當量物質所需電量。

78 |

法拉第電解定律適用於一切電極反應的氧化還原過程,是電化學反應中的基本定量定律。

79 |

晚年

80 |

1848年,受到艾伯特王夫引見,法拉第受賜在薩里漢普頓宮的恩典之屋,並免繳所有開銷與維修費。這曾是石匠師傅之屋, 後稱為法拉第之屋,現位於漢普頓宮道37號(No.37 Hampton Court Road)。在1858年,法拉第退休並在此定居。

81 |

在他有生之年中,他推辭了封爵並且兩次拒絕成為皇家學會會長。他在 1867 年 8 月 25 日死於位於漢普頓宮的家中。 在西敏寺,艾薩克·牛頓的墓旁座落著他的紀念碑。但是他拒絕在西敏寺下葬,而入土於桑地馬尼安教派的海格特墓園中。

82 |

結語

83 |

在閱讀了法拉第的故事之後,感覺到科學界似乎有兩類不同的典型,像是「法拉第、愛迪生、瓦特、萊特兄弟」等人, 是屬於做實驗與應用的「劍宗高手」,這類科學家往往可以創造出很多偉大的發明與實驗結果。

84 |

而另一類科學家,像是「馬克斯威、牛頓、愛因斯坦」等人,則是數學很強的「氣宗高手」,他們雖然實驗與應用能力 不見得很好,但是透過深厚的數學內功,往往可以把前人的實驗結果解讀後,創建出一個完整的理論體系,而這個理論體系, 最後會成為下一波「劍宗高手」的「武學秘笈」,指引他們「邁向下一個偉大的航道」啊!

85 |

最令我感動的是,法拉第的謙虛,以及對馬克士威的友好態度,並且與他結成忘年之交,兩人共同構築了電磁學理論的科學體系。 (雖然當初戴維與她太太瞧不起法拉第,但是法拉第成名後並沒有向他們一樣變成高傲的人,相反的卻很樂意提攜後進)。

86 |

這種透過「理論與實驗結合」,以及「學術與產業的結合」,讓整個世界的科學,不斷的突破進展的精神,是我一直認為台灣所缺乏的, 我想,整個國家需要的不是「個人利益的算計」,而是一種「無私奉獻精神的良性循環」,只有透過這種良性循環,才能讓國家或全人類都能真正獲得 進步的動力啊!

87 |

如果、這個世界只有「氣宗」或者只有「劍宗」的話,應該不會如此多采多姿吧!

88 |

參考文獻

89 | 98 |

【本文由陳鍾誠取材並修改自 維基百科 與 OpenStax College 的 College Physics 一書,採用創作共用的 姓名標示、相同方式分享 授權】

99 |
100 | 103 | 104 | 105 | --------------------------------------------------------------------------------