




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MATLAB與科學(xué)計(jì)算MATLAB與科學(xué)計(jì)算1一、前言MATLAB:matrixlaboratory的縮寫,矩陣實(shí)驗(yàn)室的意思。一開始它是一種專門用于矩陣數(shù)值計(jì)算的軟件。自MATLAB4.0版本問世以來,該軟件成為最具有吸引力,應(yīng)用最為廣泛的科學(xué)計(jì)算語言。我們這個(gè)課就拿MATLAB6.1版本來講。(6.x版本大同小異)一、前言MATLAB:matrixlaboratory的縮2學(xué)習(xí)該軟件的必要性:目前,MATLAB軟件不僅走入企業(yè)、公司和科研機(jī)構(gòu),而且在高等院校也是從大學(xué)生到博士生都必須掌握的一項(xiàng)基本技能,是必不可少的計(jì)算工具,。MATLAB功能:數(shù)值計(jì)算、符號(hào)運(yùn)算和圖形處理。學(xué)習(xí)該軟件的必要性:目前,MATLAB軟件不僅走入企業(yè)、公司3學(xué)習(xí)它的意義:隨著計(jì)算機(jī)科學(xué)和計(jì)算軟件的發(fā)展,數(shù)學(xué)系學(xué)生必須掌握一門好的計(jì)算軟件。這是我們就業(yè)、繼續(xù)身造或做科研工作所要用到的。是當(dāng)代大學(xué)生必備的一項(xiàng)技能。學(xué)習(xí)它的意義:隨著計(jì)算機(jī)科學(xué)和計(jì)算軟件的發(fā)展,數(shù)學(xué)系學(xué)生必須4其它計(jì)算軟件:MATHEMATIC(數(shù)學(xué)分析問題的計(jì)算);IDL(航天、控制),F(xiàn)OETRAN、BASIC(科學(xué)計(jì)算)。可以說一個(gè)人掌握了一門計(jì)算軟件,再學(xué)習(xí)其它計(jì)算軟件很容易。其它計(jì)算軟件:MATHEMATIC(數(shù)學(xué)分析問題的計(jì)算);I5MATLAB桌面平臺(tái):(1)主窗口:整個(gè)大的窗口(其它幾個(gè)窗口都包括在其中)(2)命令窗口(commandwindow):》為運(yùn)算提示符,表示MATLAB在準(zhǔn)備狀態(tài)。當(dāng)在提示符后輸入一段運(yùn)算式并按回車鍵后,就給出計(jì)算結(jié)果MATLAB桌面平臺(tái):6(3)歷史窗口(commandhistory):保留命令歷史記錄,這方便于使用者查詢。雙擊歷史窗口中的某一行命令,即可在命令窗口中執(zhí)行該命令。(3)歷史窗口(commandhistory):保留命令歷7(4)當(dāng)前目錄窗口(currentdirectory):在當(dāng)前目錄窗口中可顯示或改變當(dāng)前目錄,也可以顯示當(dāng)前目錄下的文件,并提供搜索功能。(4)當(dāng)前目錄窗口(currentdirectory):在8(5)發(fā)行說明書窗口(launchpad):用來說明用戶所擁有的Mathworks公司產(chǎn)品的工具包、演示以及幫助信息。(6)工作間管理窗口(workspace):顯示目前內(nèi)存中所有的MATLAB變量的變量名、數(shù)學(xué)結(jié)構(gòu)、字節(jié)數(shù)及其類型。(5)發(fā)行說明書窗口(launchpad):用來說明用戶所9命令窗口查詢幫助:help+函數(shù)名,當(dāng)用戶知道函數(shù)名字,而不知道其用法時(shí),用help命令可以去了解此函數(shù)的用法。如:helpinv命令窗口查詢幫助:help+函數(shù)名,當(dāng)用戶知道函數(shù)名字,而不10MATLAB標(biāo)點(diǎn)的含義:(1)分號(hào);……區(qū)分行以及取消運(yùn)行顯示等。例:A=[1,2,3,4]與A=[1,2;3,4];的區(qū)別。(2)逗號(hào),……區(qū)分列及函數(shù)參數(shù)分隔符等。例:=[1,2;3,4],B=[1,4,3;3,2,1;4,5,6]MATLAB標(biāo)點(diǎn)的含義:11(3)小括號(hào)():指定運(yùn)算過程的先后次序等。例:x=0.5;y=sin(x)/(2+cos(x))z=sin(x)/2+cos(x)(4)方括號(hào)[]:矩陣定義標(biāo)志等。見上。(3)小括號(hào)():指定運(yùn)算過程的先后次序等。例:12(5)續(xù)行號(hào)…:例:y=sin(x)/(2+cos(x))也可寫為y=sin(x)…/(2+cos(x))(5)續(xù)行號(hào)…:例:13(6)百分號(hào)%:注釋標(biāo)記,該行%以后的語句不執(zhí)行。例%線性規(guī)劃程序%a=0.5;b=sin(x);%正弦函數(shù)
(6)百分號(hào)%:注釋標(biāo)記,該行%以后的語句不執(zhí)行。例14(6)等號(hào)=:賦值標(biāo)記。見上。(7)單引號(hào)’’:字符串表示符,單引號(hào)里面的內(nèi)容為字符串。單引號(hào)一定在英文狀態(tài)下輸入例:
a='xingtaicollege'(8)冒號(hào)’:’:有多種應(yīng)用功能,學(xué)習(xí)過程中注意。如:選取矩陣的所有行、列;矩陣定義(6)等號(hào)=:賦值標(biāo)記。見上。15二、數(shù)值計(jì)算變量:MATLAB語言不需要對(duì)所使用的變量進(jìn)行事先聲明,也不需要指定其類型,它會(huì)自動(dòng)根據(jù)所賦予變量的值或所進(jìn)行的操作來確定變量的類型。如果變量重新賦值將會(huì)用新值代替舊值。如:a=1b=0.5c=a*bc=3二、數(shù)值計(jì)算變量:MATLAB語言不需要對(duì)所使用的變量進(jìn)行事16變量命名的規(guī)則:(1)變量名區(qū)分大小寫;(2)變量名長度不能超過31位;(3)必須以字母開頭,變量名中可包含字母、數(shù)字、下劃線,但不能使用標(biāo)點(diǎn)。變量命名的規(guī)則:17常量:MATLAB中有些預(yù)定義的變量,這些特殊的變量稱為常量。常用到的有:i,j:虛數(shù)單位;pi:π;NaN:表示不定值,比如0/0;inf:無窮大(infinit),比如1/0。常量:MATLAB中有些預(yù)定義的變量,這些特殊的變量稱為常量18算術(shù)操作符:
+、-:加,減;可以通用。*,^,\,/:分別為矩陣乘,乘方,左除,右除;.*,.^,.\,./:分別為數(shù)組乘,乘方,左除,右除;此時(shí)向量的運(yùn)算不會(huì)滿足矩陣的運(yùn)算法則。注意矩陣的加點(diǎn)運(yùn)算結(jié)果。算術(shù)操作符:19如:a1=2;a2=[1,2,3,4];b2=[4,3,2,1];a1+a2a1-a2a2-a1a1*a2如:20a1./a2%a1/a2是錯(cuò)誤的寫法a1.\a2a2-b2a2+b2a2.*b2%a2*b2是錯(cuò)誤的寫法a2./b2b2./a2a2.\b2a1./a2%a1/a2是錯(cuò)誤的寫法21例已知水的黏度隨溫度的變化公式為μ=μ0/(1+at+bt2)其中μ0=1.785×10-3,
a=0.03368,b=0.000221,求水在0,20,40,80℃時(shí)的黏度。程序如下:例已知水的黏度隨溫度的變化公式為μ=μ0/(1+at+b22miu0=1.785e-3;a=0.03368;b=0.000221;t=0:20:80miu=miu0./(1+a*t+b*t.^2)運(yùn)行后的結(jié)果為:miu=0.00180.00100.00070.00050.0003miu0=1.785e-3;23字符串:字符串的約定(1)字符串用單引號(hào)括起來;(2)字符串的每個(gè)每個(gè)字符(包括空格)都是字符數(shù)組的一個(gè)元素.例s=‘xingtaicollege’f=‘sin(x)’是字符串(chararray)字符串:24向量的生成:(1)直接輸入:如a=[1,2,5,3](2)利用冒號(hào)表達(dá)式生成:如:b=[2:2:10],此時(shí)[]可省略,步長為1時(shí),步長可省略。第一個(gè)數(shù)為首元素的值,第2個(gè)數(shù)為步長或差值,第三個(gè)數(shù)為尾元素的限值,不能超過這個(gè)值。如b=2;2:11等價(jià)于b=[2:2:10]向量的生成:25(3)線性等份向量生成:y=linspace(x1,x2,n),生成n維向量,使得y(1)=x1,y(n)=x2。如:y=linspace(1,100,6)。向量的基本運(yùn)算(1)向量的加減:用+、-。同維向量才可以加、減。相應(yīng)元素加減(3)線性等份向量生成:y=linspace(x1,x2,n26(2)向量與數(shù)可以加、減。用+、-。數(shù)與向量的每個(gè)元素進(jìn)行作用。(3)向量與數(shù)可以相乘。用*。(4)向量與數(shù)可以相除。向量/數(shù),數(shù)./向量。(5)兩個(gè)向量點(diǎn)積。必須是同維向量。用dot(a,b)。(2)向量與數(shù)可以加、減。用+、-。數(shù)與向量的每個(gè)元素進(jìn)行作27(6)兩個(gè)向量叉積。cross(a,b),a,b必須有是3維且次序不能顛倒,。(7)混合積。由以上兩個(gè)函數(shù)實(shí)現(xiàn)。dot(a,cross(b,c))矩陣的生成:(1)直接輸入:如:a=[1,3,4;4,3,2].(6)兩個(gè)向量叉積。cross(a,b),a,b必須有是3維28(2)創(chuàng)建M文件輸入大矩陣:當(dāng)矩陣很大時(shí),直接輸入顯得很笨,出錯(cuò)不易修改.我們可以編寫一個(gè)M文件,M文件的擴(kuò)展名必須是m.例編寫一個(gè)名為matrix.m(名字自己隨便起)的M文件如下:%matrix.m(2)創(chuàng)建M文件輸入大矩陣:當(dāng)矩陣很大時(shí),直接輸入顯得很笨,29mat=[1,2,3,3;3,4,5,1;3,2,1,4;8,9,7,5]在命令窗口中輸入matrix,就會(huì)運(yùn)行該文件.查看矩陣的結(jié)構(gòu)可用size(mat).mat=[1,2,3,3;3,4,5,1;3,2,1,4;830矩陣運(yùn)算:(1)+、-、*:加、減、乘運(yùn)算。(2)矩陣的除法有兩種形式:左除“\”和右除‘/’.右除是先計(jì)算逆再做乘法;而左除不計(jì)算逆直接進(jìn)行除法運(yùn)算,這樣可避免奇異矩陣無法求逆帶來的麻煩.矩陣運(yùn)算:31如:A=[1,2,3,2;3,2,4,1;3,1,5,6;2,5,3,2],b=[1;3;2;1],求方程組Ax=b的解.由于rank(A)=rank(B)=4(B為增廣矩陣),所以有唯一解,x=A\b,或x=inv(A)*b.如:A=[1,2,3,2;3,2,4,1;3,1,5,6;32又如:A=[361,625,961,1444,1936;1,1,1,1,1],b=[1;1]‘,求方程組Ax=b的解.由于rank(A)=rank(B)=2(B為增廣矩陣),所以有無窮多個(gè)解,MATLAB中用除法解方程組時(shí)所得到的解是所有解中范數(shù)最小的一個(gè)x=A\b。又如:A=[361,625,961,1444,1936;133(3)矩陣與常數(shù)間的運(yùn)算:+、-、*運(yùn)算是數(shù)與矩陣的每個(gè)元素進(jìn)行運(yùn)算,除法運(yùn)算,只能常數(shù)做除數(shù)。(4)矩陣求逆:inv(A)為A的逆(inverse).(3)矩陣與常數(shù)間的運(yùn)算:+、-、*運(yùn)算是數(shù)與矩陣的每個(gè)元素34(5)求轉(zhuǎn)置矩陣:A'.(6)求矩陣的行列式:det(A),(determinant是行列式)。(7)矩陣冪運(yùn)算:用^.如A^3,表示A*A*A。(8)矩陣指數(shù)運(yùn)算:expm(A),A為方陣。(5)求轉(zhuǎn)置矩陣:A'.35(9)矩陣對(duì)數(shù)運(yùn)算:logm(A),A為方陣。如:a=rand(3);%成生一個(gè)3階隨機(jī)矩陣b=expm(a)c=logm(b)(9)矩陣對(duì)數(shù)運(yùn)算:logm(A),A為方陣。36(10)矩陣開方:sqrtm(a).(11)求矩陣呢的秩:rank(a).特殊矩陣的生成:(1)zeros(n):生成n×n階0矩陣。(2)zeros(m,n):生成m×n階0矩陣。(3)zeros(size(a)):生成與a階數(shù)相同的0矩陣。(10)矩陣開方:sqrtm(a).37(4)eye(n):生成n階單位矩陣。(5)eye(m,n):生成m×n階單位矩陣。(6)eye(size(a)):生成與a階數(shù)相同的單位矩陣。(7)ones(n):生成n階全1矩陣。(8)ones(m,n):生成m×n階全1矩陣。(4)eye(n):生成n階單位矩陣。38(9)ones(size(a)):生成與a階數(shù)相同的全1矩陣。(10)rand(n):生成n×n階隨機(jī)矩陣,其元素值在0和1之間。(11)rand(m,n):生成m×n階隨機(jī)矩陣。(12)rand:生成一個(gè)隨機(jī)數(shù)。(9)ones(size(a)):生成與a階數(shù)相同的全1矩39(13)rand(size(a)):生成與a階數(shù)相同的隨機(jī)矩陣。矩陣的特殊操作:(1)變維操作reshape(a,m,n):把矩陣a變成n×n階矩陣。如a=1:12,reshape(a,2,6),reshape(a,3,4)。注意變維操作要保證元素個(gè)數(shù)一致。(13)rand(size(a)):生成與a階數(shù)相同的隨機(jī)矩40例s=1:12;c=zeros(3,4);c(:)=s(:);%符號(hào)“:”表示變維操作,這兩個(gè)矩陣必須預(yù)先定義維數(shù),結(jié)果c取的是s的元素。例41(2)對(duì)角元素抽取diag(a,k)(注:diagonal為對(duì)角線的意思):抽取矩陣a的第k條對(duì)角線的元素作為向量,k=0時(shí)為主對(duì)角線,k為正值時(shí)為上方第k條對(duì)角線,k為負(fù)值時(shí)為下方第k條對(duì)角線。diag(a)相當(dāng)于diag(a,0).例a=rand(3);v=diag(a)(2)對(duì)角元素抽取diag(a,k)(注:diagonal為42說明:如果b是一個(gè)向量,則diag(b)為對(duì)角矩陣,其對(duì)角線元素為b的元素。如:b=1:3,diag(b).(3)tril(a)(注:trianglelow):提取矩a的主下三角。(4)tril(a,k):提取矩a的第k條對(duì)角線下面部分。k=0時(shí)為主對(duì)角線,k為正值時(shí)為上方第k條對(duì)角線,k為負(fù)值時(shí)為下方第k條對(duì)角線。說明:如果b是一個(gè)向量,則diag(b)為對(duì)角矩陣,其對(duì)角線43(5)triu(a,k)(注:triangleup):提取矩a的第k條對(duì)角線上面部分。邏輯運(yùn)算符:(1)==:等于。(2)~=:不等于。(3)〈:小于。(4)〉:大于。(5)triu(a,k)(注:triangleup):44(5)〈=:小于等于。(6)〉=:大于等于。(7)&:邏輯與。(8)|:邏輯或。(9)~:邏輯非。(5)〈=:小于等于。45說明:①在關(guān)系比較中,若雙方為同維數(shù)組(矩陣),則比較的結(jié)果也是同維數(shù)組(矩陣)。它們的元素有0和1組成。對(duì)應(yīng)位置上的元素滿足比較關(guān)系時(shí)為1,否則為0。當(dāng)常數(shù)與數(shù)組(矩陣)比較時(shí),結(jié)果與數(shù)組(矩陣)同維,其值依次為常數(shù)與數(shù)組元素依次比較的結(jié)果。例:說明:46a=[1:3;4:6;7:9]x=5y=x<=a運(yùn)行結(jié)果y=000011111a=[1:3;4:6;7:9]47②邏輯運(yùn)算的意義是:與:當(dāng)運(yùn)算雙方的對(duì)應(yīng)元素值都為非0時(shí),結(jié)果為1,否則為0;或:當(dāng)運(yùn)算雙方的對(duì)應(yīng)元素值有一非0時(shí),結(jié)果為1,否則為0;非:當(dāng)運(yùn)算數(shù)組(矩陣)的對(duì)應(yīng)位置上的元素值為0時(shí),結(jié)果為1,否則為0。例②邏輯運(yùn)算的意義是:48a=[1,2;3,2];b=[0,1;3,0];d=a&be=a|bf=~b③算術(shù)運(yùn)算、比較運(yùn)算、邏輯與或非運(yùn)算的優(yōu)先級(jí):先算術(shù)運(yùn)算、再比較運(yùn)算、最后邏輯與或非運(yùn)算。a=[1,2;3,2];49常用的一些函數(shù)(直接調(diào)用):sin(x):正弦函數(shù)(sine);例:x=-pi:0.1:pi;y=sin(x);plot(x,y)asin(x):反正弦函數(shù)(anti-sine);cos(x):余弦函數(shù)(cosine);acos(x):反余弦函數(shù)(anti-cosine);tan(x):正切函數(shù)(tangent);常用的一些函數(shù)(直接調(diào)用):50atan(x):反正切函數(shù)(anti-tangent);cot(x):余切函數(shù)(cotangent);acot(x):反余切函數(shù)(anti-cotangent);sec(x):正割函數(shù)(secant);asec(x):反正割函數(shù)(anti-secant);csc(x):余割函數(shù)(cosecant);acsc(x):反余割函數(shù)(anti-cosecant);atan(x):反正切函數(shù)(anti-tangent);51sinh(x):雙曲正弦(hyperbolicsine);asinh(x):反雙曲正弦(anti-hyperbolicsine);cosh(x):雙曲余弦(hyperboliccosine);acosh(x):反雙曲余弦(anti-hyperboliccosine);sinh(x):雙曲正弦(hyperbolicsine);52tanh(x):雙曲正切函數(shù)(hyperbolictangent);atanh(x):反雙曲正切函數(shù)(anti-hyperbolictangent);coth(x):雙曲余切函數(shù)(hyperboliccotangent);acoth(x):反雙曲余切函數(shù)(anti-hyperboliccotangent);exp(x):e指數(shù)函數(shù)(exponent);tanh(x):雙曲正切函數(shù)(hyperbolictang53log(x):自然對(duì)數(shù)函數(shù)(logarithm);log10(x):以10為底的對(duì)數(shù);log2(x):以2為底的對(duì)數(shù);sqrt(x):平方根函數(shù)(squareroot);abs(x):求模函數(shù)(absolute)Inline(‘f的表達(dá)式’):自定義函數(shù)。函數(shù)的自變量為函數(shù)中出現(xiàn)的變量。自變量順序安字母表順序。Inline(‘f的表達(dá)式’,‘變量1’,‘變量2’,‘變量3’,……):與上面的區(qū)別是它安變量表的給出的順序規(guī)定函數(shù)的變量順序。如:g=inline(‘sin(2*x*y+z)’),表示:g(x,y,z)=sin(2*x*y+z)g=inline(‘sin(2*x*y+z)’,‘x’,‘z’,‘y’)表示:g(x,z,y)=sin(2*x*y+z);g1(1,2,3)與g2(1,2,3)的意義不同。
factorial(n):求n的階乘。log(x):自然對(duì)數(shù)函數(shù)(logarithm);54多項(xiàng)式表示方法:在MATLAB中多項(xiàng)式p(x)=anxn+an-1xn-1+…+a0是以向量p=[an,an-1,…,a0]的形式儲(chǔ)存的.(1)系數(shù)向量直接輸入:例輸入多項(xiàng)式x^3-5x^2+6x-33.p=[1,-5,6,-33];poly2sym(p)%polynomial多項(xiàng)式,將系數(shù)向量表示成符號(hào)多項(xiàng)式多項(xiàng)式表示方法:55(2)矩陣的特征多項(xiàng)式輸入:例a=[1,2,3;2,3,4;3,4,5];p=poly(a);%求a的特征多項(xiàng)式系數(shù)向量p1=poly2sym(p);%即為a的特征多項(xiàng)式(2)矩陣的特征多項(xiàng)式輸入:例56(3)由根創(chuàng)建多項(xiàng)式:例root=[-5,-3+4i,-3-4i];%是某個(gè)多項(xiàng)式的根p=poly(root)%求相應(yīng)的多項(xiàng)式的系數(shù)向量P1=poly2sym(p)%將多項(xiàng)式系數(shù)向量表示成符號(hào)多項(xiàng)式(3)由根創(chuàng)建多項(xiàng)式:例57多項(xiàng)式運(yùn)算:(1)求多項(xiàng)式的值:例p=[1,11,55,125];a=1.2b=[1,2;2,3]polyval(p,a)%polynomialvalue求多項(xiàng)式在1.2的值polyvalm(p,b)%多項(xiàng)式在b的值多項(xiàng)式運(yùn)算:58(2)求多項(xiàng)式的根:例求多項(xiàng)式2x^4-5x^3+6x^2-x+9=0的所有根.p=[2,-5,6,-1,9]roots(p)%得到多項(xiàng)式的根(3)factor:因式分解。例symsxfactor(x^9-1)結(jié)果:ans=(x-1)*(x^2+x+1)*(x^6+x^3+1)(2)求多項(xiàng)式的根:例求多項(xiàng)式59
factor(sym(‘100’))%把整數(shù)100進(jìn)行素?cái)?shù)分解.結(jié)果:(2)^2*(5)^2(4)expand(s):多項(xiàng)式展開,s可為多項(xiàng)式、多項(xiàng)式向量和矩陣。例expand(sym('(x+1)^3'))結(jié)果:ans=x^3+3*x^2+3*x+1expand(sym('sin(x+y)'))結(jié)果:ans=sin(x)*cos(y)+cos(x)*sin(y)factor(sym(‘100’))%把整數(shù)100進(jìn)行素?cái)?shù)60(5)collect(s):對(duì)默認(rèn)的變量合并同類項(xiàng)。collect(s,v):對(duì)變量v合并同類項(xiàng)。
s可為符號(hào)多項(xiàng)式、多項(xiàng)式向量和矩陣?yán)?/p>
collect(sym('x^2*y+y*x-x^2-2*y*x'))collect(sym('x^2*y+y*x-x^2-2*y*x'),’x’)collect(sym('x^2*y+y*x-x^2-2*y*x'),’y’)(5)collect(s):對(duì)默認(rèn)的變量合并同類項(xiàng)。61(6)simple(s):符號(hào)表達(dá)式簡化,s可為符號(hào)多項(xiàng)式、多項(xiàng)式向量和矩陣。例f=simple(sym('sin(x)^2+cos(x)^2'))結(jié)果:f=1g=simple(sym('x^3+3*x^2+3*x+1'))結(jié)果:g=(x+1)^3(6)simple(s):符號(hào)表達(dá)式簡化,s可為符號(hào)多項(xiàng)式62(7)多項(xiàng)式乘除運(yùn)算分別用conv和deconv:(convolution,deconvolution)例p1=[2,-5,6,-1,9];p2=[3,-90,18];p=conv(p1,p2)%為p1和p2所相應(yīng)的多項(xiàng)式的乘積多項(xiàng)式的系數(shù)向量(7)多項(xiàng)式乘除運(yùn)算分別用conv和deconv:(co63
p3=deconv(p,p1)%為p2p4=deconv(p,p2)%為p1poly2sym(p1);poly2sym(p2);poly2sym(p)poly2sym(p3)poly2sym(p4)%觀看這幾個(gè)多項(xiàng)式p3=deconv(p,p1)%為p264polyfit(x,y,n)其中x,y為擬合數(shù)據(jù),n為擬合多項(xiàng)式的階數(shù)。例用最小二乘法擬合數(shù)據(jù)
x:0.501.001.502.002.503.00y:1.752.453.81
4.808.008.60x=[0.5,1,1.5,2,2.5,3]y=[1.75,2.45,3.81,4.80,8.00,8.60]a=polyfit(x,y,2)%用2次多項(xiàng)式擬合上組數(shù)據(jù),a為擬合多項(xiàng)式的系數(shù)向量polyfit(x,y,n)其中x,y為擬合數(shù)據(jù),n為擬合65
x1=0.5:0.05:3y1=a(1)*x1.^2+a(2)*x1+a(3)plot(x1,y1)%畫出擬合曲線的圖形holdon%保留上面的圖形和坐標(biāo),可在該坐標(biāo)系中繼續(xù)作圖plot(x,y,‘*’)%用*號(hào)的形式畫出被擬合的數(shù)據(jù)圖形x1=0.5:0.05:366求矩陣的特征值(eigenvalue:)和特征向量(eigenvector)例a=[7,3,-2;3,4,-1;-2,-1,3];[x,y]=eig(a)%所得結(jié)果x為a的特征向量矩陣,y為特征值矩陣說明:a必須是方陣,此時(shí)a*x=x*y,求矩陣的特征值(eigenvalue:)和特征向量(eige67三、符號(hào)運(yùn)算MATLAB進(jìn)行符號(hào)運(yùn)算的主要功能:符號(hào)表達(dá)式和符號(hào)矩陣的基本操作、符號(hào)矩陣的基本運(yùn)算、符號(hào)微積分運(yùn)算、符號(hào)線性方程求解、符號(hào)微分方程求解、特殊數(shù)學(xué)符號(hào)函數(shù)、符號(hào)函數(shù)圖形等。三、符號(hào)運(yùn)算MATLAB進(jìn)行符號(hào)運(yùn)算的主要功能:符號(hào)表達(dá)式和68符號(hào)表達(dá)式的生成創(chuàng)建符號(hào)函數(shù):如f='log(x)‘創(chuàng)建符號(hào)方程:如g='a*x^2+b*y^2+c=0‘創(chuàng)建微分方程:如q='Dy-y=x‘或者:f=sym(‘log(x)’)、g=sym(‘a(chǎn)*x^2+b*y^2+c=0‘)、q=sym('Dy-y=x’)符號(hào)表達(dá)式的生成69說明:符號(hào)函數(shù)也可以用另一方法創(chuàng)建(該方法不能創(chuàng)建方程):symsx%用syms可以定義多個(gè)變量,變量間用空格分開f=log(x)w=sin(x)+cos(x)說明:符號(hào)函數(shù)也可以用另一方法創(chuàng)建(該方法不能創(chuàng)建方程):70符號(hào)與數(shù)值之間的轉(zhuǎn)換(1)Vpa函數(shù):如digits(25)%設(shè)置有效數(shù)字的精度為25位有效數(shù)字vpa(pi+1)%顯示在上述digits函數(shù)設(shè)置下的精度的數(shù)值或者vpa(pi+1,25)注vpa:variableprecisionarithmetic符號(hào)與數(shù)值之間的轉(zhuǎn)換71(2)numeric函數(shù):如numeric(pi+2),a=‘1’,numeric(a)(把a(bǔ)變?yōu)閐ouble型,相當(dāng)于str2num(a))(3)double函數(shù):如double(pi+2),a=‘1’,double(a))(把a(bǔ)變?yōu)閐ouble型代碼)例求函數(shù)f(x)=x-cos(x)在x=2的值。解(2)numeric函數(shù):如numeric(pi+2),72
symsxf=x-cos(x);f1=subs(f,’2’,x)%字符替代,在符號(hào)函數(shù)f中用2代替xf1=subs(f,x,1)%給出f在x=1處的值。digits(20)vpa(f1)numeric(f1),double(f1)
symsx73例求方程3x2-ex=0的精確解和各種精度的近似解。解s=solve(‘3*x^2-exp(x)=0’)vpa(s)%顯示32位有效數(shù)字vpa(s,6)%顯示6位有效數(shù)字symsxezplot(3*x^2-exp(x))注:W=LAMBERTW(X)是w*exp(w)=x的解例求方程3x2-ex=0的精確解和各種精度的近似解。74符號(hào)函數(shù)運(yùn)算復(fù)合函數(shù)運(yùn)算:設(shè)z=g(y),y=f(x)compose(g,f)%即為g(f(x)),自變量的符號(hào)取為f函數(shù)的自變量符號(hào)。compose(g,f,t)%即為g(f(x)),自變量的符號(hào)取t。符號(hào)函數(shù)運(yùn)算75反函數(shù)運(yùn)算:finverse例symsx;symsy;symst;%或者symsxytg=sin(y);f=1/xcompose(g,f)compose(g,f,t)finverse(g)finverse(f)反函數(shù)運(yùn)算:finverse76符號(hào)矩陣創(chuàng)立
使用sym函數(shù)直接創(chuàng)建符號(hào)矩陣:例a=sym(‘[1/sin(x),cos(x)^2;2*x,1+x^2]’)或symsxa=[1/sin(x),cos(x)^2;2*x,1+x^2]用創(chuàng)建子矩陣的辦法創(chuàng)建符號(hào)矩陣(該方法不推薦):例
a=[‘[1/sin(x),cos(x)^2]’;‘[2*x
,1+x^2]’]%同列元素的位數(shù)必須一樣,可用空可空格來補(bǔ)。例b=[a,;'[1,x^2]']符號(hào)矩陣創(chuàng)立77將數(shù)值矩陣轉(zhuǎn)化為符號(hào)矩陣a=[2/3,sqrt(2);0.222,log(3)]%a為數(shù)值矩陣b=sym(a)%把a(bǔ)轉(zhuǎn)化為符號(hào)矩陣b。符號(hào)矩陣索引和修改b(2,2)%矩陣的索引,顯示矩陣b的第2行第2列元素。將數(shù)值矩陣轉(zhuǎn)化為符號(hào)矩陣78符號(hào)矩陣的修改
b(2,2)=‘log(9)‘%矩陣的修改,b(2,2)修改為log(9)。符號(hào)矩陣的運(yùn)算(1)+、-、*、\、/運(yùn)算(2)矩陣轉(zhuǎn)置(’):a’(3)行列式運(yùn)算:det(a)%determinant的簡寫計(jì)算符號(hào)矩陣的行列式。符號(hào)矩陣的修改79(4)求逆inv(a):求矩陣a的逆。(5)求矩陣的秩rank(a):求矩陣a的秩。符號(hào)函數(shù)極限(只限于sym型函數(shù))limit(f,x,a):求表達(dá)式f在x→a時(shí)的極限。limit(f):求f在x→0時(shí)的極限.imit(f,x,a,’left’):求表達(dá)式f在x→a時(shí)的左極限。limit(f,x,a,’right’):求表達(dá)式f在x→a時(shí)的右極限。例(4)求逆inv(a):求矩陣a的逆。80
symsxlimit(sin(x)/x,x,1)limit(sin(x)/x)limit((1+1/x)^(1/x),x,inf)f=atan(1/(1-x))y=limit(f,x,1)%沒極限y1=limit(f,x,1,’left’)y2=limit(f,x,1,’right’)symsx81f=1/x,y1=limit(f,x,0,'left')y2=limit(f,x,0,'right')符號(hào)積分(適于sym型、char型)(1)int(f,x):計(jì)算符號(hào)表達(dá)式f,自由變量為x的不定積分.(2)int(f,x,a,b):計(jì)算符號(hào)表達(dá)式f,自由變量為x,從a到b的定積分f=1/x,82說明:符號(hào)表達(dá)式可以是符號(hào)函數(shù),也可是符號(hào)矩陣。例symsxint(sin(x),x)int(sin(x),x,0,1)int(sin(x),x,0,1)說明:變量x省略時(shí)默認(rèn)對(duì)x積分。說明:符號(hào)表達(dá)式可以是符號(hào)函數(shù),也可是符號(hào)矩陣。83
a=sym('[1/sin(x),cos(x)^2;2*x,1+x^2]')int(a,x)符號(hào)函數(shù)求導(dǎo)(適于sym型和char型)(1)diff(f,x)%求表達(dá)式f,自由變量為x的導(dǎo)數(shù)。說明:diff(a),a為向量時(shí),表示前項(xiàng)與后一項(xiàng)的差。(2)diff(f,x,n)%求表達(dá)式f,自由變量為x的n階導(dǎo)數(shù)。a=sym('[1/sin(x),cos(x)^2;84symsxf=sin(x)^2diff(f,x)%變量x省略時(shí)默認(rèn)對(duì)x求導(dǎo)diff(f,x,2)%x省略時(shí)默認(rèn)對(duì)x求導(dǎo)線性方程組的符號(hào)解法(linsolve)例a=sym('[10,-1,0;-1,10,-2;0,-2,10]')b=sym('[9;7;6]')x=linsolve(a,b)%x為線性方程ax=b的解。注:這里a,b也可是double型,但得到的x為sym型。symsx85
vpa(x)%轉(zhuǎn)化為浮點(diǎn)近似解,32位有效數(shù)字。非線性方程(組)的符號(hào)解法(1)fsolve(‘f’,x0):其中f為被求零點(diǎn)的函數(shù),x0為初值。注:fsolve對(duì)sym型函數(shù)無效;可用于有函數(shù)文件、字符串、和inline定義的函數(shù);類似命令還有:fzero?;蛴茫篺solve(‘f’,x0,foptions)(2)slove(‘方程1’,‘方程2’,…).vpa(x)%轉(zhuǎn)化為浮點(diǎn)近似解,32位有效數(shù)字。86例、求解下面非線性方程組
x1-0.7sinx1-0.2cosx2=0x2-0.7cosx1+0.2sinx2=0解首先編寫函數(shù)文件f.m如下functiony=fc(x)y(1)=x(1)-0.7*sin(x(1))-0.2*cos(x(2));y(2)=x(2)-0.7*cos(x(1))+0.2*sin(x(2));y=[y(1);y(2)];在命令窗口中輸入x0=[0.502,0.51];%x0為初始向量fsolve(‘fc’,x0)例、求解下面非線性方程組87作業(yè):分別用solve和fsolve函數(shù)求sinx+cosx+x=0的解,并進(jìn)行驗(yàn)證。作業(yè):分別用solve和fsolve函數(shù)求方程組
x^2*y^2-2*x-1=0
x^2-y^2-1=0的解,并進(jìn)行驗(yàn)證。兩個(gè)函數(shù)用法的區(qū)別是什么?作業(yè):分別用solve和fsolve函數(shù)求sinx+cosx88%方法1[x,y]=solve(‘x^2*y^2-2*x-1=0’,‘x^2-y^2-1=0’);%方法2functiony=fc(x)y(1)=x(1)^2*x(2)^2-2*x(1)-1;y(2)=x(1)^2-x(2)^2-1;y=[y(1),y(2)]……x0=[1.6;1.2]x=fsolve('fc',x0)%方法3f='[x(1)^2*x(2)^2-2*x(1)-1;x(1)^2-x(2)^2-1]‘x0=[0.6;0]x=fsolve(f,x0)%方法4f=inline('[x(1)^2*x(2)^2-2*x(1)-1;x(1)^2-x(2)^2-1]')x0=[1.6;1.2]x=fsolve(f,x0)%方法189(4)已知x=[x1,x2,…,xn]f=(f1(x);f2(x);…;fn(x))試求導(dǎo)數(shù)f'(x),即f對(duì)x的jacobian矩陣。提示:利用函數(shù):jacobian(f,v),其中v為自變量向量。利用該雅可比函數(shù)求下面函數(shù)的導(dǎo)數(shù)以及在(1,2,3)點(diǎn)的導(dǎo)數(shù)值。(4)已知90F=[3x-cos(xy)-0.5;x2-80(y+0.1)2+sinz+1.06;e-xy+20z+1]symsx,symsy,symszf=[3*x-cos(x*y)-0.5;x^2-80*(y+0.1)^2+sin(z)+1.06;exp(-x*y)+20*z+1]df=jacobian(f,[x,y,z])b=subs(df,[x,y,z],[1,2,3]);b='[1;2;3]';c=linsolve(a,b);F=[3x-cos(xy)-0.5;91常微分方程的符號(hào)解(dsolve):字符D代表對(duì)獨(dú)立變量導(dǎo)數(shù)d/dt,Dn代表對(duì)獨(dú)立變量的n階導(dǎo)數(shù),例求dy/dt=-ay和dy/dx=x的解解dsolve(‘Dy=-a*y’)%得到通解,默認(rèn)自變量為t。dsolve(‘Dy=-a*y’,’y(0)=1’)%給定了初始條件,求特解。方程和初始條件用逗號(hào)分開,都用單引號(hào)引起來。y=dsolve(‘Dy=x’,‘x’);%通解y=dsolve(‘Dy=x’,‘x(1)=2’,‘x’)%特解常微分方程的符號(hào)解(dsolve):92符號(hào)函數(shù)的二維圖形(1)ezplot(f):繪制f(x)的圖形,x的范圍為[-2π,2π]。如ezplot(‘sin(x)’)。(2)ezplot(f,a,b):繪制f(x)的圖形,x的范圍為[a,b]。如ezplot(‘sin(x)’,0,9)。符號(hào)函數(shù)的二維圖形93四、圖形處理圖形可視化是數(shù)學(xué)計(jì)算人員所喜歡和追求的一項(xiàng)技術(shù)。把結(jié)果用圖形描述出來,便于理解、分析。四、圖形處理圖形可視化是數(shù)學(xué)計(jì)算人員所喜歡和94二維繪圖命令(1)plot(y):%若y是向量,就以向量的索引為橫坐標(biāo),以向量的元素值為縱坐標(biāo);(2)plot(x,y):一般來說是繪制向量y的圖形,橫坐標(biāo)為x的值,縱坐標(biāo)為y的值。(3)plot(x,y,’.’):這里‘.’表示用點(diǎn)線顯示。二維繪圖命令95二維繪圖命令(1)plot(y):%若y是向量,就以向量的索引為橫坐標(biāo),以向量的元素值為縱坐標(biāo);(2)plot(x,y):一般來說是繪制向量y的圖形,橫坐標(biāo)為x的值,縱坐標(biāo)為y的值。x,y的維數(shù)相同(3)plot(x,y,’.’):這里‘.’表示用離散點(diǎn)顯示。(4)plot(x1,y1,x2,y2):x1,y1的維數(shù)相同,x2,y2的維數(shù)相同。二維繪圖命令96例x=-pi:0.1:piy=sin(x)plot(y)holdon%保留上一個(gè)圖形plot(x,y)
plot(x,y+1,':r')例97說明:在plot(x,y,’s’)中圖形設(shè)置選項(xiàng)s的規(guī)定說明:在plot(x,y,’s’)中圖形設(shè)置選項(xiàng)s的規(guī)定98[工學(xué)]MATLAB與科學(xué)計(jì)算課件99還有大小、線寬控制:如2
plot(1,1,'ro','markersize',50)plot(1,1,'linewidth',49)例x=0:0.1*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,‘--k’,x,z,‘-.r’)%分別用虛黑線和點(diǎn)劃紅線顯示兩條曲線。還有大小、線寬控制:如2plot(1,1,'ro','ma100(5)polar(θ,r):畫出極坐標(biāo)函數(shù)r=r(θ)的圖形例cita=0:0.1*pi:4*pi;r=cita+sin(cita/2)polar(cita,r)(6)refline(k,b):畫平面參考線,k為斜率,b為在y軸的截距(5)polar(θ,r):畫出極坐標(biāo)函數(shù)r=r(θ)的圖形101(7)ezplot(‘f(x)’):畫出f(x)的圖形。例ezplot(‘sin(x)’),結(jié)果是在[-2*pi,2*pi]上畫出圖形;ezplot(‘sin(x)’,[-1,3]),結(jié)果是在[-1,3]上畫出圖形.f(x)可為sym型、char型、inline型和function定義的函數(shù)。如:founctionf(x);f=x.^2-1%這里必須用.*、.^;調(diào)用:ezplot(@f)或ezplot(‘f’)。(8)fplot(‘f(x)’,[a,b]),結(jié)果是在[-a,b]上畫出圖形;例fplot(‘sin(x)’,[-1,3]),結(jié)果是在[-1,3]上畫出圖形.f(x)可為char型、inline型。(7)ezplot(‘f(x)’):畫出f(x)的圖形。例102三維圖形命令
(1)plot3(x,y,z):x,y,z為同維向量時(shí)畫空間曲線,例畫出x=sin(t),y=cos(t),x=t,t∈[0,10π]的圖形。解三維圖形命令103t=0:pi/50:10*pi;z=t,x=sin(t),y=cos(t),plot3(x,y,z);plot3(x,y,z+1,’--r’)(2)plot3(x,y,z):當(dāng)z=f(x,y),(x,y)為xoy平面上的網(wǎng)格節(jié)點(diǎn)時(shí),它可以畫出空間曲面z=f(x,y)的圖形。(3)mesh(x,y,z):畫出三維網(wǎng)格圖。t=0:pi/50:10*pi;z=t,x=sin(104(4)meshc(x,y,z):畫出三維網(wǎng)格與等高線圖(5)meshz(x,y,z):增加邊界面屏蔽。(6)surf(x,y,z):與mesh函數(shù)不同的是把圖形著色,surfc與meshc類似。例(4)meshc(x,y,z):畫出三維網(wǎng)格與等高線圖105
[x,y]=meshgrid(-2:0.1:2,-2:0.1:2);z=x.^2+y.^2;plot3(x,y,z)holdonmeshc(x,y,z+8),meshc(x,y,z+16),%mesh(z)與mesh(x,y,z)的區(qū)別類似于plot(x)與plot(x,y)的區(qū)別。[x,y]=meshgrid(-2:0.1:2,-2:0106(7)ezplot3(‘x(t)’,’y(t),‘z(t)’,[a,b]):為參數(shù)在[a,b]的范圍畫出x=x(t),y=y(t),z=z(t)對(duì)應(yīng)的三維空間曲線。例ezplot3(‘cos(t)’,‘sin(t)’,‘t’,[0,10*pi])。(8)ezmesh(‘x(u,v)’,y(u,v),’z(u,v)’,[a,b,c,d]):在a≤u≤b,c≤v≤d的范圍,畫出參數(shù)方程x=x(u,v),y=y(u,v),z=z(u,v)的對(duì)應(yīng)的曲面。(9)ezsurf:ezsurf與ezmesh的區(qū)別類似于surf與mesh的區(qū)別。例ezmesh('r*cos(t)','r*sin(t)','r^2',[0,2*pi])畫出拋物面圖形。(7)ezplot3(‘x(t)’,’y(t),‘z(t)’107(3)坐標(biāo)軸標(biāo)注xlable(‘標(biāo)注’),ylable(‘標(biāo)注’)(4)標(biāo)題標(biāo)注title(‘標(biāo)題’)x=-pi:0.1*pi:pi,y=sin(x)plot(x,y),v=[-16,6,-1,2],axis(v)gridonxlabel(‘x-axis’),ylabel(‘y=sinx’)title(‘正弦函數(shù)圖像’)(3)坐標(biāo)軸標(biāo)注xlable(‘標(biāo)注’),ylable(108(5)圖形保持holdon/off:holdon是啟動(dòng)圖形保持功能,在已存在的一張圖中添加曲線,holdoff是關(guān)閉圖形保持功能。(6)圖例標(biāo)注legend(‘標(biāo)注1’,‘標(biāo)注2’,…)(5)圖形保持holdon/off:holdon是啟動(dòng)109例x=0:0.1*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,'-*')holdonplot(x,z,'-o')plot(x,y+z,'-h')legend('y=sinx','z=cosx','y+z=sinx+cosxholdoff%關(guān)閉圖形保持例x=0:0.1*pi:2*pi;110(7)子圖subplot(m,n,p):其功能是把一個(gè)圖形分成m×n個(gè)小圖形窗口,通過參數(shù)p調(diào)用各子窗口進(jìn)行操作。例(7)子圖subplot(m,n,p):其功能是把一個(gè)圖形分111x=0:0.1*pi:2*pi;y=sin(x);z=cos(x);subplot(2,2,1),plot(x,y,'-*')subplot(2,2,2),plot(x,z,'-o')subplot(2,2,3),plot(x,y+z,'-h')subplot(2,2,4),plot(x,y-z,'-x')x=0:0.1*pi:2*pi;112圖形處理技術(shù)(1)坐標(biāo)軸控制函數(shù)axis(v):對(duì)二維圖形v=[a,b,c,d],其中[a,b]和[c,d]分別為x軸和y軸的范圍;對(duì)于三維圖形v=[a,b,c,d,e,f]分別給出x,y和z軸的范圍。例(2)平面坐標(biāo)網(wǎng)格函數(shù)gridon/off:作用是平面圖形帶有網(wǎng)格和取消網(wǎng)格。圖形處理技術(shù)113五、程序設(shè)計(jì)MATLAB作為一種高級(jí)計(jì)算語言,不僅可以做如上所講的那些工作,還可以像basic,fortran,c等其它高級(jí)計(jì)算機(jī)語言一樣進(jìn)行程序設(shè)計(jì),即編制以m為擴(kuò)展名的文本文件(簡稱M文件)。五、程序設(shè)計(jì)MATLAB作為一種高級(jí)計(jì)算語言,不僅可以做如上114M文件的形式(1)命令式(script):命令式文件就是命令行的簡單疊加,MATLAB就會(huì)自動(dòng)按順序執(zhí)行文件中的命令,這樣就可以避免在命令窗口運(yùn)行許多命令的麻煩和重復(fù)行工作,也便于修改。其可在命令窗口直接輸入文件名運(yùn)行M文件的形式115例%sinfig.mx=-pi:0.1*pi:pi;y=sin(x);plot(x,y);holdon;plot(y,x)例116函數(shù)式(function):他主要解決參數(shù)傳遞和函數(shù)調(diào)用問題,它的第一句以function語句為引導(dǎo)。不能直接運(yùn)行,只能調(diào)用。例%f.m文件名與函數(shù)名必須一致functionf(x)f=2*x^2+4*x+6在命令窗口中輸入:f(0),f(10)可以看出結(jié)果。函數(shù)式(function):他主要解決參數(shù)傳遞和函數(shù)調(diào)用問題117例、建立一個(gè)名字為f的函數(shù)文件,該函數(shù)為f=cos2(x)試計(jì)算該函數(shù)在x=1:10的函數(shù)值,并給出離散點(diǎn)(x,f(x))的圖形。(大家一起討論)例、建立一個(gè)名字為f的函數(shù)文件,該118例、一個(gè)函數(shù)文件可以定義個(gè)函數(shù)
function[y1,y2,y3]=f(x)
y1=sin(x);
y2=cos(x);
y3=tan(x);(3)數(shù)據(jù)文件:用save(‘文件名’,‘變量1’,‘變量2’,……)或save文件名變量1變量2變量3創(chuàng)建;用load(‘文件名’)或Load文件名調(diào)入到工作間。例、一個(gè)函數(shù)文件可以定義個(gè)函數(shù)119
控制語句(1)循環(huán)語句
(a)for循環(huán):例s=0;fork=1:1:10%初始值、步長和最大限值s=s+k;end%循環(huán)結(jié)束標(biāo)志控制語句120(b)while循環(huán):例s=0;k=0;whilek<=9k=k+1;s=s+k;ends(b)while循環(huán):例121(c)if……else……end選擇語句:例編寫分段函數(shù)f(x)=x,(-1=<x<0);f(x)=x^2,(0<=x<=1)。functiony=f(x)ifx>=-1&x<0y=x;elsey=x^2;end(c)if……else……end選擇語句:例122(d)if…end語句:例fori=1:10ifi<8a(i)=100endend結(jié)果:a=100100100100100100100(d)if…end語句:例123(e)if…elseif…elseif…else…end多重選擇語句:例編寫函數(shù)文件:functiony=f(x)ifx>=-1&x<0,y=x;elseifx>=0&x<=1,y=x^2;else,f=0end在命令窗口中輸入f(1),(3)可以得到結(jié)果。(e)if…elseif…elseif…else…en124(f)swith變量case1語句case2語句……otherwise語句end(f)swith變量125例、fori=1:6switchicase1a=1case2a=2case3a=3case4a=4otherwiseb=0endend例、126例已知n=自己的真實(shí)學(xué)號(hào),在xoy平面有點(diǎn)Ai=(i,0)Bi=(i,n)(i=0,1,2,……,n)現(xiàn)要畫連接AiBj的線段(i,j=0,1,…,n),試給出其MATLAB程序。解現(xiàn)就學(xué)號(hào)為6,給出其程序如下:例已知n=自己的真實(shí)學(xué)號(hào),在xoy平面有點(diǎn)127n=6;x=0:n;y=0:n;fori=1:7forj=1:7ifi==jplot(x(i)*ones(size(y)),y);xlabel('x');ylabel('y');title('AiBj的連線')v=[0,n,0,n];axis(v)holdon;elsea=min(x(i),x(j));b=max(x(i),x(j));X1=a:0.1*(b-a):b;Y1=-n/(x(i)-x(j))*(X1-x(i));%連接AiBj的直線plot(X1,Y1);endendendn=6;x=0:n;y=0:n;128作業(yè):在上題的基礎(chǔ)上,再加上點(diǎn)
Ci=(0,i),Di=(n,i)(i=0,1,2,……,n)現(xiàn)要畫連接AiBj和CiBj的線段(i,j=0,1,…,n),試給出其MATLAB程序。把運(yùn)行結(jié)果得到的圖像,存放到WORD文件,文件名字取為:真實(shí)姓名_真實(shí)學(xué)號(hào),然后發(fā)送到信箱:xtxyshx@126.com作業(yè):在上題的基礎(chǔ)上,再加上點(diǎn)129六、主要命令匯總1、常用信息help:在線幫助(顯示在命令窗)。helpwin:在線幫助(獨(dú)立窗口顯示)。ver:MATLAB及工具箱的版本信息。2、管理工作區(qū)命令who:顯示當(dāng)前變量。whos:顯示當(dāng)前變量具體信息。六、主要命令匯總1、常用信息130clear:從內(nèi)存中清楚變量和函數(shù)。quit:退出MATLAB。3、管理命令和函數(shù)what:顯示當(dāng)前目錄下的MATLAB文件。edit:編輯M文件。edit(建立編輯新文件);edit+文件名(編輯已有的文件)。clear:從內(nèi)存中清楚變量和函數(shù)。131which:找出函數(shù)和文件的位置。type:顯示M文件內(nèi)容。Type+文件名。Inmem:顯示內(nèi)存中的函數(shù)。4、操作系統(tǒng)命令dir:顯示目錄。pwd:顯示當(dāng)前工作目錄。delete:刪除文件。Delete+文件名。which:找出函數(shù)和文件的位置。132web:打開頁面瀏覽器加載文件。5、數(shù)據(jù)類型double:雙精度類型sym:符號(hào)型Inline:內(nèi)聯(lián)對(duì)象char:字符數(shù)組或字符串。uint8:無符號(hào)8位整數(shù)(unsignedinteger)char(sym型變量):把sym型轉(zhuǎn)化為char型sym(char型變量):把char型轉(zhuǎn)化為sym型char(inline型)和inline(char型)可相互轉(zhuǎn)化。num2str:數(shù)字轉(zhuǎn)化成字符串6、數(shù)據(jù)基本操作max:最大元素。向量為數(shù),矩陣為向量web:打開頁面瀏覽器加載文件。133min:最小元素。類似max.mean:求平均值。mean(a),a為向量時(shí)得到向量平均值,結(jié)果為一個(gè)數(shù);a為矩陣時(shí),進(jìn)行每列平均,得到一個(gè)向量。sum:元素和。sum(a),a為向量時(shí)得到該向量各元素之和,結(jié)果為一個(gè)數(shù);a為矩陣時(shí),進(jìn)行每列求和,得到一個(gè)向量。min:最小元素。類似max.134prod:元素積。prod(a)當(dāng)a為向量和矩陣時(shí)的情況,類似于max(a)。cumsum:元素累和。cumsum(a),a可為向量,也可為矩陣。cumprod:元素累積。a可為向量,也可為矩陣。7、基本矩陣函數(shù)zeros:零矩陣函數(shù)。prod:元素積。prod(a)當(dāng)a為向量和135ones:全1矩陣。eye:單位矩陣。rand:隨機(jī)數(shù)、向量、矩陣.linspace:線性等分向量。8、基本數(shù)組操作size:矩陣大小。length:數(shù)組長度。isempty:判斷是不是空矩陣。ones:全1矩陣。136isequal:判斷數(shù)組是否相等。isequal(a,b)。isnumeric:判斷是否為數(shù)值矩陣。reshape:矩陣重置。tril:抽取下三角部分。triu:抽取上三角部分。fliplr:左右方向翻轉(zhuǎn)矩陣(flip:翻轉(zhuǎn))。flipud:上下方向翻轉(zhuǎn)矩陣。isequal:判斷數(shù)組是否相等。137rot90:逆時(shí)針把矩陣旋轉(zhuǎn)90度。find(x):[i,j]=find(x)查找x非零元下標(biāo)。9、專用變量和常量ans:最新答案。pi:圓周率。i,j:復(fù)數(shù)單位。inf:無窮大。NaN:不定數(shù)。isnan:判斷不定數(shù)。rot90:逆時(shí)針把矩陣旋轉(zhuǎn)90度。138isinf:判斷無窮大元素。isfinite:判斷有限大元素。10、指數(shù)、對(duì)數(shù)函數(shù)exp:e指數(shù)函數(shù)。pow2:以2為底的冪函數(shù)。sqrt:平方根函數(shù)。11、舍入函數(shù)和剩余函數(shù)fix:朝零方向舍入為整數(shù)。isinf:判斷無窮大元素。139floor:朝負(fù)方向舍入為整數(shù)。ceil:朝正方向舍入為整數(shù)。round:四舍五入為整數(shù)。sign:符號(hào)函數(shù)。mod:無符號(hào)求余函數(shù)。mod(3,2)=1rem:帶符號(hào)求余函數(shù)。12、復(fù)數(shù)函數(shù)abs:求模。floor:朝負(fù)方向舍入為整數(shù)。140conj:求共軛函數(shù)(conjugate)。angle:相角函數(shù)。imag:復(fù)矩陣虛部。real:復(fù)矩陣實(shí)部。isreal:實(shí)矩陣判斷函數(shù)。12、矩陣函數(shù)norm:矩陣或向量范數(shù)。normest:向量、矩陣2范數(shù)。conj:求共軛函數(shù)(conjugate)。141rank:矩陣的秩。det:矩陣行列式的值。trace:矩陣的跡(主對(duì)角線元素之和)。inv:矩陣逆。13、特征多項(xiàng)式、特征值poly:特征多項(xiàng)式。poly2sym:多項(xiàng)式表示。eig:特征值和特征向量。rank:矩陣的秩。142eigs:特征值。14、矩陣函數(shù)expm:矩陣指數(shù)。logm:矩陣對(duì)數(shù)。sqrtm:矩陣平方根。15、坐標(biāo)轉(zhuǎn)換cart2sph:轉(zhuǎn)換直角坐標(biāo)為球坐標(biāo)。cart2pol:轉(zhuǎn)換直角坐標(biāo)為極坐標(biāo)。eigs:特征值。143pol2cart:轉(zhuǎn)換極坐標(biāo)為直角坐標(biāo)。sph2cart:轉(zhuǎn)換球坐標(biāo)為直角坐標(biāo)。16、坐標(biāo)軸控制axis:控制坐標(biāo)軸范圍。gridon/off:柵格線保持、取消。Gridminor:較小網(wǎng)格。holdon/off:圖形保持/取消。boxon/off:圖形四周都顯示/常規(guī)坐標(biāo)軸。例1、pol2cart:轉(zhuǎn)換極坐標(biāo)為直角坐標(biāo)。144[x,y]=meshgrid(0:0.5:10);z=y.*sin(x.^2)+cos(y);surf(x,y,z)v=[-20,10,-20,10,-10,50];%坐標(biāo)軸范圍控制axis(v)%注意該語句必須在圖形顯示語句的后面說明:二維圖形是類似的。[x,y]=meshgrid(0:0.5:10);145例2、axis(‘控制字符串’):可以選擇不同的字符串完成對(duì)坐標(biāo)軸的操作。控制字符串有:(1)auto:自動(dòng)模式,使得圖形的坐標(biāo)范圍滿足圖中一切圖元素。(2)axis:將當(dāng)前坐標(biāo)設(shè)置固定,使用hold命令后,圖形仍以此作為坐標(biāo)界限。例2、axis(‘控制字符串’):可以選擇146(3)manual:以當(dāng)前的坐標(biāo)限定繪制。(4)tight:將坐標(biāo)限控制在指定的數(shù)據(jù)范圍內(nèi)。(5)equal:使坐標(biāo)軸分度相等。(6)off:取消對(duì)坐標(biāo)軸的一切設(shè)置,包括系統(tǒng)的自動(dòng)設(shè)置。(7)on:恢復(fù)對(duì)坐標(biāo)軸的一切設(shè)置。(3)manual:以當(dāng)前的坐標(biāo)限定繪147[x,y]=meshgrid(-1:0.1:1,-1:0.1:1);z=x.^2+y.^2;surf(x,y,z)boxon17、基本二維圖形plot:線性繪圖。[x,y]=meshgrid(-1:0.1:1,-1:0.1148loglog:雙對(duì)數(shù)坐標(biāo)圖。semilogx:半對(duì)數(shù)(x)坐標(biāo)圖。semilogy:半對(duì)數(shù)(y)坐標(biāo)圖。polar:極坐標(biāo)圖。subplot:分割圖窗refline(slope,intercept):加參考線18、圖形注解legend:圖形標(biāo)簽.xlable:x軸標(biāo)簽。loglog:雙對(duì)數(shù)坐標(biāo)圖。149ylable:y軸標(biāo)簽。title:圖形題目。text:文字注解。19、特殊二維圖形bar:條形圖。barh:水平柱圖。ezplot:符號(hào)函數(shù)圖。fplot:繪制字符串指定的函數(shù)名的函數(shù)圖。如fplot(‘sin(x)’,[2,3])。ylable:y軸標(biāo)簽。150pie:餅圖。plotmatrix:繪矩陣點(diǎn)圖。stem:2維火柴桿圖。stem3:3維火柴桿圖。20、等高線圖和向量圖contour:等高線圖。contour3:三維等高線圖。quiver:向量圖。例pie:餅圖。151[x,y]=meshgrid(-2:.2:2,-1:.15:1);z=x.*exp(-x.^2-y.^2);[px,py]=gradient(z,2);contour(x,y,z),holdonquiver(x,y,px,py)holdoff
[x,y]=meshgrid(-2:.2:2,-1:15221、特殊三維圖形comet3:三維彗星軌線(comet(x,y)畫二維彗星線)。
t=-10*pi:pi/500:10*pi
comet3(sin(t),cos(t),t)meshc(x,y,z):畫出三維網(wǎng)格與等高線圖,類似sutfc。meshz(x,y,z):增加邊界面屏蔽。21、特殊三維圖形153stem3:三維火柴干圖。例a=rand(3);stem3(a);22、固體模型cylinder:生成圓柱。格式為[x,y,z]=cylinder(r,n),r為母線半徑,N為顯示的母線條數(shù)mesh(x,y,z)或surf(x,y,z)顯示單位高度柱面。stem3:三維火柴干圖。例154t=-1*pi:pi/20:1*pi;r=5+cos(t);[x,y,z]=cylinder(r,30)surf(x,y,z)sphere:生成單位球面。例[x,y,z]=sphere(40)%40為子午線條數(shù),sphere默認(rèn)為20條。mesh(x,y,z)或surf(x,y,z)%畫球面axis(‘equal’)%坐標(biāo)軸刻度相同t=-1*pi:pi/20:1*pi;155例[x,y,z]=sphere(50);mesh(x+1,y+2,z+2)畫出以(1,2,2)為中心半徑為1的球面;[x,y,z]=sphere(50);mesh(x,y,abs(z))畫出以(0,0,0)為中心半徑為1的上半個(gè)球面;[x,y,z]=sphere(50);mesh(2*x,2*y,2*abs(z)),畫出以(0,0,0)為中心的半徑為2上半個(gè)球面;[x,y,z]=sphere(50);mesh(2*x,2*y,2*abs(z)),畫出以(0,0,0)為中心的半徑為2上半個(gè)球面;例156例、繞地球運(yùn)動(dòng)的飛行物[x,y,z]=sphere(50);mesh(x,y,z);holdonv=[-6,6,-6,6,-6,6];axis(v);axis('off')t=0:pi/1000:200*pi;x=6*sin(t);y=2*cos(t);z=zeros(size(t));comet3(x,y,z)例、繞地球運(yùn)動(dòng)的飛行物157[工學(xué)]MATLAB與科學(xué)計(jì)算課件15823、四維表現(xiàn)圖對(duì)于三維圖形自變量是二維的,對(duì)于三個(gè)自變量的函數(shù)w=fx,y,z),其其圖形應(yīng)該是四維的,由于我們所處的空間和思維的局限性,在計(jì)算機(jī)屏幕上只能表現(xiàn)出三維空間。為了表現(xiàn)四維圖像,可利用三維實(shí)體的四維切片色圖,用三維實(shí)體上的顏色來描述函數(shù)值的變化情況。23、四維表現(xiàn)圖159MATLAB中用slice函數(shù)來完成(1)slice(x,y,z,w,sx,sy.sz):繪制向量sx,sy,sz中的點(diǎn)沿x,y,z軸方向的切片圖,w的大小決定了每一點(diǎn)的顏色。(2)slice(x,y,z,w,x1,y1,z1):按數(shù)組x1,y1,z1切片(按坐標(biāo)軸單位)。(3)slice(w,x1,y1,z1):按數(shù)組x1,y1,z1切片(按x,y,z的網(wǎng)格單位進(jìn)行切片。(4)slice(w,sx,sy,sz):按x,y,z的網(wǎng)格單位進(jìn)行切片。MATLAB中用slice函數(shù)來完成160例、程序如下:[x,y,z]=meshgrid(-2:0.2:2,-2:0.25:2,-2:0.16:2);w=x.^2+y.^2+z.^2;%slice(x,y,z,a,x,y,z)x1=1:15;y1=1:10;z1=1:10subplot(2,2,1),slice(x,y,z,w,1,1,[0,1]);subplot(2,2,2),slice(w,1,1,[0,1]);subplot(2,2,3),slice(x,y,z,w,x1,y1,z1);holdonsubplot(2,2,4),slice(w,x1,y1,z1);colorbar%色軸,它可以標(biāo)注顏色與數(shù)值之間的關(guān)系例、程序如下:16124、數(shù)據(jù)文件(1)Save(‘x1’,‘變量1’,‘變量2’,…):把變量1,變量2,…的數(shù)據(jù)保存到名字為x1.mat的數(shù)據(jù)文件中;當(dāng)變量缺省時(shí),保存所有變量的數(shù)據(jù)。數(shù)據(jù)文件自己起名字,變量為程序中的已賦值的變量。請(qǐng)看下面例子24、數(shù)據(jù)文件162w='XingtaiCollege'x=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];y=[0.002,0.114,0.189,0.316,0.394,0.434,0.427,0.409,0.379,0.327,0.254];a=x'*y;save(‘x1’)%所有的變量全部保存save(‘x2’,‘w’)%只保存w變量的數(shù)據(jù)save('x3','w','x')%保存w,x變量的數(shù)據(jù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海中學(xué)2023學(xué)年度第一學(xué)期高一年級(jí)9月月考語文試卷
- 管理會(huì)計(jì)(第三版)教案全套 徐艷 模塊1-10 管理會(huì)計(jì)概述- 責(zé)任會(huì)計(jì)
- 4.3平面鏡成像- 探究平面鏡成像特點(diǎn)說課稿 2025年初中 人教版物理八年級(jí)上學(xué)期
- 2025年電磁功能材料精密加工輔助材料項(xiàng)目合作計(jì)劃書
- 應(yīng)聘單位創(chuàng)意簡歷
- 徐州賈汪區(qū)發(fā)展方向如何
- 企業(yè)征信報(bào)告申請(qǐng)書
- 護(hù)理在剖宮產(chǎn)產(chǎn)婦護(hù)理中的實(shí)施價(jià)值研究
- 藝術(shù)館裝修意外免責(zé)條款
- 2025年度安全防護(hù)設(shè)備預(yù)付款采購合同模板
- 2024年河南省中考滿分作文《成功所至諸徑共趨》
- 2025年陜西國防工業(yè)職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫學(xué)生專用
- 2025年浙江寧波市奉化區(qū)農(nóng)商控股集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 2025年中考百日誓師大會(huì)校長發(fā)言稿:激揚(yáng)青春志 決勝中考時(shí)
- (一模)2025年汕頭市2025屆高三高考第一次模擬考試 語文試卷(含答案詳解)
- 上海浦東新區(qū)2024-2025高三上學(xué)期期末教學(xué)質(zhì)量檢測(cè)(一模)物理試卷(解析版)
- 2023年中小學(xué)心理健康教育課程標(biāo)準(zhǔn)
- 2025河南中煙工業(yè)限責(zé)任公司一線崗位招聘128人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年中國中壓變頻器行業(yè)深度調(diào)研與投資戰(zhàn)略規(guī)劃分析報(bào)告
- 同一直線上的二力合成導(dǎo)學(xué)案
- 鍋爐改造方案(省煤器)講解-共18頁
評(píng)論
0/150
提交評(píng)論