版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算與人工智能通識(shí)
(微課版)第1章
計(jì)算與人工智能概論CONTENTS目錄1.1
計(jì)算與計(jì)算自動(dòng)化1.2
計(jì)算思維1.3
人工智能的起源與定義1.4
人工智能的發(fā)展歷程與趨勢(shì)1.5
人工智能的研究?jī)?nèi)容與主要技術(shù)1.1
計(jì)算與計(jì)算自動(dòng)化1.1.1
計(jì)算的概念計(jì)算,既是一種數(shù)學(xué)技能,也是推動(dòng)科技進(jìn)步的重要手段。隨著電子計(jì)算機(jī)的出現(xiàn)以及電子計(jì)算機(jī)應(yīng)用的普及,人們對(duì)計(jì)算的理解發(fā)生了很大變化。1.計(jì)算是指數(shù)學(xué)運(yùn)算算術(shù)運(yùn)算是指數(shù)據(jù)在運(yùn)算符的作用下按照一定的計(jì)算規(guī)則進(jìn)行的數(shù)學(xué)運(yùn)算。“計(jì)算”體現(xiàn)的是一種基本的數(shù)學(xué)技能,且是人類(lèi)必須具備的基本技能。這是對(duì)計(jì)算最簡(jiǎn)單、最直接的理解。2.計(jì)算是指較復(fù)雜的運(yùn)算“計(jì)算”體現(xiàn)的是問(wèn)題求解的方法和手段。當(dāng)待求解的問(wèn)題變得復(fù)雜而用傳統(tǒng)數(shù)學(xué)方法無(wú)法求出精確解時(shí),只能利用一種先進(jìn)的計(jì)算工具來(lái)取代人工計(jì)算,這種計(jì)算工具就是電子計(jì)算機(jī)。3.計(jì)算是指符號(hào)變換計(jì)算是一種符號(hào)變換,即從一個(gè)符號(hào)串按照一定的規(guī)則變換成另一個(gè)符號(hào)串的過(guò)程。符號(hào)變換的規(guī)則由程序決定。從這個(gè)意義上講,電子計(jì)算機(jī)是一個(gè)具有程序執(zhí)行能力的符號(hào)變換工具,如圖所示。符號(hào)變換所得到的輸出結(jié)果,除了取決于輸入的數(shù)據(jù),還取決于程序,即程序不同,數(shù)據(jù)處理方法不同,得到的結(jié)果也不同?!坝?jì)算”一詞的英文表示通常是Computing,以計(jì)算機(jī)為工具實(shí)現(xiàn)符號(hào)變換的過(guò)程都可以稱(chēng)為計(jì)算。1.1.2
圖靈機(jī)模型圖靈機(jī)(Turing
Machine)是由英國(guó)數(shù)學(xué)家艾倫·圖靈于1936年提出的一種抽象的計(jì)算模型。圖靈機(jī)不是一種具體的機(jī)器,但是通過(guò)這種模型可以制造一種十分簡(jiǎn)單卻具有極強(qiáng)運(yùn)算能力的計(jì)算裝置,用來(lái)計(jì)算所有能想象得到的可計(jì)算函數(shù)。1.圖靈機(jī)的組成圖靈機(jī)的結(jié)構(gòu)如圖所示。圖靈機(jī)由以下4個(gè)部分組成。(1)一條無(wú)限長(zhǎng)的紙帶(Tape)(2)一個(gè)讀寫(xiě)頭(Head)(3)一套控制規(guī)則表(Table)(4)一個(gè)狀態(tài)寄存器圖靈機(jī)就是根據(jù)程序的命令以及它的內(nèi)部狀態(tài)進(jìn)行紙帶的讀寫(xiě)和移動(dòng)的。2.圖靈機(jī)的工作過(guò)程圖靈機(jī)的動(dòng)作完全由3個(gè)因素確定:機(jī)器所處的當(dāng)前狀態(tài)、讀寫(xiě)頭所在方格上的符號(hào)、轉(zhuǎn)換規(guī)則。每個(gè)轉(zhuǎn)換規(guī)則由以下4元組說(shuō)明。(current_state,symbol,action,next_state)其含義是當(dāng)圖靈機(jī)處于current_state狀態(tài)時(shí),若讀寫(xiě)頭掃描到紙帶方格里的符號(hào)為symbol,則執(zhí)行動(dòng)作action,并轉(zhuǎn)換到next_state狀態(tài)。下面以計(jì)算x+1的圖靈機(jī)為例,分析圖靈機(jī)的工作過(guò)程。圖靈機(jī)的控制規(guī)則如表所示,表中S表示圖靈機(jī)的起始狀態(tài),P表示中間狀態(tài),G表示結(jié)束狀態(tài)。設(shè)x=37,計(jì)算過(guò)程如下。①圖靈機(jī)處于S狀態(tài),圖(a)。②
圖靈機(jī)進(jìn)入P狀態(tài),圖(b)。③圖靈機(jī)進(jìn)入G狀態(tài),立即停機(jī),圖(c)。完成x+1運(yùn)算??梢钥闯觯灰淖儓D靈機(jī)的控制規(guī)則表,它就可以完成其他的任務(wù)。圖靈機(jī)雖然簡(jiǎn)單,但是具有充分的一般性,反映了計(jì)算的本質(zhì)。電子計(jì)算機(jī)是圖靈機(jī)的物理實(shí)現(xiàn)形式,其計(jì)算能力與圖靈機(jī)等價(jià)。
為了紀(jì)念圖靈對(duì)計(jì)算機(jī)科學(xué)的卓越貢獻(xiàn),國(guó)際計(jì)算機(jī)學(xué)會(huì)(AssociationforComputingMachinery,ACM)于1966年設(shè)立了圖靈獎(jiǎng)。該獎(jiǎng)一直是世界計(jì)算機(jī)科學(xué)領(lǐng)域的最高獎(jiǎng)項(xiàng)。1.1.3
馮·諾依曼體系結(jié)構(gòu)1.基本思想①
電子計(jì)算機(jī)應(yīng)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備5個(gè)部分組成。②
計(jì)算機(jī)采用二進(jìn)制數(shù)而不是十進(jìn)制數(shù)。③
計(jì)算機(jī)的基本工作原理應(yīng)該是存儲(chǔ)程序和程序控制,即計(jì)算機(jī)可以按照程序規(guī)定的順序,自動(dòng)地從執(zhí)行一條程序指令轉(zhuǎn)向執(zhí)行下一條程序指令。2.在現(xiàn)代計(jì)算機(jī)中的應(yīng)用與影響長(zhǎng)達(dá)101頁(yè)的《關(guān)于EDVAC的第一份報(bào)告草案》是計(jì)算機(jī)發(fā)展史上的一份劃時(shí)代的文獻(xiàn)。這一方案提出了電子計(jì)算機(jī)的基本體系結(jié)構(gòu),使得計(jì)算機(jī)在硬件組成、數(shù)據(jù)處理方式等方面都具有了高度的統(tǒng)一性和規(guī)范性,從而奠定了現(xiàn)代計(jì)算機(jī)的發(fā)展基礎(chǔ)。3.優(yōu)點(diǎn)與局限性(1)優(yōu)點(diǎn)①
通用性強(qiáng)。能夠執(zhí)行各種類(lèi)型的程序。②
靈活性高??梢愿鶕?jù)存儲(chǔ)的程序自動(dòng)執(zhí)行,能夠適應(yīng)不同的應(yīng)用場(chǎng)景,并根據(jù)需要進(jìn)行調(diào)整和擴(kuò)展。③
可擴(kuò)展性好。可以通過(guò)增加存儲(chǔ)器和外部設(shè)備來(lái)擴(kuò)展其功能和性能。④
易于實(shí)現(xiàn)。設(shè)計(jì)相對(duì)簡(jiǎn)單明了。⑤
支持高級(jí)語(yǔ)言。高級(jí)語(yǔ)言程序可以通過(guò)編譯器或解釋器轉(zhuǎn)換成機(jī)器語(yǔ)言,在計(jì)算機(jī)上執(zhí)行。(2)局限性①
馮·諾依曼瓶頸。中央處理器與存儲(chǔ)器是分離的,導(dǎo)致存儲(chǔ)器成為制約計(jì)算機(jī)性能的關(guān)鍵因素之一。②
串行執(zhí)行。計(jì)算機(jī)采用串行執(zhí)行方式,限制了計(jì)算機(jī)并行處理的能力,影響了計(jì)算速度的提升。③
非數(shù)值處理能力有限。馮·諾依曼體系結(jié)構(gòu)最初是為數(shù)值計(jì)算而設(shè)計(jì)的,因此在非數(shù)值處理領(lǐng)域(如圖像處理、語(yǔ)音識(shí)別等)的發(fā)展相對(duì)緩慢。④
功耗問(wèn)題。隨著處理器集成度的增加,馮·諾依曼體系結(jié)構(gòu)的功耗問(wèn)題日益突出,對(duì)散熱和能源效率提出了更高要求。(3)未來(lái)的發(fā)展趨勢(shì)研究人員正在探索非馮·諾依曼體系結(jié)構(gòu),如量子計(jì)算、光子計(jì)算等。新型存儲(chǔ)技術(shù),如非易失性內(nèi)存(NVM)和三維堆疊存儲(chǔ)器的出現(xiàn),有望緩解“馮·諾依曼瓶頸”。隨著多核處理器和分布式計(jì)算技術(shù)的發(fā)展,計(jì)算機(jī)系統(tǒng)的并行處理能力將得到進(jìn)一步提升。1.2
計(jì)算思維三種基本的思維方式:一是以數(shù)學(xué)學(xué)科為代表,以推理和演繹為特征的邏輯思維;二是以物理學(xué)科為代表,以實(shí)驗(yàn)、觀察和歸納總結(jié)為特征的實(shí)證思維;三是以計(jì)算機(jī)學(xué)科為代表,以設(shè)計(jì)和構(gòu)造為特征的計(jì)算思維。1.2.1
計(jì)算思維的概念圖靈獎(jiǎng)得主艾茲格·迪杰斯特拉(Edsger
W.
Dijkstra):“我們所使用的工具影響著我們的思維方式和思維習(xí)慣,從而也將深刻地影響著我們的思維能力。”周以真教授認(rèn)為,計(jì)算思維(ComputationalThinking)是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì)以及人類(lèi)行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。下面通過(guò)兩個(gè)簡(jiǎn)單的例子,說(shuō)明什么是計(jì)算思維。先看求定積分的問(wèn)題:為了求函數(shù)f(x)在[a,b]區(qū)間內(nèi)的定積分,數(shù)學(xué)上的求解思路和利用計(jì)算機(jī)的求解思路是不同的,反映出不同的思維方式。再看一個(gè)問(wèn)題:驗(yàn)證哥德巴赫猜想,即任何大于2的偶數(shù),都可表示為兩個(gè)素?cái)?shù)之和。哥德巴赫猜想是一個(gè)古老而著名的數(shù)學(xué)難題,迄今未得出最后的理論證明。數(shù)學(xué)家要做的事情是證明一般性的結(jié)論,利用計(jì)算機(jī)只能對(duì)有限范圍內(nèi)的數(shù)加以驗(yàn)證,不能算嚴(yán)格的證明。1.2.2
計(jì)算思維的本質(zhì)與方法1.計(jì)算思維的本質(zhì)計(jì)算思維的本質(zhì)是抽象(Abstraction)和自動(dòng)化(Automation)。(1)抽象抽象是指將具體事物或現(xiàn)象的共同特征、屬性抽取出來(lái),并用概念、模型、符號(hào)等方式表示出來(lái)的思維方式。哥尼斯堡七橋問(wèn)題:18世紀(jì)初,普魯士的哥尼斯堡有一條河穿過(guò)城區(qū),河上有兩個(gè)小島,有七座橋把兩個(gè)島與河岸聯(lián)系起來(lái),圖(a)。為了求解這一問(wèn)題,歐拉對(duì)問(wèn)題進(jìn)行了抽象,把每一塊陸地視為一個(gè)點(diǎn),連接兩塊陸地的橋以線表示,由此得到抽象后的幾何圖形,圖(b)。歐拉證明了遍歷七座橋并回到原點(diǎn)的路徑是不存在的,并創(chuàng)立了一個(gè)新的數(shù)學(xué)分支—圖論與幾何拓?fù)?。?)自動(dòng)化自動(dòng)化是指利用計(jì)算機(jī)技術(shù)實(shí)現(xiàn)任務(wù)的自動(dòng)執(zhí)行和處理。利用計(jì)算機(jī)自動(dòng)求解問(wèn)題需要結(jié)合人類(lèi)的思維和計(jì)算機(jī)的能力。2.計(jì)算思維的方法(1)約簡(jiǎn)、嵌入、轉(zhuǎn)化與仿真約簡(jiǎn)是將問(wèn)題簡(jiǎn)化為更容易處理的形式,去除不必要的細(xì)節(jié),降低問(wèn)題的復(fù)雜性。嵌入是將問(wèn)題嵌入一個(gè)更大的系統(tǒng)中,以便利用系統(tǒng)的資源和功能來(lái)解決問(wèn)題。轉(zhuǎn)化是將問(wèn)題轉(zhuǎn)化為另一種形式或領(lǐng)域,以便利用該領(lǐng)域的知識(shí)和方法來(lái)解決問(wèn)題。仿真是通過(guò)構(gòu)建仿真模型來(lái)模擬實(shí)際問(wèn)題,從而預(yù)測(cè)和評(píng)估不同解決方案的效果。2.計(jì)算思維的方法(2)遞歸與迭代遞歸是通過(guò)函數(shù)調(diào)用自身來(lái)解決問(wèn)題。遞歸方法能夠簡(jiǎn)化問(wèn)題的求解過(guò)程,但需要注意效率問(wèn)題。迭代是通過(guò)重復(fù)執(zhí)行某個(gè)過(guò)程來(lái)逐步逼近問(wèn)題的解。迭代方法常用于優(yōu)化問(wèn)題、求解方程等場(chǎng)景。2.計(jì)算思維的方法(3)并行處理、分布式處理與多維分析并行處理利用多個(gè)處理器或計(jì)算資源同時(shí)處理問(wèn)題的不同部分,以提高計(jì)算效率。分布式處理將計(jì)算任務(wù)分布在多個(gè)計(jì)算機(jī)或節(jié)點(diǎn)上執(zhí)行,以實(shí)現(xiàn)更高效的資源利用和更快的計(jì)算速度。多維分析從多個(gè)角度和維度對(duì)問(wèn)題進(jìn)行分析,以便更全面地理解問(wèn)題的本質(zhì)和特征。2.計(jì)算思維的方法(4)抽象與分解計(jì)算思維的核心之一是抽象,即將復(fù)雜的問(wèn)題或系統(tǒng)簡(jiǎn)化為更易于理解和處理的形式。分解是將復(fù)雜的問(wèn)題分解為一系列更小、更具體的子問(wèn)題。2.計(jì)算思維的方法(5)算法設(shè)計(jì)與分析算法是計(jì)算思維的核心組成部分之一,它規(guī)定了問(wèn)題求解的步驟和規(guī)則。算法分析是對(duì)設(shè)計(jì)的算法進(jìn)行評(píng)估和優(yōu)化,以提高其效率和準(zhǔn)確性。2.計(jì)算思維的方法(6)自動(dòng)化與容錯(cuò)機(jī)制自動(dòng)化是指利用計(jì)算機(jī)技術(shù)和工具實(shí)現(xiàn)問(wèn)題求解和系統(tǒng)設(shè)計(jì)的自動(dòng)化。容錯(cuò)機(jī)制是指在系統(tǒng)設(shè)計(jì)中考慮可能出現(xiàn)的錯(cuò)誤和異常情況,并采取相應(yīng)的容錯(cuò)措施來(lái)確保系統(tǒng)的穩(wěn)定性和可靠性,包括冗余設(shè)計(jì)、錯(cuò)誤檢測(cè)與恢復(fù)等。1.3
人工智能的起源與定義人工智能是一門(mén)研究如何構(gòu)造智能機(jī)器或智能系統(tǒng),從而模擬、延伸和擴(kuò)展人類(lèi)智能的學(xué)科。1.3.1
人工智能的起源1.理論奠基:圖靈與智能的判據(jù)人工智能的起源可以追溯到艾倫·圖靈的圖靈測(cè)試,如圖所示。圖靈測(cè)試成為人工智能領(lǐng)域的重要評(píng)估標(biāo)準(zhǔn),為人工智能的發(fā)展奠定了基礎(chǔ)。2.學(xué)科誕生:達(dá)特茅斯會(huì)議與人工智能元年1956年夏天,一場(chǎng)為期兩個(gè)月的研討會(huì)在美國(guó)達(dá)特茅斯學(xué)院(DartmouthCollege)召開(kāi),這次會(huì)議被認(rèn)為是人工智能學(xué)科的正式起點(diǎn)。在會(huì)議上,約翰·麥卡錫把機(jī)器的這種模仿能力總結(jié)為“人工智能”,“人工智能”一詞就此誕生,因此1956年被稱(chēng)為人工智能元年。1.3.2
人工智能的三大學(xué)派由于人們對(duì)人工智能本質(zhì)的不同理解和認(rèn)識(shí),形成了符號(hào)主義(Symbolism)、連接主義(Connectionism)、行為主義(Behaviorism)三大學(xué)派。符號(hào)主義以基于知識(shí)工程的專(zhuān)家系統(tǒng)研究為代表,連接主義以人工神經(jīng)網(wǎng)絡(luò)研究為代表,行為主義以行為動(dòng)作的感知與控制研究為代表。1.三大學(xué)派的基本思想(1)符號(hào)主義符號(hào)主義代表人物是艾倫·紐厄爾(AllenNewell)、赫伯特·西蒙(HerbertSimon)等。符號(hào)主義主張用計(jì)算機(jī)模擬人類(lèi)的符號(hào)處理過(guò)程,通過(guò)邏輯推理、規(guī)則匹配等方法來(lái)實(shí)現(xiàn)人工智能。其代表性成果包括機(jī)器證明、專(zhuān)家系統(tǒng)、知識(shí)工程等?;诜?hào)主義的標(biāo)志性事件有IBM公司的“深藍(lán)”(DeepBlue)超級(jí)計(jì)算機(jī)戰(zhàn)勝?lài)?guó)際象棋冠軍加里·卡斯帕羅夫(GarryKasparov)。1.三大學(xué)派的基本思想(2)連接主義連接主義的代表人物是沃倫·麥卡洛克(WarrenMcCulloch)與沃爾特·皮茨(WalterPitts)等。連接主義的核心方法是構(gòu)建人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetwork,ANN)及人工神經(jīng)網(wǎng)絡(luò)間連接機(jī)制的學(xué)習(xí)算法,實(shí)現(xiàn)對(duì)大腦功能的模擬。谷歌公司開(kāi)發(fā)的人工智能?chē)宄绦駻lphaGo擊敗韓國(guó)棋手李世石,之后又戰(zhàn)勝了中國(guó)棋手柯潔;DeepMind公司的Alphafold人工智能程序破解了困擾生物學(xué)界50年之久的蛋白質(zhì)分子折疊問(wèn)題。1.三大學(xué)派的基本思想(3)行為主義行為主義的代表人物是羅德尼·布魯克斯(RodneyBrooks)。行為主義起源于進(jìn)化生物學(xué)和控制論,其基本思想是智能取決于感知和行動(dòng),提出智能行為的“感知-動(dòng)作”模式,落腳點(diǎn)為行為控制、自適應(yīng)與進(jìn)化計(jì)算。行為主義代表性成果是谷歌的機(jī)器狗,其目標(biāo)是實(shí)現(xiàn)人或動(dòng)物能去的地方機(jī)器都能去。三大學(xué)派的區(qū)別如表所示。2.生成式人工智能—三大學(xué)派共塑的智能革命生成式人工智能(ArtificialIntelligenceGeneratedContent,AIGC)的崛起,不僅是技術(shù)的飛躍,更是人工智能三大學(xué)派思想融合的產(chǎn)物。它以連接主義為基礎(chǔ),吸收符號(hào)主義的邏輯框架,融入行為主義的動(dòng)態(tài)反饋,共同推動(dòng)智能技術(shù)邁向新高度。連接主義為生成式人工智能提供了底層架構(gòu)。Transformer架構(gòu)的突破,更讓生成式人工智能跨越文本、圖像、視頻的多模態(tài)生成成為可能,驗(yàn)證了連接主義對(duì)分布式表征的強(qiáng)大能力。2.生成式人工智能—三大學(xué)派共塑的智能革命盡管生成式人工智能以連接主義為主導(dǎo),但符號(hào)主義的邏輯推理與知識(shí)表示方法仍在其中發(fā)揮輔助作用。行為主義關(guān)注智能體與環(huán)境的互動(dòng)反饋,這一機(jī)制被深度整合至生成式人工智能的訓(xùn)練中。生成式人工智能的誕生與發(fā)展,是三大學(xué)派跨越理論鴻溝、走向協(xié)同創(chuàng)新的縮影。生成式人工智能通過(guò)突破傳統(tǒng)學(xué)派壁壘,正推動(dòng)人工智能向通用智能(ArtificialGeneralIntelligence,AGI)的終極目標(biāo)邁進(jìn)。1.3.3
人工智能的定義馬文·明斯基提出:“人工智能是一門(mén)科學(xué),是使機(jī)器做那些人需要通過(guò)智能來(lái)做的事情,是能夠和人一樣進(jìn)行感知、認(rèn)知、決策、執(zhí)行的人工程序或系統(tǒng)”;尼爾斯·約翰·尼爾森(NilsJohnNilsson)提出:“人工智能是關(guān)于知識(shí)的科學(xué),是研究知識(shí)的表示、知識(shí)的獲取和知識(shí)的應(yīng)用的一般規(guī)律、算法和實(shí)現(xiàn)方法的一門(mén)科學(xué)”。人類(lèi)不是機(jī)器,機(jī)器也不是人類(lèi),人工智能和人類(lèi)智能有著本質(zhì)的區(qū)別。(1)非生物與生物的區(qū)別。人類(lèi)智能是自主智能系統(tǒng),除了理性智能,人類(lèi)還具有難以評(píng)定的感性思維。(2)人類(lèi)采用現(xiàn)實(shí)思維,有主觀能動(dòng)性,機(jī)器采用固定思維,無(wú)法開(kāi)發(fā)出自主情緒。(3)從功能上看,人類(lèi)具有對(duì)未來(lái)可能的重構(gòu)能力,而機(jī)器只能簡(jiǎn)單地讀取過(guò)往的記憶。人工智能已發(fā)展為一門(mén)綜合性的交叉學(xué)科,如圖所示。
1.4
人工智能的發(fā)展歷程與趨勢(shì)1.4.1
人工智能的發(fā)展階段1.起步發(fā)展期(1956—1960年)1956年達(dá)特茅斯會(huì)議后的幾年間,掀起了人工智能發(fā)展的第一次高潮,取得了一批研究成果。這些成果讓人們看到了人工智能的巨大潛力,仿佛一個(gè)全新的時(shí)代已經(jīng)到來(lái)。然而,當(dāng)時(shí)的計(jì)算機(jī)性能有限,處理速度慢,存儲(chǔ)容量小,極大地限制了人工智能的發(fā)展。2.反思發(fā)展期(1961—1970年)人工智能發(fā)展初期的突破性進(jìn)展,讓人們對(duì)它充滿了無(wú)限的期望。人們開(kāi)始嘗試更具挑戰(zhàn)性的任務(wù),接二連三的失敗和預(yù)期目標(biāo)的落空,使人工智能的發(fā)展走入了低谷。3.應(yīng)用發(fā)展期(1971—1985年)20世紀(jì)70年代,專(zhuān)家系統(tǒng)的出現(xiàn),為人工智能的發(fā)展注入了新的活力。專(zhuān)家系統(tǒng)能夠根據(jù)輸入的信息,運(yùn)用專(zhuān)家的知識(shí)和經(jīng)驗(yàn),進(jìn)行推理和判斷,給出解決方案。但專(zhuān)家系統(tǒng)嚴(yán)重依賴(lài)人工錄入大量規(guī)則,導(dǎo)致系統(tǒng)的維護(hù)與更新十分困難。4.低迷發(fā)展期(1986—1995年)隨著人工智能應(yīng)用規(guī)模的不斷擴(kuò)大,專(zhuān)家系統(tǒng)存在的問(wèn)題逐漸暴露出來(lái)。專(zhuān)家系統(tǒng)的應(yīng)用領(lǐng)域狹窄;只能根據(jù)專(zhuān)家提供的知識(shí)進(jìn)行推理;知識(shí)獲取困難、推理方法單一、難以與其他系統(tǒng)進(jìn)行協(xié)同工作、數(shù)據(jù)共享困難。這些問(wèn)題使得專(zhuān)家系統(tǒng)的應(yīng)用受到了限制,人工智能的發(fā)展再次陷入了低谷。5.穩(wěn)步發(fā)展期(1996—2010年)20世紀(jì)90年代中期,互聯(lián)網(wǎng)的飛速發(fā)展為人工智能提供海量訓(xùn)練數(shù)據(jù);計(jì)算機(jī)性能持續(xù)改善,圖形處理器(GraphicsProcessingUnit,GPU)開(kāi)始用于加速計(jì)算;統(tǒng)計(jì)學(xué)習(xí)崛起,讓機(jī)器從數(shù)據(jù)中自主發(fā)現(xiàn)規(guī)律。2006年,杰弗里·辛頓(GeoffreyHinton)提出深度學(xué)習(xí)(DeepLearning)的概念,成為點(diǎn)燃人工智能革命的導(dǎo)火索。2008年,IBM提出了“智慧地球”的概念,實(shí)現(xiàn)萬(wàn)物互聯(lián)和智能化的管理。在這一時(shí)期,人工智能技術(shù)在語(yǔ)音識(shí)別、圖像識(shí)別、自然語(yǔ)言處理等方面也取得了顯著的進(jìn)展。6.蓬勃發(fā)展期(2011年至今)以深度神經(jīng)網(wǎng)絡(luò)為代表的人工智能技術(shù)飛速發(fā)展,迎來(lái)了爆發(fā)式增長(zhǎng)的新高潮。大數(shù)據(jù)為人工智能提供了豐富的“養(yǎng)料”;云計(jì)算和GPU等計(jì)算平臺(tái)為人工智能的發(fā)展提供了強(qiáng)大的計(jì)算能力。2017年,谷歌研究人員在論文AttentionIsAllYouNeed中首次提出Transformer架構(gòu),該架徹底改變了自然語(yǔ)言處理的技術(shù)路徑,為后續(xù)的大語(yǔ)言模型(如GPT、BERT)以及多模態(tài)模型奠定了基礎(chǔ)。6.蓬勃發(fā)展期(2011年至今)2018年以來(lái),美國(guó)OpenAI公司發(fā)布的GPT系列模型不斷刷新人們對(duì)人工智能的認(rèn)知。2024年12月,中國(guó)人工智能企業(yè)深度求索(DeepSeek)公司發(fā)布了大語(yǔ)言模型DeepSeek-V3。2025年1月,深度求索公司又發(fā)布了DeepSeek-R1推理模型。DeepSeek為大模型的普惠化發(fā)展做出了積極貢獻(xiàn)。1.4.2
人工智能的發(fā)展趨勢(shì)1.可信人工智能可信人工智能(TrustworthyAI)指的是一種在設(shè)計(jì)、開(kāi)發(fā)和應(yīng)用過(guò)程中,能夠確保其可靠性、安全性、公正性、透明性和可解釋性的人工智能系統(tǒng)。未來(lái)的可信人工智能研究將著眼于改進(jìn)算法設(shè)計(jì)、加強(qiáng)安全措施、采用隱私保護(hù)技術(shù)、消除數(shù)據(jù)偏見(jiàn)以及提高模型的可解釋性等方面,以逐步實(shí)現(xiàn)可信人工智能更高的目標(biāo)。1.4.2
人工智能的發(fā)展趨勢(shì)2.多模態(tài)大模型多模態(tài)大模型能夠處理和理解多種不同類(lèi)型的數(shù)據(jù),如文本、圖像、聲音和視頻等,以實(shí)現(xiàn)更加自然的人機(jī)交互。目前多模態(tài)大模型已取得較好的成果。1.4.2
人工智能的發(fā)展趨勢(shì)3.人機(jī)協(xié)作與交互機(jī)器依賴(lài)人類(lèi)的反饋和指導(dǎo),不斷調(diào)整其策略,實(shí)現(xiàn)更個(gè)性化的服務(wù)和更高效的用戶體驗(yàn)。未來(lái)的人機(jī)協(xié)作與交互研究將致力于提升機(jī)器對(duì)人類(lèi)意圖和行為的理解能力,推動(dòng)系統(tǒng)通過(guò)自適應(yīng)學(xué)習(xí)不斷優(yōu)化與用戶的互動(dòng)。同時(shí),研究將更加注重人機(jī)協(xié)作過(guò)程的透明性和可解釋性,以增強(qiáng)用戶的信任感,并解決數(shù)據(jù)隱私和倫理問(wèn)題,以確保協(xié)作系統(tǒng)的安全性和社會(huì)可接受性。4.具身機(jī)器人具身機(jī)器人(EmbodiedRobotics)的核心是通過(guò)物理實(shí)體(機(jī)器人)在真實(shí)環(huán)境中的感知、行動(dòng)與交互,實(shí)現(xiàn)智能的具身化。與傳統(tǒng)工業(yè)機(jī)器人(依賴(lài)預(yù)設(shè)程序完成重復(fù)任務(wù))不同,具身機(jī)器人強(qiáng)調(diào)通過(guò)自主學(xué)習(xí)適應(yīng)動(dòng)態(tài)環(huán)境,具備“感知-決策-執(zhí)行”的閉環(huán)能力,是人工智能從虛擬模型走向現(xiàn)實(shí)世界的關(guān)鍵載體。4.具身機(jī)器人(1)核心技術(shù)①
具身智能(EmbodiedIntelligence):具身智能是指具有身體并支持與物理世界進(jìn)行交互的智能體,如機(jī)器人、無(wú)人車(chē)等。②
大模型賦能:通過(guò)多模態(tài)大模型處理傳感數(shù)據(jù),由大模型生成運(yùn)動(dòng)指令,并對(duì)機(jī)器人進(jìn)行驅(qū)動(dòng)。③
物理交互能力:突破傳統(tǒng)機(jī)器人“剛性控制”局限,融合軟體機(jī)器人、自適應(yīng)抓取算法(如基于視覺(jué)的多指靈巧操作),實(shí)現(xiàn)對(duì)易碎物體(如雞蛋)、非規(guī)則物體(如衣物)的安全操作。4.具身機(jī)器人(2)關(guān)鍵應(yīng)用場(chǎng)景①
家庭與服務(wù)機(jī)器人:具備自主導(dǎo)航、物體識(shí)別、人機(jī)協(xié)作能力的家用機(jī)器人。②
工業(yè)與物流自動(dòng)化:具身機(jī)器人通過(guò)視覺(jué)感知實(shí)時(shí)調(diào)整抓取策略,適應(yīng)多品種小批量生產(chǎn)需求。③
災(zāi)難救援與極端環(huán)境檢測(cè):通過(guò)地形自適應(yīng)算法穿越復(fù)雜廢墟,依賴(lài)實(shí)時(shí)環(huán)境建模與路徑規(guī)劃技術(shù)降低人工風(fēng)險(xiǎn)。4.具身機(jī)器人(3)挑戰(zhàn)與未來(lái)方向①感知與決策的魯棒性:研發(fā)更魯棒的多模態(tài)融合算法,結(jié)合監(jiān)督學(xué)習(xí)提升模型泛化能力。②能耗與機(jī)動(dòng)性平衡:在電池技術(shù)、運(yùn)動(dòng)控制算法(如能量?jī)?yōu)化步態(tài)規(guī)劃)上有所突破。③倫理與安全性:機(jī)器人避免物理交互中的意外傷害,同時(shí)解決自主決策的責(zé)任歸屬問(wèn)題。④從“任務(wù)專(zhuān)用”到“通用智能”:需構(gòu)建跨任務(wù)遷移能力,讓機(jī)器人快速掌握新技能。1.5
人工智能的研究?jī)?nèi)容與主要技術(shù)1.5.1
人工智能的研究?jī)?nèi)容1.認(rèn)知建模認(rèn)知建模通過(guò)構(gòu)建不同層次的模型來(lái)模擬人類(lèi)對(duì)現(xiàn)實(shí)世界進(jìn)行認(rèn)知的過(guò)程,包括感知與注意、知識(shí)表示、記憶與學(xué)習(xí)、語(yǔ)言、問(wèn)題求解和推理等方面。2.知識(shí)表示知識(shí)表示把知識(shí)客體中的知識(shí)因子與知識(shí)關(guān)聯(lián)起來(lái),便于人們識(shí)別和理解知識(shí)。1.5.1
人工智能的研究?jī)?nèi)容3.智能感知智能感知研究如何用機(jī)器模擬、延伸和擴(kuò)展人的感知或認(rèn)知能力,包括機(jī)器視覺(jué)、機(jī)器聽(tīng)覺(jué)、機(jī)器觸覺(jué)等,其中以視覺(jué)和聽(tīng)覺(jué)為主。4.智能推理智能推理是指計(jì)算機(jī)利用感知獲得的信息,通過(guò)一系列邏輯推理和智能算法的處理,以求解問(wèn)題并做出決策。5.智能行動(dòng)在智能行動(dòng)中,人工智能系統(tǒng)可以根據(jù)不同的情境和需求,自主地制定和執(zhí)行任務(wù),以實(shí)現(xiàn)智能化、自動(dòng)化的操作。1.5.2
人工智能主要技術(shù)1.計(jì)算機(jī)視覺(jué)計(jì)算機(jī)視覺(jué)(ComputerVision,CV)是使用計(jì)算機(jī)及相關(guān)設(shè)備對(duì)生物視覺(jué)的一種模擬。2.語(yǔ)音處理語(yǔ)音處理是以語(yǔ)音信號(hào)為主要研究對(duì)象,涵蓋語(yǔ)音識(shí)別、語(yǔ)音合成以及語(yǔ)音理解等技術(shù)的總稱(chēng)。1.5.2
人工智能主要技術(shù)3.自然語(yǔ)言處理自然語(yǔ)言處理是機(jī)器通過(guò)對(duì)字、詞、句、篇章的輸入、輸出、識(shí)別、分析、理解、生成等的操作和加工,實(shí)現(xiàn)人機(jī)信息交流。自然語(yǔ)言處理的應(yīng)用主要包括機(jī)器翻譯、信息檢索、自動(dòng)問(wèn)答、文本分類(lèi)和信息提取等。4.機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)(Machine
Learning)是將訓(xùn)練數(shù)據(jù)輸入學(xué)習(xí)算法,由學(xué)習(xí)算法根據(jù)輸入的數(shù)據(jù)生成計(jì)算模型,再將另一組測(cè)試數(shù)據(jù)輸入計(jì)算模型,由該計(jì)算模型輸出判斷結(jié)果的過(guò)程。1.5.2
人工智能主要技術(shù)5.智能機(jī)器人智能機(jī)器人是一種能夠感知環(huán)境、理解語(yǔ)言、處理信息、做出決策并執(zhí)行操作,從而完成各種復(fù)雜任務(wù)的機(jī)器人。THEEND謝謝第2章
人工智能開(kāi)發(fā)工具與平臺(tái)CONTENTS目錄2.1
Python與人工智能應(yīng)用2.2
Python的數(shù)據(jù)描述2.3
Python程序流程控制2.4
函數(shù)2.5
文件操作2.6
Python人工智能應(yīng)用生態(tài)2.1
Python與人工智能應(yīng)用2.1.1
Python語(yǔ)言的特點(diǎn)1.簡(jiǎn)潔、優(yōu)雅的語(yǔ)法編寫(xiě)一個(gè)Python程序沒(méi)有太多的語(yǔ)法細(xì)節(jié)和規(guī)則要求,使得初學(xué)者可以從語(yǔ)法細(xì)節(jié)中擺脫出來(lái)。2.豐富的庫(kù)資源Python擁有龐大的第三方庫(kù)生態(tài)系統(tǒng),為開(kāi)發(fā)者提供了強(qiáng)大的工具支持。2.1.1
Python語(yǔ)言的特點(diǎn)3.強(qiáng)大的數(shù)據(jù)處理能力NumPy、Pandas等庫(kù)為數(shù)值計(jì)算和數(shù)據(jù)分析提供了高效的支持,使得處理大規(guī)模數(shù)據(jù)集變得輕松快捷。4.活躍的社區(qū)支持Python擁有龐大的開(kāi)發(fā)者社區(qū),這些社區(qū)成員積極參與技術(shù)交流、分享經(jīng)驗(yàn)和解決問(wèn)題。2.1.1
Python語(yǔ)言的特點(diǎn)當(dāng)然Python語(yǔ)言也有它的局限性。相比其他一些語(yǔ)言(如C、C++語(yǔ)言)來(lái)說(shuō),Python程序的運(yùn)行速度比較慢,對(duì)于速度有著較高的要求的應(yīng)用,就要考慮Python是否能滿足需要。2.1.2
Python在人工智能中的應(yīng)用1.機(jī)器學(xué)習(xí)模型的開(kāi)發(fā)與訓(xùn)練Python的機(jī)器學(xué)習(xí)庫(kù)(如Scikit-learn)提供了豐富的算法實(shí)現(xiàn),使得開(kāi)發(fā)者能夠輕松構(gòu)建和訓(xùn)練各種機(jī)器學(xué)習(xí)模型。2.深度學(xué)習(xí)模型的構(gòu)建與部署Python的深度學(xué)習(xí)框架(如TensorFlow、PyTorch)為開(kāi)發(fā)者提供了強(qiáng)大的工具支持,使得構(gòu)建和訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)變得簡(jiǎn)單、直觀。2.1.2
Python在人工智能中的應(yīng)用3.?dāng)?shù)據(jù)處理與分析在人工智能項(xiàng)目中,數(shù)據(jù)處理與分析是至關(guān)重要的一環(huán)。4.?dāng)?shù)據(jù)可視化與交互Python的可視化庫(kù)(如Matplotlib、Seaborn)為開(kāi)發(fā)者提供了豐富的圖表和圖形展示功能,使得數(shù)據(jù)分析和模型評(píng)估的結(jié)果更加直觀易懂。2.1.3
Python編程的基本規(guī)則1.語(yǔ)句行和縮進(jìn)對(duì)齊Python通過(guò)縮進(jìn)對(duì)齊反映語(yǔ)句的邏輯關(guān)系,從而區(qū)分不同的語(yǔ)句塊。這是Python語(yǔ)言區(qū)別于其他語(yǔ)言的重要特點(diǎn)。2.多行語(yǔ)句如果語(yǔ)句行太長(zhǎng),可以使用反斜杠(\)將一行語(yǔ)句分為多行顯示。2.1.3
Python編程的基本規(guī)則3.Python注釋注釋的目的是對(duì)程序進(jìn)行補(bǔ)充解釋?zhuān)栽鰪?qiáng)程序的可讀性。此外,在程序調(diào)試階段,可以給這些語(yǔ)句加上注釋符號(hào),相當(dāng)于對(duì)這些語(yǔ)句進(jìn)行邏輯刪除。程序中的單行注釋采用#開(kāi)頭。2.1.3
Python編程的基本規(guī)則4.Python引號(hào)Python用單引號(hào)('),雙引號(hào)(")和三引號(hào)('''或""")來(lái)表示字符串,引號(hào)的開(kāi)始與結(jié)束必須使用相同的引號(hào)類(lèi)型。其中,三引號(hào)可以用于多行字符串。2.1.3
Python編程的基本規(guī)則5.Python幫助信息在Python解釋器提示符后輸入“help()”即可進(jìn)入幫助模式,此時(shí)在“help>”后輸入要查看的函數(shù)名、模塊名或其他主題信息便可看到相關(guān)文檔,直接按Enter鍵則退出幫助模式。如果需要查看某個(gè)內(nèi)容的幫助信息,可以直接使用help()函數(shù)。2.2
Python的數(shù)據(jù)描述2.2.1
變量與賦值1.變量的概念在Python中,任何類(lèi)型的數(shù)據(jù)都是一個(gè)對(duì)象。Python對(duì)象存儲(chǔ)在計(jì)算機(jī)的內(nèi)存中,不同的對(duì)象被分配不同的內(nèi)存單元。為了引用對(duì)象就需要給對(duì)象附加一個(gè)名字,Python中稱(chēng)其為變量。2.2.1
變量與賦值2.Python變量的賦值當(dāng)給變量賦值時(shí),Python解釋器首先為該值分配一個(gè)內(nèi)存單元(創(chuàng)建一個(gè)對(duì)象),然后把該對(duì)象關(guān)聯(lián)到該變量,也可以稱(chēng)該變量指向這個(gè)內(nèi)存單元。Python具有自動(dòng)內(nèi)存管理功能,對(duì)于沒(méi)有任何變量指向的值(稱(chēng)為垃圾數(shù)據(jù)),Python系統(tǒng)自動(dòng)將其刪除。2.2.1
變量與賦值3.Python標(biāo)識(shí)符標(biāo)識(shí)符(Identifier)主要用來(lái)表示變量、函數(shù)、類(lèi)型等程序要素的名字。記住以下規(guī)則。①標(biāo)識(shí)符由字母、數(shù)字和下畫(huà)線(_)組成,且必須以字母或下畫(huà)線開(kāi)頭,不能以數(shù)字開(kāi)頭。②標(biāo)識(shí)符中的字母是區(qū)分大小寫(xiě)的。③不要使用具有特殊用途的Python關(guān)鍵字作為標(biāo)識(shí)符,也不要用Python的內(nèi)置數(shù)據(jù)類(lèi)型、函數(shù)名作為標(biāo)識(shí)符。2.2.2
Python數(shù)據(jù)類(lèi)型1.基本數(shù)據(jù)類(lèi)型(1)數(shù)值數(shù)據(jù)類(lèi)型Python支持3種不同的數(shù)值數(shù)據(jù)類(lèi)型,包括整型(int)、浮點(diǎn)型(float)和復(fù)數(shù)型(complex)。Python的整型常量有4種表示形式:十進(jìn)制整數(shù)、二進(jìn)制整數(shù)(以數(shù)字0加字母b或B開(kāi)頭)、八進(jìn)制整數(shù)(以數(shù)字0加字母o或O開(kāi)頭)、十六進(jìn)制整數(shù)(以數(shù)字0加字母x或X開(kāi)頭)。1.基本數(shù)據(jù)類(lèi)型(1)數(shù)值數(shù)據(jù)類(lèi)型浮點(diǎn)型數(shù)據(jù)表示一個(gè)實(shí)數(shù),有兩種表示形式:十進(jìn)制小數(shù)形式、指數(shù)形式(用字母e或E表示以10為底的指數(shù))。復(fù)數(shù)型數(shù)據(jù)的形式為a+bJ,其中a是復(fù)數(shù)的實(shí)部,b是復(fù)數(shù)的虛部,J也可以是j(注意不是數(shù)學(xué)上的i)。1.基本數(shù)據(jù)類(lèi)型(2)字符串?dāng)?shù)據(jù)類(lèi)型在Python中,可以使用單引號(hào)、雙引號(hào)和三引號(hào)(3個(gè)單引號(hào)或3個(gè)雙引號(hào))三種分界符來(lái)表示字符串。當(dāng)字符串本身包含某種分界符時(shí),則可以使用其他的分界符。字符串中的字符有一個(gè)編號(hào),最左邊字符的編號(hào)為0,最右邊字符的編號(hào)比字符串的長(zhǎng)度小1。字符串變量名后接用方括號(hào)括起來(lái)的編號(hào)即可實(shí)現(xiàn)字符串的索引。1.基本數(shù)據(jù)類(lèi)型(2)字符串?dāng)?shù)據(jù)類(lèi)型除了常見(jiàn)的正向索引,Python字符串還支持反向索引,即負(fù)數(shù)索引,可以從最后一個(gè)元素開(kāi)始計(jì)數(shù),最后一個(gè)元素的索引是-1,倒數(shù)第二個(gè)元素的索引是-2,以此類(lèi)推。與字符串有關(guān)的一個(gè)重要函數(shù)是eval()函數(shù),其調(diào)用格式為eval(字符串)eval()函數(shù)的作用是將字符串的內(nèi)容作為對(duì)應(yīng)的Python表達(dá)式來(lái)求值。1.基本數(shù)據(jù)類(lèi)型(3)布爾數(shù)據(jù)類(lèi)型布爾數(shù)據(jù)類(lèi)型(bool)用于描述邏輯判斷的結(jié)果,具有真和假兩個(gè)值。在Python中,布爾型數(shù)據(jù)有True和False,分別代表真和假。在Python中,邏輯值True和False實(shí)際上是分別用整型值1和0參與運(yùn)算。2.2.2
Python數(shù)據(jù)類(lèi)型2.復(fù)合數(shù)據(jù)類(lèi)型列表、元組、字典和集合等類(lèi)型的數(shù)據(jù)包含多個(gè)相互關(guān)聯(lián)的數(shù)據(jù)元素,所以稱(chēng)它們?yōu)閺?fù)合數(shù)據(jù)類(lèi)型。字符串其實(shí)也是一種復(fù)合數(shù)據(jù)類(lèi)型。字符串、列表和元組是有序的對(duì)象集合,稱(chēng)為序列。序列中的每個(gè)元素被分配一個(gè)代表元素位置的序號(hào),稱(chēng)為索引(index),可以通過(guò)索引來(lái)訪問(wèn)序列的元素。2.復(fù)合數(shù)據(jù)類(lèi)型
(1)列表列表(list)是寫(xiě)在方括號(hào)之間、用逗號(hào)分隔的元素序列。元素的類(lèi)型可以不相同,可以是數(shù)字、單個(gè)字符、字符串甚至列表(嵌套)。例如:>>>mlist=['brenden',591,'kevin',632]
#創(chuàng)建列表mlist與Python字符串不同的是,列表中的元素是可以改變的。還可以使用append()方法在列表末尾添加元素。2.復(fù)合數(shù)據(jù)類(lèi)型(2)元組元組(tuple)是寫(xiě)在圓括號(hào)之間、用逗號(hào)隔開(kāi)的元素序列。元組中的元素類(lèi)型也可以不相同。元組與列表類(lèi)似,不同之處在于元組的元素不能修改,相當(dāng)于只讀列表。例如:>>>mtuple=('brenden',591,'kevin',632)2.復(fù)合數(shù)據(jù)類(lèi)型(3)字典字典(dictionary)是寫(xiě)在花括號(hào)之間、用逗號(hào)分隔的元素集合,其元素由“關(guān)鍵字:值”對(duì)組成,通過(guò)關(guān)鍵字來(lái)存取字典中的元素。例如:>>>mdict={'name':'brenden','score':591}
2.復(fù)合數(shù)據(jù)類(lèi)型(4)集合集合(set)是一個(gè)無(wú)序且包含不重復(fù)元素的數(shù)據(jù)類(lèi)型。其基本功能是進(jìn)行成員關(guān)系測(cè)試和消除重復(fù)元素??梢允褂没ɡㄌ?hào)或者set()函數(shù)創(chuàng)建集合。>>>mset
={'apple','banana','pear','strawberry','peach','banana'}2.2.3
常用系統(tǒng)函數(shù)1.模塊的導(dǎo)入在調(diào)用模塊庫(kù)函數(shù)之前,先使用import語(yǔ)句導(dǎo)入相應(yīng)的模塊,格式為import模塊名另外還有一種導(dǎo)入模塊的方法,格式為from模塊名import函數(shù)名如果希望導(dǎo)入模塊中的所有函數(shù)定義,則函數(shù)名用“*”,格式為from模塊名
import*2.2.3
常用系統(tǒng)函數(shù)2.常用內(nèi)置函數(shù)(1)range()函數(shù)range()函數(shù)產(chǎn)生一個(gè)整數(shù)序列,常用于for循環(huán)語(yǔ)句,一般調(diào)用格式為range([start,]end[,step])其中,start、end、step都要求為整數(shù)。range()函數(shù)返回的是一個(gè)可迭代對(duì)象(range對(duì)象),可以用list()函數(shù)或tuple()函數(shù)將其轉(zhuǎn)換成列表或元組的形式。2.常用內(nèi)置函數(shù)(2)常用的數(shù)值運(yùn)算函數(shù)①
abs(x)函數(shù):返回x的絕對(duì)值,x為復(fù)數(shù)時(shí)返回復(fù)數(shù)的模。②pow(x,y[,
z])函數(shù):在省略z時(shí),返回x的y次冪。如果使用了參數(shù)z,其結(jié)果是x的y次冪再對(duì)z求余數(shù)。③round(x[,
n])函數(shù):用于對(duì)浮點(diǎn)數(shù)進(jìn)行四舍五入運(yùn)算。如果不提供小數(shù)位參數(shù)n,它返回與第一個(gè)參數(shù)最接近的整數(shù),但仍然是浮點(diǎn)類(lèi)型。第二個(gè)參數(shù)告訴round()函數(shù)將結(jié)果精確到小數(shù)點(diǎn)后幾位。2.2.3
常用系統(tǒng)函數(shù)3.math模塊函數(shù)①
e:返回自然對(duì)數(shù)的底。②
pi:返回圓周率π的值。③
fabs(x)函數(shù):返回x的絕對(duì)值(返回值為浮點(diǎn)數(shù))。④
sqrt(x)函數(shù):返回x的平方根(x>0)。⑤
pow(x,y)函數(shù):返回x的y次冪。3.math模塊函數(shù)⑥
exp(x)函數(shù):返回e(自然對(duì)數(shù)的底)的x次冪。⑦
log(x[,base])函數(shù):返回x的自然對(duì)數(shù),可以使用base參數(shù)來(lái)改變對(duì)數(shù)的底。⑧
sin(x)函數(shù):返回x的正弦值(x為弧度)。⑨
asin(x)函數(shù):返回x的反正弦值(返回值為弧度)。2.2.4
基本運(yùn)算與表達(dá)式表達(dá)式(Expression)是將運(yùn)算量用運(yùn)算符連接起來(lái)組成的式子,其中的運(yùn)算量可以是常量、變量或函數(shù)。1.算術(shù)運(yùn)算Python的算術(shù)運(yùn)算符有:+(加)、-(減)、*(乘)、/(除)、//(整除)、%(求余)、**(乘方)“/”運(yùn)算符做一般意義上的除法運(yùn)算;“//”運(yùn)算符做除法運(yùn)算后返回商的整數(shù)部分;“%”運(yùn)算符做除法運(yùn)算后返回余數(shù)。1.算術(shù)運(yùn)算使用取整、求余等運(yùn)算可以進(jìn)行整除的判斷、分離整數(shù)的各位數(shù)字,這些技巧在程序設(shè)計(jì)過(guò)程中是很有用的?!?*”運(yùn)算符用于實(shí)現(xiàn)乘方運(yùn)算。乘方運(yùn)算優(yōu)先級(jí)高于乘除運(yùn)算,而乘除運(yùn)算優(yōu)先級(jí)高于加減運(yùn)算。1.算術(shù)運(yùn)算例2-1
在Python環(huán)境下計(jì)算并比較下列兩個(gè)式子的值,從中體會(huì)“1%的力量”。(1+1%)365(1-1%)365分析:式子中涉及乘方運(yùn)算,在Python中可以有不同的實(shí)現(xiàn)方法,包括使用乘方運(yùn)算符、內(nèi)置函數(shù)pow()、math模塊的函數(shù)pow()。注意:內(nèi)置函數(shù)可以直接調(diào)用,而模塊庫(kù)函數(shù)要先導(dǎo)入模塊再調(diào)用。2.2.4
基本運(yùn)算與表達(dá)式2.關(guān)系運(yùn)算Python的關(guān)系運(yùn)算符有:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)。數(shù)值比較時(shí)按照值的大小進(jìn)行比較,而字符串比較時(shí)則按照字符編碼的大?。ㄎ魑淖址凑誂SCII大小)從左到右逐個(gè)進(jìn)行比較,直到出現(xiàn)不同的字符為止。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符的優(yōu)先級(jí)。2.關(guān)系運(yùn)算要注意“==”與“=”的區(qū)別,前者是“等于”判斷,后者是賦值。對(duì)浮點(diǎn)數(shù)要慎用“==”運(yùn)算符,恰當(dāng)?shù)霓k法是判斷兩個(gè)浮點(diǎn)數(shù)的差是否足夠?。ň唧w誤差可以根據(jù)實(shí)際情況進(jìn)行調(diào)整)。例2-2
兩個(gè)浮點(diǎn)數(shù)的“約等于”判斷。>>>x=2.2>>>abs((x
-
1.2)
-
1)
<=1e-6
#結(jié)果為T(mén)rue也可以使用math.isclose()函數(shù)來(lái)判斷兩數(shù)是否相近。>>>import
math>>>x=2.2>>>math.isclose((x-1.2),1)
#默認(rèn)rel_tol=1e-9True>>>math.isclose((x-1.2),1,rel_tol=1e-6)True2.2.4
基本運(yùn)算與表達(dá)式3.邏輯運(yùn)算Python的邏輯運(yùn)算符有:and(邏輯與)、or(邏輯或)、not(邏輯非)。在邏輯運(yùn)算符中,not的優(yōu)先級(jí)最高,其次是and,or的優(yōu)先級(jí)最低。判斷m能否被n整除,條件表達(dá)式為m
%n==0
m-
m//n*n==0
m-int(m/n)*n==0其中,int()是取整函數(shù)。2.3
程序流程控制2.3.1
簡(jiǎn)單的Python程序1.示例程序—溫度轉(zhuǎn)換器使用F表示華氏溫度,C表示攝氏溫度,轉(zhuǎn)換公式為用偽代碼描述:輸入攝氏溫度C計(jì)算華氏溫度F=(9/5)C+32輸出華氏溫度FPython程序如下。C=float(input('輸入攝氏溫度:'))F=9/5*C+32print('華氏溫度為',F)通常的編程思路是“輸入—處理—輸出”,即首先輸入(input)原始數(shù)據(jù),再對(duì)原始數(shù)據(jù)進(jìn)行處理(process),最后輸出(output)處理結(jié)果,這種思路也稱(chēng)作IPO模式。顯然,輸入和輸出是比較容易實(shí)現(xiàn)的,算法設(shè)計(jì)的重點(diǎn)是第二步,也就是如何對(duì)原始數(shù)據(jù)進(jìn)行處理。2.賦值語(yǔ)句(1)賦值語(yǔ)句的基本格式賦值語(yǔ)句的基本格式為變量=表達(dá)式(2)復(fù)合賦值Python還提供了復(fù)合賦值方式,例如:x*=u+v
等價(jià)于x=x*(u+v)從Python
3.8開(kāi)始,還增加了賦值運(yùn)算符“:=”。例如:>>>(x:=45)+6512.賦值語(yǔ)句(3)鏈?zhǔn)劫x值鏈?zhǔn)劫x值是指將同一個(gè)值賦給多個(gè)變量,一般格式為變量1=變量2=…
=變量n
=表達(dá)式2.賦值語(yǔ)句(4)同步賦值同步賦值是指用一個(gè)賦值號(hào)給多個(gè)變量分別賦值,一般格式為變量1,變量2,…,變量n
=表達(dá)式1,表達(dá)式2,…,表達(dá)式n同步賦值首先計(jì)算右側(cè)所有的表達(dá)式的值,創(chuàng)建一個(gè)元組對(duì)象(稱(chēng)為元組打包),然后將元組中的元素分別關(guān)聯(lián)到賦值號(hào)左側(cè)的變量(稱(chēng)為序列解包)。要交換a、b兩個(gè)變量的值,如果采用同步賦值,只需一條語(yǔ)句即可完成,即a,b=b,a。3.鍵盤(pán)輸入Python用內(nèi)置函數(shù)input()實(shí)現(xiàn)標(biāo)準(zhǔn)輸入,其調(diào)用格式為input([提示字符串])input()函數(shù)從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤(pán))讀取一行數(shù)據(jù),并返回一個(gè)字符串(去掉結(jié)尾的換行符)。input()函數(shù)把輸入的內(nèi)容當(dāng)作字符串,如果要輸入數(shù)值數(shù)據(jù),可以使用類(lèi)型轉(zhuǎn)換函數(shù)將字符串轉(zhuǎn)換為數(shù)值。3.鍵盤(pán)輸入使用input()函數(shù)可以給多個(gè)變量賦值。例如:>>>x,y=eval(input())語(yǔ)句執(zhí)行時(shí)從鍵盤(pán)輸入“3,4”,input()函數(shù)返回一個(gè)字符串“3,4”,經(jīng)過(guò)eval()函數(shù)處理,其變成由3和4組成的元組。4.屏幕輸出(1)基本輸出方法基本輸出方法是用print()函數(shù)輸出,其調(diào)用格式為print([輸出項(xiàng)1,輸出項(xiàng)2,…,輸出項(xiàng)n][,sep=分隔符][,end=結(jié)束符])例如:>>>print(10,20,sep=',',end='*')10,20*4.屏幕輸出(2)格式輸出方法一種常見(jiàn)的格式輸出方法是利用格式化字符串常量(FormattedStringLiterals,f-string)輸出。f-string以f或F開(kāi)頭,并將各個(gè)輸出項(xiàng)直接放入字符串中的花括號(hào)({})中,在程序執(zhí)行時(shí),直接在相應(yīng)位置輸出。例如:>>>a=100>>>b=3.145>>>print(f'a={a:5d},b={b:5.2f}')a=
100,b=3.15例2-3
從鍵盤(pán)輸入一個(gè)3位整數(shù)n,輸出其逆序數(shù)m。例如,輸入n=127,則m=721。分析:程序分為以下3步。①輸入一個(gè)3位整數(shù)n。②求逆序數(shù)m。③輸出逆序數(shù)m。關(guān)鍵在第②步。2.3.2
實(shí)現(xiàn)選擇判斷1.示例程序—溫度警告C=float(input('輸入攝氏溫度:'))F=9/5*C+32print('華氏溫度為',F)ifF>90:
print("炎熱天氣")ifF<30:
print("寒冷天氣")2.實(shí)現(xiàn)選擇判斷的if語(yǔ)句Python提供了實(shí)現(xiàn)選擇判斷的if語(yǔ)句,可分為單分支、雙分支和多分支三種情況。(1)單分支if語(yǔ)句一般格式為if條件表達(dá)式:
語(yǔ)句塊
注意:①if語(yǔ)句的條件表達(dá)式后面必須加冒號(hào)(:)。②條件表達(dá)式可以是任意表達(dá)式。③條件表達(dá)式后面的語(yǔ)句塊必須向右縮進(jìn),語(yǔ)句塊可以是一條簡(jiǎn)單語(yǔ)句,也可以包括多條簡(jiǎn)單語(yǔ)句。(2)雙分支if語(yǔ)句一般格式為if條件表達(dá)式:
語(yǔ)句塊1else:
語(yǔ)句塊2例2-4
輸入三角形的三個(gè)邊長(zhǎng),求三角形的面積。分析:構(gòu)成三角形的充分必要條件是任意兩邊之和大于第三邊,即a+b>c,a+c>b,b+c>a,其中a、b、c是三角形的三個(gè)邊長(zhǎng)。如果上述條件成立,則可按照海倫公式計(jì)算三角形的面積:其中,p=(a+b+c)/2。例2-5
輸入x,求對(duì)應(yīng)的函數(shù)值。分析:可以看出,這是一個(gè)具有兩條分支的分段函數(shù),為了求函數(shù)值,可以采用雙分支結(jié)構(gòu)來(lái)實(shí)現(xiàn)。還可以采用單分支結(jié)構(gòu)來(lái)實(shí)現(xiàn)。(3)多分支if語(yǔ)句一般格式為if條件表達(dá)式1:
語(yǔ)句塊1elif條件表達(dá)式2:
語(yǔ)句塊2elif條件表達(dá)式3:
語(yǔ)句塊3
…elif條件表達(dá)式m:
語(yǔ)句塊m[else:
語(yǔ)句塊n]例2-6
輸入兩個(gè)數(shù),比較它們的大小并輸出其中較大者。分析:兩個(gè)數(shù)的大小關(guān)系有3種情況:兩數(shù)相等、第1個(gè)數(shù)大于第2個(gè)數(shù)、第1個(gè)數(shù)小于第2個(gè)數(shù)。程序有3條分支,可以用3個(gè)單分支結(jié)構(gòu)實(shí)現(xiàn),也可以用多分支結(jié)構(gòu)實(shí)現(xiàn)。2.3.3
控制重復(fù)操作1.示例程序—攝氏溫度與華氏溫度對(duì)照表C=0whileC<=100:
F=9/5*C+32
print(C,F)
C=C+10print('攝氏度','\t','華氏度')forCinrange(0,101,10):
F=9/5*C+32
print(C,'\t',F)2.while語(yǔ)句一般格式為while條件表達(dá)式:
語(yǔ)句塊求p=5!,用while語(yǔ)句描述如下。p=i=1whilei
<=5:
p*=i
i
+=1例2-7
求兩個(gè)正整數(shù)m和n的最大公約數(shù)。分析:根據(jù)歐幾里得算法,問(wèn)題可以通過(guò)反復(fù)執(zhí)行以下兩步操作來(lái)求解。第1步:m除以n,得到余數(shù)r。第2步:若r等于0,則n就是最大公約數(shù);否則將n賦值給m,r賦值給n,返回到第1步。也可以利用math模塊的gcd()函數(shù)求最大公約數(shù)。>>>importmath>>>math.gcd(896,84)28例2-8
輸入一個(gè)正整數(shù),輸出其位數(shù)。分析:輸入的正整數(shù)存入變量n中,用變量k來(lái)統(tǒng)計(jì)n的位數(shù),基本思路是通過(guò)循環(huán)和除法操作來(lái)計(jì)算位數(shù),每循環(huán)一次就去掉n的最低位數(shù)字,直到n為0。也可以通過(guò)將整數(shù)轉(zhuǎn)換為字符串,并計(jì)算其長(zhǎng)度來(lái)確定位數(shù)。3.for語(yǔ)句for語(yǔ)句的首行定義了一個(gè)目標(biāo)變量以及遍歷的序列對(duì)象,后面是需要重復(fù)執(zhí)行的語(yǔ)句塊。語(yǔ)句塊中的語(yǔ)句要向右縮進(jìn),且縮進(jìn)量要一致。一般格式為for目標(biāo)變量in序列對(duì)象:
語(yǔ)句塊例2-9
打印出一個(gè)列表中的所有元素。分析:首先創(chuàng)建一個(gè)包含4種水果名稱(chēng)的列表,然后使用for語(yǔ)句遍歷這個(gè)列表,并打印出每個(gè)元素。fruits=["蘋(píng)果","香蕉","草莓","葡萄","獼猴桃"]forfruitinfruits:
#使用for語(yǔ)句遍歷列表并打印每個(gè)元素
print(fruit)例2-10
利用蒙特卡羅法求圓周率π。分析:設(shè)四分之一正方形的面積為s1,四分之一內(nèi)切單位圓的面積為s2,假設(shè)均勻隨機(jī)地往正方形中投點(diǎn),如果投入四分之一正方形中的點(diǎn)數(shù)為m,其中落入四分之一內(nèi)切單位圓的點(diǎn)數(shù)為n,這時(shí)有所以,可求得s2=ns1/m。將s1=1,s2=π/4代入公式,得π=4n/m。所投的點(diǎn)落在圓內(nèi)的條件是x2+y2≤1。4.列表推導(dǎo)式列表推導(dǎo)式也稱(chēng)列表解析式,它的基本形式是一個(gè)方括號(hào)里面包含一個(gè)for語(yǔ)句對(duì)一個(gè)可迭代對(duì)象進(jìn)行迭代。例如>>>squares=[i**2foriinrange(1,11)]>>>print(squares)[1,4,9,16,25,36,49,64,81,100]4.列表推導(dǎo)式在列表推導(dǎo)式中,可以增加測(cè)試語(yǔ)句和嵌套for語(yǔ)句,其一般格式為[表達(dá)式
for目標(biāo)變量1in序列對(duì)象1[if條件1]
…for目標(biāo)變量n
in序列對(duì)象n
[if條件n]]>>>[xforxinrange(11)ifx%2==0]
#x取0~10之間的偶數(shù)[0,2,4,6,8,10]>>>[(x,y)forxinrange(5)ifx%2==0foryinrange(5)ify%2==1][(0,1),(0,3),(2,1),(2,3),(4,1),(4,3)]例2-11
所謂水仙花數(shù),是指這樣的一些3位整數(shù):各位數(shù)字的立方和等于該數(shù)本身,例如,153=13+53+33,因此153是水仙花數(shù)。用列表推導(dǎo)式輸出全部水仙花數(shù)。分析:設(shè)m代表一個(gè)3位整數(shù),用內(nèi)置函數(shù)str()將m轉(zhuǎn)換成字符串,列表推導(dǎo)式[int(i)**3foriinstr(m)]得到的是每位數(shù)字的立方組成的列表,sum()對(duì)列表求和后和m進(jìn)行比較,即判斷出水仙花數(shù)。
5.循環(huán)結(jié)構(gòu)的其他語(yǔ)句循環(huán)結(jié)構(gòu)中常用的其他語(yǔ)句如下。①
break語(yǔ)句。退出循環(huán),執(zhí)行循環(huán)結(jié)構(gòu)的下一條語(yǔ)句。②
continue語(yǔ)句。跳過(guò)本次循環(huán)體的余下語(yǔ)句,繼續(xù)下一次循環(huán)。③pass語(yǔ)句。不執(zhí)行任何操作,其作用是滿足語(yǔ)法上的要求。④循環(huán)語(yǔ)句的else子句。while語(yǔ)句或for語(yǔ)句正常結(jié)束后,執(zhí)行else子句后面的語(yǔ)句塊。2.4
函數(shù)2.4.1
函數(shù)的定義與調(diào)用1.函數(shù)的定義一般形式為def
函數(shù)名([形式參數(shù)表]):
函數(shù)體2.4.1
函數(shù)的定義與調(diào)用2.函數(shù)的調(diào)用一般形式為函數(shù)名(實(shí)際參數(shù)表)例如,程序文件ftest.py的內(nèi)容如下。defMyArea(x,y):
s=x*y
returnsprint(MyArea(10,5))2.4.2
兩類(lèi)特殊函數(shù)1.匿名函數(shù)的定義與調(diào)用可以使用lambda關(guān)鍵字來(lái)在同一行內(nèi)定義函數(shù),因?yàn)椴挥弥付ê瘮?shù)名,所以這個(gè)函數(shù)被稱(chēng)為匿名函數(shù),也稱(chēng)為lambda函數(shù),定義格式為lambda[參數(shù)1[,參數(shù)2,…,參數(shù)n]]:表達(dá)式匿名函數(shù)也是一個(gè)函數(shù)對(duì)象,可以把匿名函數(shù)賦值給一個(gè)變量,再利用變量來(lái)調(diào)用該函數(shù)。例如:>>>f=lambdax,y:x+y>>>f(5,10)152.4.2
兩類(lèi)特殊函數(shù)2.遞歸函數(shù)(1)遞歸的基本概念遞歸(Recursion)是指在連續(xù)執(zhí)行某一處理過(guò)程時(shí),該過(guò)程中的某一步要用到它自身的上一步或上幾步的結(jié)果。遞歸函數(shù)是指一個(gè)函數(shù)的函數(shù)體中又直接或間接地調(diào)用該函數(shù)本身的函數(shù)。n!的遞歸表示為2.4.2
兩類(lèi)特殊函數(shù)2.遞歸函數(shù)(2)遞歸函數(shù)的調(diào)用過(guò)程deffac(n):
ifn<=1:
return1
else:
returnn*fac(n-1)m=fac(3)print(m)2.5
文件操作2.5.1
文件的打開(kāi)與關(guān)閉1.open()函數(shù)一般調(diào)用格式為文件對(duì)象=open(文件說(shuō)明符[,打開(kāi)方式][,緩沖區(qū)])文件操作方式符的含義如下。(1)用“r”方式打開(kāi)文件時(shí),只能從文件向內(nèi)存輸入數(shù)據(jù),而不能從內(nèi)存向該文件寫(xiě)數(shù)據(jù)。(2)用“w”方式打開(kāi)文件時(shí),只能從內(nèi)存向該文件寫(xiě)數(shù)據(jù),而不能從文件向內(nèi)存輸入數(shù)據(jù)。(3)如果希望向一個(gè)已經(jīng)存在的文件的尾部添加新數(shù)據(jù)(保留原文件中已有的數(shù)據(jù)),則應(yīng)用“a”方式打開(kāi)。(4)用“r+”“w+”“a+”方式打開(kāi)的文件可以寫(xiě)入和讀取數(shù)據(jù)。2.關(guān)閉文件用文件對(duì)象的close()方法關(guān)閉文件,其調(diào)用格式為close()close()方法用于關(guān)閉已打開(kāi)的文件,將緩沖區(qū)中尚未存盤(pán)的數(shù)據(jù)寫(xiě)入磁盤(pán),并釋放文件對(duì)象。2.5.2
文本文件的操作1.文本文件的讀?。?)read()方法read()方法的用法如下。變量=文件對(duì)象.read()read()方法也可以帶有參數(shù),其用法如下。變量=文件對(duì)象.read(count)1.文本文件的讀?。?)readline()方法readline()方法的用法如下。變量=文件對(duì)象.readline()(3)readlines()方法readlines()方法的用法如下。變量=文件對(duì)象.readlines()2.5.2
文本文件的操作2.文本文件的寫(xiě)入(1)write()方法write()方法的用法如下。文件對(duì)象.write(字符串)(2)writelines()方法writelines()方法的用法如下。文件對(duì)象.writelines(字符串元素的列表)2.6
Python人工智能應(yīng)用生態(tài)2.6.1
NumPy庫(kù)的應(yīng)用1.第三方庫(kù)的安裝先進(jìn)入Windows命令提示符界面,再在網(wǎng)絡(luò)連接狀態(tài)下按以下格式輸入命令。pipinstall第三方庫(kù)的名字以安裝NumPy庫(kù)為例,命令如下。C:\>pipinstallnumpy2.6.1
NumPy庫(kù)的應(yīng)用1.第三方庫(kù)的安裝第三方庫(kù)安裝好了以后,需要導(dǎo)入才能使用,導(dǎo)入方法和標(biāo)準(zhǔn)模塊庫(kù)導(dǎo)入方法一樣。>>>import
numpyas
np2.NumPy數(shù)組的操作(1)創(chuàng)建NumPy數(shù)組可以使用array()函數(shù)由Python的序列對(duì)象創(chuàng)建NumPy數(shù)組,NumPy數(shù)組可以直接參與各種運(yùn)算,運(yùn)算結(jié)果也是數(shù)組,這為批量數(shù)據(jù)的計(jì)算和處理帶來(lái)方便。>>>importnumpyasnp>>>x
=np.array([1,2,3,4])
#創(chuàng)建一個(gè)一維數(shù)組>>>y=np.sin(x)
#求x各個(gè)點(diǎn)的正弦函數(shù)值y>>>y
#y也是一個(gè)一維數(shù)組array([0.84147098,
0.90929743,
0.14112001,-0.7568025])注意:Python的math庫(kù)也能實(shí)現(xiàn)各種函數(shù)運(yùn)算,但和NumPy庫(kù)函數(shù)不同,math庫(kù)函數(shù)的參數(shù)只能是單個(gè)數(shù)值,不能是列表或元組。2.NumPy數(shù)組的操作(2)創(chuàng)建一維數(shù)組的兩個(gè)常用函數(shù)NumPy庫(kù)中的arange()函數(shù)和linspace()函數(shù)可以創(chuàng)建一維數(shù)組,一般調(diào)用格式為arange([start,]end[,step])linspace(start,end[,num=50][,endpoint=True])(3)數(shù)據(jù)統(tǒng)計(jì)函數(shù)NumPy庫(kù)還提供了許多數(shù)據(jù)統(tǒng)計(jì)函數(shù),包括求和函數(shù)sum()、求平均值函數(shù)mean()、求積函數(shù)prod()、求最大值函數(shù)max()、求最小值函數(shù)min()等。3.利用NumPy庫(kù)求定積分常用的方法有:(1)用小矩形代替小曲邊梯形,求出各個(gè)小矩形的面積,然后累加。此種方法稱(chēng)為矩形法。(2)用小梯形代替小曲邊梯形。此種方法稱(chēng)為梯形法。(3)用拋物線代替該區(qū)間內(nèi)的f(x),然后求出拋物線與x=a+(i-1)h,x=a+ih,y=0圍成的小曲邊梯形面積。此種方法稱(chēng)為辛普生法。以梯形法為例,求定積分的問(wèn)題變成了求n個(gè)梯形面積之和的問(wèn)題,如圖所示。3.利用NumPy庫(kù)求定積分3.利用NumPy庫(kù)求定積分求定積分的問(wèn)題就是求n個(gè)面積之和的問(wèn)題,所以可以利用NumPy的數(shù)組計(jì)算功能來(lái)求定積分。此外,NumPy還提供了trapezoid()函數(shù)來(lái)求定積分,基本的調(diào)用格式為trapezoid(y,x)其中,x為自變量向量,y為對(duì)應(yīng)的函數(shù)值向量。x省略時(shí),采用均勻間隔。例如:例2-12
求以下定積分。分析:采用梯形積分法,步驟如下。①產(chǎn)生積分區(qū)間內(nèi)的一個(gè)具有n+1個(gè)元素的一維數(shù)組,并求各點(diǎn)的被積函數(shù)值。②
構(gòu)造求n個(gè)梯形面積的表達(dá)式(這一步是關(guān)鍵)。③
求n個(gè)梯形面積之和。2.6.2
Matplotlib繪圖1.示例程序—繪制函數(shù)曲線繪制y=f(x)函數(shù)曲線大致的步驟如下。①安裝并導(dǎo)入NumPy,以便利用NumPy的數(shù)組運(yùn)算求自變量數(shù)組和函數(shù)值數(shù)組,為繪圖準(zhǔn)備數(shù)據(jù)。②安裝并導(dǎo)入Matplotlib,以便利用Matplotlib的繪圖函數(shù)來(lái)繪圖。③調(diào)用NumPy的arange()函數(shù)或linspace()函數(shù)生成自變量數(shù)組x(橫坐標(biāo)向量)。2.6.2
Matplotlib繪圖1.示例程序—繪制函數(shù)曲線④根據(jù)函數(shù)表達(dá)式求函數(shù)值數(shù)組y(縱坐標(biāo)向量)。⑤調(diào)用Matplotlib的pyplot子庫(kù)中的plot函數(shù)繪制函數(shù)曲線。⑥調(diào)用pyplot子庫(kù)中的show函數(shù),顯示圖形。2.Matplotlib二維繪圖pyplot是Matplotlib的子庫(kù),使用pyplot子庫(kù)可快速地繪制二維圖形。繪圖之前要先導(dǎo)入pyplot子庫(kù),格式為importmatplotlib.pyplotasplt(1)創(chuàng)建圖形窗口對(duì)象(figure對(duì)象)使用pyplot子庫(kù)的figure函數(shù)創(chuàng)建圖形窗口對(duì)象,基本調(diào)用格式為figure([num,figsize])2.Matplotlib二維繪圖(2)繪制二維曲線使用pyplot子庫(kù)的plot()函數(shù)可繪制二維曲線,調(diào)用格式為plot(x,y,label,color,linewidth,linestyle)plot(x,y,fmt,label)2.Matplotlib二維繪圖(3)圖形標(biāo)注與顯示使用pyplot子庫(kù)中的相關(guān)函數(shù)來(lái)實(shí)現(xiàn)。①
xlabel()、ylabel()函數(shù):在當(dāng)前圖形中指定x軸和y軸的名稱(chēng)。②
title()函數(shù):在當(dāng)前圖形中指定圖形的標(biāo)題名稱(chēng)。③
xlim()、ylim()函數(shù):指定當(dāng)前圖形x軸和y軸的范圍。④
legend():指定當(dāng)前圖形的圖例,可以指定圖例的大小、位置和標(biāo)簽。⑤
show():顯示圖形。(4)創(chuàng)建子圖創(chuàng)建子圖可以使用subplot()函數(shù),調(diào)用格式為subplot(n,m,k)例2-13
創(chuàng)建4個(gè)子圖,前3個(gè)子圖分別繪制單位圓、y=-x和正方形,第4個(gè)子圖同時(shí)繪制單位圓和y=-x,并用五角星標(biāo)注交點(diǎn)。3.Matplotlib三維繪圖(1)創(chuàng)建三維坐標(biāo)軸對(duì)象繪制三維圖形需要先創(chuàng)建一個(gè)三維坐標(biāo)軸對(duì)象Axes3D,命令如下。frommatplotlibimportpyplotaspltfig=plt.figure()
#創(chuàng)建圖形窗口對(duì)象ax=plt.axes(projection='3d')
#創(chuàng)建三維坐標(biāo)軸對(duì)象創(chuàng)建三維坐標(biāo)軸對(duì)象也可以使用以下命令。ax=fig.add_subplot(111,
projection='3d')
#這種方法也可以畫(huà)多個(gè)子圖3.Matplotlib三維繪圖(2)繪制三維曲線使用Axes3D對(duì)象的plot函數(shù)可以繪制三維曲線,基本調(diào)用格式為plot(x,y,z)其中,x、y、z組成一組曲線的空間坐標(biāo),為長(zhǎng)度相同的一維數(shù)組。例2-14
數(shù)學(xué)中有各式各樣的曲線,螺旋線就是其中比較常見(jiàn)的一種,它是從一個(gè)固定點(diǎn)開(kāi)始向外逐圈旋繞而形成的曲線。圓柱螺旋曲線就像一個(gè)圓柱螺旋彈簧,其參數(shù)方程為其中,r為圓的半徑;a為常數(shù),決定螺旋線兩螺紋之間的距離;θ為參數(shù)。(3)繪制三維曲面①產(chǎn)生網(wǎng)格坐標(biāo)矩陣。調(diào)用NumPy的meshgrid()函數(shù)生成二維網(wǎng)格坐標(biāo)矩陣,調(diào)用格式為X,Y=meshgrid(x,y)②plot_surface函數(shù)。使用Axes3D對(duì)象的plot_surface函數(shù)可以繪制三維曲面,基本調(diào)用格式為plot_surface(X,Y,Z)③
繪制等高線圖。常用的函數(shù)有以下兩個(gè)。plt.contour()函數(shù)繪制線型等高線,生成由線條構(gòu)成的等高線圖(適合突出輪廓)。plt.contourf()函數(shù)繪制填充型等高線,用顏色填充等高區(qū)域(適合展示連續(xù)變化)。例如:plt.contourf(X,Y,Z,levels=10,cmap='viridis',alpha=0.7)例2-15
在[-8,8]×[-8,8]平面區(qū)域內(nèi)繪制曲面圖和等高線圖,高度z的計(jì)算公式為2.6.3
SciPy庫(kù)的應(yīng)用1.利用牛頓迭代法求一元方程的根牛頓迭代公式為例2-16
設(shè)f(x)=2x3-4x2+3x-7,初值取2.5,用牛頓迭代法求方程f(x)=0在初值點(diǎn)附近的實(shí)根,直到滿足|xn-xn-1|≤10-6為止。關(guān)于迭代初值x0的選取問(wèn)題,理論上可以證明,只要選取滿足條件f(x0)f"(x0)>0的初始值x0,就可保證牛頓迭代法收斂。當(dāng)然迭代初值不同,迭代的次數(shù)也就不同。用牛頓迭代法求一個(gè)正數(shù)a的平方根是有效的方法,可將牛頓迭代法用于解方程f(x)=x2-a=0,得到迭代公式:2.利用SciPy求一元方程的根scipy.optimiz子模塊的fsolve()函數(shù)和root()函數(shù)都可以用來(lái)求一元函數(shù)的根,它們的基本調(diào)用格式為fsolve(func,x0)root(func,x0)
例2-17
SciPy求2x3-4x2+3x-7=0在x=2.5附近的根。分析:分別用fsolve()函數(shù)和root()函數(shù)對(duì)方程進(jìn)行求解。THEEND謝謝第3章
計(jì)算系統(tǒng)
—從單機(jī)到智能生態(tài)CONTENTS目錄3.1
單機(jī)系統(tǒng)3.2
計(jì)算機(jī)中數(shù)據(jù)的表示3.3
網(wǎng)絡(luò)系統(tǒng)3.4
云計(jì)算服務(wù)3.5
物聯(lián)網(wǎng)技術(shù)3.1
單機(jī)系統(tǒng)3.1.1
計(jì)算機(jī)系統(tǒng)的組成1.計(jì)算機(jī)硬件系統(tǒng)計(jì)算機(jī)的硬件組成遵循馮·諾依曼體系結(jié)構(gòu),由控制器、運(yùn)算器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備5個(gè)基本部分組成。1.計(jì)算機(jī)硬件系統(tǒng)(1)運(yùn)算器運(yùn)算器又稱(chēng)算術(shù)邏輯單元(ArithmeticLogicUnit,ALU),它接收由內(nèi)存儲(chǔ)器送到的二進(jìn)制數(shù)據(jù)并對(duì)其進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。(2)控制器控制器是整個(gè)計(jì)算機(jī)的控制中心,由指令寄存器(Instruction
Register,IR)、指令計(jì)數(shù)器(Program
Counter,PC)、地址寄存器(AddressRegister,AR)、指令譯碼器(Instruction
Decode,ID)、時(shí)序信號(hào)發(fā)生器、微操作控制部件和中斷處理部件組成。運(yùn)算器和控制器在結(jié)構(gòu)關(guān)系上非常密切,它們之間有大量信息頻繁地進(jìn)行交換,共用一些寄存器單元,因此將運(yùn)算器和控制器合稱(chēng)為中央處理器(CentralProcessingUnit,CPU)。(3)存儲(chǔ)器從馮·諾依曼計(jì)算機(jī)體系結(jié)構(gòu)的角度來(lái)看,存儲(chǔ)器由內(nèi)存儲(chǔ)器和外存儲(chǔ)器兩個(gè)部分組成。①
內(nèi)存儲(chǔ)器。內(nèi)存儲(chǔ)器又稱(chēng)為主存儲(chǔ)器,簡(jiǎn)稱(chēng)內(nèi)存或主存,用于存放原始數(shù)據(jù)、程序以及計(jì)算機(jī)運(yùn)算結(jié)果。內(nèi)存可以與CPU直接進(jìn)行信息交換,其特點(diǎn)是運(yùn)行速度快,容量相對(duì)較小。CPU和內(nèi)存儲(chǔ)器合稱(chēng)為主機(jī)。(3)存儲(chǔ)器②外存儲(chǔ)器。外存儲(chǔ)器又稱(chēng)為輔助存儲(chǔ)器,簡(jiǎn)稱(chēng)外存或輔存。外存儲(chǔ)器是指計(jì)算機(jī)存儲(chǔ)系統(tǒng)中不直接向CPU提供程序和數(shù)據(jù)的各種存儲(chǔ)設(shè)備,用于彌補(bǔ)內(nèi)存容量的不足,屬于外部設(shè)備的范疇。③存儲(chǔ)容量。1KiloByte(KB)=1024B=210B1MegaByte(MB)=1024KB=220B1GigaByte(GB)=1024MB=230B1TeraByte(TB)=1024GB=240B1PetaByte(PB)=1024TB=250B1ExaByte(EB)=1024PB=260B1ZettaByte(ZB)=1024EB=270B1YottaByte(YB)=1024ZB=280B(4)輸入設(shè)備和輸出設(shè)備計(jì)算機(jī)中的輸入輸出(Input/Output,I/O)是相對(duì)于計(jì)算機(jī)主機(jī)而言的。從外部設(shè)備將信息(包括原始數(shù)據(jù)、程序等)傳送到計(jì)算機(jī)內(nèi)存儲(chǔ)器稱(chēng)為輸入,從計(jì)算機(jī)內(nèi)部向外部設(shè)備傳送信息稱(chēng)為輸出。2.計(jì)算機(jī)軟件系統(tǒng)一般來(lái)說(shuō),軟件是計(jì)算機(jī)程序以及與程序有關(guān)的各種文檔的總稱(chēng)。(1)系統(tǒng)軟件①操作系統(tǒng)。操作系統(tǒng)(OperatingSystem,OS)是為了控制和管理計(jì)算機(jī)的各種資源,以充分發(fā)揮計(jì)算機(jī)系統(tǒng)的工作效率和方便用戶使用計(jì)算機(jī)而配置的一種系統(tǒng)軟件。從資源管理的角度來(lái)看,操作系統(tǒng)主要用于對(duì)計(jì)算機(jī)系統(tǒng)資源進(jìn)行控制和管理。為此,操作系統(tǒng)具有四大功能:處理器管理、存儲(chǔ)管理、文件管理和設(shè)備管理。目前流行的操作系統(tǒng)除Windows之外,還有UNIX、Linux、MacOS、iOS、Android和華為鴻蒙系統(tǒng)等。(1)系統(tǒng)軟件②語(yǔ)言處理程序。程序設(shè)計(jì)語(yǔ)言分為機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言。機(jī)器語(yǔ)言程序能被計(jì)算機(jī)直接識(shí)別并執(zhí)行,但用匯編語(yǔ)言或高級(jí)語(yǔ)言編寫(xiě)的程序要經(jīng)過(guò)翻譯以后才能被計(jì)算機(jī)執(zhí)行,這種翻譯程序稱(chēng)為語(yǔ)言處理程序,包括匯編程序、解釋程序和編譯程序。(1)系統(tǒng)軟件③數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)(Database,DB)是指保存在計(jì)算機(jī)的存儲(chǔ)設(shè)備上、并按照某種數(shù)據(jù)模型組織起來(lái)的、可以被各種用戶或應(yīng)用共享的數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,DBMS)是指提供各種數(shù)據(jù)管理服務(wù)的計(jì)算機(jī)軟件系統(tǒng)。④支撐軟件。支撐軟件是用于支持軟件開(kāi)發(fā)、調(diào)試和維護(hù)的軟件。如編輯程序、連接程序和調(diào)試程序等。(2)應(yīng)用軟件應(yīng)用軟件是為滿足用戶不同領(lǐng)域、不同問(wèn)題的應(yīng)用要求而開(kāi)發(fā)的軟件。例如,辦公軟件、財(cái)務(wù)軟件、CAD軟件等。3.計(jì)算機(jī)硬件和軟件之間的關(guān)系計(jì)算機(jī)系統(tǒng)包括硬件系統(tǒng)和軟件系統(tǒng)兩大部分,其組成如圖所示。計(jì)算機(jī)硬件、軟件之間的關(guān)系。3.1.2
計(jì)算機(jī)的工作原理1.指令和程序計(jì)算機(jī)所能直接執(zhí)行的全部指令的集合,就是計(jì)算機(jī)的指令系統(tǒng)(InstructionSet)。以二進(jìn)制編碼表示的指令叫機(jī)器指令,它通常包括操作碼和操作數(shù)兩大部分,操作碼表示計(jì)算機(jī)執(zhí)行什么操作,操作數(shù)指明參加操作的數(shù)的本身或操作數(shù)所在的地址。計(jì)算機(jī)的解題程序必須用計(jì)算機(jī)能識(shí)別的語(yǔ)言來(lái)描述,因此程序是指令的有序集合,用指令描述的解題步驟就叫程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 手機(jī)認(rèn)證協(xié)議書(shū)
- 活動(dòng)三方合同范本
- 芍藥種植協(xié)議書(shū)
- 苗木管理合同范本
- 螃蟹免責(zé)協(xié)議書(shū)
- 認(rèn)股協(xié)議書(shū)模板
- 讓律師寫(xiě)協(xié)議書(shū)
- 設(shè)備預(yù)埋協(xié)議書(shū)
- 試驗(yàn)協(xié)議書(shū)模板
- 慶典演出合同范本
- 湖北省十堰市竹溪縣2024年九年級(jí)化學(xué)第一學(xué)期期末達(dá)標(biāo)檢測(cè)試題含解析
- 醫(yī)院購(gòu)買(mǎi)電腦管理制度
- 編制竣工圖合同范本
- 新22J01 工程做法圖集
- 智慧樹(shù)知到《藝術(shù)與審美(北京大學(xué))》期末考試附答案
- 2024-2025學(xué)年上海市長(zhǎng)寧區(qū)初三一模語(yǔ)文試卷(含答案)
- 鋼管支撐強(qiáng)度及穩(wěn)定性驗(yàn)算
- 全國(guó)醫(yī)療服務(wù)項(xiàng)目技術(shù)規(guī)范
- 人教版六年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)教案
- 醫(yī)院公共衛(wèi)生事件應(yīng)急處理預(yù)案
- 智慧校園云平臺(tái)規(guī)劃建設(shè)方案
評(píng)論
0/150
提交評(píng)論