MATLAB教程(第5版R2021a) 課件 第2章 MATLAB數(shù)值計算_第1頁
MATLAB教程(第5版R2021a) 課件 第2章 MATLAB數(shù)值計算_第2頁
MATLAB教程(第5版R2021a) 課件 第2章 MATLAB數(shù)值計算_第3頁
MATLAB教程(第5版R2021a) 課件 第2章 MATLAB數(shù)值計算_第4頁
MATLAB教程(第5版R2021a) 課件 第2章 MATLAB數(shù)值計算_第5頁
已閱讀5頁,還剩140頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章MATLAB數(shù)值計算——變量和數(shù)據(jù)01數(shù)據(jù)類型整型浮點型字符型邏輯型數(shù)據(jù)類型1.整型MATLAB提供了8種內(nèi)置的整數(shù)類型,每種數(shù)據(jù)類型占用的字節(jié)和表示的范圍都不同,可以使用類型轉(zhuǎn)換函數(shù)將各種整數(shù)類型強制相互轉(zhuǎn)換,如表。數(shù)據(jù)類型表示范圍字

節(jié)

數(shù)類型轉(zhuǎn)換函數(shù)無符號8位整數(shù)uint80~28-11uint8()無符號16位整數(shù)uint160~216-12uint16()無符號32位整數(shù)uint320~232-14uint32()無符號64位整數(shù)uint640~264-18uint64()有符號8位整數(shù)int8-27~27-11int8()有符號16位整數(shù)int16-215~215-12int16()有符號32位整數(shù)int32-231~231-14int32()有符號64位整數(shù)int64-263~263-18int64()數(shù)據(jù)類型2.浮點型浮點數(shù)包括了單精度型(single)和雙精度型(double),MATLAB默認的數(shù)據(jù)類型為雙精度型,表中列出了各種浮點數(shù)的數(shù)值范圍和類型轉(zhuǎn)換函數(shù)。數(shù)據(jù)類型表示范圍字

節(jié)

數(shù)類型轉(zhuǎn)換函數(shù)單精度型(single)-3.40282×1038

~+3.40282×10384single()雙精度型(double)-1.79769×10308

~+1.79769×103088double()3.字符型在MATLAB中,字符型數(shù)據(jù)使用單引號('')括起來。字符使用ASCII碼的形式存放,每個字符占2字節(jié)。數(shù)據(jù)類型4.邏輯型邏輯型數(shù)據(jù)表示為true和false,每個邏輯型數(shù)據(jù)占1字節(jié)。使用logical函數(shù)可以將數(shù)值型轉(zhuǎn)換成邏輯型,所有非0的整數(shù)和浮點數(shù)都轉(zhuǎn)換成1(true),0轉(zhuǎn)換成0(false)。【例2.1】各種數(shù)據(jù)類型的轉(zhuǎn)換。>>a=5;>>b=0;>>c=67;>>u1=uint8(a) %轉(zhuǎn)換成無符號整型u1=

uint8 5>>s1=char(c) %轉(zhuǎn)換成字符型,為字母"C"s1= 'C'>>l1=logical(b) %轉(zhuǎn)換成邏輯型,為falsel1=

logical 0數(shù)據(jù)類型從工作區(qū)窗口可查看各個變量所占的字節(jié)數(shù)和數(shù)據(jù)類型,如圖。02常

數(shù)常數(shù)的表達方式矩陣和數(shù)組的概念復數(shù)常

數(shù)1.常數(shù)的表達方式MATLAB的數(shù)據(jù)采用十進制表示,可以用帶小數(shù)點的形式直接表示,也可以用科學記數(shù)法,eps為相對精度位數(shù),數(shù)值的表示范圍是10

308~10308。以下都是合法的數(shù)據(jù)表示方式:

2、5.67;2.56e

56(表示2.56

10

56);4.68e204(表示4.68

10204)。2.矩陣和數(shù)組的概念在MATLAB的運算中,會經(jīng)常使用標量、向量、矩陣和數(shù)組,這幾個名稱的定義如下。(1)標量:是指1

1的矩陣,即為只含1個數(shù)的矩陣。(2)向量:是指1

n或n

1的矩陣,即只有1行或者1列的矩陣。(3)矩陣:是1個矩形的數(shù)組,即二維數(shù)組,其中向量和標量都是矩陣的特例,0

0矩陣為空矩陣([])。(4)數(shù)組:是指n維的數(shù)組,為矩陣的延伸,其中矩陣和向量都是數(shù)組的特例。常

數(shù)3.復數(shù)復數(shù)由實部和虛部組成,MATLAB用特殊變量“i”和“j”表示虛數(shù)的單位。復數(shù)運算不需要特殊處理,可以直接進行。復數(shù)可以有以下幾種表示方式:z=a+b*i或z=a+b*jz=a+bi或z=a+bj(當b為常量時)z=r*exp(i*

)可以用real、imag、abs和angle函數(shù)分別得出1個復數(shù)的實部、虛部、幅值和相角。語法:a=real(z) %計算實部b=imag(z) %計算虛部r=abs(z) %計算幅值theta=angle(z) %計算相角說明:復數(shù)z的實部a=r*cos(

);復數(shù)z的虛部b=r*sin(

);復數(shù)z的幅值;復數(shù)z的相角

=arctan(b/a),以rad(弧度)為單位。常

數(shù)【例2.2】在命令行窗口中輸入復數(shù)。>>a=1-2*ia= 1.0000-2.0000i>>real(a)ans= 1>>imag(a)ans= -2>>abs(a)ans= 2.2361>>angle(a)*180/pi %以角度為單位計算相角ans= -63.434903變

量變量的命名規(guī)則特殊變量變

量1.變量的命名規(guī)則MATLAB的變量有一定的命名規(guī)則。變量的命名規(guī)則如下:(1)變量名區(qū)分字母的大、小寫。例如,“a”和“A”是不同的變量。(2)變量名不能超過63個字符,第63個字符后的字符被忽略,MATLAB7.3版以前的變量名不能超過31個字符。(3)變量名必須以字母開頭,變量名的組成可以是任意字母、數(shù)字或者下畫線,但不能含有空格和標點符號(如。、%等)。例如,“6ABC”“AB%C”都是不合法的變量名。(4)關(guān)鍵字(如if、while等)不能作為變量名。變

量2.特殊變量MATLAB有一些自己的特殊變量,是由系統(tǒng)自動定義的,當MATLAB啟動時駐留在內(nèi)存,但在工作區(qū)中卻看不到。特殊變量如表。特殊變量取

值ans默認的運算結(jié)果變量名,answer的縮寫pi圓周率

eps計算機的最小數(shù)flops浮點運算數(shù)inf無窮大,如1/0NaN或nan非數(shù),如0/0、∞/∞、0

∞i或ji=j=

nargin函數(shù)的輸入變量數(shù)目nargout函數(shù)的輸出變量數(shù)目realmin最小的可用正實數(shù)realmax最大的可用正實數(shù)當沒有給變量賦值時,計算的結(jié)果自動賦給名為“ans”(answer的縮寫)的變量。例如,在命令窗口中輸入并計算2

:>>2*pians=6.2832第2章MATLAB數(shù)值計算——矩陣和數(shù)組01矩陣輸入通過顯式元素列表輸入矩陣通過語句生成矩陣由函數(shù)產(chǎn)生特殊矩陣矩陣輸入1.通過顯式元素列表輸入矩陣對于比較小的簡單矩陣,可以通過顯式元素列表直接用鍵盤輸入矩陣。例如,輸入矩陣c:>>c=[12;34;53*2] %[]表示構(gòu)成矩陣,分號分隔行,空格分隔元素c=123456也可以輸入:>>c=[1,2;3,4;5,6]; %逗號分隔元素對于較為復雜的矩陣,為了使輸入方式更符合用戶習慣,可以用回車鍵代替分號分隔行。例如,矩陣c也可以這樣輸入:>>c=[123456]矩陣輸入2.通過語句生成矩陣通過語句生成矩陣有以下幾種方式。(1)使用from:step:to方式生成行向量。如果是線性等間距格式的向量,則可以使用from:step:to方式生成。語法:from:tofrom:step:to說明:from、step和to分別表示開始值、步長和結(jié)束值。當step省略時則默認為step=1;當step省略或step>0而from>to時為空矩陣;當step<0而from<to時也為空矩陣。矩陣輸入【例2.3_1】

使用from:step:to方式生成矩陣。>>x1=2:5x1=2345>>x2=2:0.5:4x2=2.00002.50003.00003.50004.0000>>x3=5:-1:2x3=5432>>x4=2:-1:3 %空矩陣x4=

空的1×0double行向量>>x5=2:-1:0.5x5=21>>x6=[1:2:5;1:3:7] %兩行向量構(gòu)成矩陣x6=135147矩陣輸入(2)使用linspace和logspace函數(shù)生成向量。①linspace用來生成線性等分向量。與from:step:to方式不同的是,它直接給出元素的個數(shù)從而得出各個元素的值。語法:linspace(a,b,n)說明:a、b、n這3個參數(shù)分別表示開始值、結(jié)束值和元素個數(shù)。生成從a到b之間線性分布的n個元素的行向量,n如果省略則默認值為100。②logspace用來生成對數(shù)等分向量,它和linspace一樣直接給出元素的個數(shù)從而得出各個元素的值。在畫Bode圖等應(yīng)用中,需要使用logspace命令生成對數(shù)等間隔的數(shù)據(jù)。語法:logspace(a,b,n)說明:a、b、n這3個參數(shù)分別表示開始值、結(jié)束值和數(shù)據(jù)個數(shù),n如果省略則默認值為50。生成從10a到10b之間按對數(shù)等分的n個元素的行向量。矩陣輸入【例2.3_2】

用linspace和logspace函數(shù)生成行向量。>>x1=linspace(0,2*pi,5) %從0到2*pi等分成5個點x1=01.57083.14164.71246.2832>>x2=logspace(0,2,3) %從1~100對數(shù)等分成3個點x2=110100矩陣輸入3.由函數(shù)產(chǎn)生特殊矩陣MATLAB提供了很多能夠產(chǎn)生特殊矩陣的函數(shù),各函數(shù)的功能如表。函

數(shù)

名功

能例

子輸

入結(jié)

果zeros(m,n)產(chǎn)生m

n的全0矩陣zeros(2,3)000000ones(m,n)產(chǎn)生m

n的全1矩陣ones(2,3)111111rand(m,n)產(chǎn)生均勻分布的隨機矩陣,元素取值范圍為0.0~1.0rand(2,3)0.95010.60680.89130.23110.48600.7621randn(m,n)產(chǎn)生正態(tài)分布的隨機矩陣randn(2,3)

0.43260.1253

1.1465

1.66560.28771.1909magic(N)產(chǎn)生N階魔方矩陣(矩陣的行、列和對角線上元素的和相等)magic(3)816357492eye(m,n)產(chǎn)生m

n的單位矩陣eye(3)100010001true(m,n)false(m,n)產(chǎn)生m

n的邏輯矩陣,全為true產(chǎn)生m

n的邏輯矩陣,全為falsetrue(2,3)111111矩陣輸入【例2.4】

使用函數(shù)創(chuàng)建矩陣。>>X1=eye(2,3) %2行3列的單位矩陣X1= 100 010>>X2=eye(3) %3行3列的單位矩陣X2= 100 010 001>>t=true(3) %3行3列的全true矩陣t= 3×3logical

數(shù)組 111 111 111>>t(1:2,3)=false(2,1) %1,2行的第2列改為falset= 3×3logical

數(shù)組 110 110 111說明:當eye(m,n)函數(shù)的m和n參數(shù)不相等時,則單位矩陣會出現(xiàn)全0行或列。false(2,1)是2行1列的矩陣。02矩陣元素矩陣的下標子矩陣塊的產(chǎn)生方式矩陣的賦值矩陣元素的刪除操作生成大矩陣矩陣的翻轉(zhuǎn)矩陣元素1.矩陣的下標以下介紹矩陣的下標方式。(1)全下標方式。矩陣中的元素可以用全下標方式標識,即由行下標和列下標表示,1個m

n的A矩陣的第i行第j列的元素表示為A(i,j)。例如“A(3,2)=6”表示在矩陣A的“第3行第2列”的元素賦值為6?!纠?.5_1】

給矩陣的元素賦值。>>a=[12;34;56]a=123456>>a(3,3) %提取a(3,3)的值位置2處的索引超出數(shù)組邊界(不能超出2)。

>>a(3,3)=9 %給a(3,3)賦值a=120340569矩陣元素(2)單下標方式。矩陣元素也可以用“單下標”標識,就是先把矩陣的所有列按先左后右的次序連接成“一維長列”,然后對元素位置進行編號。以m

n的矩陣A為例,元素A(i,j)對應(yīng)的“單下標”為s=(j

1)

m

i。矩陣A的元素下標如圖。矩陣元素2.子矩陣塊的產(chǎn)生方式MATLAB利用矩陣下標可以產(chǎn)生子矩陣。對于a(i,j),如果i和j是向量而不是標量,則將獲得指定矩陣的子矩陣塊。子矩陣是從對應(yīng)矩陣中取出一部分元素構(gòu)成的,如圖所示,分別用全下標和單下標方式取子矩陣。矩陣元素(1)用全下標方式。矩陣A如圖2.3所示,使用以下幾種方式都可以構(gòu)成子矩陣。①a([13],[23]):取行數(shù)為1、3,列數(shù)為2、3的元素構(gòu)成子矩陣。ans= 20 69②a(1:3,2:3):取行數(shù)為1~3,列數(shù)為2~3的元素構(gòu)成子矩陣,“1:3”表示1、2、3行下標。ans= 20 40 69矩陣元素③a(:,3):取所有行數(shù),即為1~3,列數(shù)為3的元素構(gòu)成子矩陣,“:”表示所有行或列。ans= 0 0 9④a(1:3,end):取行數(shù)為1~3,列數(shù)為3的元素構(gòu)成子矩陣,用“end”表示某一維數(shù)中的最大值,即3。ans= 0 0 9矩陣元素(2)用單下標方式。a([13;26]):取單下標為1、3、2、6的元素構(gòu)成子矩陣。ans= 15 36(3)邏輯矩陣。子矩陣也可以利用邏輯矩陣來標識,邏輯矩陣是指大小和對應(yīng)矩陣相同,而元素值為0或者1的矩陣。可以用a(l1,l2)表示子矩陣,其中l(wèi)1、l2為邏輯向量,當l1、l2的元素為0則不取該位置元素,反之則取該位置的元素。矩陣元素【例2.5_2】

利用邏輯矩陣提取矩陣。被提取的矩陣見前圖“A矩陣的元素”。>>l1=logical([101]) %給出邏輯向量l1l1= 1×3logical

數(shù)組 101>>l2=logical([110]) %給出邏輯向量l2l2= 1×3logical

數(shù)組 110>>a(l1,l2) %取出1、3行且1、2列的元素ans= 12 56矩陣元素3.矩陣的賦值給矩陣元素賦值,有以下幾種方式。①全下標方式:A(i,j)=B,給A矩陣的部分元素賦值,則B矩陣的行列數(shù)必須等于A矩陣的行列數(shù)?!纠?.6_1】

以全下標方式給矩陣元素賦值。>>a(1:2,1:3)=[111;111] %給第1、2行元素賦值為全1a= 111 111②單下標方式:A(s)=b,b為向量,元素個數(shù)必須等于A矩陣的元素個數(shù)?!纠?.6_2】

以單下標方式給矩陣元素賦值。>>a(5:6)=[23] %給第5、6個元素賦值a= 112 113矩陣元素③全元素方式:A(:)=B,給A矩陣的所有元素賦值,則B矩陣的元素總數(shù)必須等于A矩陣的元素總數(shù),但行列數(shù)不一定相等。>>a=[12;34;56]a= 12 34 56>>b=[123;456]b= 123 456>>a(:)=b %按單下標方式給a賦值a= 15 43 26說明:如果改為“a=b”,則a就是2行3列的矩陣。矩陣元素4.矩陣元素的刪除操作在MATLAB中可以對矩陣的單個元素、子矩陣塊和所有元素進行刪除操作,方法就是簡單地將其賦值為空矩陣(用[]表示)?!纠?.7】

對矩陣元素進行刪除。對前圖“A矩陣的元素”的矩陣刪除元素。>>a(:,3)=[] %刪除1列元素a= 12 34 56>>a(1)=[] %按單下標方式刪除1個元素,則矩陣變?yōu)樾邢蛄縜= 35246>>a=[] %刪除所有元素為空矩陣a= []矩陣元素5.生成大矩陣在MATLAB中,可以通過方括號([])將小矩陣連接起來生成1個較大的矩陣。【例2.8】

將矩陣連接起來生成大矩陣。參與連接的矩陣見前圖“A矩陣的元素”。>>[a;a] %連接成6

3的矩陣ans=120340569120340569>>[aa] %連接成3

6的矩陣ans=120120340340569569>>[a(1:2,1:2)10*a(1:2,2:3)] %計算并連接ans=1220034400矩陣元素6.矩陣的翻轉(zhuǎn)在MATLAB中可以通過功能強大的矩陣翻轉(zhuǎn)函數(shù)對矩陣進行翻轉(zhuǎn),其功能如表。假設(shè)矩陣A同上例:函

數(shù)

名功

能例

子輸

入結(jié)

果triu(X)產(chǎn)生X矩陣的上三角矩陣,其余元素補0triu(a)120040009tril(X)產(chǎn)生X矩陣的下三角矩陣,其余元素補0tril(a)100340569flipud(X)使矩陣X沿水平軸上下翻轉(zhuǎn)flipud(a)569340120fliplr(X)使矩陣X沿垂直軸左右翻轉(zhuǎn)fliplr(a)021043965flipdim(X,dim)使矩陣X沿特定軸翻轉(zhuǎn):dim=1,按行維翻轉(zhuǎn);dim=2,按列維翻轉(zhuǎn)flipdim(a,1)569340120rot90(X)使矩陣X逆時針旋轉(zhuǎn)90°rot90(a)00924613503字

串字符串占用的字節(jié)字符串函數(shù)使用1個變量存儲多個字符串執(zhí)行字符串顯示字符串字

串在MATLAB中,字符串是作為字符數(shù)組引入的,一個字符串由多個字符組成并按行向量進行存儲,用單引號('')界定。而其中的每一字符(包括空格)都是以其ASCII碼的形式存放的,只是其外顯形式仍然是可讀的字符?!纠?.9_1】

創(chuàng)建字符串。>>str1='Hello';>>str2='Ilike''MATLAB''' %重復單引號來輸入含有單引號的字符串str2= 'Ilike'MATLAB''>>str3='你好!'str3= '你好!'字

串1.字符串占用的字節(jié)由于MATLAB在存儲字符串時,每一個字符會占用2字節(jié),用“whos”命令查看字符串變量所占用的存儲空間,可以看到Bytes為Size的2倍。>>whosNameSizeBytesClassAttributesstr11x510charstr21x1530charstr31x36char字

串2.字符串函數(shù)字符串可以用以下函數(shù)進行運算。(1)length:用來計算字符串的長度(即組成字符的個數(shù))。(2)double:用來將字符型轉(zhuǎn)換成以ASCII碼為數(shù)值的double型,包括空格(ASCII碼為32)。(3)char:用來將數(shù)值型按照ASCII碼轉(zhuǎn)換成字符型,省略小數(shù)點后的數(shù)據(jù)。(4)class或ischar:用來判斷某一個變量的類型。class函數(shù)返回char則表示為字符串,而ischar函數(shù)返回1表示為字符串。(5)strcmp(x,y):比較字符串x和y的內(nèi)容是否相同。返回值如果為1則相同,為0則不同。(6)findstr(x,x1):尋找在某個長字符串x中的子字符串x1,返回其起始位置。(7)deblank(x):刪除字符串尾部的空格。(8)eval(x):執(zhí)行字符串,可以將字符串型轉(zhuǎn)換成數(shù)值型。字

串【例2.9_2】

使用字符串函數(shù)和進行字符串的數(shù)值運算。>>length(str1) %計算字符串長度ans=5>>x1=double(str1) %查看字符串的ASCII碼x1=72101108108111>>x2=str1+1 %字符串的數(shù)值運算x2=73102109109112>>char(x1) %將ASCII碼轉(zhuǎn)換成字符串形式ans='Hello'>>char(x2)ans='Ifmmp'>>class(str1) %判斷變量類型ans='char'>>class(x1)ans='double'>>ischar(str1) %判斷是否為字符型ans=

logical1字

串3.使用1個變量存儲多個字符串有如下幾種方法使用1個變量存儲多個字符串。(1)使用行向量將多個字符串變量直接用逗號(,)連接,組成1個新的行向量。【例2.10_1】

多個字符串構(gòu)成1個新字符串。>>str1='Hello';>>str2='Ilike''MATLAB''';>>str3=[str1,'!',str2] %多個字符串并排成一個行向量str3= 'Hello!Ilike'MATLAB''字

串(2)使用矩陣。將每個字符串放在1行,多個字符串可以構(gòu)成1個二維字符數(shù)組,但必須先在短字符串結(jié)尾補上空格符,以確保每個字符串(即每一行)的長度一樣。例如,如果將【例2.10_1】中的str1和str3簡單地放在1個二維字符數(shù)組的2行,則MATLAB會提示出錯。>>str5=[str1;str3]錯誤使用vertcat要串聯(lián)的數(shù)組的維度不一致?!纠?.10_2】

將短字符串結(jié)尾補上空格符。給str3重新賦值“你好!”并在末尾添加2個空格,再與str1構(gòu)成一個二維字符數(shù)組。>>str3='你好!'str3= '你好!'>>str5=[str1;str3,''] %為str3添加2個空格str5= 2×5char

數(shù)組 'Hello' '你好!'字

串(3)使用函數(shù)。一些專門的函數(shù)如str2mat、strvcat和char可以構(gòu)造出字符串矩陣,而不必考慮每行的字符數(shù)是否相等,總是按最長的字符串進行設(shè)置,長度不足的字符串的末尾用空格補齊?!纠?.10_3】

使用函數(shù)構(gòu)成1個二維字符數(shù)組。字

串4.執(zhí)行字符串如果需要直接“執(zhí)行”某一字符串,可以使用eval命令?!纠?.10_4】執(zhí)行字符串。執(zhí)行以下字符串。>>str9='a=2*5'str9='a=2*5'>>eval(str9) %執(zhí)行字符串a(chǎn)=10>>eval('0.4')ans=0.40005.顯示字符串字符串可以直接使用disp命令顯示出來,即使后面加分號(;)也可以顯示?!纠?.10_5】顯示字符串。>>disp('Pleaseinputmatrixa')Pleaseinputmatrixa04矩陣和數(shù)組運算

矩陣運算的函數(shù)矩陣和數(shù)組的算術(shù)運算矩陣和數(shù)組的轉(zhuǎn)置矩陣和數(shù)組的數(shù)學函數(shù)關(guān)系操作和邏輯操作運算符優(yōu)先級矩陣和數(shù)組運算

1.矩陣運算的函數(shù)MATLAB提供了許多矩陣運算的函數(shù),使很多復雜的運算變得很簡單。常用矩陣運算函數(shù)如表所示,其中:說明:在表2.6中,det(a)=0,或det(a)雖不等于0但數(shù)值很小且接近于0,則計算inv(a)時,其解的精度比較低,用條件數(shù)(求條件數(shù)的函數(shù)為cond)表示。條件數(shù)越大,其解的精度越低,MATLAB會提出警告:“條件數(shù)太大,結(jié)果可能不準確?!?gt;>inv(a)Warning:MatrixisclosetosingularorbadlyscaledResultsmaybeinaccurate.RCOND=1.541976e-018ans=1.0e+016*-0.45040.9007-0.45040.9007-1.80140.9007-0.45040.9007-0.4504矩陣和數(shù)組運算

2.矩陣和數(shù)組的算術(shù)運算矩陣和數(shù)組的算術(shù)運算介紹如下。(1)矩陣和數(shù)組的加、減運算①矩陣加、減運算表達式分別為“A+B”和“A-B”。A和B矩陣必須大小相同才可以進行加、減運算。如果A、B中有1個是標量,則該標量與矩陣的每個元素進行運算。②數(shù)組的加、減法運算規(guī)則與矩陣的完全相同,運算符也完全相同。(2)矩陣和數(shù)組的乘法運算①矩陣的乘法運算表達式為“A*B”,表示矩陣相乘。矩陣A的列數(shù)必須等于矩陣B的行數(shù),除非其中有1個是標量。②數(shù)組的乘法運算表達式為“A*B”,運算符為“*”,表示數(shù)組A和B中的對應(yīng)元素相乘。A和B數(shù)組必須大小相同,除非其中有1個是標量。矩陣和數(shù)組運算

【例2.11】矩陣和數(shù)組的加、減和乘法運算。>>x1=[12;34;56];>>x2=eye(3,2)x2=100100>>x=x1+x2 %矩陣相加x=223556>>x12=x1.*x2 %數(shù)組相乘x12=100400>>x1*x2 %矩陣相乘,x1列數(shù)不等于x2行數(shù)錯誤使用

*用于矩陣乘法的維度不正確。請檢查并確保第一個矩陣中的列數(shù)與第二個矩陣中的行數(shù)匹配。要執(zhí)行按元素相乘,請使用'.*'。相關(guān)文檔

>>x21=x1*x2' %矩陣相乘,x2'是x2的轉(zhuǎn)置x21=120340560矩陣和數(shù)組運算

(3)矩陣和數(shù)組的除法①矩陣的除法運算表達式有2種:“A\B”和“A/B”,運算符“\”和“/”分別表示左除和右除。一般來說,X=A\B是方程A*X=B的解,A\B=A

1*B。當A是非奇異的n

n的方陣時,則B是n維列向量,是采用高斯消去法(消元法)得出的;當A是m

n的矩陣,B是m維列向量時,則X=A\B得出最小二乘解。X=A/B是X*A=B的解,A/B=A*B

1。其中:A

1是矩陣的逆,也可用inv(A)求逆矩陣。②數(shù)組的除法運算表達式有兩種:“A.\B”和“A./B”,分別為數(shù)組的左除和右除,表示數(shù)組相應(yīng)元素相除。A和B數(shù)組必須大小相同,除非其中有1個是標量。矩陣和數(shù)組運算

【例2.12】求解線性方程組。已知方程組

,求解。解1:用矩陣除法來求解,將該方程變換成AX=B的形式。其中:,>>A=[2-13;31-5;4-11];>>B=[5;5;9];>>X1=A\BX1=2.0000-1.00000.0000解2:使用LU分解和QR分解求解方程組。方程變換成AX=B形式,實現(xiàn)LU分解后,方程的解為X=U\(L\B);實現(xiàn)QR分解后,方程的解為X=R\(Q\B)。矩陣和數(shù)組運算

(4)矩陣和數(shù)組的乘方①矩陣乘方的運算表達式為“A^B”,其中A可以是矩陣或標量。

當A為矩陣時,必須為方陣:B為正整數(shù)時,表示A矩陣自乘B次;B為負整數(shù)時,表示先將矩陣A求逆,再自乘|B|次,僅對非奇異矩陣成立;B為矩陣時不能運算,會出錯;B為非整數(shù)時,涉及特征值和特征向量的求解,將A分解成A=W*D/W,D為對角陣,則有運算式A^B=W*D^B/W。

當A為標量時:B為矩陣時,將A分解成A=W*D/W,D為對角陣,則有運算式為A^B=W*diag(D.^B)/W。②數(shù)組乘方的運算表達式為“A.^B”。當A為矩陣,B為標量時,則將A(i,j)自乘B次;當A為矩陣,B為矩陣時,A和B數(shù)組必須大小相同,則將A(i,j)自乘B(i,j)次;當A為標量,B為矩陣時,將A^B(i,j)構(gòu)成新矩陣的第i行第j列元素。【例2.13_1】

矩陣和數(shù)組的除法和乘方運算。矩陣和數(shù)組運算

3.矩陣和數(shù)組的轉(zhuǎn)置矩陣和數(shù)組的轉(zhuǎn)置介紹如下。(1)矩陣的轉(zhuǎn)置運算A'表示矩陣A的轉(zhuǎn)置,如果矩陣A為復數(shù)矩陣,則為共軛轉(zhuǎn)置。(2)數(shù)組的轉(zhuǎn)置運算A.'表示數(shù)組A的轉(zhuǎn)置,如果數(shù)組A為復數(shù)數(shù)組,則不是共軛轉(zhuǎn)置。【例2.13_2】

矩陣和數(shù)組的轉(zhuǎn)置運算。>>x1=[12;34];>>x2=eye(2);>>x3=x1+x2*ix3=1.0000+1.0000i2.0000+0.0000i3.0000+0.0000i4.0000+1.0000i>>x4=x3' %矩陣轉(zhuǎn)置x4=1.0000-1.0000i3.0000+0.0000i2.0000+0.0000i4.0000-1.0000i>>x5=x3.' %數(shù)組轉(zhuǎn)置為共軛轉(zhuǎn)置x5=1.0000+1.0000i3.0000+0.0000i2.0000+0.0000i4.0000+1.0000i矩陣和數(shù)組運算

4.矩陣和數(shù)組的數(shù)學函數(shù)在MATLAB中exp、sqrt、sin、cos等數(shù)學函數(shù)可以直接在數(shù)組上使用,這些函數(shù)分別對數(shù)組的每個元素進行運算。數(shù)組的基本函數(shù)如表。函

數(shù)

名含

義函數(shù)

名含

義abs絕對值或者復數(shù)模rat有理數(shù)近似sqrt平方根mod模除求余real實部round四舍五入到整數(shù)imag虛部fix向最接近0取整conj復數(shù)共軛floor向最接近

∞取整sin正弦ceil向最接近+∞取整cos余弦sign符號函數(shù)tan正切rem求余數(shù)留數(shù)asin反正弦exp自然指數(shù)acos反余弦log自然對數(shù)atan反正切l(wèi)og10以10為底的對數(shù)atan2第四象限反正切pow22的冪sinh雙曲正弦bessel貝塞爾函數(shù)cosh雙曲余弦gamma伽馬函數(shù)tanh雙曲正切

矩陣和數(shù)組運算

【例2.14】

使用數(shù)組的算術(shù)運算函數(shù)。>>t=linspace(0,2*pi,6)t=01.25662.51333.76995.02656.2832>>y=sin(t) %計算正弦y=00.95110.5878-0.5878-0.9511-0.0000>>y1=abs(y) %計算絕對值,將正弦曲線變成全波整流y1=00.95110.58780.58780.95110.0000>>y2=1-exp(-t).*y %計算按指數(shù)衰減的正弦曲線y2= 1.00000.72930.95241.01361.00621.0000矩陣和數(shù)組運算

下面將矩陣和數(shù)組運算進行對比,如表所示,其中S為標量,A、B為矩陣。數(shù)組運算矩陣運算命

令含

義命

令含

義A+B對應(yīng)元素相加A+B與數(shù)組運算相同A

B對應(yīng)元素相減A

B與數(shù)組運算相同S.*B標量S分別與B元素的乘積S*B與數(shù)組運算相同A.*B數(shù)組對應(yīng)元素相乘A*B內(nèi)維相同矩陣的乘積S./BS分別被B的元素左除S\BB矩陣分別左除SA./BA的元素被B的對應(yīng)元素除A/B矩陣A右除B,即A的逆陣與B相乘B.\A結(jié)果一定與上行相同B\AA左除B(一般與上行不同)A.^SA的每個元素自乘S次A^SA矩陣為方陣時,自乘S次A.^SS為小數(shù)時,對A各元素分別求非整數(shù)冪,得出矩陣A^SS為小數(shù)時,方陣A的非整數(shù)乘方S.^B分別以B的元素為指數(shù)求冪值S^BB為方陣時,標量S的矩陣乘方A.T非共軛轉(zhuǎn)置,相當于conj(AT)AT共軛轉(zhuǎn)置exp(A)以自然數(shù)e為底,分別以A的元素為指數(shù)求冪expm(A)A的矩陣指數(shù)函數(shù)log(A)對A的各元素求對數(shù)logm(A)A的矩陣對數(shù)函數(shù)sqrt(A)對A的各元素求平方根sqrtm(A)A的矩陣平方根函數(shù)f(A)求A各個元素的函數(shù)值funm(A,'FUN')矩陣的函數(shù)運算矩陣和數(shù)組運算

5.關(guān)系操作和邏輯操作以下介紹關(guān)系操作和邏輯操作。(1)關(guān)系運算MATLAB常用的關(guān)系操作符有<、<=、>、>=、==(等于)和~=(不等于)。關(guān)系運算規(guī)則如下:①如果用來比較的2個變量都是標量,則結(jié)果為真(1)或假(0)。②如果用來比較的2個變量都是數(shù)組,則必須大小相同,結(jié)果也是同樣大小的數(shù)組,數(shù)組的元素為0或1。③如果用來比較的是1個數(shù)組和1個標量,則把數(shù)組的每個元素分別與標量比較,結(jié)果為與數(shù)組大小相同的數(shù)組,數(shù)組的元素為0或1。④關(guān)系操作符<、<=和>、>=僅對參加比較變量的實部進行比較,而==和~=則同時對實部和虛部進行比較。矩陣和數(shù)組運算

(2)邏輯運算MATLAB常用的邏輯操作符定義了變量的邏輯比較。邏輯操作符有&(與)、|(或)、~(非)和xor(異或)。邏輯運算規(guī)則如下:①在邏輯運算中,非0元素表示真(1),0元素表示假(0),邏輯運算的結(jié)果為0或1。邏輯運算法則如表。aba&ba|b~axor(a,b)000010010111100101111100②如果用來邏輯運算的2個變量都是標量,則結(jié)果為0、1的標量。③如果用來邏輯運算的2個變量都是數(shù)組,則必須大小相同,結(jié)果也是同樣大小的數(shù)組。④如果用來邏輯運算的是1個數(shù)組和1個標量,則把數(shù)組的每個元素分別與標量比較,結(jié)果為與數(shù)組大小相同的數(shù)組。矩陣和數(shù)組運算

⑤&&(先決與)邏輯運算符是當該運算符的左邊為1(真)時,才繼續(xù)執(zhí)行該符號右邊的運算。⑥||(先決或)邏輯運算符是當運算符的左邊為1(真)時,就不需要繼續(xù)執(zhí)行該符號右邊的運算,而立即得出該邏輯運算結(jié)果為1(真);否則,就要繼續(xù)執(zhí)行該符號右邊的運算。例如,使用先決邏輯操作符進行邏輯運算:>>a=0;b=5;c=10;>>(a~=0)&&(b<c)ans=0>>(a~=0)||(b<c)ans=1矩陣和數(shù)組運算

【例2.15】

數(shù)組的關(guān)系和邏輯運算實現(xiàn)半波整流。>>t=linspace(0,3*pi,10);>>y=sin(t) %計算正弦曲線y=

列1至700.86600.86600.0000-0.8660-0.8660-0.0000

列8至100.86600.86600.0000>>t1=(t<pi)|(t>2*pi)t1=1×10logical

數(shù)組1110000111>>y1=t1.*y %得出0~π和2~3π的半波整流y1=

列1至700.86600.86600000

列8至100.86600.86600.0000矩陣和數(shù)組運算

在工作區(qū)窗口選擇變量y1,單擊鼠標右鍵,在彈出的快捷菜單中選擇“plot(y1)”命令,可查看半波整流曲線y1的波形如圖。矩陣和數(shù)組運算

(3)函數(shù)運算在MATLAB中能得出真(1)和假(0)結(jié)果的函數(shù)有關(guān)系邏輯函數(shù)、工作狀態(tài)判斷函數(shù)、特殊數(shù)據(jù)判斷函數(shù)和數(shù)據(jù)類型函數(shù)。常用的關(guān)系邏輯函數(shù)如表。函

數(shù)

名功

能例

子輸

入結(jié)

果all(A)判斷A的列向量元素是否全非0,全非0則為1all(a)01any(A)判斷A的列向量元素中是否有非0元素,有則為1any(a)11isequal(A,B)判斷A、B對應(yīng)元素是否全相等,相等為1isequal(a,b)0isempty(A)判斷A是否為空矩陣,為空則為1,否則為0isempty(a)0isfinite(A)判斷A的各元素值是否有限,是則為1isfinite(a)1011isnumeric(A)判斷數(shù)組A的元素是否全為數(shù)值型數(shù)組isnumeric(a)1isinf(A)判斷A的各元素值是否無窮大,是則為1isinf(a)0100isnan(A)判斷A的各元素值是否為NAN,是則為1isnan(a)0000isreal(A)判斷數(shù)組A的元素是否全為實數(shù),是則為1isreal(a)1isprime(A)判斷A的各元素值是否為素數(shù),是則為1isprime(b)0000isspace(A)判斷A的各元素值是否為空格,是則為1isspace(a)0000find(A)尋找A數(shù)組非0元素的下標和值find(b)14矩陣和數(shù)組運算

例如,使用函數(shù)進行變量A和B的邏輯運算,其中:

【例2.16】

用邏輯函數(shù)運算取出1~100中的素數(shù)。>>x=1:100;>>f=isprime(x);>>y2=x(f)y2=

列1至12 23571113171923293137

列13至24 414347535961677173798389

列25 97矩陣和數(shù)組運算

6.運算符優(yōu)先級在MATLAB中,各種運算符的優(yōu)先級如下:'(矩陣轉(zhuǎn)置)、^(矩陣冪)和.'(數(shù)組轉(zhuǎn)置)、.^(數(shù)組冪)→~(邏輯非)→*(乘)、/(左除)、\(右除)和.*(點乘)、./(點左除)、.\(點右除)→+、

(加減)→:(冒號)→<、<=、>、>=、~=→&(邏輯與)→|(邏輯或)→&&(先決與)→||(先決或)05多維數(shù)組

多維數(shù)組的創(chuàng)建多維數(shù)組的標識多維數(shù)組

1.多維數(shù)組的創(chuàng)建創(chuàng)建多維數(shù)組的方法與創(chuàng)建矩陣的方法相似,最常用的有以下幾種。(1)通過“全下標”元素賦值方式創(chuàng)建【例2.17_1】

用“全下標”元素賦值方式創(chuàng)建多維數(shù)組。>>a(:,:,2)=[12;34] %創(chuàng)建三維數(shù)組a(:,:,1)=0000a(:,:,2)=1234>>b=[11;22] %先創(chuàng)建二維數(shù)組b=1122>>b(:,:,2)=5 %擴展數(shù)組b(:,:,1)=1122b(:,:,2)=5555多維數(shù)組

(2)由函數(shù)ones、zeros、rand和randn直接創(chuàng)建【例2.17_2】

用函數(shù)rand直接創(chuàng)建三維隨機數(shù)組。>>rand(2,4,3)ans(:,:,1)=0.02740.82760.16820.13010.96010.49170.97610.2748ans(:,:,2)=0.14790.54720.10070.38460.38080.92980.94940.2671ans(:,:,3)=0.57810.69930.78380.69350.59190.11700.97280.3387多維數(shù)組

(3)利用函數(shù)生成數(shù)組①將一系列數(shù)組沿著特定的維連接成1個多維數(shù)組。語法:

Cat(維,p1,p2,…)說明:第1個參數(shù)“維”是指沿著第幾維連接數(shù)組p1、p2等。②按指定行列數(shù)放置模塊數(shù)組生成多維數(shù)組。語法:repmat(p)repmat(p,行列頁…)說明:第1個輸入變量p是用來放置的模塊數(shù)組,后面的變量要放在指定的各維。③在總元素的數(shù)目不變的前提下重新確定數(shù)組的行列數(shù)來重組數(shù)組。語法:reshape(p)reshape(p,行列頁…)【例2.18】

用函數(shù)生成多維數(shù)組。多維數(shù)組

2.多維數(shù)組的標識為了能夠更好地對多維數(shù)組進行操作,MATLAB提供了對多維數(shù)組進行標識的函數(shù)。(1)直接給出數(shù)組的維數(shù)語法:ndims(p)(2)給出數(shù)組各維的大小語法:[m,n,…]=size(p) %得出各維的大小m=size(p,x) %得出某一維的大小說明:p為需要得出大小的多維數(shù)組;m為行數(shù),n為列數(shù)…;當只有1個輸出變量時,x=1返回第1維(行數(shù)),x=2返回第2維(列數(shù)),依此類推。多維數(shù)組

(3)返回行數(shù)或列數(shù)的最大值語法:length(p)說明:length(p)等價于max(size(p))。【例2.19】

獲取矩陣的大小參數(shù)。>>a=[12;34;56]a=123456>>ndims(a) %得出維數(shù)ans=2>>size(a) %得出各維的大小ans=32>>size(a,2) %得出列的大小ans=2>>length(a) %得出最大維的大小ans=3第2章MATLAB數(shù)值計算——日期和時間01日期和時間的表示格式

日期格式日期格式轉(zhuǎn)換日期和時間的表示格式

1.日期格式(1)日期字符串。日期字符串是最常用的,有多種輸出格式。例如,“2024年1月1日”可以表示為'01-Jan-2024'、'01/01/2024'等。(2)連續(xù)的日期數(shù)值。連續(xù)的日期數(shù)值是以公元元年1月1日開始的,日期數(shù)值表示當前時間與起點的時間距離。例如,“2028年1月1日”可以表示為740713,即為2028年1月1日與公元元年1月1日的間隔天數(shù)。(3)日期向量。日期向量格式用一個包括6個數(shù)字的數(shù)組表示日期時間,其元素順序依次為[yearmonthdayhourminutesecond],日期向量格式一般不用于運算中,是MATLAB的某些內(nèi)部函數(shù)的返回和輸入?yún)?shù)。日期和時間的表示格式

2.日期格式轉(zhuǎn)換MATLAB提供了函數(shù)datestr、datenum和datevec,用于各種日期格式的轉(zhuǎn)換。(1)datestr:將日期格式轉(zhuǎn)換為日期字符串格式;(2)datenum:將日期格式轉(zhuǎn)換為連續(xù)的日期數(shù)值格式;(3)datevec:將日期格式轉(zhuǎn)換為連續(xù)的日期向量格式。【例2.20_1】

日期格式的轉(zhuǎn)換。>>d=datenum('01/01/2028') %連續(xù)的日期數(shù)值格式d=740713>>s=datestr(d) %日期字符串格式s='01-Jan-2028'>>v=datevec(d) %日期向量格式v=2028 1 1 0 0 002日期和時間函數(shù)獲取系統(tǒng)時間日期和時間的顯示格式計時函數(shù)日期和時間函數(shù)1.獲取系統(tǒng)時間MATLAB中獲取當前系統(tǒng)時間的函數(shù)有date、now和clock。【例2.20_2】

獲取當前系統(tǒng)時間。>>date %按照日期字符串格式獲取當前系統(tǒng)時間ans='19-May-2023'>>clock %按照日期向量格式獲取當前系統(tǒng)時間ans=1.0e+03*2.02300.00500.01900.00800.02700.0519>>now %按照連續(xù)的日期數(shù)值格式獲取當前系統(tǒng)時間ans=7.3903e+052.日期和時間的顯示格式可以使用datestr函數(shù)將日期和時間顯示為字符串的樣式。語法:datestr(d,f) %將日期按指定格式顯示說明:d為日期字符串格式或連續(xù)日期數(shù)值格式的日期數(shù)值;f為指定的格式,可以是數(shù)值也可以是字符串,如'dd-mm-yyyy'、'mm/dd/yy'和'dd-mm-yyyyHH:MM:SS'等。日期和時間函數(shù)3.計時函數(shù)在程序的運行過程中,如果需要知道代碼運行的實際時間,可以使用計時函數(shù)。MATLAB提供了cputime、tic/toc和etime三種方法實現(xiàn)計時。(1)cputime方法cputime返回自MATLAB啟動以來的CPU時間:程序執(zhí)行的時間=程序代碼執(zhí)行結(jié)束后的cputime-在程序代碼執(zhí)行前的cputime(2)tic/toc方法tic在程序代碼開始用于啟動一個計時器;toc放在程序代碼的最后,用于終止計時器的運行,返回的計時時間就是程序運行時間。(3)etime方法etime方法使用etime函數(shù)獲得程序運行時間。語法:etime(t1,t0) %返回t1-t0的值說明:t0為開始時間,t1為終止時間,獲取t1和t0之間的秒數(shù)。例如,t0和t1可以使用clock函數(shù)獲得,在程序中使用如下命令:>>t0=clock;…… %程序段>>t1=clock;>>t=etime(t1,t0) %t為程序運行時間第2章MATLAB數(shù)值計算——稀疏矩陣01稀疏矩陣的建立

使用sparse函數(shù)產(chǎn)生稀疏矩陣用spdiags函數(shù)創(chuàng)建稀疏矩陣稀疏矩陣的建立

1.使用sparse函數(shù)產(chǎn)生稀疏矩陣sparse函數(shù)用于創(chuàng)建稀疏矩陣,或?qū)?個全元素矩陣直接轉(zhuǎn)換成稀疏矩陣。語法:sparse(i,j,s,m,n) %直接創(chuàng)建稀疏矩陣

sparse(P) %由全元素矩陣P轉(zhuǎn)換為稀疏矩陣說明:i、j是非0元素的行、列下標;s是非0元素所形成的向量;m、n是s的行、列維數(shù),可省略;i、j、s都是長度相同的向量,生成矩陣的元素s(k)下標分別是i(k)和j(k);P為全元素矩陣。稀疏矩陣的建立

【例2.21_1】

產(chǎn)生稀疏矩陣。>>a=eye(3);>>a(4,:)=[-5-2-3]a=100010001-5-2-3>>b=sparse(a) %創(chuàng)建稀疏矩陣b=(1,1)1(4,1)-5(2,2)1(4,2)-2(3,3)1(4,3)-3>>c=sparse([142434],[112233],[1-51-21-3]); %創(chuàng)建與b相同的稀疏矩陣說明:sparse的前兩個參數(shù)向量分別表示稀疏矩陣元素的行和列下標,第一個元素的下標是(1,1),第三個參數(shù)向量是稀疏矩陣元素,第一個元素為1。與sparse函數(shù)相反,full函數(shù)可將稀疏矩陣轉(zhuǎn)變?yōu)槿鼐仃?。語法:full(P) %將稀疏矩陣P轉(zhuǎn)變?yōu)槿鼐仃囅∈杈仃嚨慕?/p>

2.用spdiags函數(shù)創(chuàng)建稀疏矩陣spdiags函數(shù)用對角線元素構(gòu)建1個稀疏矩陣。語法:spdiags(D,k,m,n)說明:矩陣D的每一列代表矩陣的對角線向量;k代表對角線的位置(0代表主對角線,

1代表向下位移一單位的次對角線,1代表向上位移一單位的次對角線,依此類推);m、n分別代表矩陣的行、列維數(shù)。稀疏矩陣的建立

【例2.21_2】

用spdiags函數(shù)創(chuàng)建稀疏矩陣。>>D=[329;249;114]D=329249114>>d=[012];>>s=spdiags(D,d,4,3) %構(gòu)成4行3列的稀疏矩陣s=(1,1)3(1,2)4(2,2)2(1,3)4(2,3)1(3,3)1>>full(s) %轉(zhuǎn)換成全元素矩陣ans=34402100100002稀疏矩陣的存儲空間

稀疏矩陣的存儲空間

可以使用“whos”命令比較【例2.21】矩陣a和b所占用的內(nèi)存大小。>>whosNameSizeByteClassa 4

396doublearrayb 4

388sparsearrayGrandtotalis18elementsusing184Byte可以看出,稀疏矩陣b占用的內(nèi)存為88字節(jié),比全元素矩陣a占用的96字節(jié)少。如果稀疏矩陣b含非0元素更少,則占用內(nèi)存字節(jié)數(shù)更少。對于1個只包含實數(shù)m

n的稀疏矩陣,含有nnz個非零元素,MATLAB使用3個內(nèi)部數(shù)組儲存此稀疏矩陣的信息。(1)第1個數(shù)組:以double方式儲存nnz個非零元素,使用的空間為8

nnz(Byte)。(2)第2個數(shù)組:以整數(shù)方式儲存nnz個非零元素,每個元素的行下標使用的空間為4

nnz(Byte)。(3)第3個數(shù)組:以整數(shù)方式儲存n個列的起始指針,使用的空間為4

n(Byte)。(4)如果是復數(shù)稀疏矩陣,則需要第4個數(shù)組,以double方式儲存nnz個非零元素的虛數(shù)部分。稀疏矩陣的存儲空間

MATLAB提供了如下幾個返回稀疏矩陣元素個數(shù)的函數(shù):①nnz:可返回稀疏矩陣的非零元素個數(shù)。②nonzeros:返回1個包含所有非零元素的列向量。③nzmax:返回最大的非零元素個數(shù),當nnz>nzmax時,MATLAB會動態(tài)調(diào)整以便給nzmax增加內(nèi)存,用于儲存新增的非零元素?!纠?.21_3】

查看稀疏矩陣的非零元素。>>nnz(b) %得出非零元素個數(shù)ans=6>>nonzeros(b) %得出非零元素ans=1-51-21-3>>nzmax(b)ans=603稀疏矩陣的運算

稀疏矩陣的運算

MATLAB適用于針對全元素矩陣設(shè)計的運算與函數(shù),也都適用于稀疏矩陣的運算。稀疏矩陣的標準數(shù)學運算按照以下原則進行:(1)如果函數(shù)的輸入?yún)?shù)是向量或標量,輸出的參數(shù)為矩陣,則輸出參數(shù)為全元素矩陣。(2)如果函數(shù)的輸入?yún)?shù)是矩陣,輸出的參數(shù)也為矩陣,則輸出參數(shù)以輸入矩陣的方式表示,即當輸入?yún)?shù)為稀疏矩陣時,輸出參數(shù)也是稀疏矩陣。(3)如果二元運算的兩個操作數(shù)中一個是全元素矩陣,另一個是稀疏矩陣,則對于“+”“

”“*”“\”的運算結(jié)果為全元素矩陣,而“&”“.*”的運算結(jié)果為稀疏矩陣。(4)用cat函數(shù)或“[]”連接混合矩陣將產(chǎn)生稀疏矩陣。第2章MATLAB數(shù)值計算——多

式01多項式的求值、求根和部分分式展開

多項式求值多項式求根特征多項式部分分式展開多項式的求值、求根和部分分式展開

1.多項式求值函數(shù)polyval可以用來計算多項式在給定變量時的值,是按數(shù)組運算規(guī)則進行計算的。語法:polyval(p,s)說明:p為多項式,s為給定矩陣?!纠?.22_1】計算p(x)=x3+21x2+20x多項式的值。>>p1=[121200];>>polyval(p1,2) %計算x=2時多項式的值ans=132>>x=0:0.5:3;>>polyval(p1,x) %計算x為向量時多項式的值ans=015.375042.000080.6250132.0000196.8750276.0000多項式的求值、求根和部分分式展開

2.多項式求根多項式求根的方法如下。(1)roots用來計算多項式的根。語法:r=roots(p)說明:p為多項式;

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論