2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、1,數(shù)學(xué)軟件 Matlab,—— 編程基礎(chǔ)(腳本文件),2,本講主要內(nèi)容,M 文件 基本運算:算術(shù)、關(guān)系、邏輯 簡單的輸入輸出 控制結(jié)構(gòu):順序、選擇、循環(huán),3,Matlab 編程,Matlab 作為一種廣泛應(yīng)用于科學(xué)計算的工具軟件,不僅具有強大的數(shù)值計算能力和豐富的繪圖功能,同時也可以與 C、FORTRAN 等高級語言一樣進行程序設(shè)計 利用 Matlab 的程序控制功能,將相關(guān) Matlab 命令編成程序存儲在一個文件中(M 文

2、件),然后在命令窗口中運行該文件,Matlab 就會自動依次執(zhí)行文件中的命令,直到全部命令執(zhí)行完畢 在 Matlab 程序設(shè)計中,要充分利用 Matlab 數(shù)據(jù)結(jié)構(gòu)的特點,提高編程效率,Matlab 編程,4,用 Matlab 語言編寫的程序稱為 M 文件 M 文件以 .m 為擴展名 M 文件是由若干 Matlab 命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實現(xiàn)某種算法,M 文件分類(根據(jù)調(diào)用方式的不同),Script:腳本

3、文件/命令文件 Function:函數(shù)文件,M 文件,M 文件介紹,5,M 文件的創(chuàng)建的與編輯,M 文件,新建一個 M 文件,菜單操作 ( File ? New ? Script / Function) 命令操作 ( edit M 文件名 ) 命令按鈕 ( 快捷鍵 ),,,M 文件是文本文件,可以用任何文本編輯器來建立和編輯,通常使用 Matlab 自帶的 M 文件編輯器,6,編程示例,編程方式:新建一個 M 文件,將上面的內(nèi)容輸

4、入到該文件中,然后在命令窗口中輸入該文件名,即可執(zhí)行,例:用 mesh 繪制半徑為 3 的球,命令行方式:,u=[0:pi/60:2*pi]; v=[0:pi/60:pi]; R=3; [U,V]=meshgrid(u,v);X=R*sin(V).*cos(U); Y=R*sin(V).*sin(U); Z=R*cos(V); mesh(X,Y,Z);axis equal;,注:M 文件的命名規(guī)則與變量相同!,7,在命

5、令窗口中輸入 f2c,即可執(zhí)行該 M 文件,例:編寫M文件,將華氏溫度轉(zhuǎn)化為攝氏溫度:,編程示例,clear; % 清除當(dāng)前工作空間中的所有變量f=input('Please input f:');c=5*(f-32)/9;fprintf('c=%g\n',c);,新建一個腳本文件 f2c.m,內(nèi)容如下:,腳本文件運行所產(chǎn)生的變量都駐留在 Matlab 當(dāng)前工作空間 百分號是注釋符 M文件必須

6、在當(dāng)前工作目錄下才能運行,8,本講主要內(nèi)容,M 文件 基本運算:算術(shù)(略)、關(guān)系、邏輯 簡單的輸入輸出 控制結(jié)構(gòu):順序、選擇、循環(huán),9,關(guān)系運算,比較大小,如果結(jié)論是 真 則返回 1 ,否則返回 0 注意 = = 與 = 的區(qū)別,可以對兩個同樣大小的數(shù)組進行比較運算,即對應(yīng)分量進行比較,結(jié)果為一個同樣大小的0-1數(shù)組 也可以對一個數(shù)組和一個標(biāo)量進行比較運算,此時標(biāo)量和數(shù)組中的每一個元素極限比較,結(jié)果也是一個0-1數(shù)組,關(guān)系運算

7、:比較大小,10,例:,關(guān)系運算舉例,2+2==4,A=[1 3 5; 2 0 6] B=[3 1 0; 2 4 6] A>=BB<4,x=pi^2<8,11,邏輯運算,邏輯運算,注意 &,| 與 &&,|| 的區(qū)別,例:,x=5;3<x<8 % ERROR3<x & x<8,12,邏輯運算,在 Matlab 中,0 表示 “假”,非零表示 “真

8、”,運算法則,13,all(x) % 邏輯與的推廣如果向量 X 中所有元素都非零,則返回 1,否則返回 0,若 x 為矩陣,則 any 和 all 按列運算,返回一個 0-1 向量,邏輯運算,邏輯運算函數(shù):all、any,any(x) % 邏輯或的推廣如果向量 X 中存在非零元素,則返回 1,否則返回 0,例:,A=[61 83 58 94 75]; % 學(xué)生成績all(A>=60) % 全部及格否?any(A&g

9、t;=90) % 有沒有90分以上的?,14,一些測試函數(shù),isfinite(5)isinf(5),測試函數(shù),例:,15,運算優(yōu)先級,,高,低,16,本講主要內(nèi)容,M 文件 基本運算:算術(shù)、關(guān)系、邏輯 簡單的輸入輸出 控制結(jié)構(gòu):順序、選擇、循環(huán),17,例:,x=input('Please input x: '),數(shù)據(jù)的輸入:input,x=input(提示信息),其中 提示信息 為字符串, 該命令要求用戶輸

10、入 x 的值 (可以是數(shù)或字符串),input,name=input('What''s your name? '),例:,輸入字符串時必須帶單引號 單引號的輸出:兩個連續(xù)的單引號,18,disp(x),輸出變量 x 的值,x 可以是數(shù)值矩陣或字符串 一次只能輸出一個變量的值,x=pi; B=[1 2 3; 4 5 6; 7 8 9];disp(x)disp(B),disp,數(shù)據(jù)的輸出:disp,s

11、tr='Hello, Tom!';disp(str),例:,19,fprintf,fprintf(fid, format, 變量列表),數(shù)據(jù)的格式化輸出,按指定的格式將變量的值輸出到屏幕或指定的文件中 fid 為文件句柄,若缺省,則輸出到屏幕上 format 用來指定數(shù)據(jù)輸出時采用的格式,包含: 普通字符串、格式字符串、轉(zhuǎn)義字符,,格式字符串:以 % 開頭,包括:,flags (可選) Width and

12、 precision fields (域?qū)捄途?,可選) Conversion character (格式說明符,必須),20,fprintf 舉例,fprintf('a= %-12.5f \n', pi),,,以 % 開頭,,flag,,field width,,,precision,,,,格式說明符,,- :左對齊+ :輸出符號0 :空白處添 0空格:前面加一空格,,字段寬度,,指

13、定小數(shù)點后位數(shù),,格式字符串示例,,21,fprintf,常用的格式說明符,常用的轉(zhuǎn)義字符,22,fprintf 舉例,a='Hello'; b=2.4; c=100*pi;fprintf('a=%s, b=%f, c=%e\n',a,b,c),例:,格式字符串與輸出變量要一一對應(yīng)!,可以只輸出一個字符串,fprintf('Today is Tuesday!\n'),例:,fprintf

14、('pi=%12.5f=\n', pi)fprintf('pi=%-12.5f=\n', pi)fprintf('pi=%012.5f=\n', pi),例:,23,本講主要內(nèi)容,M 文件 基本運算:算術(shù)、關(guān)系、邏輯 簡單的輸入輸出 控制結(jié)構(gòu):順序、選擇、循環(huán),24,程序控制結(jié)構(gòu)有三種:,M文件控制流,順序結(jié)構(gòu),順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),任何復(fù)雜的程序都由這三種基本結(jié)構(gòu)組成,

15、25,選擇結(jié)構(gòu),選擇結(jié)構(gòu),選擇結(jié)構(gòu)的實現(xiàn),if 語句 switch 語句,根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句,26,單分支 if 語句,if 條件表達(dá)式 語句組end,if 條件語句,if 條件表達(dá)式 語句組1else 語句組2end,雙分支 if 語句,例:,if score>=60 mark='passed';end,例:,if a>b x=a;els

16、e x=b;end,27,if 條件表達(dá)式1 語句組1elseif 條件表達(dá)式2 語句組2 ... ... elseif 條件表達(dá)式m 語句組melse 語句組end,多分支 if 語句,if 條件語句,例:計算一個數(shù)符號,if x>0 sign_of_x=1;elseif x<0 sign_of_x=-1;elseif x==0 sign_of_x=0;el

17、se disp('I dont know!')end,28,根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語句,switch 表達(dá)式0 case 表達(dá)式1 語句組1 case 表達(dá)式2 語句組2 ... ... case 表達(dá)式m 語句組m otherwise 語句組end,switch 語句,先計算表達(dá)式0的值,

18、然后將它依次與各個 case 指令后表達(dá)式的值進行比較,當(dāng)兩者一樣時,就執(zhí)行相應(yīng)語句組,然后跳出 switch 結(jié)構(gòu) switch 后面的表達(dá)式0的值可以是一個數(shù)或字符串 otherwise 指令可以不出現(xiàn) 如果所有的比較都不匹配時,執(zhí)行 otherwise 后面的語句組,29,switch 舉例,例:,score=input('請輸入你的得分(A~E):');switch score case '

19、;A' disp('90—100'); case 'B' disp('80—89'); case 'C' disp('70—79'); case 'D' disp('60—69'); otherwise disp('Sorry!');end,30

20、,循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)的實現(xiàn),for 語句 while 語句,根據(jù)給定的條件,重復(fù)執(zhí)行指定的語句,31,for 循環(huán)變量 = 取值列表 循環(huán)體end,取值列表 通常是一個向量 將取值列表中的值依次賦給循環(huán)變量,直到全部取完, 循環(huán)結(jié)束,for 循環(huán),不要在循環(huán)體內(nèi)改變循環(huán)變量的值 為提高代碼的運行效率,應(yīng)盡可能提高代碼的向量化程度,for 循環(huán),32,for 循環(huán),y=0; n=100;for k=

21、1:n y=y+1/(2*k-1);end,例:,已知 ,當(dāng) n=100 時,求 y 的值,例:計算 s = 1 + 3 + 10 - 28 + 30 + 50 - 12 - 8,s=0; x=[1, 3, 10, -28, 30, 50, -12,-8];for k=x % 將 x 的分量依次賦值給循環(huán)變量 s=s+k;

22、end,33,循環(huán)語句可以嵌套使用 如果預(yù)先知道循環(huán)的次數(shù),可采用 for 循環(huán) 如果預(yù)先無法確定循環(huán)次數(shù),則可使用 while 循環(huán),while 循環(huán),while 條件表達(dá)式 循環(huán)體語句end,當(dāng)條件表達(dá)式的值為真(非 0)時, 執(zhí)行循環(huán)體語句, 直到條件表達(dá)式的值是假為止,while 循環(huán),,,,,,,,表達(dá)式,循環(huán)體語句,,真,假,,,,34,while 循環(huán),例:數(shù)論中的一個有趣問題:3n+1

23、 問題,任取一個正整數(shù),如果是偶數(shù),用 2 除,如果是奇數(shù),用 3 乘再加 1,反復(fù)這個過程,直到所得到的數(shù)為 1。問:是否存在使該過程永不中止的整數(shù)?,n=input('請輸入一個正整數(shù) n: ');x=n; while x>1 if mod(x,2)==0 x=x/2; else x=3*x+1; end fprintf(' x=%d \n', x);

24、end,ex4while01.m,35,這個例子給出了計算 eps 的一種方法。 這里我們用大寫 EPS,因此系統(tǒng)中 eps 的值不會被覆蓋。當(dāng) EPS=eps 時,條件仍成立;而當(dāng) EPS=eps/2 時,條件不成立,退出循環(huán),所以最后應(yīng)有 EPS=eps/2。k 用來記錄循環(huán)次數(shù)。,計算 Matlab 中 eps 值,while編程示例,k=0; EPS=1;while (1+EPS) > 1 EPS = E

25、PS/2; k = k+1;end,例:,ex4while02.m,36,循環(huán)的終止,循環(huán)的中斷,跳出循環(huán)體,終止循環(huán) break 只能跳出一層循環(huán),結(jié)束本輪循環(huán),執(zhí)行下一輪循環(huán),break,continue,break 和 continue 通常需要與 if 語句配合使用,若想強行終止運行中的程序,可以使用 Ctrl+c,37,pause,pause % 暫停程序的運行,按任意鍵后繼續(xù)pause(x) % 暫

26、停程序 x 秒,這里的 x 可以是小數(shù),pause off 屏蔽程序中所有 pause 的作用 pause on 打開 pause 的作用,程序暫停,返回/退出,退出正在運行的腳本或函數(shù),通常用在函數(shù)文件中,return,38,首先由計算機隨機產(chǎn)生一個 [1,100] 之間的一個整數(shù),然后由用戶猜測所產(chǎn)生的這個數(shù)。根據(jù)用戶猜測的情況給出不同的提示,如果猜測的數(shù)大于產(chǎn)生的數(shù),則顯示 Higher,小于則顯示 Lower,等于則顯示

27、 You won!同時退出游戲。用戶最多有 7 次機會,編程示例,猜數(shù)游戲,例:,ex4for.m,39,上機作業(yè),1、已知程序:,2、已知 sin(x) 的冪級數(shù)展開公式為,試?yán)迷摴接嬎?sin(?/2)和 sin(31?/2) 的值(直到級數(shù)某項的絕對值小于 10-16 為止),并與 Matlab 自帶的 sin 函數(shù)比較,誤差分別多大?為什么?,(程序取名 m52.m),(在程序中將最后兩個值輸出來,程序取名 m51.m 中

28、),試說明程序運行結(jié)束后,最后得到的 x 和倒數(shù)第二個 x 值分別為多少?,若將程序改為下面的語句,結(jié)果又如何?,x=1; while (x+x>x), x=2*x; end,x=1; while (x+x>x), x=x/2; end,40,上機作業(yè),3、用 while 循環(huán)實現(xiàn)猜數(shù)游戲 (程序取名 m53.m),從鍵盤輸入一個大于 1 的整數(shù),然后求出不超過這個整數(shù)的最大素數(shù)。(要求使用 for 循環(huán)和 if 語句

29、,可以使用 isprime 函數(shù)),5、編寫程序,實現(xiàn)下面的功能,4、編寫程序,用窮舉法找出 1~100間的所有素數(shù) (程序取名 m54.m,要求使用 while 循環(huán),不能使用 isprime 函數(shù)),(程序取名 m55.m),41,上機作業(yè),學(xué)生的成績有兩種表示方法:等級制和百分制。對應(yīng)關(guān)系如下:,(a) 要求從鍵盤輸入一個分?jǐn)?shù),然后輸出其對應(yīng)的等級,要求用 if 語句實現(xiàn),程序取名為:m56.m,請編寫程序,實現(xiàn)它們之間的

30、互換,即,(b) 從鍵盤輸入一個等級,然后輸出其對應(yīng)的分?jǐn)?shù)區(qū)間,要求用 switch 語句實現(xiàn),程序取名為:m57.m,注:輸入時要有提示,如 “請輸入成績(百分制):”,6、按下面的要求編寫程序,42,上機要求,將所有文件作為附件,通過 foxmail 以郵件形式發(fā)給 mhjs@system.mail郵件主題為:機號-學(xué)號-姓名,其中機號為 兩位數(shù)三個字段之間用英文狀態(tài)下的減號連接每個 M 文件的第一行添加一條注解

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論