版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)值分析方法面向“四新”人才培養(yǎng)普通高等教育系列教材主編
李冬果李林高磊首都醫(yī)科大學(xué)生物醫(yī)學(xué)工程學(xué)院智能醫(yī)學(xué)工程學(xué)學(xué)系第一章
計(jì)算技術(shù)基礎(chǔ)1.1泰勒公式1.2數(shù)值計(jì)算誤差1.3誤差分析與規(guī)避1.4數(shù)值計(jì)算中典型的算法設(shè)計(jì)技術(shù)1.5
Python語(yǔ)言簡(jiǎn)介
目錄/Contents
1.5Python語(yǔ)言簡(jiǎn)介1.5.1基本介紹Python官網(wǎng)/downloadspip或conda安裝,后者需要借助Anaconda等程序,Anaconda的官方下載網(wǎng)址為/Python的基本程序設(shè)計(jì)環(huán)境稱為Python整合開(kāi)發(fā)環(huán)境(PythonIntegratedDevelopmentEnvironment,IDLE)目前Python有很多的解釋器與整合開(kāi)發(fā)環(huán)境,除了官方的IDLE外,還有IPython,Spyder,PyCharm,JupyterNotebook等很多第三方軟件Spyder工作界面1.5.2語(yǔ)言基礎(chǔ)變量和賦值>>>x=1定義一個(gè)變量x,它的值就是1。在這里“=”是一個(gè)賦值(assignment)符號(hào),即將右側(cè)的值賦給了左側(cè)的變量。多個(gè)變量一起賦值:>>>a,b,c=1,2,3變量值交換:>>>a,b=b,a鏈?zhǔn)劫x值:>>>a=b=c=1增量賦值:>>>x+=2>>>x-=1>>>x*=2>>>x/=5數(shù)字類型:整型(int)浮點(diǎn)型(float)復(fù)數(shù)類型(complex)常見(jiàn)的數(shù)值運(yùn)算符:整除運(yùn)算:“//”取余運(yùn)算:“%”冪(乘方)運(yùn)算:“**”
其他數(shù)據(jù)類型:字符串(string)類型通過(guò)引號(hào)將一組字符包裹起來(lái)的方式定義,例如:>>>"Ilikemath!">>>"Let'slearnnumericalanalysis!">>>'我喜歡"數(shù)值分析“’和數(shù)值一樣,字符串也可以賦值給變量,例如:>>>name="張三"布爾(bool)類型布爾類型數(shù)據(jù)是Python進(jìn)行邏輯運(yùn)算的基礎(chǔ)。它只有兩個(gè)值:真(True)和假(False)。它們被用于返回一些判斷表達(dá)式的結(jié)果,例如:>>>5>4>>>5>=4>>>5==4>>>5<=4>>>5<4布爾型的變量的常見(jiàn)運(yùn)算包括:與“and”,或“or”,和非“not”,例如:>>>5>4and4>3>>>5>4and4<3>>>5>4or4<3>>>4>5or4<3>>>not(5>4)>>>not(4<3)函數(shù):數(shù)學(xué)運(yùn)算函數(shù):冪運(yùn)算函數(shù):pow(2,3);絕對(duì)值函數(shù):abs(-6);取整函數(shù):round(3.14)其他常用內(nèi)置函數(shù)type函數(shù):用于查詢變量的類型float函數(shù):把字符串或者整數(shù)參數(shù)返回為浮點(diǎn)數(shù)int函數(shù):把字符串或者浮點(diǎn)數(shù)返回為整數(shù)bool函數(shù):將數(shù)值(0為False,其他為True)或其他表達(dá)
式返還為布爾型變量str函數(shù):將參數(shù)返回為字符串。>>>x=1>>>type(x)<class'int'>>>>x=1.1>>>type(x)<class'float'>>>>x=1==1>>>type(x)<class'bool'>>>>float(1)1.0>>>float("3.14")3.14基本數(shù)據(jù)結(jié)構(gòu):列表(list):即列表中的每個(gè)元素都可以和一個(gè)自然數(shù)相對(duì)應(yīng),我們稱這個(gè)自然數(shù)為編號(hào)或索引(index)。在Python中可以用“[]”字符對(duì)來(lái)定義列表,列表中的元素用逗號(hào)“,”分隔,例如:>>>data_list_1=[1,2,3,4,5]>>>data_list_1[0]>>>max(data_list_1)5>>>min(data_list_1)1>>>sorted([2,1,5,4,3])[1,2,3,4,5]>>>sorted([2,1,5,4,3],reverse=True)[5,4,3,2,1]>>>complex_list_1=[1,"astring",[2,2]]>>>chr_list_1=list("abcdefghij")>>>chr_list_1['a','b','c','d','e','f','g','h','i','j']>>>chr_list_1[2:8]['c','d','e','f','g','h']>>>chr_list_1[2:]['c','d','e','f','g','h','i','j']>>>chr_list_1[:8]['a','b','c','d','e','f','g','h']>>>chr_list_1[:-2]['a','b','c','d','e','f','g','h']基本數(shù)據(jù)結(jié)構(gòu):元組(tuple):定義和列表很相似,最大的不同是元組是不能修改的。它的定義方式也很類似于列表,只是不用中括號(hào),而是用一對(duì)小括號(hào)“()”將元素包裹起來(lái)。例如:>>>data_tuple_1=(1,2,3)>>>empyty_tuple=()>>>one_element_tuple=(1,)集合(set):和數(shù)學(xué)上的定義一樣,集合中的元素是不重復(fù)的,因此集合可以很方便的獲取列表或元組的無(wú)重復(fù)子集。它的定義方式于列表很相似,不過(guò)包裹元素的不是中括號(hào)而是大括號(hào)“{}”,例如:>>>set1={1,1,2,2,3,3}>>>set1{1,2,3}>>>type(set1)<class'set'>>>>list1=[1,2,3]>>>tuple1=tuple(list1)>>>tuple1(1,2,3)>>>list2=list(tuple1)>>>list2[1,2,3]>>>set1={1,2,3,4}>>>set2={2,4,6,8}>>>set1|set2{1,2,3,4,6,8}>>>set1&set2{2,4}>>>set1-set2{1,3}>>>set1^set2{1,3,6,8}>>>set()|{1,2}{1,2}基本數(shù)據(jù)結(jié)構(gòu):字典(dictionary):字典的構(gòu)建方式與集合類似,由大括號(hào)“{}”將各項(xiàng)包裹起來(lái),用逗號(hào)“,”分割每一項(xiàng),但字典中每一項(xiàng)都要被冒號(hào)“:”分割為兩個(gè)部分,冒號(hào)左側(cè)為鍵,右側(cè)為值,例如:}>>>phone_book_dict={"張三":1001,"李四":1002,"王五":1003}>>>phone_book_dict["張三"]1001>>>phone_book_dict["李四"]1002>>>phone_book_dict["趙六"]=1004>>>phone_book_dict{'張三':1001,'李四':1002,'王五':1003,'趙六':1004}>>>dict1={}>>>dict1["key1"]=0.1>>>dict1["key2"]=0.2>>>dict1{'key1':0.1,'key2':0.2}>>>list1=[('key1',1),('key2',2),('key3',3)]>>>dict1=dict(list1)>>>dict1{'key1':1,'key2':2,'key3':3}條件語(yǔ)句在Python中,通過(guò)相同大小縮進(jìn)的方式來(lái)標(biāo)記這樣一組代碼,通常稱為語(yǔ)句塊。完整的條件語(yǔ)句結(jié)構(gòu)為:If條件1: 語(yǔ)句塊1elif條件2: 語(yǔ)句塊2……else: else語(yǔ)句塊x=int(input("Pleaseinputx:\n"))ifx%2==1:
y=x**2
print(f"xisaoddnumber,andy={y}")else:
y=0
print(f"xisaevennumber,y={y}")1.5.3程序設(shè)計(jì)基礎(chǔ)分別輸入x為1和2,有以下兩個(gè)結(jié)果:Pleaseinputx:1xisaoddnumber,andy=1
Pleaseinputx:2xisaevennumber,y=0elif子句是在需要對(duì)多個(gè)條件進(jìn)行判別并分別處理情況下所使用的一種子句,例如根據(jù)用戶輸入的月份,判斷該月的天數(shù):x=int(input("Pleaseinputthemonthyouwant:\n"))ifxin(1,3,5,7,8,10,12):
print("Thereare31days!")elifxin(4,6,9,11):
print("Thereare30days!")else:
print("Thereare28days!")其運(yùn)行結(jié)果如下:Pleaseinputthemonthyouwant:12Thereare31days!循環(huán)語(yǔ)句for循環(huán)變量in迭代對(duì)象:
循環(huán)語(yǔ)句塊list1=[1,3,2,4,5,6]evenlist=[]forkinlist1:
ifk%2==0:
evenlist.append(k)print(evenlist)while循環(huán)條件:
循環(huán)語(yǔ)句塊s=0k=1whilek<=100:
s+=k
k+=1print(f"Thesumofintegers
from
1to100is{s}")列表推導(dǎo)式[k**2forkinrange(10)]定義函數(shù)最簡(jiǎn)單的自定義函數(shù)可以不接收任何參數(shù):定義一個(gè)函數(shù),將輸入?yún)?shù)打印出來(lái):調(diào)用函數(shù)時(shí)提供的數(shù)據(jù)是不可變類型的數(shù)據(jù),函數(shù)對(duì)形式參數(shù)的操作不會(huì)影響函數(shù)外的變量defhello():
print("Hello!")defhello_to(name):
print("Hello!"+name)defplus_1(x):
x=x+1
print(x)定義了函數(shù)plus_1,如果在命令行中作如下操作:>>>x=5>>>plus_1(x)6>>>x5當(dāng)調(diào)用時(shí)的實(shí)際參數(shù)是一個(gè)列表時(shí),情況就有所變化,例如定義一個(gè)以列表為參數(shù)的函數(shù)add_1:defadd_1(list1):list1.append(10)print(list1)當(dāng)實(shí)際參數(shù)為一個(gè)列表時(shí),函數(shù)對(duì)參數(shù)的操作會(huì)影響函數(shù)外的變量,例如:>>>x=[1,2]>>>add_1(x)[1,2,10]>>>x[1,2,10]>>>x=[1,2]>>>add_1(x.copy())[1,2,10]>>>x[1,2]當(dāng)函數(shù)需要多個(gè)參數(shù)時(shí),可以在def語(yǔ)句的函數(shù)名后括號(hào)里依次加入?yún)?shù)變量,中間用逗號(hào)隔開(kāi)。例如可以定義兩個(gè)變量,求它們的商:defdiv_1(a,b):
print(a/b)則可以在控制臺(tái)中調(diào)用這個(gè)函數(shù):>>>div_1(1,2)0.5div_5=lambdaa,b:a/b>>>div_5(1,2)0.5腳本文件和模塊Python是一種腳本式語(yǔ)言,這意味著Python的程序不需要編譯,直接由解釋器就可以執(zhí)行。用戶可以將自定義的代碼存儲(chǔ)在計(jì)算機(jī)硬盤上一個(gè)文本文檔中,并使用Python的解釋器運(yùn)行此腳本文件。習(xí)慣上,Python的腳本文件以擴(kuò)展名“.py”結(jié)尾,因此也經(jīng)常被稱為py文件。Python腳本文件有很多作用,例如在Linux或MacOS系統(tǒng)中,經(jīng)過(guò)簡(jiǎn)單配置,一個(gè)Python腳本文件可以像普通程序一樣運(yùn)行,在Windows系統(tǒng)中,也可以利用Python解釋器或者整合開(kāi)發(fā)環(huán)境(IDE)來(lái)編輯和運(yùn)行腳本。在Python中調(diào)用模塊,可以使用import命令,例如在控制臺(tái)輸入:>>>importmath則math模塊就被導(dǎo)入環(huán)境,下面可以利用math模塊中的函數(shù)進(jìn)行運(yùn)算:>>>importmath>>>math.exp(1)2.718281828459045>>>math.log(10)2.302585092994046>>>math.sin(math.pi/2)1.0>>>help(math)Helponbuilt-inmodulemath:NAME
math
DESCRIPTION
Thismoduleprovidesaccesstothemathematicalfunctions
definedbytheCstandard.……>>>help(math.sin)Helponbuilt-infunctionsininmodulemath:
sin(x,/)
Returnthesineofx(measuredinradians).Python允許用戶使用別名,例如可以如下調(diào)用math工具包:>>>importmathasm>>>print(m.pi)3.141592653589793>>>m.cos(m.pi/6)0.8660254037844387>>>m.sqrt(3)/20.8660254037844386可以通過(guò)from和import命令直接將模塊中的函數(shù)或變量導(dǎo)入,例如>>>frommathimportpi,tan>>>tan(pi/4)0.9999999999999999可以使用通配符“*”將模塊中的全部?jī)?nèi)容導(dǎo)入,例如:>>>frommathimport*>>>radians(180)3.141592653589793Python提供了一些基本的模塊如獲取系統(tǒng)信息的sys模塊,訪問(wèn)操作系統(tǒng)的os模塊,進(jìn)行時(shí)間處理的time模塊,生成隨機(jī)數(shù)的random模塊等。NumPy工具包:可查閱/1.5.4常用工具包importnumpyasnarray1=np.array([1,3,5,7,9,11])array2=np.array([[1,3,5],[7,9,11]])>>>np.ndim(array1)1>>>np.ndim(array2)2>>>array1.shape(6,)>>>array2.shape(2,3)NumPy允許用戶在創(chuàng)建數(shù)組時(shí)指定數(shù)組中數(shù)據(jù)的類型>>>array3=np.array([[1,3,5],[7,9,11]],dtype=8)>>>array3array([[1,
3,
5],
[7,
9,11]],dtype=int8)NumPy還提供了很多函數(shù)用于生成數(shù)組>>>np.arange(5)array([0,1,2,3,4])>>>np.linspace(1,10,10)array([1.,2.,3.,4.,5.,6.,7.,8.,9.,10.])在NumPy中,為了標(biāo)記出于高維數(shù)組不同位置上的元素,引入了軸(axis)的概念。軸的個(gè)數(shù)對(duì)應(yīng)于數(shù)組維度數(shù),每個(gè)軸都是獨(dú)立的索引體系,利用軸可以對(duì)NumPy數(shù)組進(jìn)行一些更為細(xì)致的操作。>>>array2=np.array([[1,3,5],[7,9,11]])>>>array2array([[1,3,5],[7,9,11]])>>>array2[0,2]5>>>array2[0,:]array([1,3,5])>>>array2[:,2]array([5,11])>>>array2[1,::2]array([7,11])>>>array2[:,::2]array([[1,
5],
[7,11]])NumPy中數(shù)組的reshape方法可以用來(lái)修改矩陣“形狀”,>>>A=np.arange(6)>>>print(A)[012345]>>>B=A.reshape(2,3)>>>print(B)[[012]
[345]]>>>C=A.reshape(3,2)>>>print(C)[[01]
[23]
[45]]>>>D=A.reshape((3,2),order="F")>>>print(D)[[03]
[14]
[25]]如果只想用reshape方法控制某個(gè)軸方向上的元素?cái)?shù),其他方向可以用-1來(lái)標(biāo)志,如將上述A數(shù)組改為2行的數(shù)組,則可以使用如下命令:>>>B2=A.reshape((2,-1))>>>print(B2)[[012]
[345]]NumPy的使用者需要考慮將兩個(gè)或者更多的矩陣拼接到一起,例如在求解線性方程組時(shí)需要將系數(shù)矩陣和常數(shù)向量拼接稱為一個(gè)增廣矩陣。這時(shí)可以使用NumPy的hstack和vstack函數(shù)來(lái)在“水平”和“垂直”方向連接矩陣。>>>A=np.arange(0,4).reshape(2,2)>>>B=np.arange(4,8).reshape(2,2)>>>print(A)[[01]
[23]]>>>print(B)[[45]
[67]]>>>print(np.hstack((A,B)))[[0145]
[2367]]>>>print(np.vstack((A,B)))[[01]
[23]
[45]
[67]]SymPy工具包:可查閱/SymPy是針對(duì)符號(hào)計(jì)算問(wèn)題的Python工具包。它提供了針對(duì)各種符號(hào)計(jì)算問(wèn)題的計(jì)算機(jī)代數(shù)系統(tǒng)。對(duì)一般的代數(shù)運(yùn)算,微積分,代數(shù)方程和微分方程求解以及矩陣計(jì)算方面提供了全面而簡(jiǎn)單的解決工具。首先要導(dǎo)入工具包:>>>importsympyassp聲明符號(hào)變量:>>>x,y,z=sp.symbols("xyz")定義表達(dá)式erp1>>>epr1=x**2+4*x+3對(duì)epr1進(jìn)行因式分解:>>>sp.factor(epr1)(x+1)*(x+3)求解方程>>>sp.solve(epr1)[-3,-1]將x替換為1,求erp1的值>>>epr1.subs(x,1)8 將此值轉(zhuǎn)化為浮點(diǎn)數(shù)類型:>>>epr1.subs(x,1).evalf()8.00000000000000定義表達(dá)式erp2>>>epr2=(x+3)**3>>>sp.expand(epr2)x**3+9*x**2+27*x+27簡(jiǎn)化計(jì)算表達(dá)式:>>>sp.simplify(sp.cos(x)**2+sp.sin(x)**2)1>>>sp.simplify(1-2*sp.sin(x)**2)cos(2*x)>>>sp.simplify((x**2-y**2)/(x-y))x+y
matplotlib工具包:可查閱/Matplotlib工具包是一個(gè)全面的科學(xué)計(jì)算繪圖工具包。為各種科學(xué)圖形的繪制提供了工具,是
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年制衣面料供應(yīng)居間合同
- 2025版小企業(yè)合同管理規(guī)范與合同管理信息化解決方案3篇
- 2025年超額展覽會(huì)保險(xiǎn)條款
- 二零二五版新型環(huán)保建材采購(gòu)合同樣本2篇
- 2025版企事業(yè)單位食堂員工招聘與服務(wù)協(xié)議3篇
- 2024-2025年中國(guó)寬帶行業(yè)市場(chǎng)評(píng)估分析及投資發(fā)展盈利預(yù)測(cè)報(bào)告
- 2025版小額貸款合同簽訂中的合同簽訂中的合同簽訂前的準(zhǔn)備與協(xié)商3篇
- 二零二五年度門面房裝修工程設(shè)計(jì)與施工質(zhì)量監(jiān)理合同
- 2025版建筑行業(yè)設(shè)備托管正規(guī)范本3篇
- 二零二五年度游艇俱樂(lè)部船舶租賃售后服務(wù)合同
- 2024年高考語(yǔ)文備考之??甲骷易髌罚ㄏ拢褐袊?guó)現(xiàn)當(dāng)代、外國(guó)
- 《裝配式蒸壓加氣混凝土外墻板保溫系統(tǒng)構(gòu)造》中
- T-CSTM 01124-2024 油氣管道工程用工廠預(yù)制袖管三通
- 2019版新人教版高中英語(yǔ)必修+選擇性必修共7冊(cè)詞匯表匯總(帶音標(biāo))
- 新譯林版高中英語(yǔ)必修二全冊(cè)短語(yǔ)匯總
- 基于自適應(yīng)神經(jīng)網(wǎng)絡(luò)模糊推理系統(tǒng)的游客規(guī)模預(yù)測(cè)研究
- 河道保潔服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 品管圈(QCC)案例-縮短接臺(tái)手術(shù)送手術(shù)時(shí)間
- 精神科病程記錄
- 閱讀理解特訓(xùn)卷-英語(yǔ)四年級(jí)上冊(cè)譯林版三起含答案
- 清華大學(xué)考博英語(yǔ)歷年真題詳解
評(píng)論
0/150
提交評(píng)論