譽誠編程手冊
❶ 我想學習編程,要從哪開始學起
學習編程可以從c語言開始學,方法如下。
零基礎自學編程入門指南:
一:確定一個方向,編程語言太多了:java、C++、python、PHP、C等,需要確定方向,從基礎學起,建議零基礎學編程的小夥伴從C語言開始學起,C語言入門比較簡單,會提升自信心。
二:自學編程入門一定要階段性的看到成果,這個「成果」並不是在「黑匣子」裡面實現,要在用戶展現界面呈現,很容易提升信心。
其次,多學多練,計算機編程只有多打代碼,才能從中找到規律。期初的時候可以不明白只要跟著老師一起打代碼一起多練習,慢慢就會由記住理解,如果是想從事編程的同學,可以把寫過的代碼存到自己的文本文檔里,這也就能知道我們的代碼量,為以後找工作做准備。
學編程入門很關鍵,如果你找到一個好方法入門學習很輕松,如果方法錯了,很容易半途而廢,C語言編程學會後,完全可以在學習python、java等新的編程語言也無所謂,它們有很多相通之處,可以相互借鑒,互相拿來應用。
❷ 請問一下游戲編程入門看什麼書好
我經常被問及:一個具有很少甚至沒有編程經驗的人要如何開始游戲製作。直到目前為止,我總是盡我所能一個一個解答。然而,問題的數量已經增長到了一個難以處理的水平,於是,我便決定把所有的建議匯總在一篇文章里作為參考提供給人們。
這篇文章主要面向那些想開發自己的游戲,但僅有一點點或沒有半點編程經驗的人們。實際上,我也假定讀者根本沒有任何的編程知識。我將把重點放在游戲開發的編程和設計方面,而不是藝術方面。我也不準備對游戲行業進行論述(因為這個話題的資料太多了),但是,我會帶你瀏覽一下在製作游戲之前需要做的一些事情。該說明的一點是,不要將我這里所介紹的方法當作唯一的或最好的學習游戲製作的路徑,但對於我和其他人來說,它是有效的。
1、選擇一門語言
第一件要做的事就是選擇一門語言。你有一大堆的選擇,包括 Basic、Pascal、C、C++、Java 等等,同樣也有一大堆關於哪門語言最適合初學者的爭論。欲了解各種語言的優缺點,請參閱 John Hattan 的絕妙文章《我該使用什麼語言》。
我這里建議使用 C 和 C++。有些人認為這些語言對於初學者來說太難了,但從我個人角度來說我是反對這個觀點的,因為我自己就是從 C++ 起步的。另外,C/C++ 是目前最廣泛應用的語言,因此,你能找到大量的資料和幫助。至於先學 C 還是先學 C++ 的問題不大,因為一旦你學習了其中一種,再學習另外一種就沒太大問題了。不過,如果你一開始就選擇 C++,請確信在學習面向對象編程之前,你已經了解並掌握了面向過程編程。(比如說,如果你在不使用類的前提下仍無法編好程序,先不要急於學習類)
如果你發現學習 C/C++ 是一件很困難的事,不要緊,回過頭選一門比較簡單的語言來學,比如 Basic 或 Pascal。不過我認為,如果你堅持下去,並找一些好的資料,學習 C/C++ 的問題不大。
你的下一個問題是:我如何學習 C/C++?我很高興你問這個問題。最好的方法是去聽課。有沒有老師幫助解答問題,對於你的發展影響巨大,而且編程作業將確保你確實掌握了所學的東西。
如果聽課不在你的考慮范圍內,下一個最好的辦法就是找一些好書。不要把注意力放在那些「大全」書上,因為你終究會買幾本。我建議你去一個本地書店,花點時間瀏覽一下介紹 C 和 C++ 的書,直到找到你能理解並能從中學到東西的一本。同時,你可能還想買幾本進階書或是一本參考書,但一旦你具有了這門語言的部分知識,你會對你需要什麼有更好主意。可以在網站BOOKS頻道中找到一些建議。
在此,我簡要的說明一下我見過的很多入門程序員,尤其是年輕人關心的事情:沒有錢買書或其他東西。首先,有許多資源是免費的,包括圖書館和 Macmillan Computer Publishing (他們的網站www.mcp.com 上有數百本編程的書)。其次,如果你想成為一名優秀的程序員,你不得不考慮在這上面的投資。利用各種手段(合法的 ;<)去弄點鈔票來。
網路上有大量的 C 和 C++ 的學習教程,但是我認為這些教程作為你學習書本的參考要比作為單獨的材料好得多。
2、選擇合適的編譯器
你寫的程序,或源碼是以文本文件存儲的,你甚至可以用記事本來寫 C/C++ 程序。但是,必須有樣東西能把這些源碼轉化成一個可執行文件。對於 C 和 C++ 來說,這樣東西就是一個編譯器。
現在有大量的編譯器存在,其中有許多是免費的。選擇一個合適的編譯器是非常重要的,而免費編譯器有個好處就是你能一個一個的試,看哪個你最喜歡。但是,免費編譯器經常是比商業編譯器功能少或缺少良好的技術支持。幸運的是,大多數商業編譯器都有與完整版功能相同,但價格便宜許多的介紹版或學習版,唯一的限制是,你不能發布使用該編譯器開發的程序(這點你肯定維持不久)。
基本上,你選擇什麼樣的編譯器取決於你能花多少錢、你將在什麼操作系統和平台上開發程序。如果你准備為 Windows 作貢獻,我強烈建議使用微軟的 Visual C++。它具有一個功能強大的開發環境,能讓你倍感輕松,再也沒有其他編譯器能比它更適合開發 Windows 軟體了。如果你是名學生,你可以以極低的價格獲得一份拷貝。如果你准備在 DOS 下開發程序,你最好使用免費的 DJGPP。
3、選擇一個目標平台
雖然你可能最終會為各種平台開發程序,你還是應該選擇其中之一進行學習。當你學習語言的時候,在沒進入圖象編程之前,你大概想使用一個非 GUI 的操作系統,比如 DOS 或 UNIX。這有助於你將注意力集中在語言學習上,從而避開一些高層的問題,如 Windows 編程。
不過,一旦你准備開始製作游戲,你就該考慮轉換你的
目標平台了。一下是幾個常用的平台:
Windows:如果你想在游戲行業里專職工作,或者你想讓一大群人玩你的游戲,那麼 Windows 是你的首選。你的目標客戶大多數使用 Windows,且這個情況不會很快改變。目前大量的 Windows 游戲使用一種你大概聽說過的名為 DirectX 的技術。DirectX 是一個允許你直接操作硬體的程序庫,你可以依靠它寫出高性能的游戲來。
DOS:DOS 曾經是游戲的主要平台,但這已是昨日黃花。雖然有些愛好者仍然在為 DOS 開發游戲,但是已經沒有商業游戲是為 DOS 開發的了,而且, DOS 正由於微軟停止對它的支持而走向衰敗。如果你剛開始做游戲,別選擇 DOS,如果你已經這樣做了,不要再停留了。注意:因為有很多游戲編程的書是為 DOS 寫的,學習這些書時可能會認為在 DOS 里開發游戲有理有據。但是,隨著 Windows 游戲編程書籍數量的增長,這種爭論變得越來越少,也越來越沒有意義。
Linux:Linux 是 UNIX 的一個變種,由於它具有穩定、便宜、反微軟情節等多個因素,它正變得越來越受歡迎。雖然目前的 Linux 用戶還比較少,但是隨著它的熱愛者和市場的潛在增長,它也成為了作為目標平台的可行選擇。
Macintosh:蘋果機擁有一群數量不多但非常忠誠的追隨者,幾乎每個我見過的蘋果機愛好者都有一個強烈渴望更多蘋果機游戲的願望。我沒有看過多少在蘋果機上開發游戲的資料,但我確信確實有,因此,這也是個合理的選擇。
家庭游戲機:游戲機(如 Playstation、N64、Dreamcast 等等)游戲市場非常巨大,前景可觀。然而,由於種種原因,開發非商業性的游戲機游戲在目前來說是不太可能的。你為游戲機開發的游戲大多都會被商業游戲公司買走。
4、充足電
是討論真正做游戲的時候了。雖然我所說的大部分內容適用於其他語言,為簡單起見,我將假定你選擇了 C/C++ 來進行 Windows 編程。
首先,在你考慮如何開始做游戲之前,你應該能很好的掌握 C 和 C++。你應該了解並精通指針、陣列、結構、函數,以及類等。做到了這一點,你就可以開始製作游戲了。
本文無法教授你關於製作游戲所該了解的一切。幸運的是,這也不是必要的。有很多關於這方面的書,網上也有數以百計的教程。GameDev.net 應該會有目前你所需要的一切。下面是我對你起步的一些建議:
學習一本或幾本書。對於 Windows 游戲的初學程序員,《Tricks of the Windows Game Programming Gurus 》是一本極好的Windows編程入門教程。在這個站點里擁有許多本站 Books section 里所列出的好書。閱讀這些書籍,運行所有的常式,反復研讀你不理解的章節。
使用網上教程補充書本的不足。網上教程除了闡明一些你閱讀的東西外,通常也會包含一些書本上沒有涉及的主題。
找專家進行咨詢。如果你無法從書上或教程中找到答案,到本站的留言版或聊天室來,這里有許多樂於提供幫助的人。
不要把上面幾點當成是個有序的過程,而應當看作是一個循環往復的並行過程。
僅僅是學習、思考是遠遠不夠的,你應當把你所學的東西付諸實踐。從一個簡單的游戲開始,逐步發展。你可以閱讀一下 Geoff Howland 的文章《How do I Make Games? A Path to Game Development》。
首先,為自己的工作制定一個計劃。不要急於加入一個團隊,因為那隻會減緩你的學習進程。當你囊中擁有數個游戲時,你將為一個團隊作出更大貢獻。
關於書本,有件事我要提醒一下:你需要閱讀除了游戲編程外的其他書籍。為了製作出你在商店貨價里看到的各種游戲,你將不得不鑽研那些比大多數游戲編程書籍所授內容更高深的話題。有些可能你能從教程中找到,但是,你還是有必要買幾本關於圖形、人工智慧、網路、物理等等方面的書。這是獲得計算機科學學位的必經之路,因為你將被要求學習一些你認為與游戲編程無關的課程,而實際上它們是相關的。
5、總結
這里有一些能產生巨大差別的技巧:
要只知道聚集知識,應用是關鍵。除非你使用了,否則你無法確實知道和理解這些東西。做一些小的測試程序來應用你所學的東西,並切實完成書上每個章節後的習題。
玩大量的游戲。你會因此找到靈感,從而幫助你製作更優秀的游戲。當然,這也是一種受歡迎的解除編程壓力的調劑方式。
幫助別人。在你幫助別人的過程中,你會學到更多東西。
完成你的作品。不要陷入這樣一種思想的圈套中:「我知道我可以完成這個游戲,但是我有個更好的主意,我要換做這個好的項目。」如果你能堅持有始有終,你會學到更多的東西,並且你有作品證明你不僅僅是空談。在你具有豐富的經驗之前,做得簡單一點,不要嘗試製作一個又大又復雜的游戲。
出發吧!你該動手製作 Quake 4 了。當然,可能不那麼容易,但至少你可以從這個方向出發,並且知道去哪裡查找更多的信息。經過多年的努力工作,你會成功的!
❸ 三菱PLC FX1s-20MR-001 使用手冊
JY997D67201AFX3U-2HC用戶手冊手冊編號副編號製作日期JY997D67201A2016年3月此次承蒙購買三菱微型可編程式控制制器用FX3U-2HC型高速計數器模塊產品,誠表謝意。本手冊就本產品的各部位名稱、外形尺寸、安裝、接線及規格進行了說明。
關於本產品的使用和操作等,請在使用前閱讀本手冊及相關產品手冊,在完全掌握設備知識和安全信息、注意事項後再使用。此外,請妥善保管好產品中附帶的手冊,以便需要時可以取閱,並請務必將其交給最終用戶的手中。
關於商標:本手冊中所記載的公司名稱、產品名稱為各自公司的注冊商標或者商標。該印刷品發行於2016年3月。在未告之的情況下產品的規格可能有所變更,請預先了解。
安全方面注意事項(使用之前請務必閱讀。)在本使用說明書中,安全注意事項的等級用、進行區分。錯誤使用時,有可能會引起危險,導致死亡或是重傷事故的發生。
(3)譽誠編程手冊擴展閱讀:
三菱PLC檢修工藝及技術要求:
1、測量電壓時,要用數字電壓表或精度為1%的萬能表測量
2、電源機架,CPU主板都只能在主電源切斷時取下;
3、在RAM模塊從CPU取下或插入CPU之前,要斷開PC的電源,這樣才能保證數據不混亂;
4、在取下RAM模塊之前,檢查一下模塊電池是否正常工作,如果電池故障燈亮時取下模塊PAM內容將丟失;
5、輸入/輸出板取下前也應先關掉總電源,但如果生產需要時I/0板也可在可編程式控制制器運行時取下,但CPU板上的QVZ(超時)燈亮。
❹ 假期歸來,有哪些編程書上了新書榜
新年小長假結束了,估計小夥伴們都已經加到工作崗位啦,小編今天看了一眼計算機新書排行榜,一上周有這樣幾本書上榜。現在就給大家來展示下。
1、機器學習的數學
典型的方法論書籍只關注工具和技術,面向對象社區期望有一本書能夠突破這一局限,而這本開創性的著作正好滿足了這一需求。在本書中,作者關注的是面向對象分析和設計的最終結果,也就是模型本身。作者在本書中分享了豐富的對象建模經驗,以及識別重復問題並將其轉化為可復用的模型的敏銳洞察力,並給出了一系列來自不同領域(包括交易、測量、會計和組織關系等)的模式。
概念模式無法孤立地存在,基於這一認識,作者還給出了一系列“支持模式”。這些模式探討了如何將概念模型轉化為軟體,並使其適合於大型信息系統的架構。對每種模式的講解都包含了其背後的設計思路、應該(或不應該)使用這些模式的時機以及實現中的訣竅。本書中展示的例子構成了一本實用手冊,既包含有用的模型,又涵蓋對復用技能的深刻洞見,這些都有助於改進分析、建模和實現。
大家了解過哪些呢?歡迎評論留言~
(本文圖片與內容均來自於網路僅供參考,如涉及版權請留言,作者自行刪帖。)大家看後什麼想法,歡迎吐槽留言。喜歡記得關注喲!小編會一如既往的給您共享各類文章,觀看辛苦了,祝您閱覽開心,每天有個好心境,健康日子每一天。
❺ 學PLC編程,該怎麼入門
電工原理和電機原理一定要懂,簡單的就記背也要背下來,比如馬達容量1KW2A,正反轉,星三角接線,電線容量。電阻,電感,電容的特性等液壓和氣動也要掌握,比如壓力換算,壓力和電流的比例換算,這在有壓力控制上都要用到。
電線截面要會看,線拿到手就知道幾平方的,還有什麼電器上該用什麼線,比如馬達就用4線的,3根主線1根接地。從變頻器上出來的要用屏蔽線。
機修也要會做,特別是螺絲,一看就知道用幾的內角扳手或外六角扳手。
PLC編程自己可以模擬編,簡單的如紅綠燈,控制小車走等。
平常要多干,就是在苦再累也要,這樣技術才能學到手能解決實際問題。
學習PLC 秘訣
1. 不要看到別人的回復第一句話就說,給個代碼吧!你應該想想為什麼。當你自己想出來再參考別人的提示,你就知道自己和別人思路的差異。
2. 別小家子氣,買本書幾十塊都捨不得,你還學個P 。為了省錢看電子書,浪費的時間絕對超過書的價值。當然如果查資料,只能看PDF 。
3. 學習新的開發軟體時,一定要看幫助手冊。買的書不夠全面。剛接觸一個軟體,什麼都不懂,就盲目的問東問西,讓人看起來很幼稚。
4. 不要蜻蜓點水,得過且過,細微之處往往體現實力。
5. 把時髦的技術掛在嘴邊,還不如把過時的技術記在心裡。
6. 看得懂的書,請仔細看;看不懂的書,請硬著頭皮看。別指望看第一遍書就能記住和掌握什麼,請看第二遍、第三遍。
7. 多實踐,調試,去寫去調,只用軟體模擬,是永遠成不了高手的。
8. 保存好你做過的所有的源程序,原理圖等那是你最好的積累之一。
9. 對於網路,還是希望大家能多利用一下,很多問題不是非要到論壇來問的,首先你要學會自己找答案,比如google 、網路都是很好的搜索引擎,你只要輸入關鍵字就 能找到很多相關資料。
❻ 誠請計算機高手幫忙!!!!!!!!!!!!
1.1 計算機代數系統的發展歷史
什麼是計算機代數系統? 從歷史的角度來看\COMPUTE」 的涵義是\數值的計算". 數值
計算的涵義不僅僅是數的算術計算, 還包括其它復雜的計算, 例如: 數學函數的計算、求多項式
的根、矩陣的計算、矩陣特徵值的計算等等. 數值計算的一個本質的特徵是它不能保證絕對的
准確, 原因在於, 在數值計算的過程中我們是用浮點數進行計算的, 對於簡單的問題, 我們可以
用紙和筆手工計算, 對於復雜的問題, 就需要用計算器或計算機進行計算. 然而, 對計算機來說,
要想絕對精確的表達一個浮點數幾乎是不可能的, 在計算的過程中必然會產生誤差.
數學的計算除了數值計算以外還有另一個重要的分枝, 我們稱之為符號計算或代數計算. 簡
單的講, 就是對代表數學對象的符號進行計算. 這些符號可以代表整數、有理數、實數、復數或
代數數, 也可以代表其它的數學對象如多項式、有理函數、矩陣、方程組, 或者其它抽象的數學
對象如群、環、域等等. 對於這些抽象的數學符號, 我們通常是手工計算的, 這也是數學家傳統
的工作方式. 然而隨著計算機技術的發展, 以及對符號演算法的深入研究, 用計算機代替人工進行
符號計算已經成為可能.
從二十世紀六十年代以來, 符號計算這個研究領域獲得了極大的發展. 一系列符號計算算
法的提出為現代計算機代數系統奠定了理論基礎. 比較著名的演算法包括: 計算多項式理想的
Grobner 基演算法、多項式分解的Berlekamp 演算法、計算有理函數積分的Risch 演算法.
在二十世紀六十年代, 比較流行的計算機程序語言是FORTRAN 和ALGOL. 這兩種語言
主要是用來作數值計算的, 至今FORTRAN 依然是數值計算領域的標准語言之一. 然而FORTRAN 語言和ALGOL 語言並不適合於編寫符號計算軟體. 六十年代初出現的LISP 語言為符
號計算軟體提供了合適的語言環境, 因此早期的符號計算軟體都是用LISP 語言編寫的. 其中最
著名的符號計算系統是REDUCE, REDUCE 系統是由Stanford 大學的Tony Hearn 開發的基
於LISP 語言的互動式符號計算系統, 最初的目的是用來進行物理計算. 到了二十世紀七十年代
初, 由麻省理工學院的Joel Moses, Willian Martin 等人開發的MACSYMA 系統誕生了, 它是那
個時代功能最強大的符號計算系統. 它的功能除了標準的代數計算以外, 還包括極限的計算、符
號積分、解方程等. 事實上, 許多符號計算的標准演算法都是由麻省理工學院的研究小組提出的.
由G. Collins 和R. Loos 開發的SAC/ALDES 系統是另外一種類型的符號計算系統, 它的
前身是G. Collins 在IBM 編寫的PM 系統(它是一個處理多項式的符號計算系統). SAC 是一
個非交互的系統, 它是由ALDES(ALgebraic DEScription) 語言編寫的模塊組成的, 並且帶有一
個轉換程序, 可以把結果轉換成FORTRAN 語言. 到了1990 年, H. Hong 用C 語言重寫了SAC
系統, 形成了新的SACLIB 系統. 這個系統提供了完整的C 語言源代碼, 可以自由的從國際互
聯網上下載.
在二十世紀七十年代的第四個通用的符號計算系統是muMATH. 它是由Hawaii 大學的
David Stoutemyer 和Albert Rich 開發的第一個可以在IBM 的PC 機上運行的計算機代數系統.
1
2 第一章Maple 系統簡介
它所使用的開發語言是LISP 語言的一個子集稱為muSIMP.
進入二十世紀八十年代, 隨著個人PC 機的普及, 計算機代數系統也獲得了飛速的發展. 在
這個時代推出的計算機代數系統大部分是用C 語言編寫的, 比較著名的系統包括Maple, Mathematica, DERIVE 等. 有關Maple 的特點我們將在後面介紹, 這里, 我們簡單介紹一下DERIVE
和Mathematica.
DERIVE 是muMATH 的後繼版本, 它是第一個在PC 機上運行的符號計算系統.DERIVE
具有友好的菜單驅動界面和圖形介面, 可以很方便的顯示二維和三維圖形. 它唯一的缺陷是沒
有編程功能, 直到1994 年DERIVE 的第三版問世時, 才提供了有限的編程功能. 現在DERIVE
的大部分功能都被移植到由HP 公司和Texas 公司生產的圖形計算器上.
Mathematica 是由Stephen Wolfram 開發的符號計算軟體,Mathematica 系統的計算能力非
常強, 它的函數很多, 而且用戶自己可以編程. 它的最大優點是, 在帶有圖形用戶介面的計算機
上Mathematica 支持一個專用的Notebook 介面. 通過Notebook 介面, 我們可以向Mathematica
核心輸入命令, 可以顯示Mathematica 的輸出結果, 顯示圖形、動畫、播放聲音. 通過Notebook,
我們可以書寫報告、論文, 甚至整本書. 事實上, 有關Mathematica 的論文, 軟體, 雜志大部分都
是用Notebook 寫的, 並且在Internet 網路上廣泛傳播.Mathematica 的另一個重要特點是它具
有Mathlink 協議, 通過Mathlink, 我們可以把Mathematica 的核心與其它高級語言連接, 我們
可以用其它語言調用Mathematica, 也可以在Mathematica 中調用其它語言編寫的程序. 到現
在為止, 能夠與Mathlink 連接的語言包括C 語言,Excel,Word 等. 事實上Notebook 就是通過
Mathlink 與Mathematica 核心相連接的.
上面我們介紹的軟體都是通用的符號計算系統, 其它通用的符號計算系統還有IBM 公司
的Thomas J. Watson 研究中心開發的AXIOM, 它的前身稱為SCRATCHPAD.
除了上述通用的符號計算系統以外, 還有一些在某個領域專用的符號計算系統. 例如: 用於
高能物理計算的SCHOONSCHIP, 用於廣義相對論計算的SHEEP 和STENSOR. 在數學領域
中用於群論的Cayley 和GAP, 用於數論的PARI, SIMATH 和KANT. 在代數幾何和交換代數
領域中常用的系統是CoCoA 和Macaulay. 還有專門計算Lie 群的Lie 等等.
1.2 計算機代數系統的網路資源
進入二十世紀九十年代以來, 隨著國際互聯網的迅速發展, 符號計算系統的發展變的更加
迅速和開放. 從國際互聯網上可以獲取各種符號計算系統, 以及其他數學軟體的相關信息. 有些
新的符號計算系統甚至提供源代碼. 有些數學軟體還有新聞組或討論組, 通過討論組, 用戶可以
彼此交流信息、解答問題. 廠家也可以及時發現軟體的問題, 進行修改. 下面我們介紹一些常用
數學軟體的網路資源, 以及主要研究機構的地址.
Mathematica 的網路資源:
http://www.wolfram.com
http://www.mathsource.com
http://www.matheverywhere.com
http://smc.vnet.net/MathTensor.html
ftp://ftp.mathsource.com
news://comp.soft-sys.math.mathematica
1.3 Maple 的基本功能3
maillist:[email protected]
Maple 的網路資源:
http://www.maplesoft.com
http://daisy.uwaterloo.ca
ftp://ftp.maplesoft.com
maillist:[email protected]
Matlab 的網路資源:
http://www.mathworks.com
ftp://ftp.mathworks.com
news://comp.soft-sys.matlab
REDUCE 的網路資源:
http://www.rrz.uni-koeln.de/REDUCE
http://www.zib.de/Symbolik/rece
ftp://ftp.rand.org/software_and_data/rece
符號計算研究機構及信息中心
http://symbolicnet.mcs.kent.e
http://www.cain.nl/
http://www.risc.uni-linz.ac.at
news://sci.math.symbolic
其它符號計算軟體的網路地址:
Derive http://www.derive.com
Macaulay2 http://www.math.uiuc.e/Macaulay2/
Macsyma http://www.macsyma.com
Magma http://www.maths.usyd.e.au:8000/u/magma/
Mathcad http://www.mathsoft.com
MuPad http://www.mupad.de
Scilab http://www-rocq.inria.fr/scilab/
1.3 Maple 的基本功能
計算機代數系統與其它計算機語言的本質區別是: 計算機代數系統具有符號計算的能力,
為用戶提供互動式的計算環境, 可以進行常規的數學計算, 可以根據給定的數學函數畫出函數
的二維或三維圖形. 下面我們簡要描述Maple 的基本功能.
數值計算
對於普通的數,Maple 總是進行精確的計算, 這種規則對於有理數和無理數是相同的. 因此
對於無理數Maple 按照有關的數學規則進行計算, 只有當用戶需要計算浮點數近似值時,Maple
才按照用戶要求的精度計算.
> 1/5+1/4;
9
20
4 第一章Maple 系統簡介
> 5!/21;
40
7
> evalf(%);
5:714285714
> evalf(Pi,40);
3:
> 2.496745643/2;
1:248372822
> abs(3+5*I);
p34
> (3+4*I)/(1+I);
71
+ I
22
從上面的例子可以看到, 對於復數Maple 按照復數的規則進行計算.
多項式
符號計算系統的最基本功能是處理符號表達式, 多項式則是最基本的符號表達式. 從下面
的例子中可以看到Maple 可以用各種方式處理多項式、三角表達式、指數與對數等許多數學表
達式.
> factor(x^4+2*x^3-12*x^2+40*x-64);
(x . 2) (x 3 +4 x 2 . 4 x + 32)
> expand((x+1)^5);
x 5 +5 x 4 + 10 x 3 + 10 x 2 +5 x +1
> simplify(exp(x*log(y)));
x
y
> simplify(sin(x)^2+cos(x)^2);
1
> expand((x^2-a)^3*(x+b-1));
x 7 + x 6 b . x 6 . 3 x 5 a . 3 x 4 ab +3 x 4 a +3 x 3 a 2 +3 x 2 a 2 b . 3 x 2 a 2 . a 3 x . a 3 b + a 3
> expand(cos(4*x)+4*cos(2*x)+3,trig);
8 cos(x)4
1.3 Maple 的基本功能5
> combine(4*cos(x)^3,trig);
cos(3 x) + 3 cos(x)
解方程
用Maple 來解簡單的方程是毫無問題的, 即使是很復雜的方程,Maple 也可以用數值計算的
方法來處理.
> solve(x^2-3*x=2,x);
31 31
2+
2
p17, 2 . 2
p17
> glsys:=f2*x+3*y+z=1,x-y-z=4,3*x+7*z=3g:
> solve(glsys);
..24 97 ..43
fz =
41 ;x =
41;y =
41 }
> fsolve(fx^2+y^2=10,x^y=2g,fx,yg);
fx =3:102449071;y = :6122170880}
矩陣計算
Maple 還有許多命令可以處理矩陣和向量, 不過需要調用線性代數軟體包linalg. 還有一
點特別的是, 作矩陣的乘法需要一個特殊的運算元&*.
> with(linalg):
Warning, new definition for norm
Warning, new definition for trace
> a:=matrix([[2,3],[1,4]]);
> inverse(a),det(a);
a :=
. ..
23
14
. ..
2..
4 ..3
55
..12
55
3..
, 5
> b:=matrix([[w,x],[y,z]]);
b :=
. ..
wx
. .5
yz
第一章Maple 系統簡介
> evalm(a+b);
. ..
2+ w 3+ x
1+ y 4+ z
. ..
> evalm(a &* b);
. ..
2 w +3 y 2 x +3 z
w +4 yx +4 z
. ..
極限, 求和與乘積
對於普通的求極限問題, 可以直接用Maple 來計算, 它還可以符號的計算級數的和與積. 當
符號計算不成功時, 還可以作數值計算.
> limit((sqrt(1+x)-1)/x,x=0);
1
2
> limit(x!/x^x,x=infinity);
0
> sum(1/2^n, n=1..infinity);
1
> evalf(proct(1+1/x^2, x=1..infinity));
3:676077910
微分與積分
用Maple 來求微分是相當容易的, 使用diff 命令即可以求出數學表達式的微分, 不過求出
的結果可能是相當復雜, 因此通常還要用simplify 命令進行化簡. 求數學表達式的定積分和不
定積分就相對復雜一些, 需要某些特定的演算法. 對於復雜的函數, 求出的結果可能是某些特殊函
數. 對於定積分, 還可以用evalf 求出積分的數值.
> simplify(diff((x-1)/(x^2+1),x));
x2 . 1 . 2 x
. (x2 + 1)2
> diff(sin(x*y),x);
cos(xy) y
> int(1/(1+x+x^2),x);
21
p3 arctan( (2 x + 1) p3)
33
1.3 Maple 的基本功能7
> int(sin(x^2),x=a..b);
1
FresnelS( b p2) p2 pπ .
1
FresnelS(a p2) p2 p
2 pπ 2 pπ
> int(sin(x)/x,x=0..5);
Si(5)
> evalf(%);
1:549931245
微分方程
對於不太復雜的常微分方程,Maple 可以求出它的符號解. 如果你沒有給初始條件, 或者給
的初始條件或邊界條件不全, 在解的公式中會帶有積分常量.
> deq:=diff(y(x),x)*y(x)*(1+x^2)=x;
deq := ( . y(x)) y(x)(1 + x 2)= x
@x
> dsolve(fdeq,y(0)=0g,fy(x)g);
y(x)= pln(1 + x2), y(x)= ..pln(1 + x2)
> dsolve((y(x)^2-x)*D(y)(x)+x^2-y(x)=0,fy(x)} );
11
x 3 . y(x) x + y(x)3 = C1
33
級數展開
當數學問題比較復雜時, 求出准確解通常是不可能的, 用series 作級數展開是有幫助的.
> series(sin(x),x=0, 10);
11 5 11 10)
x . 6 x 3 +
120 x . 5040 x 7 +
362880 x 9 + O(x
例如在下列微分方程中, 就是用級數方式求出的微分方程級數解.
> Order:=10:
> deq:=diff(y(x),x$2)+diff(y(x),x)+y(x)=x+sin(x );
@2 @
deq :=( y(x))+( y(x)) + y(x)= x + sin(x)
@x2 @x
> sln1:=dsolve(fdeq, y(0)=0, D(y)(0)=0g,fy(x)g,series);
1 3 1 4 1 5 +
1 6 1 7 1 8 +
1 10)
sln1 := y(x)=
3 x . 12 x . 120 x 240 x . 5040 x . 20160 x 181440 x 9 + O(x
第一章Maple 系統簡介
Laplace 和Fourier 變換
Laplace 變換和Fourier 變換是常用的數學變換. 在Maple 中有一個積分變換的程序包
inttrans 提供了各種積分變換和它們的逆變換.
> with(inttrans):
> laplace(cos(t-a),t,s);
s cos(a) + sin(a)
s2 +1
> invlaplace(%,s,t);
cos(a) cos(t) + sin(a) sin(t)
> combine(%,trig);
cos(t . a)
> alias(sigma=Heaviside):
> f:=sigma(t+1)-sigma(t-1):
> g:=simplify(fourier(f,t,w));
g := 2 I (π Dirac(w) w . I) sin(w)
w
插值與函數擬合
interp命令可以由n 個點出發計算n . 1 階的插值多項式. 在下例中,x 的取值是1 到10,
y 的值是1 到10 之間的10 個隨機數.f 是相應的插值多項式.
> datax:=[seq(i,i=1..10)]:
> datay:=[seq(rand(10)(),i=1..10)]:
> dataxy:=zip((x,y)->[x,y], datax, datay);
dataxy := [[1, 1], [2, 0], [3, 7], [4, 3], [5, 6], [6, 8], [7, 5], [8, 8], [9, 1], [10, 9]]
> f:=interp(datax, datay, x);
17 9 517 11699 7 3719 27323 176741 4 652577 3f :=
51840 x . 40320 x 8 +
60480 x . 2880 x 6 +
17280 x 5 +
5760 x . 3240 x
1816483 2 1669153
+ xx + 293
3360 . 2520
使用數值逼近程序包numapprox 中的pade 命令可以計算一個給定函數的有理逼近函數,
以及其它類型的逼近函數.
> with(numapprox):
> x0:=solve(x^2=Pi/2)[1];
x0 :=
1 p2 p
2
1.3 Maple 的基本功能9
> f:=pade(tan(x^2), x=x0, [3,3]);
8 10
f := (..17280 19=2 p2 + 10800 %1 7 + 43200 %13 . 7680 %13
12
. 3072 %12 25=2 p2 . 32400 15=2 p2 + 3840 23=2 p2 + 28800 %1 9 + 3072 %13
+ 23040 %12 21=2 p2 + 14400 %12 17=2 p2 . 11520 %1 11) .(
(..11520 11 + 1024 13 . 14400 9 . 10800 7) %13
+ (7680 23=2 p2 . 11520 19=2 p2 + 21600 15=2 p2) %12
+(..7680 12 + 34560 10 + 64800 8) %1)
%1 := x .
1 p2 pπ
2
> evalf(normal(f));
6:(..:4532958122 109 x 2 . :1125313130 109 + :1054184360 109 x 3 + :5353835473 109 x)
((2:x . 2:506628274)
(..:1097168700 109 x 2 + :8958248690 109 x . :1356288866 1010))
圖形
最常用的畫圖命令是plot和plot3d.下面的例子說明了使用在兩個命令的方法.
>plot(sin(x)*exp(1)^(-x/7),x=0..4*Pi);
-0.4-0.200.20.40.60.824681012x>plot3d(sin(x)*exp(1)^y,x=0..2*Pi,y=0..Pi,axes=boxed);
20-1001020
Maple 編程
Maple 不僅可以對數學表達式進行計算, 還可以編程. 他的編程語言和其它的結構化編程
語言很相似.
10 第一章Maple 系統簡介
> f:=proc(x::nonnegint)
> option remember;
> if x=0 then 0
> elif x=1 then 1
> else f(x-1)+f(x-2) end if
> end proc:
> f(40);
102334155
1.4 Maple 系統的交互使用
Maple 的窗口環境提供了先進的工作區界面, 其擴充的數學功能簡明易用, 用戶可以在其
中展現數學思想, 創建復雜的技術報告, 充分發揮Maple 的功能.
圖1.1: Maple 的窗口環境
A Maple 的工具條
B 內容工具條, 它還包含一個輸入和編輯文本的區域
C 節的頭部及標題
D Maple 的輸入, 提示符為\>", 顯示為紅色
1.4 Maple 系統的交互使用11
E Maple 的輸出, 既執行Maple 命令的結果, 通常顯示為藍色
F 一組Maple 命令及其輸出
G Maple 的工作區
H 工作區元素組成的節
I 節的范圍: 用一個大的方括弧\[」 表示
J 省缺的Maple 輸入提示符
K 符號模板, 包含了許多常用的數學符號
L 表達式模板
M 矩陣模板
N 向量模板
Maple 工作區界面
Maple 的圖形界面具有現代應用軟體界面的常見功能, 它支持滑鼠操作, 包括剪切和粘貼等
功能, 如果你已經習慣了這些用法, 那就具備了使用Maple 工作區界面的基本知識. 現在你可
以執行一些標準的操作, 例如: 打開文件、保存和列印文件等.
對於Windows 平台, 只要雙擊Maple 圖標即可啟動Maple. 在Unix 系統下, 可在提示符
之後鍵入xmaple 命令來啟動.Maple 啟動後將開啟一個新的工作區.
在窗口上端是菜單條, 包括File 和Edit 等菜單項, 菜單條之下是工具條, 其中有若干用於
經常性操作的快捷按鈕, 如文件打開, 保存和列印等. 工具條之下是內容指示條, 其中有一些控
件規定當前執行的任務. 再向下是較大的工作區區域, 也就是你的工作區. 窗口的最下端是狀態
條, 其中顯示系統信息.
作為Maple 用戶界面的一個組成部分, 工作區是用戶交互的求解問題和把工作寫成文檔的
集成環境. 所謂交互的求解問題, 簡單的說就是輸入適當的Maple 命令, 得到結果. 在工作區中
可以修改命令, 重新執行並獲得新的結果. 除了Maple 命令及其結果以外, 還可以在文檔中加入
許多其他類型信息. 主要包括:
可以加入文本, 用戶能夠逐個字元地控制文本段落.
.
在文本段中, 可以加入數學表達式和Maple 命令.
.
可以加入超連接, 當用滑鼠單擊某特定文本區域時, 能跳轉到工作區的其他位置, 或其它文
.
本中.
可以規定文檔的結構, 包括超連接, 節與小節的劃分.
.
在Windows 平台上, 用戶可以嵌入其他對象, 可藉助OLE 2( 對象連接與嵌入標准) 嵌入圖
.
形和表格.
添加標題
在Maple 的工作區中不僅可以作數學計算, 還可以編寫文檔. 首先我們可以給文檔加標題.
具體步驟是: 將游標移到第一行, 在Insert 菜單的Execution Group 中選擇Region Before
項, 此時在頂部出現一個新區域. 這個區域包含一個Maple 輸入的提示符, 這意味著此時是輸入
Maple 命令的狀態. 點擊工具條上的
T 按鈕或從Insert 菜單中選擇Text Input 項, 就把這個
區域變成了文本輸入狀態, 現在就可以輸入文本. 此時在工具條下面又出現了一個新的文本選
擇工具條, 從中你可以選擇文本的字體格式等. 如果你輸入的是文章的標題, 就可以在文本格式
12 第一章Maple 系統簡介
的下拉菜單中選擇標題格式. 輸入標題後回車, 系統會自動要求你輸入作者的名字, 輸入完作者
名以後就可以輸入正文了.
添加小標題
對文檔的進一步加工是把文檔分解為節. 具體作法是首先用滑鼠選定相關的區域, 然後點
擊工具條中的. 鍵, 此時就在選定的區域前面出現了一個小方塊, 下拉一個大括弧, 括住了選
定的區域. 並且在這個區域的第一條命令之前插入一個文本區域, 此時你可以輸入節的標題, 回
車後還可以輸入其他說明文本. 如果需要開始新的一節, 可以在Insert 菜單中選擇section.
就可以在這一節之後創建新的一節.
行內數學表達式
在一個文檔中有時需要插入數學表達式, 例如下面一段文字:
Look at the integral . x2 sin(x . a)dx. Notice that its integrand, x2 sin(x . a), depends
on the parameter a.
在其中插入數學公式的方法是: 首先將游標移到相應的位置, 從Insert 菜單中選擇Math Input
項, 然後輸入對應於. x2 sin(x . a)dx 的Maple 代碼, 即Int(x^2*sin(x), x), 注意觀察內容指
示條中的編碼區域, 其中顯示輸入的代碼, 而工作區中則顯示使用標准數學符號的積分表達式.
在數學表達式輸入完成後, 再將輸入狀態變成文本輸入狀態, 就可以繼續輸入其他文本. 這樣就
完成了我們的文檔, 它既可以保存也可以列印.
添加超連接
在Maple 系統中, 用戶可以同時打開多個工作區, 在不同的工作區之間可以通過建立超連
接的方式建立聯系. 建立超連接的方法是: 在一個工作區中用滑鼠選定一個位置, 在Insert 菜
單中選擇Hyperlink 項. 此時彈出一個對話框, 它要求用戶輸入聯接的文字和另一個工作區的
文件名. 填寫完成後單擊OK 鍵就完成了超連接.
建立書簽
在工作區中可以插入書簽, 以便迅速的查找內容. 單擊指向書簽的超連接,Maple 將立即轉
至書簽位置. 建立書簽的方法是: 首先將游標移動到要插入書簽的位置, 從View 菜單中選擇
Edit Bookmark 項. 在彈出的對話框中鍵入一段文字, 例如\expr command」 作為書簽文本, 單
擊OK 按鈕插入書簽. 當你移動游標到工作區的任何位置時, 從View 菜單中選擇Bookmark, 再
從彈出的菜單中選擇expr command 項, 就可以跳到你插入書簽的位置.
此外超連接的方式也可以使用書簽. 具體作法是: 首先按照前面的方法建立書簽, 將游標
移動到建立超連接的位置, 在Insert 菜單中選擇Hyperlink 項. 在彈出的對話框中輸入聯接的
文字, 然後在Book Mark 區域添入你已經建立的書簽的標記, 例如\expr command", 單擊OK 鍵
就完成了超連接.
幫助系統
前面我們介紹了Maple 的計算和排版方面的能力, 然而這只能是簡介, 在本書中, 我們不可
能詳盡的描述Maple 的所有命令, 因為Maple 包含了數以千計的命令. 為了了解這些命令的使
用方法, 可以使用Maple 軟體帶有的一個自足的參考手冊, 即Maple 的幫助系統. 藉助幫助系
1.5 Maple 的組織結構13
統, 可以按名字或主題查詢Maple 命令及其特點. 此外用戶還可以自行選擇關鍵詞或術語, 來
迅速打開含有這些文字的幫助頁面. 在每個幫助頁面中還提供了超連接, 使用戶可以閱讀相關
的頁面.
在幫助系統中,Maple 提供了三種方法定位信息: 按目錄、按主題和按全文查找. 從Help 菜
單中選擇Contents, 幫助窗口將變為幫助系統的一個簡單目錄, 用戶可以通過超連接的方式瀏
覽幫助系統. 這就是按目錄的查找方法. 通過這種方法我們可以大致了解Maple V 的基本功
能, 但是要從中找到某個特定的主題還是很困難的. 按主題查找的方法是: 從Help 菜單中選擇
Topic Search, 此時幫助窗口將彈出一個對話框, 在其中添入需要查找的主題, 點擊OK 鍵, 就可
以閱讀相應的幫助文檔. 如果已經知道希望閱讀的主題詞, 也可以直接從工作區訪問該頁面, 辦
法是在Maple 提示符後鍵入?topic, 回車後就可閱讀相應的頁面.
在大多數Maple 版本中(唯一的例外是Maple V Realese 4 版本), 進入幫助系統後,Maple
會打開幫助瀏覽器, 通過幫助瀏覽器可以方便地找到你需要的幫助.
有的時候, 在解決某個數學問題時不知道應該使用Maple 的什麼命令, 但是由數學問題本
身出發, 有理由推測, 在這些命令的幫助頁面應當包含某些特定單詞, 此時就要用到全文查找的
方法. 例如我要解一個微分方程, 但是不知道應該用什麼命令, 我們可以推測, 在這個命令的幫
助中應該包含solve, di erential 和equation 等單詞, 此時可以在Help 菜單中選擇Full Text
Search, 在彈出的對話框中, 輸入要查找的關鍵詞, 例如solve di erential equation 等, 然後單擊
Search 按鈕, 通知Maple 開始檢索.Maple 將列出匹配的主題, 並附帶數值, 表明匹配的程度, 用
戶可從列表中選擇最感興趣的主題.
此外從Help 菜單中選定Balloon Help 項以後, 當滑鼠停留在某個按鈕或菜單上時,Maple
就顯示簡短的說明. 這也是一個很有用的功能.
1.5 Maple 的組織結構
Maple 是由加拿大Waterloo 大學的符號計算組開發的計算機代數系統. 它可以在各種計
算機上運行, 從超級計算機, 例如Cray Y/MP, 到用於桌面的微型計算機, 例如IBM PC 兼容
機.Maple 既可以在單用戶的操作系統, 例如MS-Windows 上