版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1
第八章MATLAB的數(shù)值計(jì)算功能
第二節(jié)簡單的數(shù)學(xué)運(yùn)算第三節(jié)MATLAB數(shù)值計(jì)算基礎(chǔ)第四節(jié)MATLAB數(shù)值分析與多項(xiàng)式計(jì)算第一節(jié)變量命名與保存31.1變量及其賦值1.1.1變量3.MATLAB嚴(yán)格區(qū)分大小寫字母,因此,A和a是不同的變量。變量由變量名表示,變量的命名應(yīng)遵循如下規(guī)則:1.變量名必須以字母開頭;由字母、數(shù)字和下劃線混合組成;不允許使用空格、標(biāo)點(diǎn)符號;2.變量名的字符長度不應(yīng)超過31個(對于6.x版本);4.關(guān)鍵字(如if,while等)不能作為變量名。Sin是變量名,而sin是正弦函數(shù)名4
eps—容差變量,定義為1.0到最近浮點(diǎn)數(shù)的距離,在pc機(jī)上=2-52
pi—圓周率的近似值3.1415926
inf或Inf—表示正無窮大,定義為1/0
NaN
—非數(shù),它產(chǎn)生于0×,0/0,/
等運(yùn)算
i,j—虛數(shù)單位
ans—對于未賦值運(yùn)算結(jié)果,自動賦給ans永久變量如果用戶給永久變量賦值,原始默認(rèn)值丟失,直至清除變量或重啟Matlab51.1.2、MATLAB的語句1.百分號(注釋符)%
與其它程序語言一樣,為了方便其他人及日后自己對程序的閱讀,增加程序的可讀性,需要在MATLAB文件中加入注釋。注釋行必須以%號開始,執(zhí)行文件時,%號后面的語句不予執(zhí)行。2.逗號和分號
在賦值語句中,逗號(空格)用在同一行中各元素之間,分號用在行與行之間。多條語句放在一行,用逗號分開表示要求顯示結(jié)果,由分號分開表示不要求顯示結(jié)果。63.續(xù)行標(biāo)志(…)
當(dāng)一條語句或矩陣太長,一行不能顯示時,可用續(xù)行標(biāo)志…
,另起一行繼續(xù)完成該條語句的書寫。4.中斷鍵
在命令的執(zhí)行過程中,可以隨時按下CTRL+C鍵中斷MATLAB的運(yùn)行。71.1.3矩陣及其元素的賦值
矩陣是MATLAB進(jìn)行數(shù)據(jù)處理的基本單元,MATLAB的大部分運(yùn)算都是在矩陣的意義上進(jìn)行的。
MATLAB中的變量或常量都代表矩陣,標(biāo)量應(yīng)看作是1×1階的矩陣。矩陣運(yùn)算也是MATLAB最重要的運(yùn)算。矩陣的創(chuàng)建可以通過以下幾種形式:(1)直接列出元素;(2)通過語句和函數(shù)產(chǎn)生;(3)從外部文件裝入;(4)在M中文件建立。81、直接輸入矩陣:例如輸入語句a=[123;456;789]a=123456789顯示的結(jié)果為:創(chuàng)建矩陣的基本原則:1.矩陣的所有元素必須放在方括號“[]”內(nèi);2.矩陣元素之間必須用逗號“,”或空格隔開;3.矩陣行與行之間用分號“;”或回車符隔開;4.矩陣元素可以是數(shù)字或表達(dá)式。9
eye(n)
單位矩陣,nn階的方陣
zeros(m,n)
元素全為零的mn階矩陣
ones(m,n)
元素全為1的mn矩陣
rand(m,n)
元素為在[0,1]上均勻分布的mn隨機(jī)矩陣
randn(m,n)
元素為正態(tài)分布的mn隨機(jī)矩陣
magic(n)
魔方矩陣,其特點(diǎn)是元素由1到n2的自然數(shù)組成,每行、每列及兩對角線上的元素之和均等于(n3+n)/2幾種特殊矩陣的產(chǎn)生2、由函數(shù)創(chuàng)建矩陣:103、從外部數(shù)據(jù)文件調(diào)入矩陣:例如:目錄C:\ProgramFiles\MATLAB\R2007b\work\matlab_training下有生物醫(yī)學(xué)信號的文本文件bio_signal.txt,在命令窗口輸入:loadload('C:\ProgramFiles\MATLAB\R2007b\work\matlab_training\bio_signal.txt')從磁盤讀入.mat文件,或讀入排列成矩陣的.txt文件11importdata例如:目錄C:\ProgramFiles\MATLAB\R2006a\work\temp下有生物醫(yī)學(xué)信號的文本文件bio_signal.txt,在命令窗口輸入:importdata('C:\ProgramFiles\MATLAB\R2006a\work\temp\bio_signal.txt');其他方法fopen,fread,textscan,fscan,fclose從文件中讀入數(shù)據(jù),能自動分析文件的格式。應(yīng)用廣泛12數(shù)據(jù)存儲save
savefilenameabc
把a(bǔ)、b、c三個變量保存在文件名為filename.mat的文件中。savefilename
把全部內(nèi)存變量保存為filename.mat文件。savefilenameabc–append
把a(bǔ)、b、c三個變量添加到文件名為myfile.mat的文件中。13clear;%刪除工作空間內(nèi)的所有變量N=1000;
x=rand(1,N);%產(chǎn)生一個隨機(jī)向量y=5;%saverand_dataxy;%把xy存入文件rand_data.mat中saverand_data_txt.txtx-asciiclear%刪除工作空間內(nèi)的所有變量
load(‘rand_data.mat’);%把文件rand_data.mat中的變量載入工作空間示例第二節(jié)簡單的數(shù)學(xué)運(yùn)算一、常用的數(shù)學(xué)運(yùn)算符二、Matlab語言規(guī)則三、常用操作命令和鍵盤技巧四、常量和變量五、函數(shù)一、常用的數(shù)學(xué)運(yùn)算符1、Matlab
的數(shù)學(xué)運(yùn)算定義在復(fù)數(shù)域上。4+5j+2ians=4.0000+7.0000i復(fù)數(shù)的輸入:z1=3+4*iz2=5-6*j復(fù)數(shù)單位:
+
加法
-
減法
*
乘法
/右除
^
乘方(冪運(yùn)算)一個數(shù)在matlab中被看成1×1矩陣對標(biāo)量而言,這二者的作用沒有區(qū)別;但對矩陣來說,“左除”和“右除”將產(chǎn)生不同的結(jié)果。
\
左除在運(yùn)算式中,MATLAB通常不需要考慮空格。2、Matlab的數(shù)學(xué)運(yùn)算符是定義在矩陣上的。3+43+4與復(fù)數(shù)相關(guān)的一些函數(shù)上機(jī)練習(xí)求復(fù)數(shù)Z的實(shí)部、虛部、模和相角。Example1-2上機(jī)練習(xí)(x-0.98)^20.3*piExample1-1二、Matlab語言規(guī)則Matlab區(qū)分大小寫,命令和函數(shù)全是小寫
一行可以輸入幾個命令,用分號“;”或逗號“,”隔開。若命令后無標(biāo)點(diǎn)符號,則顯示命令的結(jié)果;若命令后為分號,則禁止顯示結(jié)果。
續(xù)行符:“…”(三個點(diǎn)),如果語句很長,可用續(xù)行符將一個語句寫成多行。續(xù)行符前要留一個空格。
注釋符:“%”,其后面的內(nèi)容為注釋,對Matlab的計(jì)算不產(chǎn)生任何影響
:冒號:在數(shù)組中應(yīng)用較多。
():指定運(yùn)算優(yōu)先級。[]:用于構(gòu)成單元數(shù)組三、常用操作命令和鍵盤技巧ctrl+P:調(diào)用上一行ctrl+n:調(diào)用下一行ctrl+b:光標(biāo)左移一個字符ctrl+f:光標(biāo)右移一個字符ctrl+:光標(biāo)左移一個單詞ctrl+:光標(biāo)右移一個單詞ctrl+a:home光標(biāo)置于當(dāng)前行開頭ctrl+e:end光標(biāo)置于當(dāng)前行結(jié)尾ctrl+u:Esc清除當(dāng)前輸入行BackSpace退格鍵:刪除光標(biāo)前字符ctrl+k:刪除到行尾ctrl+c:中斷正在執(zhí)行的命令四、常量和變量1、常量常量:已經(jīng)被預(yù)定了某個特定值的特定的變量。常量可任意調(diào)用。
ans—用于結(jié)果的缺省變量名
pi—圓周率
i或j—表示虛數(shù)單位
beep—使計(jì)算機(jī)發(fā)出“嘟嘟”聲
eps—浮點(diǎn)數(shù)相對誤差
inf—無窮大數(shù),如1/0
NaN—不定量,如0/0example1i=1i=1Matlab并不要求對所使用的變量進(jìn)行事先聲明,也不需要指定變量類型,Matlab會自動根據(jù)所賦予變量的值或?qū)ψ兞克M(jìn)行的操作來確定變量的類型。2、變量:
變量是任何程序設(shè)計(jì)語言的基本元素之一。
在賦值過程中,如果變量已經(jīng)存在,Matlab會用新值代替舊值,并以新的變量類型代替舊的變量類型。
賦值:變量=表達(dá)式(或數(shù))MATLAB變量的命名規(guī)則:(2)變量名區(qū)分大小寫;(3)變量名長度不超過31位;64(1)變量名必須以字母打頭,之后可以是任意字母、數(shù)字或下劃線,變量名中不允許使用標(biāo)點(diǎn)符號和空格。(4)不能含中文(包括文件名);例:6x、y’r、op為非法變量。
ui_y、y9oi都是合法變量。五、函數(shù)1、標(biāo)量函數(shù):
三角、指數(shù)、對數(shù)、取整(fix)等基本函數(shù)作用于標(biāo)量或矩陣(數(shù)組)的每一元素
要想得到基本初等函數(shù)的列表,命令窗口輸入:
helpelfunelementaryfunction常用標(biāo)量函數(shù)2、向量函數(shù):max,min,sum,length,…作用于矩陣的每一列向量(或行向量)3、矩陣函數(shù)構(gòu)造矩陣zeros,ones,eye,rand,diag,triu,tril,…矩陣計(jì)算size,det,rank,inv,eig,trace,norm,… 第二節(jié)MATLAB數(shù)值計(jì)算基礎(chǔ)一、矩陣的構(gòu)造三、矩陣的四則運(yùn)算二、對矩陣的操作四、矩陣的特征參數(shù)運(yùn)算和分解運(yùn)算五、矩陣元素之間的關(guān)系運(yùn)算六、矩陣元素之間的邏輯運(yùn)算一、矩陣的構(gòu)造1、向量的構(gòu)造(1)逐個輸入法:x=[]行向量:數(shù)據(jù)元素之間均用空格(或逗號)隔開;列向量:數(shù)據(jù)元素之間均用分號隔開例:x1=[23sqrt(3)5]
向量是1×N(N×1)的特殊矩陣,稱為N維向量。是一種特殊的矩陣注:行向量和列向量之間的轉(zhuǎn)換“’”例:x2=[2;3;sqrt(3);5]
(a)冒號生成法:x=first:increment:last,表示包含由首元素開始,步長為increment,到末元素結(jié)束的組成的行向量。(2)等差元素向量的生成>>v2=0:-0.1:pi%步距為負(fù),不能生成向量,得出空矩陣v2=Emptymatrix:1-by-0>>v3=0:piv3=0123>>v4=pi:-1:0%逆序排列構(gòu)成新向量v4=3.14162.14161.14160.1416例:>>v1=0:pi/4:piv1=00.78541.57082.35623.1416
(b)函數(shù)法:
a=linspase(first,last,n),
創(chuàng)建均勻間隔的行向量a,n為元素總數(shù)。>>a=linspace(-2,2,5)a=-2-1012(1)逐個輸入法:例:表示矩陣>>B=[1+9i2+8i3+7j;4+6j5+5i6+4i;7+3i8+2j1i]B=1.0000+9.0000i2.0000+8.0000i3.0000+7.0000i4.0000+6.0000i5.0000+5.0000i6.0000+4.0000i7.0000+3.0000i8.0000+2.0000i0+1.0000i2、矩陣的構(gòu)造B=[1+9i,2+8i,3+7j4+6j,5+5i,6+4i7+3i,8+2j,1i](2)特殊矩陣的函數(shù)生成一些常用的特殊矩陣單位矩陣:eye(m,n);eye(m)零矩陣:zeros(m,n);zeros(m)一矩陣:ones(m,n);ones(m)對角矩陣:對角元素向量V=[a1,a2,…,an]A=diag(V)均勻分布隨機(jī)矩陣:rand(m,n)產(chǎn)生一個m×n的均勻分部的隨機(jī)矩陣
練習(xí):example2二、對矩陣的操作
1、對矩陣元素的操作:基本語句格式B=A(n,m)n,m分別為矩陣的行號和列號(1)提取矩陣A的第n行第m列的元素,
b=A(n,m)(2)提取矩陣A的第n行的所有元素,
b=A(n,:)(3)提取矩陣A的第m列的所有元素,
b=
A(:,m)(4)將矩陣A的第n行的所有元素刪除,A(n,:)=[](5)將矩陣A的第m列的所有元素刪除,A(:,m)=[]
(6)將矩陣A的矩陣元改寫成n行m列矩陣,Reshape(A,n,m)example5對矩陣元素的操作(7)x(:)x(:,:)(8)取矩陣A的第i1~i2行、第j1~j2列構(gòu)成新矩陣:
A(i1:i2,j1:j2)。(9)將矩陣A和B拼接成新矩陣:[AB];[A;B]>>v5=[0:0.4:pi,pi]v5=00.40000.80001.20001.60002.00002.40002.80003.1416n=x(2:3,3:4)例:>>A=[1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0]A=1234345656787890>>B1=A(1:2:end,:)%提取全部奇數(shù)行、所有列。B1=12345678A(行,列)>>B2=A([3,2,1],[2,3,4])%提取3,2,1行、2,3,4列構(gòu)成子矩陣。
A=1234345656787890B2=678456234>>B3=A(:,end:-1:1)%將A矩陣左右翻轉(zhuǎn),即最后一列排在最前面。
B3=4321654387650987%練習(xí)1a=magic(5)b=a(3,4)%提取矩陣a的第n行第m列的元素c=a(3,:)%提取矩陣a的第3行的所有元素d=a(:,4)%提取矩陣a的第4列的所有元素a(2,:)=[]%將矩陣a的第2行的所有元素刪除a(:,2)=[]%將矩陣a的第2列的所有元素刪除%練習(xí)2a=magic(5)a(:,:)a(:)m=a(1:3,3:5)%取矩陣A的第1-3行、第3-5列構(gòu)成新矩陣%練習(xí)3矩陣的拼接x=ones(2,3)y=zeros(2,3)z1=[xy]z2=[yx]z3=[x;y]z4=[y;x]2、對矩陣(A)的部分操作:函數(shù)功能函數(shù)功能Fliplr(A)矩陣左右翻轉(zhuǎn)Tiag(A,k)取矩陣對角線元素Flipud(A)矩陣上下翻轉(zhuǎn)Tril(A,k)取矩陣的下三角部分Flipdim(A,m)矩陣沿特定維(m)翻轉(zhuǎn)Triu(A,k)取矩陣的上三角部分Rot(A,k)矩陣逆時針旋轉(zhuǎn)k*90度K可以是正、負(fù)整數(shù),但絕對值一般不大于矩陣的維數(shù)。example53、判斷矩陣的大小》a=[123;345];》[m,n]=size(a)m=2n=3》length(a)ans=3》max(size(a))ans=3[m,n]=size(A):返回矩陣的行列數(shù)m與n。length(A)=max(size(A)):返回行數(shù)和列數(shù)的最大值。三、矩陣的四則運(yùn)算example31.向量的基本運(yùn)算:(1)向量與數(shù)的四則運(yùn)算
向量中的每個元素與數(shù)的+-*/運(yùn)算(2)向量與向量之間的加減運(yùn)算
對應(yīng)元素的加減運(yùn)算(3)向量的點(diǎn)積與叉積:
點(diǎn)積:dot(A,B)=sum(A.*B)
叉積:cross(A,B)
限三維混合積:(1i+2j+3k)×(2i+4j+3k)*(5i+2j+1k)v=dot(a,cross(b,c))(1)標(biāo)量與矩陣的數(shù)運(yùn)算和數(shù)學(xué)函數(shù)對矩陣的運(yùn)算等于對矩陣的每一個元素的運(yùn)算。
a=[123];b=a+100
b=101102103(2)進(jìn)行矩陣加減時,參與運(yùn)算的矩陣必須同維。(3)進(jìn)行矩陣乘法時,
A的行數(shù)=B列數(shù)。
左乘與右乘不同:一般A*B不等于B*A
若A*B等于B*A,則稱A,B對易(4)冪運(yùn)算A^n2、矩陣的基本運(yùn)算:非奇異矩陣:對一個n行n列的非零矩陣A,如果存在一個矩陣B,使AB=BA=E(E是單位矩陣),則稱A為非奇異矩陣,也稱A是可逆的。A\B等效于A的逆左乘B矩陣,即inv(A)*BB/A等效于A的逆右乘B矩陣,即B*inv(A)左除與右除不同:A\B≠B/A(5)
Matlab矩陣除法\
左除/右除如果A矩陣為非奇異矩陣(可逆),則A\B和B/A運(yùn)算可以實(shí)現(xiàn)進(jìn)行矩陣除法時,A/B時,A、B列數(shù)必須相同。A\B時,A、B行數(shù)必須相同。練習(xí):已知A=[135;246;787]B=[123;232;346]比較A*B和B*AA\B和B/AA/B和B\A
的區(qū)別。example7練習(xí)求解四元線性方程組定義三個矩陣:系數(shù)矩陣、未知數(shù)矩陣、常數(shù)矩陣:
上述方程可變?yōu)榍蠼猓篹xample43、Matlab點(diǎn)運(yùn)算(數(shù)組運(yùn)算)
在MATLAB中,有一種特殊的運(yùn)算,因?yàn)槠溥\(yùn)算符是在有關(guān)算術(shù)運(yùn)算符前面加點(diǎn),所以叫點(diǎn)運(yùn)算。點(diǎn)運(yùn)算符有:.*./.\.^
兩矩陣進(jìn)行點(diǎn)運(yùn)算是指它們的對應(yīng)元素進(jìn)行相關(guān)運(yùn)算,要求兩矩陣的維參數(shù)相同。練習(xí)已知A=[135;246;787]B=[123;232;346]比較A*B和A.*B以及A/B和A./B的區(qū)別。練習(xí)已知x=0:0.5:8按下列函數(shù)關(guān)系求y序列Y=sinexample71、對矩陣(A)的特征參數(shù)運(yùn)算:(1)方陣A的行列式值,可表示為det(A)。(2)矩陣A的秩,可表示為rank(A)。向量組的秩:一個向量組的極大線性無關(guān)組所含向量個數(shù)。
m*n矩陣(行秩,列秩)(3)行列式值不為零的方陣A,求逆矩陣A-1可表示為inv(A)。(4)矩陣A的轉(zhuǎn)置矩陣,可表示為A’。(5)矩陣A的特征值:AV=DV
[V,D]=eig(A)等號左邊是函數(shù)對方陣A的作用后返回的變量信息。V和D分別為A的特征向量與特征值。D為特征值對角陣。函數(shù)調(diào)用語句[返回變量列表]=函數(shù)名(輸入變量列表)
(6)矩陣A的跡:主對角線上所有元素的和。可表示為magic(A)。example6四、矩陣的特征參數(shù)運(yùn)算和分解運(yùn)算2、對矩陣(A)的分解運(yùn)算:(1)特征值分解:AV=DV[V,D]=eig(A)等號左邊是函數(shù)對方陣A的作用后返回的變量信息。V和D分別為A的特征向量與特征值。D為特征值對角陣。(2)奇異值分解:[U,S,V]=svd(A)
AV=qUA’U=qV
U、V為奇異向量,S為A奇異值。返回一個與A同大小的對角矩陣S,兩個矩陣U和V,且滿足A=U*S*V‘。若A為m×n陣,則U為m×m陣,V為n×n陣。奇異值在S的對角線上,非負(fù)且按降序排列。(3)三角分解(lu):[L,U]=lu(A)
非奇異矩陣A,A=LU,U:上三角矩陣L:下三角矩陣(4)正交分解(qr):[Q,R]=qr(a)
非奇異矩陣A,A=QR,Q為正交矩陣,R為上三角陣。注意,MATLAB的函數(shù)發(fā)生作用后返回的變量信息這種形式,特別注意中、小括號的使用。1、MATLAB提供了6種關(guān)系運(yùn)算符:
2、關(guān)系運(yùn)算符的運(yùn)算法則(1)當(dāng)兩個比較量是標(biāo)量時,直接比較兩數(shù)大小,若關(guān)系成立,關(guān)系表達(dá)式結(jié)果為1,否則為0。(2)當(dāng)參與比較的兩個量是兩個維數(shù)相同的矩陣時,比較是對兩矩陣對應(yīng)位置的元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個進(jìn)行,并給出元素比較結(jié)果。最終的關(guān)系運(yùn)算的結(jié)果是一個與原矩陣維數(shù)相同的矩陣,元素由0或1組成。(3)當(dāng)參與比較的一個是標(biāo)量,而另一個是矩陣時,則把標(biāo)量與矩陣的每一個元素按標(biāo)量關(guān)系運(yùn)算規(guī)則逐個比較,并給出元素比較結(jié)果。最終的關(guān)系運(yùn)算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。五、矩陣元素之間的關(guān)系運(yùn)算example8表1關(guān)系操作符指令含義指令含義<小于>大于<=小于等于>=大于等于==等于~=不等于>>A=[123;456;780]A=123456780>>find(A>=5)ans=3568find()>>[i,j]=find(A>=5);[i,j]%顯示行標(biāo),列標(biāo)ans=31223223rem(x,n):求余函數(shù)。X:被除數(shù);n:除數(shù)magic(n):生成n階魔術(shù)矩陣。方陣的每一行每一列以及每條主對角線的元素之和都相同(2階方陣除外)。
A=magic(4)B=(rem(A,3));C=(rem(A,3)<=1);D=(rem(A,3)==1);E=(rem(A,3)>=1);example7+fix:向零方向取整Example8-六、矩陣元素之間的邏輯運(yùn)算1、MATLAB提供了3種關(guān)系運(yùn)算符:2、邏輯運(yùn)算的運(yùn)算法則為:(1)在邏輯運(yùn)算中,確認(rèn)非零元素為真,用1表示;0元素為假,用0表示。(2)設(shè)參與邏輯運(yùn)算的是兩個標(biāo)量a和b,那么,a&ba,b全為非零時運(yùn)算結(jié)果為1,否則為0。a|ba,b中只要有一個非0,運(yùn)算結(jié)果為1。~a
當(dāng)a是0時,運(yùn)算結(jié)果為1;當(dāng)a非0時,運(yùn)算結(jié)果為0。example8表2邏輯運(yùn)算符指令含義指令含義&邏輯
and|邏輯
or~邏輯
not
相關(guān)函數(shù):若x為矩陣,則any和all按列運(yùn)算,返回一個0-1向量any(x):若向量x
中存在非零元素,則返回1,否則返回0all(x):若向量x
中所有元素非零,則返回1,否則返回0表3邏輯關(guān)系函數(shù)指令含義指令含義xor不相同取1,否則取0any只要有非0就取1,否則取0all全為1取1,否則為0isempty矩陣為空取1,否則取0xor(x):異或函數(shù)>>A=[123;456;780]A=123456780>>all(A>=5)%某列元素全大于或等于5時,相應(yīng)元素為1,否則為0。ans=000>>any(A>=5)%某列元素中含有大于或等于5時,相應(yīng)元素為1,否則為0。ans=111>>
a=[123;056;780]a=123056780>>b=ones(3)b=111111111>>xor(a,b)ans=000100001七、矩陣的多維數(shù)組形式1、數(shù)組的維(1)具有n個元素的一行或一列的矩陣數(shù)組稱為一維數(shù)組。(2)具有n行m列的矩陣數(shù)組稱為n×m二維數(shù)組。(3)具有h個二維數(shù)組稱為n×m×h三維數(shù)組。2、多維數(shù)組的構(gòu)成(1)函數(shù)cat的使用。(2)B=cat(dim,a1,a2….)(3)意義:將多個數(shù)組a1,a2…構(gòu)成一個高維數(shù)組B。Dim是高維數(shù)組B的維數(shù),它必須等于或大于a1,a2…的階次example9第三節(jié)MATLAB數(shù)據(jù)分析與多項(xiàng)式計(jì)算一、Matlab多項(xiàng)式表示
在Matlab中,n次多項(xiàng)式是用一個長度為n+1的向量來表示,缺少的冪次項(xiàng)系數(shù)為0。在Matlab中表示為相應(yīng)的向量:1×N的N維向量。例:注:系數(shù)中的零不能??!二、多項(xiàng)式的創(chuàng)建(1)系數(shù)矢量直接輸入法poly2sym(A)example10>>P=[3501012]P=3501012>>y=poly2sym(P)%(poly2sym函數(shù)將該向量轉(zhuǎn)換為多項(xiàng)式)y=3*x^5+5*x^4+x^2+12>>disp(y)%顯示矩陣或文本3*x^5+5*x^4+x^2+12(2)由根矢量創(chuàng)建多項(xiàng)式:
若已知多項(xiàng)式的全部根,則可以用poly函數(shù)建立起該多項(xiàng)式,其調(diào)用格式為:
>>P=poly(A)P=[1234];y=poly(P)y=1-1035-5024>>h=poly2sym(y)
h=
x^4-10*x^3+35*x^2-50*x+24如果A為二維或以上的矩陣,poly(A)表示由A的特征根確定的多項(xiàng)式。如果A為一維矩陣,poly(A)表示由A的元素為多項(xiàng)式的根創(chuàng)建多項(xiàng)式。a=[12;34];>>b=poly(a)b=1.0000-5.0000-2.0000>>[V,D]=eig(a)V=-0.8246-0.41600.5658-0.9094D=-0.3723005.3723Y=polyval(b,D)Y=0-2.0000-2.00000(1)polyval函數(shù):調(diào)用格式:Y=polyval(px,x)
px為多項(xiàng)式系數(shù)向量,x為多項(xiàng)式自變量取值,Y為對應(yīng)函數(shù)值。多項(xiàng)式px在x點(diǎn)的取值,x也可以是一組數(shù),代表多項(xiàng)式px在各點(diǎn)的值。(2)polyvalm函數(shù)調(diào)用格式:Y=polyvalm(px,x)多項(xiàng)式px對于矩陣x的取值,要求矩陣x必須是方陣,x若是一標(biāo)量,求得的值與函數(shù)polyval相同。三、多項(xiàng)式的求值polynomialvalueexample11example13-y=
x^3+2*x^2+3*x+4四、多項(xiàng)式運(yùn)算的函數(shù)(1)多項(xiàng)式求根:roots(A)--列向量
n次多項(xiàng)式具有n個根,當(dāng)然這些根可能是實(shí)根,也可能含有若干對共軛復(fù)根。MATLAB提供的roots函數(shù)用于求多項(xiàng)式的全部根,其調(diào)用格式為:x=roots(A)
其中A為多項(xiàng)式的系數(shù)向量,求得的根賦給向量x,即x(1),x(2),…,x(n)分別代表多項(xiàng)式的n個根。example12(2)多項(xiàng)式四則運(yùn)算
多項(xiàng)式加減運(yùn)算:Matlab沒有提供專門進(jìn)行多項(xiàng)式加減運(yùn)算的函數(shù),事實(shí)上,多項(xiàng)式的加減就是其所對應(yīng)的系數(shù)向量的加減運(yùn)算。例
對于次數(shù)相同的多項(xiàng)式,可以直接對其系數(shù)向量進(jìn)行加減運(yùn)算;如果兩個多項(xiàng)式次數(shù)不同,則應(yīng)該把低次多項(xiàng)式中系數(shù)不足的高次項(xiàng)用0補(bǔ)足,然后進(jìn)行加減運(yùn)算。多項(xiàng)式乘除法運(yùn)算例:計(jì)算多項(xiàng)式和的乘積>>p=[2,-1,0,3];>>q=[2,1];>>k=conv(p,q);
多項(xiàng)式除法運(yùn)算:k=deconv(p,q)[k,r]=deconv(p,q)其中
k
返回的是多項(xiàng)式
p
除以
q
的商,r
是余式。[k,r]=deconv(p,q)p=conv(q,k)+r<==>
多項(xiàng)式乘法運(yùn)算:k=conv(p,q)deconv是conv的逆函數(shù),即有P=conv(k,q)+r。例:求多項(xiàng)式和的乘積。練習(xí):多項(xiàng)式乘法:conv(a,b)除法:deconv(a,b)練習(xí):多項(xiàng)式除法:函數(shù)[Q,r]=deconv(P1,P2)用于對多項(xiàng)式P1和P2作除法運(yùn)算。其中Q返回多項(xiàng)式P1除以P2的商式,r返回P1除以P2的余式。這里,Q和r仍是多項(xiàng)式系數(shù)向量。
deconv是conv的逆函數(shù),即有P1=conv(P2,Q)+r。計(jì)算x/yexample13-(2)多項(xiàng)式的微積分對多項(xiàng)式求微分的函數(shù)是:
p=polyder(P)p’=3x2+4xP=x3+2x2+1>>P=[1201]>>p=polyder(P)P=340example12例:求多項(xiàng)式的微分和積分。練習(xí):多項(xiàng)式的微分:polyder(A)積分:polyint(A)p=polyder(P,Q):求P·Q的導(dǎo)函數(shù)[p,q]=polyder(P,Q):求P/Q的導(dǎo)函數(shù),導(dǎo)函數(shù)的分子存入p,分母存入q。上述函數(shù)中,參數(shù)P,Q是多項(xiàng)式的向量表示,結(jié)果p,q也是多項(xiàng)式的向量表示。>>P=[1201]P=1201>>poly2sym(P)ans=x^3+2*x^2+1>>Q=[301]Q=301>>poly2sym(Q)ans=3*x^2+1>>M=conv(P,Q)M=361501>>poly2sym(M)ans=3*x^5+6*x^4+x^3+5*x^2+1>>p=polyder(P,Q)p=
15243100>>p2=polyder(M)p2=
15243100
曲線擬合是進(jìn)行數(shù)據(jù)分析時經(jīng)常遇到的問題,它是指根據(jù)一組或多組測量數(shù)據(jù)找出數(shù)學(xué)上可以描述此數(shù)據(jù)走向的一條曲線的過程。
曲線擬合:利用兩個或多個變量的離散點(diǎn),用平滑曲線來擬合它們之間的關(guān)系。參數(shù)擬合:曲線不通過所有點(diǎn),采用最小二乘法。非參數(shù)擬合:曲線通過所有點(diǎn),采用插值法。5、多項(xiàng)式曲線擬合1)最小二乘法:通過最小化殘差的平方和來獲得待定系數(shù)的估計(jì)。評價一條曲線是否準(zhǔn)確地描述了測量數(shù)據(jù)的最通用方法,是看測量數(shù)據(jù)點(diǎn)與該曲線上對應(yīng)點(diǎn)之間的平方誤差是否達(dá)到最小。example132)步驟:
(1)找出函數(shù)上的已知點(diǎn)系列。
(2)由已知點(diǎn)系列確定多項(xiàng)式。(3)再用polyval函數(shù)按所得的多項(xiàng)式計(jì)算所給出的點(diǎn)上的函數(shù)近似值。3)polyfit函數(shù)來求得最小二乘擬合多項(xiàng)式的系數(shù),即P=polyfit(x,y,n),p為模擬的多項(xiàng)式,polyfit為調(diào)用函數(shù),x和y為已知點(diǎn)系列,n是多項(xiàng)式的階次。(一般n越大越精確)[P,S]=polyfit(x,y,n)
函數(shù)根據(jù)采樣點(diǎn)x和采樣點(diǎn)函數(shù)值y,產(chǎn)生一個n次多項(xiàng)式P及其在采樣點(diǎn)的誤差向量S。其中X,Y是兩個等長的向量,P是一個長度為n+1的向量,P的元素為多項(xiàng)式系數(shù)。例:對數(shù)據(jù)x=[00.10.20.30.40.50.60.70.80.91.0]和y=[-0.2320.6471.8773.5655.1347.4439.22110.01111.67812.56613.788]做二次曲線擬合,并圖示擬合曲線和原來數(shù)據(jù)。example14例:用三次多項(xiàng)式擬合正弦曲線,并圖示擬合曲線和原來數(shù)據(jù)。6、數(shù)據(jù)插值是指在原數(shù)據(jù)點(diǎn)之間按照一定的關(guān)系插入新的數(shù)據(jù)點(diǎn),以便更準(zhǔn)確地分析數(shù)據(jù)的變化規(guī)律。1)一維插值:是對單變量函數(shù)進(jìn)行插值例如:在[-2,2]區(qū)間上分別用5個數(shù)據(jù)點(diǎn)和50個數(shù)據(jù)點(diǎn)繪制拋物線函數(shù)的圖形。example15(1)線性插值:(默認(rèn)方法)兩個數(shù)據(jù)點(diǎn)之間連接直線,根據(jù)給定的插值點(diǎn)計(jì)算出它們在直線上的值。調(diào)用格式:yi=interp1(x,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)項(xiàng)目開發(fā)內(nèi)部承包合同范本4篇
- 二零二五年度房地產(chǎn)企業(yè)員工勞動合同示范范本
- 二零二五年度醫(yī)療機(jī)構(gòu)人員派遣及管理合同3篇
- 二零二五版模具修復(fù)與性能提升合同3篇
- 二零二四年度校園食堂特色美食開發(fā)與承包經(jīng)營合同3篇
- 二零二五年市中心區(qū)域照明系統(tǒng)智能化升級合同4篇
- 2025版農(nóng)業(yè)種養(yǎng)殖質(zhì)量安全追溯合作合同范本3篇
- 2025版山林租賃合同樣本:森林資源租賃與生態(tài)保護(hù)合作合同3篇
- 二零二五年度建筑模板腳手架安全防護(hù)設(shè)施供應(yīng)合同規(guī)范4篇
- 二零二五年度天津二手房交易合同范本(專業(yè)版)
- 蛋糕店服務(wù)員勞動合同
- 土地買賣合同參考模板
- 2025高考數(shù)學(xué)二輪復(fù)習(xí)-專題一-微專題10-同構(gòu)函數(shù)問題-專項(xiàng)訓(xùn)練【含答案】
- 新能源行業(yè)市場分析報告
- 2025年天津市政建設(shè)集團(tuán)招聘筆試參考題庫含答案解析
- 巖土工程勘察.課件
- 60歲以上務(wù)工免責(zé)協(xié)議書
- 康復(fù)醫(yī)院患者隱私保護(hù)管理制度
- 2022年7月2日江蘇事業(yè)單位統(tǒng)考《綜合知識和能力素質(zhì)》(管理崗)
- 沈陽理工大學(xué)《數(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 初一英語語法練習(xí)
評論
0/150
提交評論