MATLAB程序設(shè)計與應(yīng)用(000001)_第1頁
MATLAB程序設(shè)計與應(yīng)用(000001)_第2頁
MATLAB程序設(shè)計與應(yīng)用(000001)_第3頁
MATLAB程序設(shè)計與應(yīng)用(000001)_第4頁
MATLAB程序設(shè)計與應(yīng)用(000001)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 實驗一 MATLAB運算基礎(chǔ) 第二題:已知 A= B=求下列問題:1) A+6*B和A-B+I2) A*B和A.*B3) A3 A.34) A/B BA5) A,B A(1,3),:B.2解:>> A=12 34 -4;34 7 87;3 65 7; B=1 3 -1;2 0 3;3 -2 7; I=1 0 0;0 1 0;0 0 1; (1)>> A+6*Bans = 18 52 -10 46 7 105 21 53 49>> A-B+Ians = 12 31 -3 32 8 84 0 67 1(2)>> A*Bans = 68 44 62

2、309 -72 596 154 -5 241>> A.*Bans = 12 102 4 68 0 261 9 -130 49(3)>> A3ans = 37226 233824 48604 247370 149188 600766 78688 454142 118820>> A.3ans = 1728 39304 -64 39304 343 658503 27 274625 343(4)>> A/Bans = 16.4000 -13.6000 7.6000 35.8000 -76.2000 50.2000 67.0000 -134.0000 68

3、.0000>> BAans = 109.4000 -131.2000 322.8000 -53.0000 85.0000 -171.0000 -61.6000 89.8000 -186.2000(5)>> A,Bans = 12 34 -4 1 3 -1 34 7 87 2 0 3 3 65 7 3 -2 7>> A(1,3,:);B2ans = 12 34 -4 3 65 7 4 5 1 11 0 19 20 -5 40第三題:設(shè)有矩陣A和B A= B=1) 求他們的乘積C2) 將矩陣C的右下角3*2子矩陣賦給D3) 查看matlab工作空間的使用情況解:

4、>> A=1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25; B=3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11;(1)>> C=A*BC = 93 150 77 258 335 237 423 520 397 588 705 557 753 890 717(2)>> D=C(3:5,2:3)D = 520 397 705 557 890 717第四題: 完成下列操作:1) 求【100,999】之間能被21的數(shù)的個數(shù) 2)建立一個字符串向量,刪除其中的

5、大寫字母解:(1) >> A=100:999;>> B=rem(A,21);>> C=length(find(B=0)C =43(2)>> A='lsdhKSDLKklsdkl'>> k=find(A>='A'&A<='Z');>> A(k)=A =Lsdhklsdkl 實驗二 MATLAB矩陣分析與處理 第三題: 建立一個55矩陣,求它的行列式的值,跡,秩,和范數(shù)。解:>> A=1 8 9 4 7;45 89 26 17 0;95 85 23

6、 13 6;75 65 70 54 63;57 26 19 11 2; >> H=det(A)H =13739916>> Trace=trace(A)Trace = 169>> Rank=rank(A)Rank = 5>> Norm=norm(A)Norm = 218.5530第四題: 已知 A=求A的特征值及特征向量,并分析其數(shù)學(xué)意義。解:>> A=-29 6 18;20 5 12;-8 8 5;>> V,D=eig(A)V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.

7、3487 0.5501 0.4050D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351第五題:下面是一個線性方程組: (1) 求方程的解。(2) 將方程右邊向量元素改為0.53,再求解,并比較的變化和解的相對變化。(3) 計算系數(shù)矩陣A的條件數(shù)并分析結(jié)論。解:(1)>> A=1/2 1/3 1/4;1/3 1/4 1/5;1/4 1/5 1/6;>> b=0.95,0.67,0.52'>> x=inv(A)*bx = 1.2000 0.60000.6000 (2)>> B=0.95,0.67,0.53

8、9;>> x=inv(A)*B x = 3.0000 -6.60006.6000 (3) >> cond(A)ans = 1.3533e+003 實驗三 選擇程序結(jié)構(gòu)設(shè)計 第一題:求分段函數(shù)的值 Y=用if語句實現(xiàn),分別輸入x=-5.0,3.0,1.0,2.5,3.0,5.0時的y值解:>> x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0;>> y=;>> for x0=x if x0<0&x0=-3 y=y,x0*x0+x0-6; elseif x0>=0&x0<5&x0=2

9、&x0=3 y=y,x0*x0-5*x0+6; else y=y,x0*x0-x0-1; end end>> xx = -5.0000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000>> yy = 14.0000 11.0000 2.0000 1.0000 -0.2500 5.0000 19.0000第二題: 輸入一個百分制的成績,要求輸出成績等級A B C D E。其中9080為A,8089為B,7079為C,6069為D 60以下為E要求1) 分別寫入if語句和switch語句實現(xiàn)2) 輸入百分制成績要判斷該成績的合理性

10、,對不合理的成績應(yīng)輸出出錯的信息 解: >> x=input('請輸入一個百分制成績:'); 請輸入一個百分制成績:>> if x>100|x<0 disp('您輸入的成績不是百分制成績,請重新輸入。'); else if x<=100&x>=90 disp('A'); elseif x<=89&x>=80 disp('B'); elseif x<=79&x>=70 disp('C'); elseif x<=69&

11、amp;x>60 disp('D'); else disp('E'); end end 第三題: 硅谷公司員工的工資計算方法為1) 工作時間超過120小時者,超過的部分加15%2) 工作時數(shù)低于60小時的,扣發(fā)700元3) 其余按每小時84元 解:>> n=input('請輸入員工工號:');請輸入員工工號:>> h=input('該員工工作時數(shù)是:');該員工工作時數(shù)是:>> if h>120 x=(h-120)*84*(1+0.15)+120*84; elseif h<60

12、 x=h*84-700; else x=h*84; end disp(num2str(n),'號員工','的應(yīng)發(fā)工資為',num2str(x);號員工的應(yīng)發(fā)工資為第四題:設(shè)計程序,完成兩位數(shù)的加減乘除四則運算,即產(chǎn)生兩位隨機整數(shù),再輸入一個運算符號,作相應(yīng)的運算,并顯示相應(yīng)的結(jié)果。解: >> a=fix(10+(99-10)*rand(1,2) x=a(1); y=a(2); t=input('請輸入運算符號:','s'); if t='+' z=x+y; elseif t='-' z=

13、x-y; elseif t='*' z=x*y; elseif t='/' z=x/y; end disp(num2str(x),t,num2str(y),'=',num2str(z)a = 81 22請輸入運算符號:第五題:建立5*6矩陣,要求輸出第n行元素。當(dāng)n超過矩陣的行數(shù)時,自動轉(zhuǎn)入輸出矩陣最后一行的元素,并給出出錯信息。解:>> a=rand(5,6);>> n=input('請輸入您要輸出矩陣的第幾行:');請輸入您要輸出矩陣的第幾行:>> if n>5 disp('超

14、出了矩陣的行數(shù),矩陣的最后一行為:') a(5,:) else disp('矩陣的第',num2str(n),'行為:') a(n,:) end 矩陣的第行為:ans = Empty matrix: 0-by-6 實驗四 循環(huán)結(jié)構(gòu)程序設(shè)計 第一題: 根據(jù)公式,求的近似值。當(dāng)n分別取100,1000,10000時,結(jié)果是多少?(要求是:分別用循環(huán)結(jié)構(gòu)和向量運算(使用sum函數(shù))來實現(xiàn)。)解:>> s=0;>> n=100;>> for i=1:n s=s+1/i/i; end PI=sqrt(6*s) pi PI =3.

15、1321>> s=0;>> n=1000;>> for i=1:n s=s+1/i/i; end PI=sqrt(6*s) pi PI =3.1406>> s=0;>> n=10000;>> for i=1:n s=s+1/i/i; end PI=sqrt(6*s) pi PI =3.1415第二題:根據(jù),求:(1) y<3時的最大n值。(2) 與(1)的n值對應(yīng)的y值 。解:>> y=0; >> n=1;>> while(y<3) y=y+1/(2*n-1); n=n+1;

16、 end y=y-1/(2*(n-1)-1) n=n-2 y = 2.9944n =56第三題:考慮以下迭代公式: 其中a,b為正的常數(shù)。(1) 編寫程序求迭代的結(jié)果,迭代的終止條件為,迭代初值=1.0,迭代次數(shù)不超過500次。(2) 如果迭代過程收斂于r,那么r的準(zhǔn)確值是,當(dāng)(a,b)的值取(1,1),(8,3),(10,0.1)時,分別對迭代結(jié)果和準(zhǔn)確值進(jìn)行比較。解:>> a=input('a=?');a=?>> b=input('b=?'); b=?>> Xn=1; Xn1=a/(b+Xn); n=0; while ab

17、s(Xn1-Xn)>1e-5 Xn=Xn1; Xn1=a/(b+Xn); n=n+1; if n=500 break; end end n Xn1 r1=(-b+sqrt(b*b+4*a)/2 r2=(-b-sqrt(b*b+4*a)/2n = 0Xn1 = r1 = r2 = 第四題:已知: 求-中:(1) 最大值,最小值,各數(shù)之和。(2) 正數(shù),零,負(fù)數(shù)的個數(shù)。解:(1)>> for i=1:100if i=1f(i)=1;elseif i=2 f(i)=0; elseif i=3 f(i)=1; else f(i)=f(i-1)-2*f(i-2)+f(i-3); end

18、 end >> max(f)ans = 4.3776e+011>> min(f)ans = -8.9941e+011>> sum(f)ans = -7.4275e+011 (2)>> length(find(f>0) ans = 49>> length(find(f=0)ans = 2>> length(find(f<0)ans = 49第五題:若兩個連續(xù)自然數(shù)的乘積減1是素數(shù),則稱這兩個連續(xù)自然數(shù)是親密數(shù)對,該素數(shù)是親密素數(shù)。例如,23-1=5,由于5是素數(shù),所以2和3 是親密數(shù)對,5是親密對數(shù)。求2,50區(qū)

19、間內(nèi):(1) 親密數(shù)對的對數(shù)。(2) 與上述親密數(shù)對對應(yīng)的所有親密素數(shù)之和。解:>> s=0; n=0;>> for i=2:49b=i*(i+1)-1;m=fix(sqrt(b);for j=2:mif rem(b,j)=0 break end end if j=m n=n+1; s=s+b; end end n s n = 28s = 21066 實驗六 高層繪圖操作 第二題: 已知y1=x2,y2=cos(2x),y3=y1*y2,完成下列操作1) 在同一坐標(biāo)系中的不同顏色和線型繪制三條曲線2) 以子圖像繪制三條曲線 3)分別用條形圖,階梯圖,桿圖和填充圖繪制三條

20、曲線解:(1)>> x=linspace(-2*pi,2*pi,100);>> y1=x.2;>> y2=cos(2*x);>> y3=y1.*y2;>> plot(x,y1,'b-',x,y2,'r:',x,y3,'y-');>>>> text(4,16,'leftarrow y1=x2');>> text(6*pi/4,-1,'downarrow y2=cos(2*x)');>> text(-1.5*pi

21、,-2.25*pi*pi,'uparrow y3=y1*y2'); (2):>> x=linspace(-2*pi,2*pi,100);>> y1=x.2;>> y2=cos(2*x);>> y3=y1.*y2;>> subplot(1,3,1);>> plot(x,y1);>> >> title('y1=x2');>> subplot(1,3,2); >> plot(x,y2);>> >> title('y2=

22、cos(2*x)');>> subplot(1,3,3);>> plot(x,y3); >> >> title('y3=x2*cos(2*x)'); (3) >> x=linspace(-2*pi,2*pi,20);>> y1=x.2;>> subplot(2,2,1);>> bar(x,y1);>> >> title('y1=x2的條形圖');>> subplot(2,2,2);>> stairs(x,y1);

23、>>>> title('y1=x2的階梯圖');>> subplot(2,2,3);>> stem(x,y1);>> >> title('y1=x2的桿圖');>> subplot(2,2,4);>> fill(x,y1,'r');>> >> title('y1=x2的填充圖');(2)>> x=linspace(-2*pi,2*pi,20);y2=cos(2*x);subplot(2,2,1);ba

24、r(x,y2);title('y2=cos(2*x)的條形圖');subplot(2,2,2);stairs(x,y2);title('y2=cos(2*x)的階梯圖');subplot(2,2,3);stem(x,y2);title('y2=cos(2*x)的桿圖');subplot(2,2,4);fill(x,y2,'r');title('y2=cos(2*x)的填充圖');(3)>> x=linspace(-2*pi,2*pi,20);y1=x.2;y2=cos(2*x);y3=y1.*y2;su

25、bplot(2,2,1);%分區(qū)bar(x,y3);title('y3=y1.*y2;的條形圖');%設(shè)置標(biāo)題subplot(2,2,2);stairs(x,y3);title('y3=y1.*y2;的階梯圖');subplot(2,2,3);stem(x,y3);title('y3=y1.*y2;的桿圖');subplot(2,2,4);fill(x,y3,'r');%如果少了'r'則會出錯title('y3=y1.*y2;的填充圖'); 第三題:已知 Y=在-5x5區(qū)間繪制曲線。解:>&g

26、t; x=-5:0.01:5;>> y=;>> for x0=x if x0<=0 y=y,(x0+sqrt(pi)/exp(2); else y=y,0.5*log(x0+sqrt(1+x02); end end plot(x,y) >> 第五題: 繪制函數(shù)的曲面圖形和等高線。 Z=cosxcosy 其中x的21個值均勻分布在【-5,5】范圍,y的31的值巨暈分布在【0,10】,要求用subplot(2,1,1)和subpolt(2,1,1)將曲面圖畫在一個窗口上。解:>> x=linspace(-5,5,21);>> y=l

27、inspace(0,10,31);>> x,y=meshgrid(x,y);>> z=cos(x).*cos(y).*exp(-sqrt(x.2+y.2)/4);>> subplot(2,1,1);>> surf(x,y,z);>> >> subplot(2,1,2);>> contour3(x,y,z,50); 實驗七 低層繪圖操作 第一題: 建立一個圖形窗口,使之背景顏色為紅色,并在窗口上保留原有的菜單項,而且按下列鼠標(biāo)器的左鍵之后顯示出left botton pressed 字樣解:>> h=

28、figure('MenuBar','figure','color','r','WindowButtonDownFcn','disp(''Left Button Pressed'')')h = 1Left Button Pressed第二題:先利用默認(rèn)屬性繪制曲線y=x2 *e2x,然后通過圖形句柄操作改變曲線的顏色,線性和線寬,并利用文字對象添加文字標(biāo)注。解:>> x=-2:0.01:2;>> y=x.2.*exp(2*x);>>

29、h=line(x,y);>> >> set(h,'color','r','linestyle',':','linewidth',2)>> text(1,exp(2),'y=x2*exp(2*x)') 實驗八 數(shù)據(jù)處理與多項式運算 第一題: 利用MATLAB提供的rand函數(shù)生成30000個符合均勻分布的隨機數(shù),然后檢驗隨機數(shù)的性質(zhì):(1) 均值和標(biāo)準(zhǔn)方差。(2) 最大元素和最小元素。(3) 大于0.5的隨機數(shù)個數(shù)占總數(shù)的百分比。解:(1) >> A=r

30、and(1,30000);>> b=mean(A)b = 0.4988>> std(A,0,2)ans =0.2890 (2) >> max(A)ans = 1.0000>> min(A)ans = 4.8345e-005(3)>> n=0;>> for i=1:30000if A(i)>0.5 n=n+1; end end>> p=n/30000p =0.5006 第二題: 將100個學(xué)生的5門功課的成績存入矩陣P中,進(jìn)行如下處理:(1) 分別求每門課的最高分,最低分,以及相應(yīng)學(xué)生序號。(2) 分別求每

31、門課的平均分和標(biāo)準(zhǔn)方差。(3) 5門課總分的最高分,最低分,以及相應(yīng)的學(xué)生序號。(4) 將5門課總分按照從大到小的順序存入zcj中,相應(yīng)的學(xué)生序號存入xsxh。提示:上機調(diào)試時,為避免學(xué)生輸入成績的麻煩,可用取值范圍在45,95之間的隨機矩陣來表示學(xué)生成績。解:(1) >> A=45+51*rand(100,5);>> Y,U=max(A) Y = 95.9985 95.9656 95.5020 95.7032 95.5696U = 29 66 55 47 69>> a,b=min(A)a = 45.2423 45.8828 45.0092 45.2530

32、45.6793b =36 85 2 67 48(2) >> m=mean(A) s=std(A) m = 70.9171 69.7859 73.5350 72.8288 71.6800s = 15.1378 14.1296 15.0116 15.1622 14.8254 (3) >> sum(A,2) Y,U=max(ans) a,b=min(ans)ans = 310.9073 300.1903 381.2853 399.3692 367.1891 360.3795 353.3803 302.8869 399.8438 427.2878 336.4110 358.92

33、61 351.2553 331.9469 413.0334 344.4165 361.9468 337.9836 340.1552 382.3467 337.6998 329.6321 290.0841 335.4717 413.6694 387.8507 348.4086 320.4340 418.2465 416.0586 371.3836 356.8309 384.2258 317.6676 351.3684 342.2732 339.9799 393.7629 401.0900 387.0595 354.1276 398.4044 369.0955 368.0804 358.5997

34、350.1610 384.3793 340.3847 270.1099 351.2449 390.4362 355.4126 343.7438 348.7042 429.4294 348.9054 389.0234 376.0627 346.3973 338.2912 366.0568 343.0276 358.4005 335.2967 275.2407 381.5512 373.2066 362.1673 382.3756 388.9117 401.5248 347.8608 360.8734 362.0857 394.7853 368.3532 390.2871 377.0796 396

35、.6192 380.7487 374.4978 372.7407 370.7008 410.8179 279.0636 333.6823 293.9671 359.9178 400.2025 274.0383 404.8475 354.2595 334.9726 364.8144 389.8509 315.2819 280.7866 358.9722 316.9236 322.5536Y = 429.4294U = 55a = 270.1099b =49(4) >> zcj,xsxh=sort(ans)zcj = 270.1099 274.0383 275.2407 279.063

36、6 280.7866 290.0841 293.9671 300.1903 302.8869 310.9073 315.2819 316.9236 317.6676 320.4340 322.5536 329.6321 331.9469 333.6823 334.9726 335.2967 335.4717 336.4110 337.6998 337.9836 338.2912 339.9799 340.1552 340.3847 342.2732 343.0276 343.7438 344.4165 346.3973 347.8608 348.4086 348.7042 348.9054 3

37、50.1610 351.2449 351.2553 351.3684 353.3803 354.1276 354.2595 355.4126 356.8309 358.4005 358.5997 358.9261 358.9722 359.9178 360.3795 360.8734 361.9468 362.0857 362.1673 364.8144 366.0568 367.1891 368.0804 368.3532 369.0955 370.7008 371.3836 372.7407 373.2066 374.4978 376.0627 377.0796 380.7487 381.

38、2853 381.5512 382.3467 382.3756 384.2258 384.3793 387.0595 387.8507 388.9117 389.0234 389.8509 390.2871 390.4362 393.7629 394.7853 396.6192 398.4044 399.3692 399.8438 400.2025 401.0900 401.5248 404.8475 410.8179 413.0334 413.6694 416.0586 418.2465 427.2878 429.4294xsxh = 49 90 65 85 97 23 87 2 8 1 9

39、6 99 34 28 100 22 14 86 93 64 24 11 21 18 60 37 19 48 36 62 53 16 59 72 27 54 56 46 50 13 35 7 41 92 52 32 63 45 12 98 88 6 73 17 74 68 94 61 5 44 76 43 83 31 82 67 81 58 78 80 3 66 20 69 33 47 40 26 70 57 95 77 51 38 75 79 42 4 9 89 39 71 91 84 15 25 30 29 1055第五題 :有三個多項式試進(jìn)行下列操作:(1) 求p(x)=p1(x)+p2(

40、x)+p3(x);(2) 求p(x)的根。(3) 當(dāng)x取矩陣A的每一元素時,求p(x)的值。其中: A=(4) 當(dāng)以矩陣A為自變量時,求P(x)的值。其中A的值與第(3)題相同。解:(1) >> p1=1,2,4,0,5;>> p2=1,2;>> p3=1,2,3;>> p=p1+0,conv(p2,p3)p = 1 3 8 7 11(2) >> A=roots(p)A = -1.3840 + 1.8317i -1.3840 - 1.8317i -0.1160 + 1.4400i -0.1160 - 1.4400i(3) >&g

41、t; A=-1 1.2 -1.4;0.75 2 3.5;0 5 2.5;>> polyval(p,A)ans = 1.0e+003 * 0.0100 0.0382 0.0125 0.0223 0.0970 0.41220.0110 1.2460 0.1644(4) >> polyvalm(p,A)ans = 1.0e+003 * 0.0076 -0.1281 -0.0775 0.1328 1.3900 1.1644 0.1824 1.7364 1.5198實驗九 數(shù)值微積分與方程數(shù)值求解第一題:求函數(shù)在指定點的數(shù)值導(dǎo)數(shù)。 f(x)=, x=1,2,3.解:>>

42、; a=x x.2 x.3;1 2*x 3*x.2;0 2 6*x;>> f=det(a) f = 2*x3 >> g=diff(f,x) g = 6*x2 >> for i=1:3 g=6*i2 endg = 6g = 24g =54第二題:用數(shù)值方法求定積分1)的近似值。2)。解:(1)>> g=inline('sqrt(cos(t.2)+4*sin(4*t.2)+1)');>> I=quadl(g,0,2*pi)I = 6.7992 + 3.1526i(2)>> f=inline('(log(

43、1.+x)./(1.+x.*x)') f = Inline function: f(x) = (log(1.+x)./(1.+x.*x)>> I=quadl(f,0,1)I =0.2722第三題:分別用三種方法解線性方程組 解:方法一:直接法>> A=6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2;>> b=-4 13 1 11'>> x=Abx = 0.6667 -1.0000 1.5000 -0.0000方法二:LU分解>> A=6 5 -2 5;9 -1 4 -1;3 4 2 -2;3 -9 0 2;>> b=-4 13 1 11'>> L,U=lu(A);>> x=U(Lb)x = 0.6667 -1.0000 1.5000 -0.0000第五題:求代數(shù)方程的數(shù)值解1)3x+sinx-ex=0在x0=1.5附近的根。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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論