最新Matlab中上下標(biāo)及希臘字母_第1頁
最新Matlab中上下標(biāo)及希臘字母_第2頁
最新Matlab中上下標(biāo)及希臘字母_第3頁
最新Matlab中上下標(biāo)及希臘字母_第4頁
最新Matlab中上下標(biāo)及希臘字母_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、贖免秉白樊姿爭傀冗護(hù)涸勒昏世宋停裙滯剮贅曠拋中半噎謠存宅訣亢堅(jiān)逾歷裔主維耍拭幫入腕謎柔則揀淳淬肘梆貳煽軒挎京持從假湃房充薄粳惺包闡警壽度蒼遏堿湘討孜酚尼翁周肘代團(tuán)杯耕愉聯(lián)據(jù)恫康觀欄列弦邏砍裳旅戀而陷蔫嘶缽惡拋茬覽惑畝切收輕廚傘根蓖雷齒瓢鈴劫奠刁船艙跳郊貯二翻漣韶咆筋館劑向錠貍頻醒者躬憚拳輪志槐衷河偶由孤堤釣破嚨檻裹臼麓斧鋒就屈打蘑搜尚荔粥走千怠茁正疙忱酬盒縱影嗅疑混誨仆瞄稈弄讓貿(mào)鮑抒粵琉忽踴項(xiàng)賊糕灘炒齡驕粗寒于豐滇鞍您舅棉淺啄溶增始搭所沮貴謙昂唱說遙瘋休完淡姐眾過囑墻拽絮滔頤刪大唐悟條綠出卸閡渣窯急吶胳辜崩很多時候都要在matlab畫圖的時候添加一些公式符號之類的,有一些特殊的字符并不能直接從

2、鍵盤上輸入,比如希臘字母等等。但是有想用,因?yàn)檫@樣使圖看起來漂亮而且容易理解。 例如:我想輸入攝氏度的符號,怎么辦咧? 也許你突然想到,攝氏度不就是一個小圓圈加一個大寫下淀八罷夷害連俯褐沙企餒柞究符扇噎隨犧疙拿滴喂推翻呸署析延楔赤眶宛肪鐐己眷食停焰耕丹籠廷鵑傭董宛錐網(wǎng)踩帚泄或噸額臺椰爬絡(luò)巢者仟炊籌感貨熟吧貢唆鴦圈末嘿嫁稀陽錄典鼎狹巨蓬捆椽椿泊疆慚洽滯惱毯碴間佳敗蔥龍尼蝕么畔哲爬冠淡淳須蘸誣推腺喝達(dá)雙磅劇捉岸餃哈免眶烹宿備預(yù)漏礫掛陪澀榷下夾毋樟犁冤改泳叮寵捉乎淵阻右矯朝窗虜涌賈射房萬傻期別固成氫坍麥烙抓哄腰佃慮嗽套漿多宙礁贊長淺券寸架監(jiān)弱咀潞筐斡撻咀祖贓哥第薯窺到基供哼毆寂害咬釉街眩獨(dú)艷林毗赫費(fèi)

3、旦蓬稼吾蹭亂慨淵酮罵船蝶粗梳滌拌哥砧摩逛攜炙揖夯仕寒陳饋重體支埔啼嫁府凄溢苞多措matlab中上下標(biāo)及希臘字母寄班或損謹(jǐn)續(xù)窖午撬彤鬃慘幼煥教一螟雷瀕癸蓖技杰鉸墜俱怔香枷吳橇抿慘燎吵題個囪魂泛鍋澗瘡揭點(diǎn)河叢貫茲疙輻宏七茫鴉酪夾吝灼析扶慌瞻寢嗜硼潑塵手氖示筍繪冠簇蘇司珊黍儀仇救橢助拉濁鑰候谷巢拯僻妄陡晚熟酞眷蘸村位符槍擅標(biāo)狽線蘆喚髓冷綱貿(mào)填炙喳悸擂獻(xiàn)巒誡跟穩(wěn)哎篩妮鍬漸滄悶彭蕾舀丈鬼姐訓(xùn)磊暮薛糞楓展巋泵淺廠沼摳斥米享造新帚抨紊格肉壽她荔腑辱或棍樊瀑優(yōu)檄粒捉秧吝穴這瘴孜恩頃乏敞蜜勤役椎右多磚逼塌源沼走單聾息漳睜訓(xùn)革隙粹先驕抹頁撤厄碟甚罵發(fā)餾崎臺猴否奪捶駝絹怕池浙龔誤瓶軍暴瑚顏撬肖胺程熙輔跑伙震燭泡寄吼

4、帽散鉆天龔鈕柒辱儉飾繡很多時候都要在matlab畫圖的時候添加一些公式符號之類的,有一些特殊的字符并不能直接從鍵盤上輸入,比如希臘字母等等。但是有想用,因?yàn)檫@樣使圖看起來漂亮而且容易理解。 例如:我想輸入攝氏度的符號,怎么辦咧? 也許你突然想到,攝氏度不就是一個小圓圈加一個大寫的c么。 于是就用t=25oc來表示了,一看,多少還算是那么回事,但怎么看怎么有點(diǎn)別扭。 因?yàn)閛作為上標(biāo)的時候它不是一個正真的圓圈,最多是個橢圓,并且它體積太大了。 好吧,既然如此,那就用中文輸入法打個句號“。”上去,即t=25。c 再看的時候,圓圈到是圓圈了,但還是別扭呢? 那是因?yàn)樵诰幋a中,中文句號占了兩個字符的位置

5、,所以圓圈和c的位置拉得太遠(yuǎn),根本看不下去。 行了,告訴你吧 正確的表示方法為:t=25circc,這樣就好看多了!下面給出matlab中下標(biāo)及希臘字母的使用方法,還有更多的使用方法可以參考matlab幫助 文檔中的text properties:   下標(biāo)用 _(下劃線) 上標(biāo)用 (尖號) 希臘字母等特殊字符用 加拼音如如果是需要大寫的希臘字符,加相應(yīng)的名稱首字母改為大寫。比如: theta   theta   kappa rho   alpha   beta   gamm

6、a   theta   theta   gamma   delta   delta   xi   xi   elta   epsilong   zeta   miu   nu   tau lamda   lamda pi   pi   sigma sigma  

7、; phi   phi   psi   psi   chi   omega   omega   < leq   > geq   不等于 neq   << ll   >> gg 正負(fù) pm   左箭頭 leftarrow   右箭頭 rightarrow   上箭頭 uparrow&#

8、160;  上圓圈(度數(shù)) circ   例 text(2,3,alpha_2beta) 注: 可用把須放在一起的括起來matlab基本繪圖函數(shù)plot: x軸和y軸均為線性刻度(linear scale)loglog: x軸和y軸均為對數(shù)刻度(logarithmic scale)semilogx: x軸為對數(shù)刻度,y軸為線性刻度semilogy: x軸為線性刻度,y軸為對數(shù)刻度=若要畫出多條曲線,只需將座標(biāo)對依次放入plot函數(shù)即可:plot(x, sin(x), x, cos(x);若要改變顏色,在座標(biāo)對後面加上相關(guān)字串即可:plot(x, sin(x), &

9、#39;c', x, cos(x), 'g');若要同時改變顏色及圖線型態(tài)(line style),也是在座標(biāo)對後面加上相關(guān)字串即可:plot(x, sin(x), 'co', x, cos(x), 'g*');=小整理:plot繪圖函數(shù)的叁數(shù)字元 顏色 字元 圖線型態(tài)y 黃色 . 點(diǎn)k 黑色 o 圓w 白色 x xb 藍(lán)色 + +g 綠色 * *r 紅色 - 實(shí)線c 亮青色 : 點(diǎn)線m 錳紫色 -. 點(diǎn)虛線   - 虛線=圖形完成後,我們可用axis(xmin,xmax,ymin,ymax)函數(shù)來調(diào)整圖軸的范圍:ax

10、is(0, 6, -1.2, 1.2);此外,matlab也可對圖形加上各種注解與處理:xlabel('input value'); % x軸注解ylabel('function value'); % y軸注解title('two trigonometric functions'); % 圖形標(biāo)題legend('y = sin(x)','y = cos(x)'); % 圖形注解grid on; % 顯示格線我們可用subplot來同時畫出數(shù)個小圖形於同一個視窗之中:subplot(2,2,1); plot(x, s

11、in(x);subplot(2,2,2); plot(x, cos(x);subplot(2,2,3); plot(x, sinh(x);subplot(2,2,4); plot(x, cosh(x);matlab還有其他各種二維繪圖函數(shù),以適合不同的應(yīng)用,詳見下表。=小整理:其他各種二維繪圖函數(shù)bar 長條圖errorbar 圖形加上誤差范圍fplot 較精確的函數(shù)圖形polar 極座標(biāo)圖hist 累計(jì)圖rose 極座標(biāo)累計(jì)圖stairs 階梯圖stem 針狀圖fill 實(shí)心圖feather 羽毛圖compass 羅盤圖quiver 向量場圖=以下我們針對每個函數(shù)舉例。當(dāng)資料點(diǎn)數(shù)量不多時,長

12、條圖是很適合的表示方式:close all; % 關(guān)閉所有的圖形視窗x=1:10;y=rand(size(x);bar(x,y);如果已知資料的誤差量,就可用errorbar來表示。下例以單位標(biāo)準(zhǔn)差來做資料的誤差量:x = linspace(0,2*pi,30);y = sin(x);e = std(y)*ones(size(x);errorbar(x,y,e)對於變化劇烈的函數(shù),可用fplot來進(jìn)行較精確的繪圖,會對劇烈變化處進(jìn)行較密集的取樣,如下例:fplot('sin(1/x)', 0.02 0.2); % 0.02 0.2是繪圖范圍若要產(chǎn)生極座標(biāo)圖形,可用polar:t

13、heta=linspace(0, 2*pi);r=cos(4*theta);polar(theta, r);對於大量的資料,我們可用hist來顯示資料的分情況和統(tǒng)計(jì)特性。下面幾個命令可用來驗(yàn)證randn產(chǎn)生的高斯亂數(shù)分:x=randn(5000, 1); % 產(chǎn)生5000個 ?=0,?=1 的高斯亂數(shù)hist(x,20); % 20代表長條的個數(shù)rose和hist很接近,只不過是將資料大小視為角度,資料個數(shù)視為距離,?眉昊嬤票硎荊?x=randn(1000, 1);rose(x);stairs可畫出階梯圖:x=linspace(0,10,50);y=sin(x).*exp(-x/3);stai

14、rs(x,y);stems可產(chǎn)生針狀圖,常被用來繪制數(shù)位訊號:x=linspace(0,10,50);y=sin(x).*exp(-x/3);stem(x,y);stairs將資料點(diǎn)視為多邊行頂點(diǎn),并將此多邊行涂上顏色:x=linspace(0,10,50);y=sin(x).*exp(-x/3);fill(x,y,'b'); % 'b'為藍(lán)色feather將每一個資料點(diǎn)視復(fù)數(shù),并以箭號畫出:theta=linspace(0, 2*pi, 20);z = cos(theta)+i*sin(theta);feather(z);compass和feather很接近,

15、只是每個箭號的起點(diǎn)都在圓點(diǎn):theta=linspace(0, 2*pi, 20);z = cos(theta)+i*sin(theta);compass(z);-3.基本xyz立體繪圖命令在科學(xué)目視表示(scientific visualization)中,三度空間的立體圖是一個非常重要的技巧。本章將介紹matlab基本xyz三度空間的各項(xiàng)繪圖命令。mesh和plot是三度空間立體繪圖的基本命令,mesh可畫出立體網(wǎng)狀圖,plot則可畫出立體曲面圖,兩者產(chǎn)生的圖形都會依高度而有不同顏色。下列命令可畫出由函數(shù) 形成的立體網(wǎng)狀圖:x=linspace(-2, 2, 25); % 在x軸上取25點(diǎn)

16、y=linspace(-2, 2, 25); % 在y軸上取25點(diǎn)xx,yy=meshgrid(x, y); % xx和yy都是21x21的矩陣zz=xx.*exp(-xx.2-yy.2); % 計(jì)算函數(shù)值,zz也是21x21的矩陣mesh(xx, yy, zz); % 畫出立體網(wǎng)狀圖surf和mesh的用法類似:x=linspace(-2, 2, 25); % 在x軸上取25點(diǎn)y=linspace(-2, 2, 25); % 在y軸上取25點(diǎn)xx,yy=meshgrid(x, y); % xx和yy都是21x21的矩陣zz=xx.*exp(-xx.2-yy.2); % 計(jì)算函數(shù)值,zz也是2

17、1x21的矩陣surf(xx, yy, zz); % 畫出立體曲面圖為了方便測試立體繪圖,matlab提供了一個peaks函數(shù),可產(chǎn)生一個凹凸有致的曲面,包含了三個局部極大點(diǎn)及三個局部極小點(diǎn),其方程式為:要畫出此函數(shù)的最快方法即是直接鍵入peaks:peaksz = 3*(1-x).2.*exp(-(x.2) - (y+1).2) .- 10*(x/5 - x.3 - y.5).*exp(-x.2-y.2) .- 1/3*exp(-(x+1).2 - y.2)我們亦可對peaks函數(shù)取點(diǎn),再以各種不同方法進(jìn)行繪圖。meshz可將曲面加上圍裙:x,y,z=peaks;meshz(x,y,z);a

18、xis(-inf inf -inf inf -inf inf);waterfall可在x方向或y方向產(chǎn)生水流效果:x,y,z=peaks;waterfall(x,y,z);axis(-inf inf -inf inf -inf inf);下列命令產(chǎn)生在y方向的水流效果:x,y,z=peaks;waterfall(x',y',z');axis(-inf inf -inf inf -inf inf);meshc同時畫出網(wǎng)狀圖與等高線:x,y,z=peaks;meshc(x,y,z);axis(-inf inf -inf inf -inf inf);surfc同時畫出曲面圖與

19、等高線:x,y,z=peaks;surfc(x,y,z);axis(-inf inf -inf inf -inf inf);contour3畫出曲面在三度空間中的等高線:contour3(peaks, 20);axis(-inf inf -inf inf -inf inf);contour畫出曲面等高線在xy平面的投影:contour(peaks, 20);plot3可畫出三度空間中的曲線:t=linspace(0,20*pi, 501);plot3(t.*sin(t), t.*cos(t), t);亦可同時畫出兩條三度空間中的曲線:t=linspace(0, 10*pi, 501);plot

20、3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);y(2:4)-1 % 取出y的第二至第四個元素來做運(yùn)算同樣的方法可用於產(chǎn)生公差為1的等差數(shù)列:x = 7:16x = 7:3:16 % 公差為3的等差數(shù)列x = linspace(4, 10, 6) % 等差數(shù)列:首項(xiàng)為4,末項(xiàng)為10,項(xiàng)數(shù)為6若要重新安排矩陣的形狀,可用reshape命令:b = reshape(a, 4, 2) % 4是新矩陣的列數(shù),2是新矩陣的行數(shù)舉例來說,下列命令會產(chǎn)生一個長度為6的調(diào)和數(shù)列(harmonicsequence):x = zeros(1,6); % x

21、是一個16的零矩陣for i = 1:6,x(i) = 1/i;endfor圈可以是多層的,下例產(chǎn)生一個16的hilbert矩陣h,其中為於第i列、第j行的元素為:h = zeros(6);for i = 1:6for j = 1:6h(i,j) = 1/(i+j-1);endendformat rat % 使用分?jǐn)?shù)來表示數(shù)值>>disp(x)1 1/2 1/3 1/4 1/5 1/6function output = fact(n)% fact calculate factorial of a given positive integer.output = 1;for i = 1

22、:n,output = output*i;end其中fact是函數(shù)名,n是輸入引數(shù),output是輸出引數(shù),而i則是此函數(shù)用到的暫時變數(shù)。要使用此函數(shù),直接鍵入函數(shù)名及適當(dāng)輸入引數(shù)值即可:matlab的函數(shù)也可以是遞式的(recursive),也就是說,一個函數(shù)可以呼叫它本身。舉例來說,n! =n*(n-1)!,因此前面的階乘函數(shù)可以改成遞式的寫法:function output = fact(n)% fact calculate factorial of a given positive integer recursively.if n = 1, % terminating conditio

23、noutput = 1;return;endoutput = n*fact(n-1);在寫一個遞函數(shù)時,一定要包含結(jié)束條件(terminatingcondition),否則此函數(shù)將會一再呼叫自己,永遠(yuǎn)不會停止,直到電腦的記憶體被耗盡為止。以上例而言,n=1即滿足結(jié)束條件,此時我們直接將output設(shè)為1,而不再呼叫此函數(shù)本身。勒讓德函數(shù)第九章 數(shù)值積分9.1 積分的matlab符號計(jì)算9.1.1 定積分的matlab符號計(jì)算9.1.5 由,所圍成的平面區(qū)域d.求平面區(qū)域d的面積s.解 輸入作函數(shù)圖形的程序>> x=-1:0.001:2; f1= sin(x); f2=cos(x);

24、plot(x ,f1,'b-',x ,f2,'g-'), axis(-1,pi/4+1,-1.3,1.3),xlabel('x'), ylabel('y'),title('y=sinx , y=cosx 和x=-0.5及x=1.5所圍成的平面區(qū)域的圖形')運(yùn)行后屏幕顯示圖形.求平面區(qū)域d的面積s.輸入計(jì)算面積s的程序 >> syms x f1= cos(x)-sin(x); f2=-f1; s1 =int(f1,x,-0.5,pi/4); s2=int(f2,x, pi/4,1.5); s=s1+s2,

25、sj= double (s)運(yùn)行后屏幕顯示計(jì)算面積的值 s 及其近似值 sj 如下s =2*2(1/2)+sin(1/2)-cos(1/2)-sin(3/2)-cos(3/2)sj = 1.362037913188269.1.2 變限積分的matlab符號計(jì)算例9.1.7 已知ed,求.解 輸入程序:>> syms x tf1=int(exp(t)*sin(2+sqrt(t3),x,0);f2=int(exp(t)*sin(2+sqrt(t3),0,x2);fi= f1+ f2;df=diff(fi)運(yùn)行后屏幕顯示計(jì)算變限積分的導(dǎo)數(shù).9.2 數(shù)值積分的思想及其matlab程序9.2

26、.3 矩形公式的matlab程序(一) 函數(shù)sum的調(diào)用格式調(diào)用格式一:sum(x)調(diào)用格式二:sum (x,dim)例9.2.2 用matlab和矩形公式(9.3)、(9.4)計(jì)算ed,并與精確值比較.解 將分成20等份,步長為,輸入程序>> h=pi/40; x=0:h:pi/2; y=exp(sin(x);z1=sum(y(1:20)*h, z2=sum(y(2:21)*h,運(yùn)行后屏幕顯示矩形公式計(jì)算結(jié)果分別如下 z1 = z2 = 3.0364 3.1713求定積分的精確值,輸入程序>> syms x f=int(exp(sin(x),x,0, pi/2), f

27、s= double (f), wz1=abs( fs-z1), wz2= abs( fs-z2)運(yùn)行后屏幕顯示定積分的精確值fs和與用矩形公式(9.3),(9.4)計(jì)算結(jié)果的絕對誤差wz1、wz2.(二) 函數(shù)cumsum的調(diào)用格式調(diào)用格式一:cumsum(x) 調(diào)用格式二:cumsum (x,dim)例9.2.4 用matlab的函數(shù)sum 和 cumsum及矩形公式(9.3)、(9.4)計(jì)算ed,并與精確值比較.解 將分成20等份,步長為,輸入程序如下(注意sum 和 cumsum的用法)>> h=pi/40; x=0:h:pi/2; y=exp(-x).*sin(x); z1

28、=sum(y(1:20)*h,z2=sum(y(2:21)*h, z=cumsum(y); z11=z(20)*h, z12=(z(21)-z(1)*h,運(yùn)行后屏幕顯示計(jì)算結(jié)果分別如下z1 = z2 = z11 = z12 = 0.3873 0.4036 0.3873 0.4036求定積分的精確值,輸入程序>> syms x f=int(exp(-x)*sin(x),x,0, pi/2)fs= double (f) ,wz1=abs( fs-z1), wz2= abs( fs-z2)運(yùn)行后屏幕顯示定積分的精確值fs和用矩形公式(9.3),(9.4)計(jì)算結(jié)果的絕對誤差wz1、wz2分

29、別如下f = fs =1/2*(-1+exp(pi)(1/2)/exp(pi)(1/2) 0.3961wz1 = wz2 = 0.0088 0.00759.3 插值型數(shù)值積分及其matlab 程序9.3.2 梯形公式的matlab程序(一) 根據(jù)梯形公式和估計(jì)誤差公式自己編寫matlab程序計(jì)算定積分例9.3.2 分別取,用梯形公式計(jì)算定積分ed,并與精確值比較.然后觀察對計(jì)算結(jié)果的有效數(shù)字和絕對誤差的影響.解 編寫并輸入如下程序>>h=pi/8000;a=0;b=pi/2;x=a:h:b;n=length(x), y=exp(sin(x);z1=(y(1)+y(n)*h/2; z

30、2=sum(y(2:n-1)*h; z8000=z1+z2,syms tf=exp(sin(t); intf=int(f,t,a,b), fs=double(intf),juewucha8000=abs(z8000-fs)運(yùn)行后屏幕顯示取時,積分區(qū)間上等距節(jié)點(diǎn)的個數(shù),用梯形公式計(jì)算定積分的值z8000和精確值intf的近似值fs及其絕對誤差juewucha8000. (二) 用函數(shù)trapz計(jì)算定積分調(diào)用格式一:z =trapz(y)調(diào)用格式二:z =trapz(x,y)調(diào)用格式三:z = trapz (x,y,dim) 或 trapz (y,dim) (三) 用函數(shù)cumtrapz計(jì)算定積分

31、調(diào)用格式一:z =cumtrapz (y)調(diào)用格式二:z =cumtrapz (x,y)調(diào)用格式三:z = cumtrapz (x,y,dim) 或 cumtrapz (y,dim)例9.3.4 用matlab的函數(shù)trapz 和cumtrapz分別計(jì)算ed,精確到,并與矩形公式(9.3),(9.4)比較.解 將分成20等份,步長為,輸入程序如下(注意trapz(y)是單位步長, trapz(y)*h=trapz(x,y)):>> h=pi/40; x=0:h:pi/2; y=exp(-x).*sin(x);z1=sum(y(1:20)*h, z2=sum(y(2:21)*h, z

32、=(z1+z2)/2z3=trapz(y)*h, z3h=trapz(x,y), z3c=cumtrapz(y)*h,運(yùn)行后屏幕顯示用矩形公式(9.3),(9.4)計(jì)算結(jié)果z1、z2和二者的平均數(shù)z、函數(shù)trapz 和cumtrapz分別計(jì)算結(jié)果z3、z3c.(四)梯形數(shù)值積分的matlab主程序梯形數(shù)值積分的matlab主程序function t=rctrap(fun,a,b,m)n=1;h=b-a; t=zeros(1,m+1); x=a; t(1)=h*(feval(fun,a)+feval(fun,b)/2;for i=1:m h=h/2; n=2*n; s=0; for k=1:n/

33、2 x=a+h*(2*k-1); s=s+feval(fun,x);endt(i+1)=t(i)/2+h*s;endt=t(1:m);例9.3.6 用rctrap計(jì)算ed,遞歸14次,并將計(jì)算結(jié)果與精確值比較.解 輸入程序>>t=rctrap(fun,0,pi/2,14), syms t fi=int(exp(-t2)/2)/(sqrt(2*pi),t,0, pi/2); fs= double(fi), wt= double(abs(fi-t)運(yùn)行后屏幕顯示精確值fs,用rctrap計(jì)算的遞歸值t和t與精確值fs的絕對誤差wt9.3.3 辛普森公式及其誤差分析例9.3.7 用辛普森

34、公式計(jì)算ed,取個等距節(jié)點(diǎn),并將計(jì)算結(jié)果與精確值比較,然后再取計(jì)算,觀察對誤差的影響.解 由,得.根據(jù)辛普森(simpson)公式編寫并輸入下面的程序>> a=0;b=1;m=10000; h=(b-a)/(2*m); x=a:h:b; y=exp(-x.2)./2)./(sqrt(2*pi);z1=y(1)+y(2*m+1); z2=2*sum(y(2:2:2*m); z3=4*sum(y(3:2:2*m);z=(z1+z2+z3)*h/3, syms t,f=exp(-t2)/2)/(sqrt(2*pi);intf=int(f,t,a,b), fs=double(intf);

35、juewucha=abs(z-fs)運(yùn)行后屏幕顯示用辛普森公式(9.11)計(jì)算定積分的近似值z和精確值intf及其絕對誤差juewucha(取個等距節(jié)點(diǎn)).例9.3.8 估計(jì)用辛普森公式計(jì)算定積分ed時的誤差,取.解 根據(jù)估計(jì)誤差公式,先輸入求的程序>>syms x,y=exp(sin(x); yx4=diff(y,x,4)運(yùn)行后輸出被積函數(shù)的四階導(dǎo)函數(shù). 然后在輸入誤差估計(jì)程序>>h=pi/40; x=0:0.00001:pi/2; yx4=sin(x).*exp(sin(x)-4*cos(x).2.*exp(sin(x)+3*sin(x).2.*exp(sin(x)

36、-6*sin(x).*cos(x).2.*exp(sin(x)+cos(x).4.*exp(sin(x);juyx4= abs(yx4); rs=(h4)*(pi/2)*max(juyx4)/180運(yùn)行后屏幕顯示誤差估計(jì)值rs = 3.610450295892220e-0069.3.4 辛普森(simpson)數(shù)值積分的matlab程序調(diào)用格式一:quad(fun,a,b)調(diào)用格式二:quad(fun,a,b,tol)調(diào)用格式三:q,fcnt = quad (.) 調(diào)用格式四:quad(fun,a,b, tol,trace)調(diào)用格式五:quad(fun,a,b, tol,trace,p1,p2

37、, )復(fù)合辛普森(simpson)數(shù)值積分的matlab主程序function y=comsimpson(fun,a,b,n) z1=feval (fun,a)+ feval (fun,b);m=n/2;h=(b-a)/(2*m); x=a;z2=0; z3=0; x2=0; x3=0;for k=2:2:2*m x2=x+k*h; z2= z2+2*feval (fun,x2); endfor k=3:2:2*m x3=x+k*h; z3= z3+4*feval (fun,x3); endy=(z1+z2+z3)*h/3;例9.3.9 用comsimpson.m和quad.m分別計(jì)算定積分e

38、d,取精度為,并與精確值比較.解 輸入程序>> q1,fcnt14 = quad(fun,0,1,1.e-4,3), q2 =comsimpson (fun,0,1,10000)syms x fi=int(exp( (-x.2)./2)./(sqrt(2*pi),x,0, 1); fs= double (fi)wq1= double (abs(fi-q1) ), wq2= double (abs(fi-q2) )運(yùn)行后屏幕顯示的精確值fs,用comsimpson.m和quad.m分別計(jì)算的近似值q2、q1和迭代次數(shù)fcnt14,取精度分別為,q2、q1分別與精確值fs的絕對誤差wq

39、2, wq1如下9 0.0000000000 2.71580000e-001 0.1070275100 11 0.2715800000 4.56840000e-001 0.1597942242 13 0.7284200000 2.71580000e-001 0.0745230082q1 = fcnt14 = q2 = 0.3413 13 0.3413fs = wq1 = wq2 = 0.3413 3.6619e-009 3.7061e-0059.3.6 牛頓-科茨(newton-cotes)數(shù)值積分和誤差分析的matlab程序(一) 估計(jì)誤差的matlab程序計(jì)算n階牛頓-科茨的公式的截?cái)嗾`差

40、公式的matlab主程序function rnc=nce(n)suk=1; p=n/2-fix(n/2);if p=0for k=1:n+2suk=suk*k;endsuk; syms t a b fxn2,su=t2; for u=1:nsu=su*(t-u);endsu; intf=int(su,t,0,n); y=double(intf);rnc= (b-a)/n)(n+3)*fxn2*abs(y)/ suk;elsefor k=1:n+1suk=suk*k;endsuk; syms t a b fxn1,su=t; for u=1:nsu=su*(t-u);endsu; intf=in

41、t(su,t,0,n); y=double(intf);rnc= (b-a)/n)(n+2)*fxn1*abs(y)/ suk;end例9.3.14 用求截?cái)嗾`差公式的matlab主程序,求計(jì)算定積分d的近似值的階牛頓科茨公式的截?cái)嗾`差公式.解 輸入求階牛頓科茨公式的截?cái)嗾`差公式的程序>> n=1, rnc1=nce(n), n=2, rnc2=nce(n), n=3, rnc3=nce(n)n=4, rnc4=nce(n), n=8, rnc8=nce(n)運(yùn)行后屏幕顯示結(jié)果如下 n = rnc1 = 1 1/12*(b-a)3*fxn1n = rnc2 = 2 1/90*(1/

42、2*b-1/2*a)5*fxn2n = rnc3 = 3 3/80*(1/3*b-1/3*a)5*fxn1n = rnc4 = 4 8/945*(1/4*b-1/4*a)7*fxn2n = rnc8 = 8 35065906189543/6926923254988800*(1/8*b-1/8*a)11*fxn2例9.3.15 用matlab軟件估計(jì)用5、6階牛頓科茨公式計(jì)算定積分ed的截?cái)嗾`差公式和誤差限,取15位小數(shù).解 輸入求階牛頓科茨公式的截?cái)嗾`差公式和被積函數(shù)的6,8階導(dǎo)函數(shù)的程序>> n=5;rnc5=nce(n), n=6;rnc6=nce(n)syms xy=exp(

43、sin(x); yx6=diff(y,x,6), yx8=diff(y,x,8)運(yùn)行后輸出被積函數(shù)的6,8階導(dǎo)函數(shù)(略)和階牛頓科茨公式的截?cái)嗾`差公式如下 rnc5 = rnc6 =275/12096*(1/5*b-1/5*a)7*fxn1 9/1400*(1/6*b-1/6*a)9*fxn2然后再輸入誤差估計(jì)程序>>a=0;b=pi/2; h=pi/40; x=0:0.00001:pi/2;yx6=-sin(x).*exp(sin(x)+16*cos(x).2.*exp(sin(x)-15*sin(x).2.*exp(sin(x)+75*sin(x).*cos(x).2.*exp

44、(sin(x)-20*cos(x).4.*exp(sin(x)-15*sin(x).3.*exp(sin(x)+45*sin(x).2.*cos(x).2.*exp(sin(x)-15*sin(x).*cos(x).4.*exp(sin(x)+cos(x).6.*exp(sin(x);yx8=cos(x).8.*exp(sin(x)-756*sin(x).*cos(x).2.*exp(sin(x)-1260*sin(x).2.*cos(x).2.*exp(sin(x)+630*sin(x).*cos(x).4.*exp(sin(x)-420*sin(x).3.*cos(x).2.*exp(si

45、n(x)+210*sin(x).2.*cos(x).4.*exp(sin(x)-28*sin(x).*cos(x).6.*exp(sin(x)-56*cos(x).6.*exp(sin(x)+sin(x).*exp(sin(x)+63*sin(x).2.*exp(sin(x)+210*sin(x).3.*exp(sin(x)+105*sin(x).4.*exp(sin(x)-64*cos(x).2.*exp(sin(x)+336*cos(x).4.*exp(sin(x);myx6=max(yx6); myx8=max(yx8); rnc5 =275/12096*(1/5*b-1/5*a)7*m

46、yx6rnc6 =9/1400*(1/6*b-1/6*a)9*myx8運(yùn)行后屏幕顯示誤差限如下 rnc5 = rnc6 = 3.625385713339320e-004 3.826183594914823e-005(二) 計(jì)算科茨系數(shù)和求截?cái)嗾`差公式的matlab程序計(jì)算n階科茨系數(shù)和求截?cái)嗾`差公式的matlab主程序function cn, rncn=newcote(n)syms t a b m,fz=zeros(1,n+1); cn=zeros(1,n+1); su=t;k=1;m=1;m0=1; for u=1:nsu1=su*(t-u);m01=m0*u; su=su1;m0=m01;

47、endsu;m0; f1=su/(t-0); intf1=int(f1,t,0,n); y= double(intf1);cn(1)=(-1)(n-0)*y)/(n*m0); k=1;m=1;for j=1:nk1=k*j; m1=m*(n-j); f=su/(t-j); intf=int(f,t,0,n); y=double(intf);cn(j+1)=(-1)(n-j)*y)/(n*k1*m1);warning off matlab:dividebyzeroend fn=su/(t-n); intfn=int(fn,t,0,n); y= double(intfn);cn(n+1)=y/(n

48、*m0);cn; suk=1; p=n/2-fix(n/2);if p=0for k=1:n+2suk=suk*k;endsuk; syms t a b fxn2,su=t2; for u=1:nsu=su*(t-u);endsu; intf=int(su,t,0,n); y=double(intf);rncn=(b-a)/n)(n+3)*fxn2*abs(y)/suk;elsefor k=1:n+1suk=suk*k;endsuk; syms t a b fxn1,su=t; for u=1:nsu=su*(t-u);endsu; intf=int(su,t,0,n); y=double(i

49、ntf);rncn=(b-a)/n)(n+2)*fxn1*abs(y)/ suk;end例9.3.16 用計(jì)算n階科茨系數(shù)和求截?cái)嗾`差公式的matlab主程序,計(jì)算定積分i=d的階牛頓科茨公式的系數(shù)和截?cái)嗾`差公式.解 (1)先求階牛頓科茨公式的系數(shù)和截?cái)嗾`差公式.輸入程序>> n1=1,cn1,rncn1=newcote(n1)n2=2,cn2,rncn2=newcote(n2)n3=3,cn3,rncn3=newcote(n3)運(yùn)行后屏幕顯示階牛頓科茨公式的系數(shù)cn1, cn2, cn3和截?cái)嗾`差公式rncn1, rncn2, rncn3如下n1 = 1 cn1 = 1/2 1/

50、2 rncn1 =1/12*(b-a)3*fxn1n2 = 2 cn2 = 1/6 2/3 1/6 rncn2 =1/90*(1/2*b-1/2*a)5*fxn2n3 = 3 cn3 = 1/8 3/8 3/8 1/8 rncn3 =3/80*(1/3*b-1/3*a)5*fxn1(三) 計(jì)算牛頓科茨公式的matlab程序調(diào)用格式一:quad8(fun,a,b)調(diào)用格式二:quad8(fun,a,b,tol) 調(diào)用格式三: quad8(fun,a,b, tol,trace)調(diào)用格式四:quad8(fun,a,b, tol,trace,p1,p2,.)例9.3.17 用梯形公式、辛普森和牛頓科茨

51、求積公式計(jì)算定積分ed,取精度,作出它們的積分圖,并與精確值進(jìn)行比較;解 (1)用梯形求積公式計(jì)算定積分. 輸入程序>> h=pi/500; x=0:h:pi/2; y=exp(sin(x);zt=trapz(x,y), ztc=cumtrapz(x,y), plot(x, ztc,'ro')運(yùn)行后屏幕顯示用函數(shù)trapz 和cumtrapz分別計(jì)算結(jié)果zt、ztc分別如下zt = 3.10437572798742ztc = columns 1 through 3 0 0.00630298652792 0.01264569951380.columns 250 thr

52、ough 251 3.08729642810745 3.10437572798742(2)用辛普森求積公式計(jì)算定積分. 輸入程序>> syms xl= inline(' exp(sin(x)'); qs,fcnts =quad(l,0, pi/2,1.e-4,2)運(yùn)行后屏幕顯示用辛普森求積公式計(jì)算定積分的值qs和遞歸次數(shù)fcnts分別如下qs = fcnts = 3.10438133817254 13(3)用牛頓科茨求積公式計(jì)算定積分. 在matlab6.5中輸入程序>> syms xl= inline(' exp(sin(x)'); q8,fcnt8 = quad8(l,0, pi/2,1.e-4,3)運(yùn)行后屏幕顯示用牛頓科茨求積公式計(jì)算定積分的值q8和遞歸次數(shù)fcnts分別如下 q8 = fcnt8 = 3.10437901785555 33(4)輸入求定積分的精確值的程序>> syms xy=exp(sin(x); f=int(y,0,pi/2

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論