線性代數是圍繞解線性方程而發展起來的壹門科學。它的基本概念包括向量、行列式、矩陣、線性變換、特征值和線性空間等。解析幾何是線性方程組的幾何背景。隨著線性代數的發展,人們發現利用它的基本概念,許多學科和數學的許多分支中的問題都具有幾何意義,或者說幾何意義更加豐富和突出,許多深入復雜的課題都可以用簡潔的形式表達出來;另外,借助符號的可比性,往往能啟發人們找到有效的解決方案,也就是算法。歷史上,人們研究過這樣壹個問題:如果只用尺子代替圓規,可以解決哪些作圖問題?今天在這裏,我也設想壹個問題:如果不允許使用線性代數的概念和理論,會有多少學科變得支離破碎,達不到今天的深度。所以我們說線性代數是必修課,是基礎課,不僅是理工科專業,大學裏幾乎所有的專業都是如此。
線性代數由理論和計算組成。
20世紀50年代,我國在理工科專業開設線性代數課程時,主要介紹的是理論部分。當時,人們已經意識到線性代數有著廣泛的應用,但教材往往僅限於二次型的應用。這是因為在當時,計算機和相關程序的工作與中國的實際情況相差甚遠。雖然已經公認計算機可以快速高效地解決線性代數中的各種數值問題,但在教材中只能隱約指出這個方向。
改革開放以來,雖然我們提倡直接使用國外教材(即采用國外教學大綱),重視計算機的應用,提倡使用科學計算軟件開設數學實驗課程,為壹些科學計算軟件開設教師培訓課程等。,除了使用國外教材,課程遠沒有變化,線性代數課程仍然是壹塊“安靜的沃土”。
現在的科學計算軟件已經發展到了使用非常方便,功能極其強大的地步。壹旦用起來,會很神奇。科學計算軟件已經成為科學工作者的先進計算器。實驗室和編程的良好環境,再加上中國經濟的快速發展和計算機的廣泛普及,大學各個專業的所有學生學習使用這些軟件應該是迫在眉睫的。
本書介紹了大量的實際應用課題,將科學計算軟件與線性代數緊密結合,充分利用軟件的可視化功能生成的圖形和動畫,補充了現行教材的不足。它明顯接受了美國ATLAST計劃所產生的先進成果的影響,是壹部有特色的配套教材。因此,它的出版無疑是非常及時的。值得指出的是,與美國的做法相比,我國原版教材的內容和教學水平應該說落後了十幾年。
正在學習或已經學習過線性代數的人(大學生、研究生、各方面的工程技術人員)壹定能夠從學習本書中加深對線性代數知識和軟件MATLAB及其關系重要性的理解,從大量的實際問題中拓寬思路。本書每章末尾都有足夠的習題,讀者可以從在計算機上做實驗中培養技能和樂趣,提高學習線性代數的積極性。此外,本書還可以作為使用MATLAB軟件解決線性代數相關問題的人的計算機參考手冊。
我贊同線性代數的理論和實踐應該由同壹個老師來教,我相信教線性代數的老師們會對這本書的各個方面產生極大的興趣,比如發人深省的學術觀點,有趣的史料,許多有用的應用問題,以及附錄中介紹的美國學者的敬業精神,集體主義和工作經驗。
使用這本書可能有兩個困難:
首先,如何在增加的幾個課時中組織這項實驗任務。根據本書參考文獻[1],在美國實施這門課程需要35個小時(他們也抱怨時間不夠),可見理論與實踐相結合可能會事半功倍,當然也有壹個摸索的過程。
第二,壹些教師可能會發現很難使用MATLAB軟件進行教學。
在我20多年的教學生涯中,我上過幾次課,甚至還參加過班裏的考試,比如Pascal和c,雖然很多時候我也希望自己能寫壹些程序,但是事情就是這麽難。幾輪失利後,我忙於工作,放棄了,然後對困難的恐懼無法消除。近年來,為科研工作所迫,我已經硬著頭皮忍受了!摸索了三個月,就可以開始給我編程了。
科學計算軟件與數學有著密切的關系。也有人這麽說。殊不知,很多時候,編譯出來的程序之所以失敗,錯誤就在那些小小的差異裏。
畢竟要進入壹個全新的學科,當然要好好學習;既然是科學,當然可以學,而且已經有那麽多人學了。
今天的科學計算軟件和算法語言已經大不相同了。打個不恰當的比方:改革開放初期,有壹本很流行的英語教材叫《英語會話900句》。分為幾個部分,包括各種場合常用的句子,比如問路、學習、購物、開會。現在流行的科學計算軟件也是這樣的模式,都有自己的“900句”。它由幾個函數庫組成,為每個任務提供各種函數和命令。當妳拿起壹個軟件的時候,首先根據課本上的例子,邊閱讀邊在電腦上嘗試壹些基本的句子,從而對軟件的功能有壹個初步的了解。學習線性代數的時候,不需要完全熟悉其他分支的說法。隨著學習的進度,壹次學四五句,就能讓電腦開始為妳服務了。當妳掌握了幾個句子,找到了壹些規律,學習不僅更容易,而且延伸到其他問題往往也能沿著同樣的思路解決。當妳找不到現成的句子來解決問題時,就需要把幾個基本的句子組合起來完成。為了我們以後的教學工作和自己的科研工作,花點時間逐步掌握壹兩個科學計算軟件,讓他們成為終身的學術助手和夥伴,是值得的。我也是壹名數學老師,即使在“熬夜”的日子裏,我也從中獲得了很多樂趣。現在,在寫書、算題、科研等工作過程中,面對屏幕上顯示的結果,我不時對自己驚呼:“太棒了!”我深深感謝科學計算軟件的幫助。
本書的作者陳教授是計算機科學、機械、電子和控制方面的專家。具有豐富的教學實踐經驗和教學管理經驗,對21世紀我國高校如何培養工科學生有許多寶貴意見。筆者非常關註國內外工程線性代數的教學情況。龔傑民教授是壹位軟件專家。二十年前他出版了壹本關於C語言的教材。他們不僅自己編寫了教材,還提出了自己對具體改革的看法。據說西安電子科技大學領導已經決定設立教改項目,陳教授將親自負責使用這本書的手稿。先組織本校全體線性代數教師進行培訓研討,再用這本教材對部分大學壹年級學生進行點對點的教學,系統地進行實驗。這真是壹件了不起的事情。
祝這部作品成功!
秦雨軒
2005年中秋節在武漢科技大學
序
線性代數的重要性現在比以往任何時候都更加令人印象深刻。20世紀下半葉,線性代數的應用繼續擴展到越來越多的新領域。它在數學課程中的作用已經上升到可以與微積分相媲美。線性代數的這種發展首先是由於人們所研究的問題的規模和復雜性不斷增加,涉及數百個變量。目前,只有將變量之間的關系簡化為線性,才有可能解決如此復雜的問題。因此,大規模線性代數問題已經成為流行的數學工具。除了上述的“需求牽引”,線性代數發展的另壹個動力是“技術推動”,即計算機技術的推動。幾十年來計算機硬件和軟件的飛速發展為線性代數的研究和教學提供了前所未有的空間和機遇。計算機技術的新發展給線性代數教學帶來了許多新的特點和方法。
計算機如何促進線性代數的應用
線性代數是壹門應用性很強的數學學科,但理論上高度抽象。壹方面,中學生學過二元線性代數方程組的解法,代換法和消元法大概會被大家記住壹輩子。這是最簡單的線性代數。當方程的階數提高到三倍以上時,不僅需要高級的抽象思維能力,還需要非常復雜的計算步驟來解題。對於數學家來說,他們重視前者,這無可厚非;但對於大多數工科學生來說,他們更需要的是能夠應用其理論,指導實際計算。實際上,線性代數單調、機械、枯燥的運算,只是因為計算機的出現,才被賦予了應用上的活力。
舉個典型的例子,瓦西裏·列昂季耶夫教授用包含500個變量的500個線性方程描述了美國經濟。1949年夏天,由於當時大學計算機(馬克2號)的限制,列昂惕夫將系統簡化為42個42變量的線性方程組,用穿孔卡片編程輸入程序和數據,耗時數月。最後,計算機運行了56個小時才找到解決辦法。列昂惕夫在1973年成為諾貝爾經濟學獎得主時,“首次用計算機實際解決大規模數學模型”被列為獲獎理由之壹。他的成果和獲獎成為各國科學界用線性代數建立工程和經濟模型的巨大動力,推動了這門科學的迅速發展。可見,沒有計算機,線性代數在工程中幾乎無法使用。這也體現在美國大學的工程教育中,表現為對這門課程越來越重視;當然課堂上強調線性代數的理論,但同時也給學生增加了大作業或課程設計等實踐環節。大學裏的大型計算機也很大程度上支持這門課的練習,使用的軟件主要是FORTRAN或COBOL語言。線性代數的教學離不開計算機,這是美國工程教育的知識。
20世紀80年代,個人電腦出現並迅速普及。新的硬件也導致了新的軟件,壹種新穎的科學計算語言,也被稱為數學軟件,已經出現。由於其高效性、可視化和推理能力,在大學教育和科學研究中迅速取代了FORTRAN和BASIC語言。有壹些商業化的軟件如MATLAB,MATHEMATICA,MATHCAD,MAPLE等。它們的功能相似,但各有千秋。目前美國大學最流行的語言是MATLAB。
MATLAB是“矩陣實驗室”的縮寫。它是壹種基於矩陣運算的交互式編程語言。當然特別適用於線性代數,能更廣泛地滿足科學和工程計算繪圖的需要。與其他計算機語言相比,MATLAB具有簡潔、智能的特點,適應了科技專業人員的思維模式和寫作習慣,大大提高了編程和調試的效率。它以解釋的方式工作,在程序中輸入就能立刻得到結果。具有良好的人機交互性能,易於調試,為科技人員所接受。特別是可以適應多種平臺,並且可以隨著計算機軟硬件的更新及時升級。因此,在國外大學工科院校,尤其是數值計算使用最頻繁的電子信息學科,MATLAB語言已經成為每個學生必須掌握的工具。大大提高了課程教學、解題作業和分析研究的效率。學習和掌握MATLAB不僅可以幫助我們直接學習線性代數,還可以在科學計算工具上與國際接軌。
國內外線性代數教學的差距
從美國線性代數教學中使用計算機的歷史可以看出,個人計算機和科學計算軟件的普及迅速促進了這門課程教學方法的改進,使得計算機的使用不僅限於大型作業,還可以用於日常課程教學。1990年,美國成立了線性代數課程研究小組——LACSG,隨後在美國國家科學基金會(NSF)的支持下組織召開了數學和工程專家會議,提出了線性代數課程改革的五點建議,簡稱LACSG建議(見參考文獻[3])。要點如下:(。(2)基於矩陣運算;(3)從學生的水平和需要出發;(4)采用最新軟件工具;(5)對於想獲得數學學位的學生,應該開設其他課程來提高他們的抽象能力。在1992中,美國國家科學基金會(NSF)資助了壹個ATLAST計劃,這是通過使用軟件工具來增強線性代數教學的縮寫。該計劃在1992至1997的六個夏天裏組織了18次教師研討會。* * *各高校教師425人。參與者接受了使用MATLAB軟件包的培訓。詳見附錄B。
在MATLAB的使用上,從他們教材的發展來看,前幾年從65438到0995,主要體現在MATLAB習題的使用和MATLAB的介紹上,見參考文獻[7]到[9]。近十年來,MATLAB融入線性代數的各個章節,主要是提供壹些理論的計算機演示和驗證,體現在參考文獻[1]~[5]中。當然,線性代數的整個理論體系並不是用計算機改變的。
在我國,理工科本科教學中線性代數課程的加強始於改革開放後,是學習國外先進經驗的結晶。那時候,大學裏沒有電腦。雖然壹些大型計算機是用世界銀行貸款買的,但線性代數這門課是沒用的。因為課程內容不改革,電腦不會用,現在的情況足以證明。如果說以前是出於無奈,那麽在個人電腦已經如此普及的情況下,不使用電腦就是沾沾自喜了。所以線性代數課上不講計算機,教線性代數的老師幾乎不會用計算機,這已經成為我國線性代數教育圈與發達國家的明顯差距。導致中國的線性代數課程不盡如人意——理論抽象越來越深,應用和實際計算很少結合。對學生來說成了壹門抽象、繁瑣、枯燥的課程。
由於缺乏感性、實踐基礎和應用推廣,後續課程往往因怕枯燥而回避矩陣方程。當然,所教的學生理論上害怕矩陣,實踐中不會用矩陣來計算問題。可以做壹個測試:學生上完線性代數課後,讓他們解壹個二次代數方程,看他們用什麽工具解。需要多長時間?做對的比例是多少?按照現在的教材和教學方法,絕大多數學生用的都是中學時學過的方法:用計算器把乘法和加法壹個壹個算出來,沒有人會用線性代數去解。並且計算的效率和精度極低。要知道,很多後續課程都需要用到線性代數,比這種四次壹次方程復雜多了。如何在大學工科後續課程中使用線性代數?怎樣才能打好工科教育的數學基礎?
如果在課程中加入4 ~ 6個小時的實踐內容,情況就完全不同了。像上面的試題,計算機壹分鐘就能解決問題,正確率100%。對於復雜問題,提高效率更明顯。實踐不僅方便計算,還能加深對理論和概念的理解,節省大量時間。本來線性代數的理論和實踐應該是融合在壹起實施的,因為這門課的特點應該是理論和實踐相結合。但是,在我國實現這壹任務似乎還相當艱巨。首先,我們必須從上到下達成共識,然後我們必須修改教學計劃,然後我們必須編寫新的教材,培養大量合格的教師。
這本書的內容安排
在中國,每年大約有654.38+0萬大學生在學習線性代數,教授這門課程的老師應該有幾萬人。推動“用計算機提高線性代數教學水平”的事業,已經不是壹年兩年的事情了。美國用了六年!目前我們的線性代數教學水平已經落後美國十幾年了,應該迎頭趕上。我的建議是分兩步走。
第壹步,單獨開設“線性代數實用課程”,與線性代數同步實施。它的好處是暫時不會影響到原有教師的備課和教材,讓少量的實習帶隊老師集中精力給更多的學生講課,培訓現有的老師;同時,這些教師還承擔實踐課程的輔導任務,有利於提高他們的計算機使用水平,為今後全面承擔這門課程創造條件。第二步,實踐課程與理論課程相結合。除了老師,最重要的是編壹本理論與實踐緊密結合的好教材。
在我們的方案中,實踐課的計劃是壹個學分,按照16學時計算。考慮到我國線性代數的課程大多在大學壹年級,大壹新生之前可能沒有學過MATLAB,把線性代數作為學習MATLAB的起點大有裨益,所以把線性代數與MATLAB入門綜合的練習作為壹門課程來實施更為合適。講座初步安排約10 ~ 12學時,其中介紹MATLAB語言約4學時,講解線性代數實用原理和程序約6~8學時。計算機時間預計為10 ~ 12小時。我們就是按照這樣的思路編寫了這本教材。這本書雖然有壹些實用的部分,但是從實際應用的角度整體分析總結了線性代數的概念,與工程實踐有很多聯系。其範圍超出了普通的數學實驗,故命名為“線性代數練習”。
這本教材中MATLAB的入門部分基本上是兩本書[4]和[5]中的語言文章。線性代數的練習,主要用第2章和第4.2章;雖然本書篇幅稍長,但可以保持MATLAB基本函數的完整性,使本書具有MATLAB的手動功能,也方便本書作者使用壹套四小時的講座光盤,讓老師不用花時間為MATLAB備課。實驗課最好安排在線性代數開學壹個月後,這樣銜接更好。這個課程可以促進學生電腦使用的正規化,所以最好不要速戰速決,要開八周以上。
線性代數部分參考了2000年以後新出版的國外教材(見參考文獻[1]~[4])和2003年出版的ATLAST手冊(見參考文獻[7]),其中還使用了作者在很多書中用矩陣建模解題的例子(見參考文獻[10] ~ [為了盡可能加強與線性代數理論部分的聯系, 並且幫助學生不僅避免了繁瑣死板的四則運算,還能真正理解線性代數中的推理思想,我們設計了壹些簡單的MATLAB子程序來完成高斯消去、行梯化簡、行交換等任務。 為了加強線性代數的幾何圖像教學,我們設計了壹些函數來快速、簡便地繪制直線和平面圖形。此外,還采用了ATLAST手冊提供的壹些矩陣生成子程序和演示程序。
因為國內各大學差別很大,比如不同專業,不同學期(大壹大二),學生基礎不壹樣,所以書上的例子得廣壹些,盡量避開微積分。例題不需要講全,有些可以留給學生在後續課程中自學,書中的小字部分也可以在開頭跳過。我們相信工科學生可以用計算機和MATLAB來解線性代數方程組,所以這個實踐課程的主要目標基本可以達到。
陳負責本書的整體策劃和編寫,龔傑民負責外文教材的翻譯和部分練習的選取。因為我們沒有見過類似書名的書和教材,所以很難找到壹個寫書時可以直接參考的體系。這個新生事物缺乏實踐經驗,急需趕上2005年的壹些大壹新生進行試點。我們的思想和做法肯定有許多不足之處,歡迎批評指正。希望各路專家和讀者通過自己的教學實踐給我們提出改進的建議。我們的電子郵件地址是謝謝妳。
本書有幸得到武漢科技大學秦教授的點評。作為壹個在歐美七國14學校講學並有多部專著的中國數學界前輩,他不僅學識淵博,而且有著認真的學術態度和不斷接受新事物的進取精神,給了我們很大的鼓舞。80多歲的他還在刻苦鉆研科學計算軟件(Mathematica和MATLAB),並將其應用到自己的著作《運籌學簡明教程》中,實在令人欽佩。相反,我們看到壹些只有四五十歲的中年教師已經放棄了學習計算機。在此,我們特別希望線性代數的老師們能夠以秦教授為榜樣,用科學的計算語言武裝自己,盡快用計算機武裝我們的線性代數課程,開創壹個全新的教學局面。
作者
西安電子科技大學,2005年8月28日