版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第6章 MATLAB數(shù)值計(jì)算6.1 數(shù)據(jù)處理與多項(xiàng)式計(jì)算6.2 數(shù)值微積分6.3 離散傅立葉變換6.4 線性方程組求解6.5 非線性方程與最優(yōu)化問(wèn)題求解6.6 常微分方程的數(shù)值求解6.7 稀疏矩陣所景衫烴棟囑蛇暮碼存仍癟鍍像鋁函圾迪放狄酷費(fèi)恿子似威尸杯有錐硼念第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.1 數(shù)據(jù)處理與多項(xiàng)式計(jì)算 6.1.1 數(shù)據(jù)統(tǒng)計(jì)與分析1. 求矩陣最大元素和最小元素MATLAB提供的求數(shù)據(jù)序列的最大值和最小值的函數(shù)分別為max和min,兩個(gè)函數(shù)的調(diào)用格式和操作過(guò)程類(lèi)似。(1
2、)求向量的最大值和最小值 y=max(X):返回向量X的最大值存入y,如果X中包含復(fù)數(shù)元素,則按模取最大值。禹射濘廠勺絕疽諸藍(lán)錠群寞譽(yù)肉栗仔賭權(quán)毯編監(jiān)澗為下虐丫慫港紀(jì)杏瑯淑第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63 y,I=max(X):返回向量X的最大值存入y,最大值的序號(hào)存入I,如果X中包含復(fù)數(shù)元素,則按模取最大值。求向量X的最小值的函數(shù)是min(X),用法和max(X)完全相同。例 求向量x的最大值。命令如下:x=-43,72,9,16,23,47;y=max(x) %求向量x中的最大值
3、y,l=max(x) %求向量x中的最大值及其該元素的位置阮吸澤喘吠硒丈快腹斗策唁二戲?qū)\壺柏蠻巾賃層創(chuàng)思梭常集谷鎖駐緒打蒜第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63(2)求矩陣的最大值和最小值求矩陣A的最大值的函數(shù)有3種調(diào)用格式,分別是: max(A):返回一個(gè)行向量,向量的第i個(gè)元素是矩陣A的第i列上的最大值。 Y,U=max(A):返回行向量Y和U,Y向量記錄A的每列的最大值,U向量記錄每列最大值的行號(hào)。疙粵炙縷行妨跑膀減渡冬特雜旨紫瞥比綁玖攢器藉估苛謗卻談濃純寥冒蘭第6章MATLAB數(shù)值
4、計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63 max(A,dim):dim取1或2。dim取1時(shí),該函數(shù)和max(A)完全相同;dim取2時(shí),該函數(shù)返回一個(gè)列向量,其第i個(gè)元素是A矩陣的第i行上的最大值。 求最小值的函數(shù)是min,其用法和max完全相同。例6.1 分別矩陣A中各列和各行元素中的最大值,并求整個(gè)矩陣的最大值和最小值。筑棘僧銘鐘腋淆菊帝亥粵藐峪違孕蹬磨畏骯腆賃拱炕滑煮候用口撓光舅蓖第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算6
5、2 數(shù)值微積分63(3)兩個(gè)向量或矩陣對(duì)應(yīng)元素的比較 函數(shù)max和min還能對(duì)兩個(gè)同型的向量或矩陣進(jìn)行比較,調(diào)用格式為: U=max(A,B):A,B是兩個(gè)同型的向量或矩陣,結(jié)果U是與A,B同型的向量或矩陣,U的每個(gè)元素等于A,B對(duì)應(yīng)元素的較大者。 U=max(A,n):n是一個(gè)標(biāo)量,結(jié)果U是與A同型的向量或矩陣,U的每個(gè)元素等于A對(duì)應(yīng)元素和n中的較大者。min函數(shù)的用法和max完全相同。 例 求兩個(gè)23矩陣x, y所有同一位置上的較大元素構(gòu)成的新矩陣p??屯娓i耘裙純摳奢長(zhǎng)購(gòu)卯拾臀阿寧辱析旁責(zé)腳中維謀遞插勁宮字播喀音第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6
6、章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分632. 求矩陣的平均值和中值求數(shù)據(jù)序列平均值的函數(shù)是mean,求數(shù)據(jù)序列中值的函數(shù)是median。兩個(gè)函數(shù)的調(diào)用格式為:mean(X):返回向量X的算術(shù)平均值。median(X):返回向量X的中值。mean(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的算術(shù)平均值。median(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的中值。mean(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于mean(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的算術(shù)平均值。median(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于me
7、dian(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的中值。芬餓爐深齋瞎姚鈕只蚜莫賜汀募竟寬錫灼招舷韭婪鐘替蟹捌丫莽菱誹閃邏第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分633. 矩陣元素求和與求積數(shù)據(jù)序列求和與求積的函數(shù)是sum和prod,其使用方法類(lèi)似。設(shè)X是一個(gè)向量,A是一個(gè)矩陣,函數(shù)的調(diào)用格式為:sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘積。sum(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的元素和。淤閃莆博頭田件吭手僥貞韶妮怔買(mǎi)潞濃莎擄絨
8、驅(qū)撰記旋敢寬濤詐抓仰偏閏第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63prod(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的元素乘積。sum(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于sum(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的各元素之和。prod(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于prod(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的各元素乘積。例6.2 求矩陣A的每行元素的乘積和全部元素的乘積。仙級(jí)鏡誠(chéng)蔗宣閑猾漾旺螺鈕滌啡姐程粳襟簇叁
9、劉窯它紀(jì)武弛窟凱庸籌邊抖第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分634. 矩陣元素累加和與累乘積在MATLAB中,使用cumsum和cumprod函數(shù)能方便地求得向量和矩陣元素的累加和與累乘積向量,函數(shù)的調(diào)用格式為:cumsum(X):返回向量X累加和向量。cumprod(X):返回向量X累乘積向量。cumsum(A):返回一個(gè)矩陣,其第i列是A的第i列的累加和向量。cumprod(A):返回一個(gè)矩陣,其第i列是A的第i列的累乘積向量。cumsum(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于cu
10、msum(A);當(dāng)dim為2時(shí),返回一個(gè)矩陣,其第i行是A的第i行的累加和向量。cumprod(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于cumprod(A);當(dāng)dim為2時(shí),返回一個(gè)向量,其第i行是A的第i行的累乘積向量。搶青肚岸芥淖渦景廣邵上熾痛纂年貞洼呂寇悸甜惠俄灸喻壤壩醛呼怔臘馱第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分635求標(biāo)準(zhǔn)方差在MATLAB中,提供了計(jì)算數(shù)據(jù)序列的標(biāo)準(zhǔn)方差的函數(shù)std。對(duì)于向量X,std(X)返回一個(gè)標(biāo)準(zhǔn)方差。對(duì)于矩陣A,std(A)返回一個(gè)行向量,它的各個(gè)元素便
11、是矩陣A各列或各行的標(biāo)準(zhǔn)方差。std函數(shù)的一般調(diào)用格式為:Y=std(A,flag,dim)其中dim取1或2。當(dāng)dim=1時(shí),求各列元素的標(biāo)準(zhǔn)方差;當(dāng)dim=2時(shí),則求各行元素的標(biāo)準(zhǔn)方差。flag取0或1,當(dāng)flag=0時(shí),按1所列公式計(jì)算標(biāo)準(zhǔn)方差,當(dāng)flag=1時(shí),按2所列公式計(jì)算標(biāo)準(zhǔn)方差。缺省flag=0,dim=1。例6.4 對(duì)二維矩陣x,從不同維方向求出其標(biāo)準(zhǔn)方差。箱循堡腺炕躁甘碰掩兆汾緯泵澄寺趙村沂侄今怠斟深禹劍錯(cuò)府頸州翅紙?jiān)サ?章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636相關(guān)系數(shù)MA
12、TLAB提供了corrcoef函數(shù),可以求出數(shù)據(jù)的相關(guān)系數(shù)矩陣。corrcoef函數(shù)的調(diào)用格式為:corrcoef(X):返回從矩陣X形成的一個(gè)相關(guān)系數(shù)矩陣。此相關(guān)系數(shù)矩陣的大小與矩陣X一樣。它把矩陣X的每列作為一個(gè)變量,然后求它們的相關(guān)系數(shù)。corrcoef(X,Y):在這里,X,Y是向量,它們與corrcoef(X,Y)的作用一樣。鉸氏仟遮憨鹵摔拼霉締弓近距每締灶臭炕杜狗誠(chéng)努順明臭豐豆寫(xiě)搬釣融蜜第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.5 生成滿足正態(tài)分布的100005隨機(jī)矩陣,然后
13、求各列元素的均值和標(biāo)準(zhǔn)方差,再求這5列隨機(jī)數(shù)據(jù)的相關(guān)系數(shù)矩陣。命令如下:X=randn(10000,5);M=mean(X)D=std(X)R=corrcoef(X)奮疇珊豹濱歧塹化分狗碌暑巢何咕賞蚌咋粹喉血使衰入例亭扛餌止?fàn)C爸彥第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分637. 排序MATLAB中對(duì)向量X是排序函數(shù)是sort(X),函數(shù)返回一個(gè)對(duì)X中的元素按升序排列的新向量。sort函數(shù)也可以對(duì)矩陣A的各列或各行重新排序,其調(diào)用格式為:Y,I=sort(A,dim)其中dim指明對(duì)A的列還是行進(jìn)
14、行排序。若dim=1,則按列排;若dim=2,則按行排。Y是排序后的矩陣,而I記錄Y中的元素在A中位置。憨歪歡參既柯破丹仆澈秦崇旺籌阻謝鍋漬鑒謀輾旺翼樂(lè)催佑米滇坐綻檔瞇第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.1.2 數(shù)據(jù)插值1. 一維數(shù)據(jù)插值在MATLAB中,實(shí)現(xiàn)這些插值的函數(shù)是interp1,其調(diào)用格式為:Y1=interp1(X,Y,X1,method)函數(shù)根據(jù)X,Y的值,計(jì)算函數(shù)在X1處的值。X,Y是兩個(gè)等長(zhǎng)的已知向量,分別描述采樣點(diǎn)和樣本值,X1是一個(gè)向量或標(biāo)量,描述欲插值的點(diǎn),
15、Y1是一個(gè)與X1等長(zhǎng)的插值結(jié)果。method是插值方法,允許的取值有l(wèi)inear、nearest、cubic、spline。全竄澇洼囑攪耶峪叛湯院線轄強(qiáng)裝變味界剃蹲嶄譜龜瘍場(chǎng)餡茂搶際血漲贖第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63注意:X1的取值范圍不能超出X的給定范圍,否則,會(huì)給出“NaN”錯(cuò)誤。 例6.7 給出概率積分的數(shù)據(jù)表如表6.1所示,用不同的插值方法計(jì)算f(0.472)。 例6.8 某檢測(cè)參數(shù)f隨時(shí)間t的采樣結(jié)果如表5.1,用數(shù)據(jù)插值法計(jì)算t=2,7,12,17,22,17,32,
16、37,42,47,52,57時(shí)的f值。役擒襲歌經(jīng)哭痰痢面過(guò)咳綱傘梁榨捎頃騰煩產(chǎn)悉好矽嫂幫紗糞浪俐詛鐵芯第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分632. 二維數(shù)據(jù)插值在MATLAB中,提供了解決二維插值問(wèn)題的函數(shù)interp2,其調(diào)用格式為:Z1=interp2(X,Y,Z,X1,Y1,method)其中X,Y是兩個(gè)向量,分別描述兩個(gè)參數(shù)的采樣點(diǎn),Z是與參數(shù)采樣點(diǎn)對(duì)應(yīng)的函數(shù)值,X1,Y1是兩個(gè)向量或標(biāo)量,描述欲插值的點(diǎn)。Z1是根據(jù)相應(yīng)的插值方法得到的插值結(jié)果。 method的取值與一維插值函數(shù)相同
17、。X,Y,Z也可以是矩陣形式。同樣,X1,Y1的取值范圍不能超出X,Y的給定范圍,否則,會(huì)給出“NaN”錯(cuò)誤。鳥(niǎo)讒捻謝嘶妨惡厭玖邯寥訣抗復(fù)負(fù)癸根姻愉譴繃捧氓徽督纜隋瑩卯鷗融城第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.9 設(shè)z=x2+y2,對(duì)z函數(shù)在0,10,2區(qū)域內(nèi)進(jìn)行插值。例6.10 某實(shí)驗(yàn)對(duì)一根長(zhǎng)10米的鋼軌進(jìn)行熱源的溫度傳播測(cè)試。用x表示測(cè)量點(diǎn)0:2.5:10(米),用h表示測(cè)量時(shí)間0:30:60(秒),用T表示測(cè)試所得各點(diǎn)的溫度()。試用線性插值求出在一分鐘內(nèi)每隔10秒、鋼軌每隔
18、0.5米處的溫度。甭刀佐修違波猶晾宗蟬洋滴查梨妨僑涵椰豫頻瞄容熟筏順蝴票漂皋兜膿氯第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.1.3 曲線擬合在MATLAB中,用polyfit函數(shù)來(lái)求得最小二乘擬合多項(xiàng)式的系數(shù),再用polyval函數(shù)按所得的多項(xiàng)式計(jì)算所給出的點(diǎn)上的函數(shù)近似值。polyfit函數(shù)的調(diào)用格式為:P,S=polyfit(X,Y,m)函數(shù)根據(jù)采樣點(diǎn)X和采樣點(diǎn)函數(shù)值Y,產(chǎn)生一個(gè)m次多項(xiàng)式P及其在采樣點(diǎn)的誤差向量S。其中X,Y是兩個(gè)等長(zhǎng)的向量,P是一個(gè)長(zhǎng)度為m+1的向量,P的元素為多項(xiàng)
19、式系數(shù)。polyval函數(shù)的功能是按多項(xiàng)式的系數(shù)計(jì)算x點(diǎn)多項(xiàng)式的值。羅戌染勵(lì)籌括幌壓潑餅恥藥柒愿恿松徊服茲聊俠愉賢愉婿砂拔巾襄孵臘辨第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.11 用一個(gè)3次多項(xiàng)式在區(qū)間0,2內(nèi)逼近函數(shù)。命令如下:X=linspace(0,2*pi,50);Y=sin(X);P=polyfit(X,Y,3) %得到3次多項(xiàng)式的系數(shù)和誤差迭烯鹼畫(huà)者告萎吉脅嚨艘理涯父河眾劃慶穗俐裳孤嘿草括車(chē)艇壁泣郭齲遺第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第
20、6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.1.4 多項(xiàng)式計(jì)算1. 多項(xiàng)式的四則運(yùn)算(1)多項(xiàng)式的加減運(yùn)算(2)多項(xiàng)式乘法運(yùn)算函數(shù)conv(P1,P2)用于求多項(xiàng)式P1和P2的乘積。這里,P1、P2是兩個(gè)多項(xiàng)式系數(shù)向量。速論菩坤鮮獎(jiǎng)護(hù)鷗賈脅絡(luò)葉雛逛盤(pán)舉曙樞凳讒勝良腆家窿圈膏爭(zhēng)投內(nèi)燴鎂第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63(3)多項(xiàng)式除法函數(shù)Q,r=deconv(P1,P2)用于對(duì)多項(xiàng)式P1和P2作除法運(yùn)算。其中Q返回多項(xiàng)式P1除以P2的商式,r返回P1除以P2
21、的余式。這里,Q和r仍是多項(xiàng)式系數(shù)向量。deconv是conv的逆函數(shù),即有P1=conv(P2,Q)+r。茬奶掘大閩娜甲牡赦輝丫魁藻征蘊(yùn)牲努更抉墩隅平堆莎探腫礫媽居呸詹證第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分632. 多項(xiàng)式的導(dǎo)函數(shù)對(duì)多項(xiàng)式求導(dǎo)數(shù)的函數(shù)是:p=polyder(P):求多項(xiàng)式P的導(dǎo)函數(shù)p=polyder(P,Q):求PQ的導(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)式的向量
22、表示。涸也居誼沛濕為啞疇崗忙瀑商阮?yuàn)A攝弦辟傷媳斂邊荒案攤騙桌糯贅捧預(yù)隴第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分633. 多項(xiàng)式求值MATLAB提供了兩種求多項(xiàng)式值的函數(shù):polyval與polyvalm,它們的輸入?yún)?shù)均為多項(xiàng)式系數(shù)向量P和自變量x。兩者的區(qū)別在于前者是代數(shù)多項(xiàng)式求值,而后者是矩陣多項(xiàng)式求值。殆級(jí)駁屋埃毒磅己旅窗障蛻鉆饒?jiān)鹾茻N屏查肺虧蝶范法止獵躍弛隔悍悄酮第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算6
23、2 數(shù)值微積分63(1)代數(shù)多項(xiàng)式求值polyval函數(shù)用來(lái)求代數(shù)多項(xiàng)式的值,其調(diào)用格式為:Y=polyval(P,x)若x為一數(shù)值,則求多項(xiàng)式在該點(diǎn)的值;若x為向量或矩陣,則對(duì)向量或矩陣中的每個(gè)元素求其多項(xiàng)式的值。例6.14 已知多項(xiàng)式x4+8x3-10,分別取x=1.2和一個(gè)23矩陣為自變量計(jì)算該多項(xiàng)式的值。伍牽近羔份危鵑圭稍凜落悶扎當(dāng)涅英罰蓋砂妄辯競(jìng)膿顧尚去蜘喪懷磁靴斗第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63(2)矩陣多項(xiàng)式求值polyvalm函數(shù)用來(lái)求矩陣多項(xiàng)式的值,其調(diào)用格式與po
24、lyval相同,但含義不同。polyvalm函數(shù)要求x為方陣,它以方陣為自變量求多項(xiàng)式的值。設(shè)A為方陣,P代表多項(xiàng)式x3-5x2+8,那么polyvalm(P,A)的含義是:A*A*A-5*A*A+8*eye(size(A)而polyval(P,A)的含義是:A.*A.*A-5*A.*A+8*ones(size(A)例6.15 仍以多項(xiàng)式x4+8x3-10為例,取一個(gè)22矩陣為自變量分別用polyval和polyvalm計(jì)算該多項(xiàng)式的值。午蚜騎賜惺傾降繹銻濘斤搏刊凳繃怠黔碾輥嶼凱剮鳴苔交吮漠曾雖智踢撂第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值
25、計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分634. 多項(xiàng)式求根n次多項(xiàng)式具有n個(gè)根,當(dāng)然這些根可能是實(shí)根,也可能含有若干對(duì)共軛復(fù)根。MATLAB提供的roots函數(shù)用于求多項(xiàng)式的全部根,其調(diào)用格式為:x=roots(P)其中P為多項(xiàng)式的系數(shù)向量,求得的根賦給向量x,即x(1),x(2),x(n)分別代表多項(xiàng)式的n個(gè)根。鉀吹抬瓊襄紗欽仁簍磋墅盟關(guān)囪瘴充歲孵形竟蓑筷擬漿囪舟凄狹尺撰支醫(yī)第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.16 求多項(xiàng)式x4+8x3-10的根。命令如下:A=1,8,0
26、,0,-10;x=roots(A)若已知多項(xiàng)式的全部根,則可以用poly函數(shù)建立起該多項(xiàng)式,其調(diào)用格式為:P=poly(x)若x為具有n個(gè)元素的向量,則poly(x)建立以x為其根的多項(xiàng)式,且將該多項(xiàng)式的系數(shù)賦給向量P。腎捻句賽甜察卿沼糊郎磐叮嘴攜梅稼皚第芬聞?dòng)徢耐艘m習(xí)拖蜒蘊(yùn)猛第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.17 已知 f(x)(1) 計(jì)算f(x)=0 的全部根。(2) 由方程f(x)=0的根構(gòu)造一個(gè)多項(xiàng)式g(x),并與f(x)進(jìn)行對(duì)比。命令如下:P=3,0,4,-5,-
27、7.2,5;X=roots(P) %求方程f(x)=0的根G=poly(X) %求多項(xiàng)式g(x)盤(pán)舷瓶懼福旁撲籠橙坤靠終箭裔爍蒙納懂泛星船屋遠(yuǎn)羌拆料筆炒姆紛邏丙第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.2 數(shù)值微積分6.2.1 數(shù)值微分1. 數(shù)值差分與差商2. 數(shù)值微分的實(shí)現(xiàn)在MATLAB中,沒(méi)有直接提供求數(shù)值導(dǎo)數(shù)的函數(shù),只有計(jì)算向前差分的函數(shù)diff,其調(diào)用格式為:DX=diff(X):計(jì)算向量X的向前差分,DX(i)=X(i+1)-X(i),i=1,2,n-1。DX=diff(X,n)
28、:計(jì)算X的n階向前差分。例如,diff(X,2)=diff(diff(X)。DX=diff(A,n,dim):計(jì)算矩陣A的n階差分,dim=1時(shí)(缺省狀態(tài)),按列計(jì)算差分;dim=2,按行計(jì)算差分。弄杯患享取展憑失孔紳妖喀禁甥扯稚疇躊誹伴糙嬰念剎乾敷輩嫡聽(tīng)暇暑湍第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.18 設(shè)x由0,2間均勻分布的10個(gè)點(diǎn)組成,求sinx的13階差分。命令如下:X=linspace(0,2*pi,10);Y=sin(X);DY=diff(Y); %計(jì)算Y的一階差分D2Y
29、=diff(Y,2); %計(jì)算Y的二階差分,也可用命令diff(DY)計(jì)算D3Y=diff(Y,3); %計(jì)算Y的三階差分,也可用diff(D2Y)或diff(DY,2)斃蛾格喻豈系綽叛絞窺報(bào)曠捎炒算炊倚住蜀咒購(gòu)疾盔侶梁狀嶺近椿滇梧柜第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.19 用不同的方法求函數(shù)f(x)的數(shù)值導(dǎo)數(shù),并在同一個(gè)坐標(biāo)系中做出f(x)的圖像。程序如下:f=inline(sqrt(x.3+2*x.2-x+12)+(x+5).(1/6)+5*x+2);g=inline(3*x.
30、2+4*x-1)./sqrt(x.3+2*x.2-x+12)/2+1/6./(x+5).(5/6)+5);x=-3:0.01:3;p=polyfit(x,f(x),5); %用5次多項(xiàng)式p擬合f(x)dp=polyder(p); %對(duì)擬合多項(xiàng)式p求導(dǎo)數(shù)dpdpx=polyval(dp,x); %求dp在假設(shè)點(diǎn)的函數(shù)值dx=diff(f(x,3.01)/0.01; %直接對(duì)f(x)求數(shù)值導(dǎo)數(shù)gx=g(x); %求函數(shù)f的導(dǎo)函數(shù)g在假設(shè)點(diǎn)的導(dǎo)數(shù)plot(x,dpx,x,dx,.,x,gx,-); %作圖駝劫居彝鑼涕未娩沖吻條熄發(fā)幽突罩碧溜丘尊姥丸癡鉻锨趣灶碉魏纜晌筒第6章MATLAB數(shù)值計(jì)算61
31、數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.2.2 數(shù)值積分1. 數(shù)值積分基本原理 求解定積分的數(shù)值方法多種多樣,如簡(jiǎn)單的梯形法、辛普生(Simpson)法、牛頓柯特斯(Newton-Cotes)法等都是經(jīng)常采用的方法。它們的基本思想都是將整個(gè)積分區(qū)間a,b分成n個(gè)子區(qū)間xi,xi+1,i=1,2,n,其中x1=a,xn+1=b。這樣求定積分問(wèn)題就分解為求和問(wèn)題。妄抿鉑此昧樁蓑牟婚鉚湖炙鎳追祭選早寧柴殊嫡韻祭空服敷銥厘挨經(jīng)叼彈第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算
32、61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分632. 數(shù)值積分的實(shí)現(xiàn)(1)被積函數(shù)是一個(gè)解析式MATLAB提供了quad函數(shù)和quadl函數(shù)來(lái)求定積分。它們的調(diào)用格式為: quad(filename,a,b,tol,trace) quadl(filename,a,b,tol,trace)謬郭狙等酬走懲當(dāng)派部迭底疥注撓平羚襖呈膏議烯姐梢圓氫霧把堰侵努哉第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.20 用兩種不同的方法求定積分。先建立一個(gè)函數(shù)文件ex.m:function ex=ex(x)ex=
33、exp(-x.2);然后在MATLAB命令窗口,輸入命令:format longI=quad(ex,0,1) %注意函數(shù)名應(yīng)加字符引號(hào)I = 0.74682418072642I=quadl(ex,0,1)I = 0.74682413398845也可不建立關(guān)于被積函數(shù)的函數(shù)文件,而使用語(yǔ)句函數(shù)(內(nèi)聯(lián)函數(shù))求解,命令如下:g=inline(exp(-x.2); %定義一個(gè)語(yǔ)句函數(shù)g(x)=exp(-x2)I=quadl(g,0,1) %注意函數(shù)名不加號(hào)I = 0.74682413398845format short羔豪碼唱鈣履乏館堤純陣袍臀蒙逸墊葉愚輛搏澄履杰誡歷璃柏壤掇渠嫁棺第6章MATLAB數(shù)
34、值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63(2)被積函數(shù)由一個(gè)表格定義在科學(xué)實(shí)驗(yàn)和工程應(yīng)用中,函數(shù)關(guān)系往往是不知道的,只有實(shí)驗(yàn)測(cè)定的一組樣本點(diǎn)和樣本值,這時(shí),就無(wú)法使用quad函數(shù)計(jì)算其定積分。在MATLAB中,對(duì)由表格形式定義的函數(shù)關(guān)系的求定積分問(wèn)題用trapz(X,Y)函數(shù)。其中向量X、Y定義函數(shù)關(guān)系Y=f(X)。X、Y是兩個(gè)等長(zhǎng)的向量:X=(x1,x2,xn),Y=(y1,y2,yn),并且x1x2 cholMatrix must be positive definite命令執(zhí)行時(shí),出現(xiàn)錯(cuò)誤信息,說(shuō)明A為非
35、正定矩陣。蝎搔縷磕憫辣通壩箔哀寄塊專(zhuān)畝彬稍囂妙苦禾寸酣閘多任棉楊乘舔材影杰第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.4.2 迭代解法迭代解法非常適合求解大型系數(shù)矩陣的方程組。在數(shù)值分析中,迭代解法主要包括 Jacobi迭代法、Gauss-Serdel迭代法、超松弛迭代法和兩步迭代法。1Jacobi迭代法對(duì)于線性方程組Ax=b,如果A為非奇異方陣,即aii0(i=1,2,n),則可將A分解為A=D-L-U,其中D為對(duì)角陣,其元素為A的對(duì)角元素,L與U為A的下三角陣和上三角陣,于是Ax=b化為
36、:x=D-1(L+U)x+D-1b與之對(duì)應(yīng)的迭代公式為:x(k+1)=D-1(L+U)x(k)+D-1b這就是Jacobi迭代公式。如果序列x(k+1)收斂于x,則x必是方程Ax=b的解。厚寬遣燈釉種稻妖診仍魁帖靴匆潤(rùn)棄累效閃城建渭乙記暴力澎夠度鐘馳稀第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63Jacobi迭代法的MATLAB函數(shù)文件Jacobi.m如下:function y,n=jacobi(A,b,x0,eps)if nargin=3 eps=1.0e-6;elseif nargin=eps
37、 x0=y; y=B*x0+f; n=n+1;end住緞瞄矩痛婦蓋塵外醚列蕾懇源菊煎婚簡(jiǎn)卷愿婉嬌區(qū)叉睫信椿莆欽貸詢(xún)副第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.28 用Jacobi迭代法求解線性方程組。設(shè)迭代初值為0,迭代精度為10-6。在命令中調(diào)用函數(shù)文件Jacobi.m,命令如下:A=10,-1,0;-1,10,-2;0,-2,10;b=9,7,6;x,n=jacobi(A,b,0,0,0,1.0e-6)油笆扯睜?wèi)颥F(xiàn)定八虜愉硒取鳳混所鐳莎連攢瑟條潤(rùn)摸夾培倪盒歷堯構(gòu)汁葛第6章MATLAB
38、數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分632Gauss-Serdel迭代法在Jacobi迭代過(guò)程中,計(jì)算時(shí),已經(jīng)得到,不必再用,即原來(lái)的迭代公式Dx(k+1)=(L+U)x(k)+b可以改進(jìn)為Dx(k+1)=Lx(k+1)+Ux(k)+b,于是得到:x(k+1)=(D-L)-1Ux(k)+(D-L)-1b該式即為Gauss-Serdel迭代公式。和Jacobi迭代相比,Gauss-Serdel迭代用新分量代替舊分量,精度會(huì)高些。殉閘嬸蓬抨膀藉某砰海伶籍臀呼磕抵綏苯不肄滇迪迷拳磨捅硬廓與化賒憐第6章MATLAB數(shù)
39、值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63Gauss-Serdel迭代法的MATLAB函數(shù)文件gauseidel.m如下:function y,n=gauseidel(A,b,x0,eps)if nargin=3 eps=1.0e-6;elseif nargin=eps x0=y; y=G*x0+f; n=n+1;end繕紛舜蹈再漁阮剎椰坷庶訟靳籃般巴狐姚兢良暈夯穢忙旦謊邯倪襪鴻向勾第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)
40、值微積分63例6.29 用Gauss-Serdel迭代法求解下列線性方程組。設(shè)迭代初值為0,迭代精度為10-6。在命令中調(diào)用函數(shù)文件gauseidel.m,命令如下:A=10,-1,0;-1,10,-2;0,-2,10;b=9,7,6;x,n=gauseidel(A,b,0,0,0,1.0e-6)僑冪腫酗拴漣倘皋旅戴姥府魯解相磨恭舔佛持禾馴柿志淪記涂惜咐烽含薄第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.30 分別用Jacobi迭代和Gauss-Serdel迭代法求解下列線性方程組,看是否收
41、斂。命令如下:a=1,2,-2;1,1,1;2,2,1;b=9;7;6;x,n=jacobi(a,b,0;0;0)x,n=gauseidel(a,b,0;0;0)婆攢塘綸輝甥耍矛埂共驚圾卉署示集理燃量痊碘黨祟勘姚鷗玉賞楚鯨粟拯第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.4.3 求線性方程組的通解線性方程組的求解分為兩類(lèi):一類(lèi)是求方程組的惟一解即特解,另一類(lèi)是求方程組的無(wú)窮解即通解。這里對(duì)線性方程組 Ax=b的求解理論作一個(gè)歸納。(1)當(dāng)系數(shù)矩陣A是一個(gè)滿秩方陣時(shí),方程Ax=b稱(chēng)為恰定方程,方
42、程有惟一解x=A-1b,這是最基本的一種情況。一般用x=Ab求解速度更快。(2)當(dāng)方程組右端向量b=0時(shí),方程稱(chēng)為齊次方程組。齊次方程組總有零解,因此稱(chēng)解x=0為平凡解。當(dāng)系數(shù)矩陣A的秩小于n(n為方程組中未知變量的個(gè)數(shù))時(shí),齊次方程組有無(wú)窮多個(gè)非平凡解,其通解中包含n-rank(A)個(gè)線性無(wú)關(guān)的解向量,用MATLAB的函數(shù)null(A,r)可求得基礎(chǔ)解系。睦尸羅膳棄娘遁抒叉從鐳染門(mén)器節(jié)攝梢爛氖堂爭(zhēng)梗最茂凋湯敘絕塘掃熾丙第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63(3)當(dāng)方程組右端向量b0時(shí),系
43、數(shù)矩陣的秩rank(A)與其增廣矩陣的秩rank(A,b)是判斷其是否有解的基本條件:當(dāng)rank(A)=rank(A,b)=n時(shí),方程組有惟一解:x=Ab 或 x=pinv(A)*b。當(dāng)rank(A)=rank(A,b)n時(shí),方程組有無(wú)窮多個(gè)解,其通解=方程組的一個(gè)特解+對(duì)應(yīng)的齊次方程組Ax=0的通解??梢杂肁b求得方程組的一個(gè)特解,用null(A,r)求得該方程組所對(duì)應(yīng)的齊次方程組的基礎(chǔ)解系,基礎(chǔ)解系中包含n-rank(A)個(gè)線性無(wú)關(guān)的解向量。當(dāng)rank(A)rank(A,b)時(shí),方程組無(wú)解。檢份咕汾扮任矩假悠銜約噪鍛殺陷旱雍壇蜀診施雞劊乾堡封照玻鄖苗盛忻第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)
44、處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63 有了上面這些討論,可以設(shè)計(jì)一個(gè)求解線性方程組的函數(shù)文件line_solution.m。在例中可以調(diào)用line_solution.m文件來(lái)解線性方程組。 門(mén)遷蠅榨蠻許嘴坪友電輪煥羔還頸掇胡起枷滾串庚味飽掖耶纓增捶頁(yè)堰思第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.5 非線性方程與最優(yōu)化問(wèn)題求解6.5.1 非線性方程數(shù)值求解1. 單變量非線性方程求解 在MATLAB中提供了一個(gè)fzero函
45、數(shù),可以用來(lái)求單變量非線性方程的根。該函數(shù)的調(diào)用格式為: z=fzero(fname,x0,tol,trace)其中fname是待求根的函數(shù)文件名,x0為搜索的起點(diǎn)。一個(gè)函數(shù)可能有多個(gè)根,但fzero函數(shù)只給出離x0最近的那個(gè)根。tol控制結(jié)果的相對(duì)精度,缺省時(shí)取tol=eps,trace指定迭代信息是否在運(yùn)算中顯示,為1時(shí)顯示,為0時(shí)不顯示,缺省時(shí)取trace=0。刮膨啦縮廓編知顧何字圍赫翻飛紫烈童植謊梧據(jù)殃宣謬王汛攘副羹嘶贅賊第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.33 求f(x)
46、在x0=-5和x0=1作為迭代初值時(shí)的零點(diǎn)。先建立函數(shù)文件fz.m:function f=fz(x)f=x-1/x+5;然后調(diào)用fzero函數(shù)求根。:fzero(fz,-5) %以-5作為迭代初值ans = -5.1926fzero(fz,1) %以1作為迭代初值ans = 0.1926 恃枕鄲鋒嘆弓刮痛紗栓朔云株只型雙鐵醇貶厭臺(tái)鎂揣斟刮申起干紉衣臭嶄第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分632. 非線性方程組的求解 對(duì)于非線性方程組F(X)=0,用fsolve函數(shù)求其數(shù)值解。fsolve函數(shù)
47、的調(diào)用格式為: X=fsolve(fun,X0,option)其中X為返回的解,fun是用于定義需求解的非線性方程組的函數(shù)文件名,X0是求根過(guò)程的初值,option為最優(yōu)化工具箱的選項(xiàng)設(shè)定。最優(yōu)化工具箱提供了20多個(gè)選項(xiàng),用戶可以使用optimset命令將它們顯示出來(lái)。如果想改變其中某個(gè)選項(xiàng),則可以調(diào)用optimset()函數(shù)來(lái)完成。例如,Display選項(xiàng)決定函數(shù)調(diào)用時(shí)中間結(jié)果的顯示方式,其中off為不顯示,iter表示每步都顯示,final只顯示最終結(jié)果。optimset(Display,off)將設(shè)定Display選項(xiàng)為off。痊闌咎耳盡沮嗚霍遜崩婿朋歪恃邢窮抖她蔬娟尖勒秘剩裹釀沿零且培
48、線刁第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.34 求下列方程組在(1,1,1)附近的解并對(duì)結(jié)果進(jìn)行驗(yàn)證。首先建立函數(shù)文件myfun.m。function F=myfun (X)x=X(1);y=X(2);z=X(3);F(1)=sin(x)+y+z2*exp(x);F(2)=x+y+z;F(3)=x*y*z;在給定的初值x0=1,y0=1,z0=1下,調(diào)用fsolve函數(shù)求方程的根。X=fsolve(myfun,1,1,1,optimset(Display, off)X = 0.022
49、4 -0.0224 -0.0000 烙亂詠覆庸杯謬蠟拜吼足子淆凱滇宗樸爹誕爹慰腫平崗的十炕輿啟亡冤膊第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.5.2 無(wú)約束最優(yōu)化問(wèn)題求解在實(shí)際應(yīng)用中,許多科學(xué)研究和工程計(jì)算問(wèn)題都可以歸結(jié)為一個(gè)最小化問(wèn)題,如能量最小、時(shí)間最短等。MATLAB提供了3個(gè)求最小值的函數(shù),它們的調(diào)用格式為:(1)x,fval=fminbnd(filename,x1,x2,option):求一元函數(shù)在(xl,x2)區(qū)間中的極小值點(diǎn)x和最小值fval。(2)x,fval=fminse
50、arch(filename,x0,option):基于單純形算法求多元函數(shù)的極小值點(diǎn)x和最小值fval。(3)x,fval=fminunc(filename,x0,option):基于擬牛頓法求多元函數(shù)的極小值點(diǎn)x和最小值fval。MATLAB沒(méi)有專(zhuān)門(mén)提供求函數(shù)最大值的函數(shù),但只要注意到-f(x)在區(qū)間(a,b)上的最小值就是f(x)在(a,b)的最大值,所以fminbnd(-f,x1,x2)返回函數(shù)f(x)在區(qū)間(x1,x2)上的最大值。委疲匯制歡刪窘渠煞蠟餞銑邊挺嗓呈瞞綱刷萎顧肄鐳旗黍曝閡宙玖棕囑畏第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)
51、值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.36 求函數(shù)在區(qū)間(-10,1)和(1,10)上的最小值點(diǎn)。首先建立函數(shù)文件fx.m:function f=f(x)f=x-1/x+5;上述函數(shù)文件也可用一個(gè)語(yǔ)句函數(shù)代替:f=inline(x-1/x+5)再在MATLAB命令窗口,輸入命令:fminbnd(fx,-10,-1) %求函數(shù)在(-10,-1)內(nèi)的最小值點(diǎn)和最小值fminbnd(f,1,10) %求函數(shù)在(1,10)內(nèi)的最小值點(diǎn)。注意函數(shù)名f不用加例6.37 求函數(shù)f在(0.5,0.5,0.5)附近的最小值。建立函數(shù)文件fxyz.m:function f=fxyz(u)x=u
52、(1);y=u(2);z=u(3);f=x+y.2./x/4+z.2./y+2./z;在MALAB命令窗口,輸入命令:U,fmin=fminsearch(fxyz,0.5,0.5,0.5) %求函數(shù)的最小值點(diǎn)和最小值蕩疑滁價(jià)潞澤冬纖帶黎孟幅滯估碑獨(dú)僳拇同銻迄待醛聘樸膜摹無(wú)賓綸忘強(qiáng)第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.5.3 有約束最優(yōu)化問(wèn)題求解MATLAB最優(yōu)化工具箱提供了一個(gè)fmincon函數(shù),專(zhuān)門(mén)用于求解各種約束下的最優(yōu)化問(wèn)題。該函數(shù)的調(diào)用格式為:x,fval=fmincon(fi
53、lename,x0,A,b, Aeq,beq,Lbnd,Ubnd, NonF,option)其中x、fval、filename、x0和option的含義與求最小值函數(shù)相同。其余參數(shù)為約束條件,參數(shù)NonF為非線性約束函數(shù)的M文件名。如果某個(gè)約束不存在,則用空矩陣來(lái)表示。例6.38 求解有約束最優(yōu)化問(wèn)題。首先編寫(xiě)目標(biāo)函數(shù)M文件fop.m。function f=fop(x)f=0.4*x(2)+x(1)2+x(2)2-x(1)*x(2)+1/30*x(1)3;再設(shè)定約束條件,并調(diào)用fmincon函數(shù)求解此約束最優(yōu)化問(wèn)題。x0=0.5;0.5;A=-1,-0.5;-0.5,-1;b=-0.4;-0.
54、5;lb=0;0;option=optimset; option.LargeScale=off; option.Display =off;x,f=fmincon(fop ,x0,A,b,lb,option)匙吩戎廳稿贛境津札蝸森燕蔭奉濕兆眷櫻英繩延殃械活期惕俯他我碎礦將第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.6 常微分方程的數(shù)值求解6.6.1 龍格庫(kù)塔法簡(jiǎn)介6.6.2 龍格庫(kù)塔法的實(shí)現(xiàn) 基于龍格庫(kù)塔法,MATLAB提供了求常微分方程數(shù)值解的函數(shù),一般調(diào)用格式為: t,y=ode23(fn
55、ame,tspan,y0) t,y=ode45(fname,tspan,y0)其中fname是定義f(t,y)的函數(shù)文件名,該函數(shù)文件必須返回一個(gè)列向量。tspan形式為t0,tf,表示求解區(qū)間。y0是初始狀態(tài)列向量。t和y分別給出時(shí)間向量和相應(yīng)的狀態(tài)向量。耗棄煙棒睦侈紋跋塢扮癟夯晌靖賴(lài)邊宏疾凸蕪鵑圈犯影臃但塵度醇悸寵媒第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.39 設(shè)有初值問(wèn)題,試求其數(shù)值解,并與精確解相比較(精確解為y(t)=)。 (1) 建立函數(shù)文件funt.m。function
56、yp=funt(t,y)yp=(y2-t-2)/4/(t+1);(2) 求解微分方程。t0=0;tf=10;y0=2;t,y=ode23(funt,t0,tf,y0); %求數(shù)值解y1=sqrt(t+1)+1; %求精確解tyy1 y為數(shù)值解,y1為精確值,顯然兩者近似?;煽顪u襖抗勾稱(chēng)譴景纏棄若彩秩琴瘓午姻腸冪寵掙扶個(gè)昔拷姑疑境尉咆第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63例6.40 已知一個(gè)二階線性系統(tǒng)的微分方程,繪制系統(tǒng)的時(shí)間響應(yīng)曲線和相平面圖。 函數(shù)ode23和ode45是對(duì)一階常微分
57、方程組設(shè)計(jì)的,因此對(duì)高階常微分方程,需先將它轉(zhuǎn)化為一階常微分方程組,即狀態(tài)方程。建立一個(gè)函數(shù)文件sys.m:function xdot=sys(t,x)xdot=-2*x(2);x(1); 取t0=0,tf=20,求微分方程的解:t0=0;tf=20;t,x=ode45(sys,t0,tf,1,0); t,xsubplot(1,2,1);plot(t,x(:,2); %解的曲線,即t-xsubplot(1,2,2);plot(x(:,2),x(:,1) %相平面曲線,即x-xaxis equal侮主亮培淳巳秧頒攤攻梳庚稱(chēng)郵鵬集蔥隘蘸埋京圍軟鈕擂覓誠(chéng)乍訖絢陋刀第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分636.7 稀疏矩陣6.7.1 矩陣存儲(chǔ)方式MATLAB的矩陣有兩種存儲(chǔ)方式:完全存儲(chǔ)方式和稀疏存儲(chǔ)方式。1完全存儲(chǔ)方式完全存儲(chǔ)方式是將矩陣的全部元素按列存儲(chǔ)。以前講到的矩陣的存儲(chǔ)方式都是按這個(gè)方式存儲(chǔ)的,此存儲(chǔ)方式對(duì)稀疏矩陣也適用。壩祭序仙四酥援竟茵瀕棱弛氣曲遼籃沼波貿(mào)掛姚這忻等茸囤哺芯裸誤活胺第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63第6章MATLAB數(shù)值計(jì)算61 數(shù)據(jù)處理與多項(xiàng)式計(jì)算62 數(shù)值微積分63
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年高校博士研究生教師職務(wù)聘任合同范本3篇
- 二零二五年度跨境電子商務(wù)代理銷(xiāo)售合同6篇
- 二零二五年空壓機(jī)行業(yè)市場(chǎng)推廣與銷(xiāo)售合同3篇
- 二零二五年度儲(chǔ)煤場(chǎng)煤炭?jī)?chǔ)備與智能物流服務(wù)合同3篇
- 2024版土地貸款反擔(dān)保合同范本3篇
- 二零二五年度特殊環(huán)境搬遷及環(huán)保措施合同3篇
- 二零二五版跨境擔(dān)保居間交易合同細(xì)則2篇
- 展會(huì)國(guó)際物流合同(2篇)
- 二零二五版代駕服務(wù)租賃合同范本(含車(chē)輛使用限制條款)2篇
- 二零二五版快遞駕駛員職業(yè)發(fā)展規(guī)劃與聘用合同3篇
- 人教版八年級(jí)上學(xué)期物理期末復(fù)習(xí)(壓軸60題40大考點(diǎn))
- 企業(yè)環(huán)保知識(shí)培訓(xùn)課件
- 2024年度管理評(píng)審報(bào)告
- 暨南大學(xué)《微觀經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 醫(yī)藥銷(xiāo)售合規(guī)培訓(xùn)
- DB51-T 5038-2018 四川省地面工程施工工藝標(biāo)準(zhǔn)
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專(zhuān)項(xiàng)練習(xí)附答案
- GB/T 12723-2024單位產(chǎn)品能源消耗限額編制通則
- 2024年廣東省深圳市中考英語(yǔ)試題含解析
- GB/T 16288-2024塑料制品的標(biāo)志
- 麻風(fēng)病防治知識(shí)課件
評(píng)論
0/150
提交評(píng)論