第2講-MATLAB入門(計(jì)算藥物分析)課件_第1頁
第2講-MATLAB入門(計(jì)算藥物分析)課件_第2頁
第2講-MATLAB入門(計(jì)算藥物分析)課件_第3頁
第2講-MATLAB入門(計(jì)算藥物分析)課件_第4頁
第2講-MATLAB入門(計(jì)算藥物分析)課件_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

MATLAB簡(jiǎn)介MATLAB=MATrix

+

LABoratory

20世紀(jì)七十年代后期:時(shí)任美國(guó)新墨西哥大學(xué)計(jì)算機(jī)科學(xué)系主任的CleveMoler教授出于減輕學(xué)生編程負(fù)擔(dān)的動(dòng)機(jī),為學(xué)生設(shè)計(jì)了一組“通俗易用”的接口,此即用FORTRAN編寫的萌芽狀態(tài)的MATLAB。

MATLAB作為一種編程語言和可視化工具,可解決工程、科學(xué)計(jì)算和數(shù)學(xué)學(xué)科中許多問題。

MATLAB建立在向量、數(shù)組和矩陣的基礎(chǔ)上,使用方便,人機(jī)界面直觀,輸出結(jié)果可視化。矩陣是MATLAB的核心

強(qiáng)大的繪圖、計(jì)算和統(tǒng)計(jì)功能在歐美大學(xué)里,諸如應(yīng)用代數(shù)、數(shù)理統(tǒng)計(jì)、自動(dòng)控制、數(shù)字信號(hào)處理、模擬與數(shù)字通信、時(shí)間序列分析、動(dòng)態(tài)系統(tǒng)仿真等課程的教科書都把MATLAB作為內(nèi)容。這幾乎成了九十年代教科書與舊版書籍的區(qū)別性標(biāo)志。在那里,MATLAB是攻讀學(xué)位的大學(xué)生、碩士生、博士生必須掌握的基本工具。 在國(guó)際學(xué)術(shù)界,MATLAB已經(jīng)被確認(rèn)為準(zhǔn)確、可靠的科學(xué)計(jì)算標(biāo)準(zhǔn)軟件。在許多國(guó)際一流學(xué)術(shù)刊物上,(尤其是信息科學(xué)刊物),都可以看到MATLAB的應(yīng)用。

MATLAB作為線性系統(tǒng)的一種分析和仿真工具,是理工科大學(xué)生應(yīng)該掌握的技術(shù)工具,它作為一種編程語言和可視化工具,可解決工程、科學(xué)計(jì)算和數(shù)學(xué)學(xué)科中許多問題。

MATLAB建立在向量、數(shù)組和矩陣的基礎(chǔ)上,使用方便,人機(jī)界面直觀,輸出結(jié)果可視化。矩陣是MATLAB的核心

Matlab程序的特點(diǎn)1,提供了一種全新的編程語言,其語法規(guī)則簡(jiǎn)單,很貼近人的思維方式。2,Matlab語言還直接提供了強(qiáng)有力的繪圖指令。3,Matlab的運(yùn)算功能很強(qiáng),對(duì)化學(xué)計(jì)量學(xué)程序調(diào)試和編制有很大好處。4,Matlab語言在矩陣運(yùn)算的方面,顯得特別簡(jiǎn)捷、高效和方便。

應(yīng)用實(shí)例:1

簡(jiǎn)單的計(jì)算器使用法

【例1-1】求的算術(shù)運(yùn)算結(jié)果。

(1)用鍵盤在MATLAB指令窗中輸入以下內(nèi)容

>>(12+2*(7-4))/3^2

(2)在上述表達(dá)式輸入完成后,按【Enter】鍵,該就指令被執(zhí)行。

(3)在指令執(zhí)行后,MATLAB指令窗中將顯示以下結(jié)果。

ans=2

【例1-2】簡(jiǎn)單矩陣的輸入步驟。

(1)在鍵盤上輸入下列內(nèi)容

A=[1,2,3;4,5,6;7,8,9]

(2)按【Enter】鍵,指令被執(zhí)行。

(3)在指令執(zhí)行后,MATLAB指令窗中將顯示以下結(jié)果:

A=

123

456

789

【例1-3】矩陣的分行輸入

A=[1,2,3

4,5,6

7,8,9]

(以下是顯示結(jié)果)

A=

123

456

789

Matlab的基本運(yùn)算符(1)矩陣(算術(shù))運(yùn)算符A’表示矩陣A的轉(zhuǎn)置;A+B:表示矩陣A和B的和A*B:表示矩陣A和B的乘法A.*B:表示矩陣A和B的對(duì)應(yīng)元素相乘A..\B表示矩陣B的元素除以矩陣A的對(duì)應(yīng)元素

(2)矩陣的創(chuàng)建

a)顯示地輸入一個(gè)元素序列;b)用Matlab的內(nèi)部函數(shù)創(chuàng)建一個(gè)矩陣;c)在M文件中用Matlab語句創(chuàng)建一個(gè)矩陣;例:A=[1357;12353;3591]

創(chuàng)建矩陣。求解代數(shù)方程AX=B問題。教科書的基本敘述:當(dāng)行數(shù)等于列數(shù)(標(biāo)量)時(shí),X=A-1B;若行數(shù)大于列數(shù)滿秩陣,X=(A’A)-1A’B;若列數(shù)大于行數(shù)時(shí),有無數(shù)解。(A是非奇異矩陣),一般程序就必須按以上不同情況進(jìn)行編程。然而對(duì)MATLAB來說,那只需一條簡(jiǎn)單指令:x=A\b

。計(jì)算的快速性、準(zhǔn)確性和穩(wěn)定性是普通程序所遠(yuǎn)不及的。

Matlabprogram%Thisisanexampleofsolvinglinearequations!%UsingMatlablanguage.E=[1.50200.051400.04080.02611.151600.08200.03420.03552.5320.29330.03400.068400.3470]pauseA=[0.10130.099430.21940.03396]'pauseC=inv(E)*AorC=E\A

MATLAB入門一、變量與函數(shù)二、數(shù)組三、矩陣四、MATLAB編程

1、變量

MATLAB中變量的命名規(guī)則是:(1)變量名必須是不含空格的單個(gè)詞;(2)變量名區(qū)分大小寫;(3)變量名最多不超過19個(gè)字符;(4)變量名必須以字母打頭,之后可以是任意字母、數(shù)字或下劃線,變量名中不允許使用標(biāo)點(diǎn)符號(hào).

一、變量與函數(shù)特殊變量表2、數(shù)學(xué)運(yùn)算符號(hào)及標(biāo)點(diǎn)符號(hào)(1)MATLAB的每條命令后,若為逗號(hào)或無標(biāo)點(diǎn)符號(hào),則顯示命令的結(jié)果;若命令后為分號(hào),則禁止顯示結(jié)果.(2)“%”后面所有文字為注釋.(3)“...”表示續(xù)行.3、數(shù)學(xué)函數(shù)

MATLAB的內(nèi)部函數(shù)是有限的,有時(shí)為了研究某一個(gè)函數(shù)的各種性態(tài),需要為MATLAB定義新函數(shù),為此必須編寫函數(shù)文件.函數(shù)文件是文件名后綴為M的文件,這類文件的第一行必須是一特殊字符function開始,格式為:

function因變量名=函數(shù)名(自變量名)函數(shù)值的獲得必須通過具體的運(yùn)算實(shí)現(xiàn),并賦給因變量.

4、M文件M文件建立方法:1.在Matlab中,點(diǎn):File->New->M-file2.在編輯窗口中輸入程序內(nèi)容

3.點(diǎn):File->Save,存盤,M文件名必須與函數(shù)名一致。Matlab的應(yīng)用程序也以M文件保存。例:定義函數(shù)f(x1,x2)=100(x2-x12)2+(1-x1)2functionf=fun(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^21.建立M文件:fun.mMATLAB(fun)2.可以直接使用函數(shù)fun.m例如:計(jì)算f(1,2),只需在Matlab命令窗口鍵入命令:x=[12]fun(x)

返回x=logspace(first,last,n)

創(chuàng)建從開始,到結(jié)束,有n個(gè)元素的對(duì)數(shù)分隔行向量.1、創(chuàng)建簡(jiǎn)單的數(shù)組二、數(shù)組MATLAB(shuzu1)x=[abcdef]

創(chuàng)建包含指定元素的行向量x=first:last

創(chuàng)建從first開始,加1計(jì)數(shù),到last結(jié)束的行向量x=first:increment:last

創(chuàng)建從first開始,加increment計(jì)數(shù),last結(jié)束的行向量x=linspace(first,last,n)

創(chuàng)建從first開始,到last結(jié)束,有n個(gè)元素的行向量

2、數(shù)組元素的訪問MATLAB(shuzu2)(3)直接使用元素編址序號(hào).x([abcd])表示提取數(shù)組x的第a、b、c、d個(gè)元素構(gòu)成一個(gè)新的數(shù)組[x(a)x(b)x(c)x(d)].(2)訪問一塊元素:

x(a:b:c)表示訪問數(shù)組x的從第a個(gè)元素開始,以步長(zhǎng)為b到第c個(gè)元素(但不超過c),b可以為負(fù)數(shù),b缺損時(shí)為1.(1)訪問一個(gè)元素:

x(i)表示訪問數(shù)組x的第i個(gè)元素.

3、數(shù)組的方向

前面例子中的數(shù)組都是一行數(shù)列,是行方向分布的.稱之為行向量.數(shù)組也可以是列向量,它的數(shù)組操作和運(yùn)算與行向量是一樣的,唯一的區(qū)別是結(jié)果以列形式顯示.

產(chǎn)生列向量有兩種方法:直接產(chǎn)生例c=[1;2;3;4]

轉(zhuǎn)置產(chǎn)生例b=[1234];c=b’

說明:以空格或逗號(hào)分隔的元素指定的是不同列的元素,而以分號(hào)分隔的元素指定了不同行的元素.4、數(shù)組的運(yùn)算

(1)標(biāo)量-數(shù)組運(yùn)算數(shù)組對(duì)標(biāo)量的加、減、乘、除、乘方是數(shù)組的每個(gè)元素對(duì)該標(biāo)量施加相應(yīng)的加、減、乘、除、乘方運(yùn)算.設(shè):a=[a1,a2,…,an],c=標(biāo)量則:a+c=[a1+c,a2+c,…,an+c]a.*c=[a1*c,a2*c,…,an*c]a./c=[a1/c,a2/c,…,an/c](右除)

a.\c=[c/a1,c/a2,…,c/an](左除)

a.^c=[a1^c,a2^c,…,an^c]c.^a=[c^a1,c^a2,…,c^an]MATLAB(shuzu3)(2)數(shù)組-數(shù)組運(yùn)算

當(dāng)兩個(gè)數(shù)組有相同維數(shù)時(shí),加、減、乘、除、冪運(yùn)算可按元素對(duì)元素方式進(jìn)行的,不同大小或維數(shù)的數(shù)組是不能進(jìn)行運(yùn)算的.

設(shè):a=[a1,a2,…,an],b=[b1,b2,…,bn]則:a+b=[a1+b1,a2+b2,…,an+bn]a.*b=[a1*b1,a2*b2,…,an*bn]a./b=[a1/b1,a2/b2,…,an/bn]a.\b=[b1/a1,b2/a2,…,bn/an]a.^b=[a1^b1,a2^b2,…,an^bn]MATLAB(shuzu4)

返回2.控制指令:who;whos;clear【例2-1】用who檢查MATLAB內(nèi)存變量。 在指令窗中運(yùn)行以下指令,就可看到內(nèi)存變量。who

Yourvariablesare:

RYxy1XZyy2

【例2-2】鍵入whos

,獲得駐留變量的詳細(xì)情況:全部變量名,變量的數(shù)組維數(shù),占用字節(jié)數(shù),變量的類別(如雙精度)等。whos

NameSizeBytesClassR33x338712doublearrayX33x338712doublearrayY33x338712doublearrayZ33x338712doublearrayx1x33264doublearrayy33x1264doublearrayy11x18doublearrayy21x18doublearrayGrandtotalis4424elementsusing35392bytes

3.

save和load指令〖說明〗

如果一組數(shù)據(jù)是經(jīng)過長(zhǎng)時(shí)間的復(fù)雜計(jì)算后獲得的,那末為避免再次重復(fù)計(jì)算,常使用save加以保存。此后,每當(dāng)需要,都可通過load重新獲取這組數(shù)據(jù)。這種處理模式常在實(shí)際中被采用。(mkdir;cd;dir;save;load)【例3-1】數(shù)據(jù)的存取。(1)建立用戶目錄,并使之成為當(dāng)前目錄,保存數(shù)據(jù)mkdir('c:\','my_dir'); %在C盤上創(chuàng)建目錄my_dircdc:\my_dir%使c:\my_dir成為當(dāng)前目錄savesafXZ%選擇內(nèi)存中的X,Z變量保存為saf.mat文件dir %顯示目錄上的文件

...saf.mat

(2)清空內(nèi)存,從saf.mat

向內(nèi)存裝載變量Zclear %清除內(nèi)存中的全部變量loadsafZ %把saf.mat文件中的Z變量裝入內(nèi)存who %檢查內(nèi)存中有什么變量

Yourvariablesare:Z

4.Plot[例4-1]vector=linspace(0,8,100);values=2.^vector;clf;plot(vector,values);Plot(vector,values,’b-’)

[例4-2]繪制函數(shù)曲線。x=0:0.1:1 %定義自變量的采樣點(diǎn)取值數(shù)組y=x.*exp(-x)

%利用數(shù)組運(yùn)算計(jì)算各自變量采樣點(diǎn)上的函數(shù)值plot(x,y),xlabel(‘x’),ylabel(‘y’),title(‘y=x*exp(-x)’) %繪圖

[例4-3]vector2=2:0.5:8;[x,y]=meshgrid(vector2)mesh(x,y,2.^x+2.^y)surf(x,y,2.^x+2.^y)5、HELP

demo;helpwin;helpdesk…直接使用help獲得指令的使用說明【例4-1】假如準(zhǔn)確知道所要求助的主題詞,或指令名稱,那末使用help是獲得在線幫助的最簡(jiǎn)單有效的途徑。本例演示:關(guān)于矩陣對(duì)數(shù)函數(shù)

logm

使用說明的在線求助。helplogm

使用help指令進(jìn)行分類搜索【例4-2】運(yùn)行不帶任何限定的help,可以得到分類名稱明細(xì)表。help

三、矩陣

逗號(hào)或空格用于分隔某一行的元素,分號(hào)用于區(qū)分不同的行.除了分號(hào),在輸入矩陣時(shí),按Enter鍵也表示開始一新行.輸入矩陣時(shí),嚴(yán)格要求所有行有相同的列.

例m=[1234;5678;9101112]p=[111122223333]1、矩陣的建立特殊矩陣的建立:.MATLAB(matrix1)d=eye(m,n)產(chǎn)生一個(gè)m行、n列的單位矩陣c=ones(m,n)產(chǎn)生一個(gè)m行、n列的元素全為1的矩陣b=zeros(m,n)產(chǎn)生一個(gè)m行、n列的零矩陣a=[]產(chǎn)生一個(gè)空矩陣,當(dāng)對(duì)一項(xiàng)操作無結(jié)果時(shí),返回空矩陣,空矩陣的大小為零.2、矩陣中元素的操作MATLAB(matrix2)(1)矩陣A的第r行:A(r,:)(2)矩陣A的第r列:A(:,r)(4)取矩陣A的第i1~i2行、第j1~j2列構(gòu)成新矩陣:A(i1:i2,j1:j2)(5)以逆序提取矩陣A的第i1~i2行,構(gòu)成新矩陣:A(i2:-1:i1,:)(6)以逆序提取矩陣A的第j1~j2列,構(gòu)成新矩陣:A(:,j2:-1:j1

)(7)刪除A的第i1~i2行,構(gòu)成新矩陣:A(i1:i2,:)=[](8)刪除A的第j1~j2列,構(gòu)成新矩陣:A(:,j1:j2)=[](9)將矩陣A和B拼接成新矩陣:[AB];[A;B](3)依次提取矩陣A的每一列,將A拉伸為一個(gè)列向量:A(:)

(2)矩陣-矩陣運(yùn)算

[1]元素對(duì)元素的運(yùn)算,同數(shù)組-數(shù)組運(yùn)算。

3、矩陣的運(yùn)算(1)標(biāo)量-矩陣運(yùn)算

同標(biāo)量-數(shù)組運(yùn)算。MATLAB(matrix3)

[2]矩陣運(yùn)算:矩陣加法:A+B矩陣乘法:A*B方陣的行列式:det(A)方陣的逆:inv(A)方陣的特征值與特征向量:[V,D]=eig[A]

返回關(guān)系與邏輯運(yùn)算

1、關(guān)系操作符2、邏輯運(yùn)算符1、for循環(huán):允許一組命令以固定的和預(yù)定的次數(shù)重復(fù)

forx=array{commands}end

在for和end語句之間的命令串{commands}按數(shù)組(array)中的每一列執(zhí)行一次.在每一次迭代中,x被指定為數(shù)組的下一列,即在第n次循環(huán)中,x=array(:,n)控制流MATLAB提供三種決策或控制流結(jié)構(gòu):

for循環(huán)、while循環(huán)、if-else-end結(jié)構(gòu).

這些結(jié)構(gòu)經(jīng)常包含大量的MATLAB命令,故經(jīng)常出現(xiàn)在MATLAB程序中,而不是直接加在MATLAB提示符下.

例對(duì)n=1,2,…,10,求xn=的值MATLAB(for1)

whileexpression{commands}end

只要在表達(dá)式(expression)里的所有元素為真,就執(zhí)行while和end語句之間的命令串{commands}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論