




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗一MATLAB運算基礎1.先求下列表達式的值,然后顯示MATLAB工作空間的使用情況并保存全部變量。(1)(2),其中(3)(4),其中t=0:0.5:2.5解:M文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[21+2*i;-.455];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2*t+1)運算結果:z1=2*sin(85*pi/180)/(1+exp(2))x=[21+2*i;-.455];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^2-2*t+1)z1=0.2375z2=0.7114-0.0253i0.8968+0.3658i0.2139+0.9343i1.1541-0.0044iz3=Columns1through40.7388+3.1416i0.7696+3.1416i0.7871+3.1416i0.7913+3.1416iColumns5through80.7822+3.1416i0.7602+3.1416i0.7254+3.1416i0.6784+3.1416iColumns9through120.6196+3.1416i0.5496+3.1416i0.4688+3.1416i0.3780+3.1416iColumns13through160.2775+3.1416i0.1680+3.1416i0.0497+3.1416i-0.0771+3.1416iColumns17through20-0.2124+3.1416i-0.3566+3.1416i-0.5104+3.1416i-0.6752+3.1416iColumns21through24-0.8536+3.1416i-1.0497+3.1416i-1.2701+3.1416i-1.5271+3.1416iColumns25through28-1.8436+3.1416i-2.2727+3.1416i-2.9837+3.1416i-37.0245Columns29through32-3.0017-2.3085-1.8971-1.5978Columns33through36-1.3575-1.1531-0.9723-0.8083Columns37through40-0.6567-0.5151-0.3819-0.2561Columns41through44-0.1374-0.02550.07920.1766Columns45through480.26630.34780.42060.4841Columns49through520.53790.58150.61450.6366Columns53through560.64740.64700.63510.6119Columns57through600.57770.53270.47740.4126Column610.3388z4=00.250001.25001.00002.25002.已知:求下列表達式的值:(1)A+6*B和A-B+I(其中I為單位矩陣)(2)A*B和A.*B(3)A^3和A.^3(4)A/B及B\A(5)[A,B]和[A([1,3],:);B^2]解:M文件:A=[1234-4;34787;3657];B=[13-1;203;3-27];A+6.*BA-B+eye(3)A*BA.*BA^3A.^3A/BB\A[A,B][A([1,3],:);B^2]運算結果:A=[1234-4;34787;3657];B=[13-1;203;3-27];A+6.*BA-B+eye(3)A*BA.*BA^3A.^3A/BB\A[A,B][A([1,3],:);B^2]ans=1852-10467105215349ans=1231-3328840671ans=684462309-72596154-5241ans=1210246802619-13049ans=372262338244860424737014918860076678688454142118820ans=172839304-643930434365850327274625343ans=16.4000-13.60007.600035.8000-76.200050.200067.0000-134.000068.0000ans=109.4000-131.2000322.8000-53.000085.0000-171.0000-61.600089.8000-186.2000ans=1234-413-13478720336573-27ans=1234-436574511101920-5403.設有矩陣A和B(1)求它們的乘積C。(2)將矩陣C的右下角3×2子矩陣賦給D。(3)查看MATLAB工作空間的使用情況。解:.運算結果:E=(reshape(1:1:25,5,5))';F=[3016;17-69;023-4;970;41311];C=E*FH=C(3:5,2:3)C=9315077258335237423520397588705557753890717H=5203977055578907174.完成下列操作:(1)求[100,999]之間能被21整除的數的個數。(2)建立一個字符串向量,刪除其中的大寫字母。解:(1)結果:m=100:999;n=find(mod(m,21)==0);length(n)ans=43(2).建立一個字符串向量例如:ch='ABC123d4e56Fg9';則要求結果是:ch='ABC123d4e56Fg9';k=find(ch>='A'&ch<='Z');ch(k)=[]ch=123d4e56g9實驗二MATLAB矩陣分析及處理1.設有分塊矩陣,其中E、R、O、S分別為單位矩陣、隨機矩陣、零矩陣和對角陣,試通過數值計算驗證。解:M文件如下;輸出結果:S=1002A=1.0000000.53830.442701.000000.99610.1067001.00000.07820.96190001.0000000002.0000a=1.0000001.07671.328001.000001.99230.3200001.00000.15642.88570001.0000000004.0000ans=0000000000000000000000000由ans,所以2.產生5階希爾伯特矩陣H和5階帕斯卡矩陣P,且求其行列式的值Hh和Hp以及它們的條件數Th和Tp,判斷哪個矩陣性能更好。為什么?解:M文件如下:輸出結果:H=1.00000.50000.33330.25000.20000.50000.33330.25000.20000.16670.33330.25000.20000.16670.14290.25000.20000.16670.14290.12500.20000.16670.14290.12500.1111P=111111234513610151410203515153570Hh=3.7493e-012Hp=1Th=4.7661e+005Tp=8.5175e+003因為它們的條件數Th>>Tp,所以pascal矩陣性能更好。3.建立一個5×5矩陣,求它的行列式值、跡、秩和范數。解:M文件如下:輸出結果為:A=17241815235714164613202210121921311182529d=5070000t=65c1=6.8500c2=5.4618cinf=6.85004.已知求A的特征值及特征向量,并分析其數學意義。解:M文件如圖:輸出結果為:V=0.71300.28030.2733-0.6084-0.78670.87250.34870.55010.4050D=-25.3169000-10.518200016.8351數學意義:V的3個列向量是A的特征向量,D的主對角線上3個是A的特征值,特別的,V的3個列向量分別是D的3個特征值的特征向量。5.下面是一個線性方程組:(1)求方程的解。(2)將方程右邊向量元素b3改為0.53再求解,并比較b3的變化和解的相對變化。(3)計算系數矩陣A的條件數并分析結論。解:M文件如下:輸出結果:X=1.20000.60000.6000X2=1.20000.60000.6000C=1.3533e+003由結果,X和X2的值一樣,這表示b的微小變化對方程解也影響較小,而A的條件數算得較小,所以數值穩定性較好,A是較好的矩陣。6.建立A矩陣,試比較sqrtm(A)和sqrt(A),分析它們的區別。解:M文件如下:運行結果有:A=1661820512985b1=3.8891-0.11023.21033.29172.14360.36980.38552.07601.7305b2=4.00002.44954.24264.47212.23613.46413.00002.82842.2361b=16.00006.000018.000020.00005.000012.00009.00008.00005.0000分析結果知:sqrtm(A)是類似A的數值平方根(這可由b1*b1=A的結果看出),而sqrt(A)則是對A中的每個元素開根號,兩則區別就在于此。實驗三選擇結構程序設計一、實驗目的1.掌握建立和執行M文件的方法。2.掌握利用if語句實現選擇結構的方法。3.掌握利用switch語句實現多分支選擇結構的方法。4.掌握try語句的使用。二、實驗內容1.求分段函數的值。用if語句實現,分別輸出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0時的y值。解:M文件如下:運算結果有:f(-5)y=14>>f(-3)y=11>>f(1)y=2>>f(2)y=1>>f(2.5)y=-0.2500>>f(3)y=5>>f(5)y=192.輸入一個百分制成績,要求輸出成績等級A、B、C、D、E。其中90分~100分為A,80分~89分為B,79分~79分為C,60分~69分為D,60分以下為E。要求:(1)分別用if語句和switch語句實現。(2)輸入百分制成績后要判斷該成績的合理性,對不合理的成績應輸出出錯信息。解:M文件如下試算結果:score=88grade=Bscore=123錯誤:輸入的成績不是百分制成績3.硅谷公司員工的工資計算方法如下:(1)工作時數超過120小時者,超過部分加發15%。(2)工作時數低于60小時者,扣發700元。(3)其余按每小時84元計發。試編程按輸入的工號和該號員工的工時數,計算應發工資。解:M文件下4.設計程序,完成兩位數的加、減、乘、除四則運算,即產生兩個兩位隨機整數,再輸入一個運算符號,做相應的運算,并顯示相應的結果。解:M文件如下;運算結果例:a=38b=33輸入一個運算符:^c=falsea=92b=40輸入一個運算符:+c=1325.建立5×6矩陣,要求輸出矩陣第n行元素。當n值超過矩陣的行數時,自動轉為輸出矩陣最后一行元素,并給出出錯信息。解:M文件如下:運算結果如下:輸入一個5行6列矩陣A=[123455;234576;222223;1123973;234567]輸入一正整數n=41123973輸入一個5行6列矩陣A=[123455;234576;222223;1123973;234567]輸入一正整數n=6234567ans=Errorusing==>dispToomanyinputarguments.實驗四循環結構程序設計一、實驗目的1.掌握利用for語句實現循環結構的方法。2.掌握利用while語句實現循環結構的方法。3.熟悉利用向量運算來代替循環操作的方法。二、實驗內容1.根據,求π的近似值。當n分別取100、1000、10000時,結果是多少?要求:分別用循環結構和向量運算(使用sum函數)來實現。解:M文件如下:運行結果如下:K>>%循環結構計算pi值y=0;n=input('n=');fori=1:ny=y+1/i/i;endpi=sqrt(6*y)n=100pi=3.1321n=1000pi=3.1406n=10000pi=3.1415%向量方法計算Pi值n=input('n=');i=1./(1:n).^2;s=sum(i);pi=sqrt(6*s)n=100pi=3.1321n=1000pi=3.1406n=10000pi=3.14152.根據,求:(1)y<3時的最大n值。(2)及(1)的n值對應的y值。解:M—文件如下:運行結果如下:K>>y=0;n=0;whiley<3n=n+1;y=y+1/(2*n-1);endynify>3n=n-1;endny=3.0033n=57n=563.考慮以下迭代公式:其中a、b為正的學數。(1)編寫程序求迭代的結果,迭代的終止條件為|xn+1-xn|≤10-5,迭代初值x0=1.0,迭代次數不超過500次。(2)如果迭代過程收斂于r,則r的準確值是,當(a,b)的值取(1,1)、(8,3)、(10,0.1)時,分別對迭代結果和準確值進行比較。解:M文件如下:運算結果如下;請輸入正數a=1請輸入正數b=1x=0.6180r=0.6180-4.7016r=0.6180-1.6180s=-0.0000-2.2361請輸入正數a=8請輸入正數b=3x=1.7016r=1.7016-1.6180r=1.7016-4.7016s=-6.4031請輸入正數a=10請輸入正數b=0.1x=3.1127r=3.1127-4.7016r=3.1127-3.2127s=-0.0000-6.32544.已知求f1~f100中:(1)最大值、最小值、各數之和。(2)正數、零、負數的個數。解:M—文件以下是運算結果:max(f)=437763282635min(f)=-899412113528sum(f)=-742745601951c1=49c2=2c3=495.若兩個連續自然數的乘積減1是素數,則稱這兩個邊疆自然數是親密數對,該素數是親密素數。例如,2×3-1=5,由于5是素數,所以2和3是親密數,5是親密素數。求[2,50]區間內:(1)親密數對的對數。(2)及上述親密數對對應的所有親密素數之和。解:M文件:運算結果為:j=29s=23615實驗五函數文件一、實驗目的1.理解函數文件的概念。2.掌握定義和調用MATLAB函數的方法。二、實驗內容1.定義一個函數文件,求給定復數的指數、對數、正弦和余弦,并在命令文件中調用該函數文件。解:M文件如下:函數fushu.M文件:function[e,l,s,c]=fushu(z)%fushu復數的指數,對數,正弦,余弦的計算%e復數的指數函數值%l復數的對數函數值%s復數的正弦函數值%c復數的余弦函數值e=exp(z);l=log(z);s=sin(z);c=cos(z);命令文件M:z=input('請輸入一個復數z=');[a,b,c,d]=fushu(z)運算結果如下:z=input('請輸入一個復數z=');[a,b,c,d]=fushu(z)請輸入一個復數z=1+ia=1.4687+2.2874ib=0.3466+0.7854ic=1.2985+0.6350id=0.8337-0.9889i2.一物理系統可用下列方程組來表示:從鍵盤輸入m1、m2和θ的值,求a1、a2、N1和N2的值。其中g取9.8,輸入θ時以角度為單位。要求:定義一個求解線性方程組AX=B的函數文件,然后在命令文件中調用該函數文件。解:M文件函數fc.M文件:functionX=fc(A,B)%fcfc是求解線性方程的函數%AA是未知矩陣的系數矩陣X=A\B;命令M文件:clc;m1=input('輸入m1=');m2=input('輸入m2=');theta=input('輸入theta=');x=theta*pi/180;g=9.8;A=[m1*cos(x)-m1-sin(x)0m1*sin(x)0cos(x)00m2-sin(x)000-cos(x)1];B=[0;m1*g;0;m2*g];X=fc(A,B)運算結果:輸入m1=1輸入m2=1輸入theta=30X=7.84003.39486.789615.68003.一個自然數是素數,且它的數字位置經過任意對換后仍為素數。例如13是絕對素數。試求所有兩位絕對素數。要求:定義一個判斷素數的函數文件。解:M文件:函數prime.m文件function[p]=prime(p)%輸入p的范圍,找出其中的素數m=p(length(p));fori=2:sqrt(m)n=find(rem(p,i)==0&p~=i);p(n)=[];%將p中能被i整除,而卻不等于i的元素,即下標為n的元素剔除,其余的即為素數endp;命令文件:clc;p=10:99;p=prime(p);%找出10到99內的所有素數p=10*rem(p,10)+(p-rem(p,10))/10;%將p素數矩陣每個元素個位十位調換順序p=prime(p)%再對對換后的素數矩陣找出所有的素數運算結果:p=1131711373173797794.設,編寫一個MATLAB函數文件fx.m,使得調用f(x)時,x可用矩陣代入,得出的f(x)為同階矩陣。解:函數fx.m文件:functionf=fx(x)%fxfx求算x矩陣下的f(x)的函數值A=0.1+(x-2).^2;B=0.01+(x-3).^4;f=1./A+1./B;命令文件:clc;x=input('輸入矩陣x=');f=fx(x)運算結果:>>x=input('輸入矩陣x=');f=fx(x)輸入矩陣x=[72;125]f=0.043710.99010.01010.17245.已知(1)當f(n)=n+10ln(n2+5)時,求y的值。(2)當f(n)=1×2+2×3+3×4+...+n×(n+1)時,求y的值。解:(1)函數f.m文件:functionf=f(x)f=x+10*log(x^2+5);命令文件:clc;n1=input('n1=');n2=input('n2=');n3=input('n3=');y1=f(n1);y2=f(n2);y3=f(n3);y=y1/(y2+y3)運算結果如下:n1=40n2=30n3=20y=0.6390(2).函數g.m文件functions=g(n)fori=1:ng(i)=i*(i+1);ends=sum(g);命令文件:clc;n1=input('n1=');n2=input('n2=');n3=input('n3=');y1=g(n1);y2=g(n2);y3=g(n3);y=y1/(y2+y3)運算結果如下:n1=40n2=30n3=20y=1.7662實驗六高層繪圖操作一、實驗目的1.掌握繪制二維圖形的常用函數。2.掌握繪制三維圖形的常用函數。3.掌握繪制圖形的輔助操作。二、實驗內容1.設,在x=0~2π區間取101點,繪制函數的曲線。解:M文件如下:clc;x=linspace(0,2*pi,101);y=(0.5+3*sin(x)./(1+x.^2));plot(x,y)運行結果有:2.已知y1=x2,y2=cos(2x),y3=y1×y2,完成下列操作:(1)在同一坐標系下用不同的顏色和線型繪制三條曲線。(2)以子圖形式繪制三條曲線。(3)分別用條形圖、階梯圖、桿圖和填充圖繪制三條曲線。解:(1)M文件:clc;x=-pi:pi/100:pi;y1=x.^2;y2=cos(2*x);y3=y1.*y2;plot(x,y1,'b-',x,y2,'r:',x,y3,'k--')運行結果:(2)M文件:clc;x=-pi:pi/100:pi;y1=x.^2;y2=cos(2*x);y3=y1.*y2;subplot(1,3,1);plot(x,y1,'b-');title('y1=x^2');subplot(1,3,2);plot(x,y2,'r:');title('y2=cos(2x)');subplot(1,3,3);plot(x,y3,'k--');title('y3=y1*y2');.運行結果:(3)M文件:clc;x=-pi:pi/100:pi;y1=x.^2;y2=cos(2*x);y3=y1.*y2;subplot(2,2,1);plot(x,y1,'b-',x,y2,'r:',x,y3,'k--');subplot(2,2,2);bar(x,y1,'b');title('y1=x^2');subplot(2,2,3);bar(x,y2,'r');title('y2=cos(2x)');subplot(2,2,4);bar(x,y3,'k');title('y3=y1*y2');由上面的M文件,只要依次將“bar”改為“stairs”、“stem”、“fill”,再適當更改區間取的點數,運行程序即可,即有下面的結果:3.已知在-5≤x≤5區間繪制函數曲線。解:M文件:clc;x=-5:0.01:5;y=(x+sqrt(pi))/(exp(2)).*(x<=0)+0.5*log(x+sqrt(1+x.^2)).*(x>0);plot(x,y)運行結果:由圖可看出,函數在零點不連續。4.繪制極坐標曲線ρ=asin(b+nθ),并分析參數a、b、n對曲線形狀的影響。解:M文件如下:clc;theta=0:pi/100:2*pi;a=input('輸入a=');b=input('輸入b=');n=input('輸入n=');rho=a*sin(b+n*theta);polar(theta,rho,'m')采用控制變量法的辦法,固定兩個參數,變動第三個參數觀察輸出圖象的變化。分析結果:由這8個圖知道,當a,n固定時,圖形的形狀也就固定了,b只影響圖形的旋轉的角度;當a,b固定時,n只影響圖形的扇形數,特別地,當n是奇數時,扇葉數就是n,當是偶數時,扇葉數則是2n個;當b,n固定時,a影響的是圖形大小,特別地,當a是整數時,圖形半徑大小就是a。5.繪制函數的曲線圖和等高線。其中x的21個值均勻分布[-5,5]范圍,y的31個值均勻分布在[0,10],要求使用subplot(2,1,1)和subplot(2,1,2)將產生的曲面圖和等高線圖畫在同一個窗口上。解:M文件:clc;x=linspace(-5,5,21);y=linspace(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);title('曲面圖');subplot(2,1,2);surfc(x,y,z);title('等高線圖');運行結果:6.繪制曲面圖形,并進行插值著色處理。解:M文件:clc;s=0:pi/100:pi/2;t=0:pi/100:3*pi/2;[s,t]=meshgrid(s,t);x=cos(s).*cos(t);y=cos(s).*sin(t);z=sin(s);subplot(2,2,1);mesh(x,y,z);title('未著色的圖形');subplot(2,2,2);surf(x,y,z);title('shadingfaceted(缺省)');subplot(2,2,3);surf(x,y,z);shadingflat;title('shadingflat');subplot(2,2,4);surf(x,y,z);shadinginterp;title('shadinginterp');運行結果有:實驗七低層繪圖操作二、實驗內容1.建立一個圖形窗口,使之背景顏色為紅色,并在窗口上保留原有的菜單項,而且在按下鼠標器的左鍵之后顯示出LeftButtonPressed字樣。解:M文件如下:clc;hf=figure('color',[100],...'WindowButtonDownFcn','disp(''LeftButtonPressed.'')');運行結果:左擊鼠標后:2.先利用默認屬性繪制曲線y=x2e2x,然后通過圖形句柄操作來改變曲線的顏色、線型和線寬,并利用文件對象給曲線添加文字標注。解:M文件:clc;x=-2:0.01:2;y=x.^2.*exp(2*x);h=plot(x,y);set(h,'color',[0.4,0.2,0.5],'linestyle','--',...'linewidth',2);text(1.5,1.5^2*exp(2*1.5),'\leftarrowx^2exp(2x)','fontsize',9);運行結果:3.利用曲面對象繪制曲面v(x,t)=10e-0.01xsin(2000πt-0.2x+π)。解:M文件:clc;x=0:0.1:2*pi;[x,t]=meshgrid(x);v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi);axes('view',[-37,30]);hs=surface(x,t,v,'facecolor',...[0.2,0.3,0.3],'edgecolor','flat');gridon;xlabel('x-axis');ylabel('y-axis');zlabel('z-axis');title('mesh-surf');pause%按任意鍵繼續set(hs,'FaceColor','flat');text(0,0,0,'曲面');運行結果:按任意鍵繼續:4.以任意位置子圖形式繪制出正弦、余弦、正切和余切函數曲線。5.生成一個圓柱體,并進行光照和材質處理。解:M文件:[x,y,z]=cylinder(3,500);%cylinder是生成柱體的函數surf(x,y,z);title('圓柱體的光照和材料處理');Xlabel('X-axis');Ylabel('Y-axis');Zlabel('Z-axis');axis([-5,5,-5,5,0,1])gridoff;light('Color','r','Position',[-4,0,0],'style','infinite');shadinginterp;materialshiny;view(0,10);lightingphong;axisoff;運行結果:實驗八數據處理及多項式計算一、實驗目的1.掌握數據統計和分析的方法。2.掌握數值插值及曲線擬合的方法及其應用。3.掌握多項式的常用運算。二、實驗內容1.利用MATLAB提供的rand函數生成30000個符合均勻分布的隨機數,然后檢驗隨機數的性質:(1)均值和標準方差。(2)最大元素和最小元素。(3)大于0.5的隨機數個數占總數的百分比。解:M文件:clc;x=rand(1,30000);mu=mean(x)%求這30000個均勻分布隨機數的平均值sig=std(x)%求其標準差σ1y=length(find(x>0.5));%找出大于0.5數的個數p=y/30000%大于0.5的所占百分比運行結果:mu=0.499488553231043sig=0.288599933559786p=0.49942.將100個學生5門功課的成績存入矩陣P中,進行如下處理:(1)分別求每門課的最高分、最低分及相應學生序號。(2)分別求每門課的平均分和標準方差。(3)5門課總分的最高分、最低分及相應學生序號。(4)將5門課總分按從大到小順序存入zcj中,相應學生序號存入xsxh。提示:上機調試時,為避免輸入學生成績的麻煩,可用取值范圍在[45,95]之間的隨機矩陣來表示學生成績。解:M文件:clc;t=45+50*rand(100,5);P=fix(t);%生成100個學生5門功課成績[x,l]=max(P)%x為每門課最高分行向量,l為相應學生序號[y,k]=min(P)%y為每門課最低分行向列,k為相應學生序號mu=mean(P)%每門課的平均值行向量sig=std(P)%每門課的標準差行向量s=sum(P,2)%5門課總分的列向量[X,m]=max(s)%5門課總分的最高分X及相應學生序號m[Y,n]=min(s)%5門課總分的最低分Y及相應學生序號n[zcj,xsxh]=sort(s)%zcj為5門課總分從大到小排序,相應學生序號xsxh運行結果:3.某氣象觀測得某日6:00~18:00之間每隔2h的室內外溫度(0C)如實驗表1所示。實驗表1室內外溫度觀測結果(0C時間h6 8 10 12 14 16 18室內溫度t118.020.022.025.030.028.024.0室外溫度t215.019.024.028.034.032.030.0試用三次樣條插值分別求出該日室內外6:30~18:30之間每隔2h各點的近似溫度(0C解:M文件:clc;h=6:2:18;t1=[18.020.022.025.030.028.024.0];t2=[15.019.024.028.034.032.030.0];T1=interp1(h,t1,'spline')%室內的3次樣條插值溫度T2=interp1(h,t2,'spline')%室外的3次樣條插值溫度運行結果:T1=Columns1through340.070344.113048.1705Columns4through654.288564.588360.4512Column752.2444T2=Columns1through334.028442.090252.2444Columns4through660.451272.940868.7503Column764.58834.已知lgx在[1,101]區間10個整數采樣點的函數值如實驗表2所示。實驗表2lgx在10個采樣點的函數值x1112131415161718191101lgx01.04141.32221.49141.61281.70761.78531.85131.90851.95102.0043試求lgx的5次擬合多項式p(x),并繪制出lgx和p(x)在[1,101]區間的函數曲線。解:M文件:x=1:10:101;y=lg10(x);P=polyfit(x,y,5)y1=polyval(P,x);plot(x,y,':o',x,y1,'-*')運行結果:Warning:Polynomialisbadlyconditioned.AddpointswithdistinctXvalues,reducethedegreeofthepolynomial,ortrycenteringandscalingasdescribedinHELPPOLYFIT.>Inpolyfitat80P=0.0000-0.00000.0001-0.00580.1537-0.1326(這里出現警告是提示不必用5價函數就已經可以完美擬合了,是可以降價擬合。)在[1,101]的區間函數圖像5.有3個多項式P1(x)=x4+2x3+4x2+5,P2(x)=x+2,P3(x)=x2+2x+3,試進行下列操作:(1)求P(x)=P1(x)+P2(x)P3(x)。(2)求P(x)的根。(3)當x取矩陣A的每一元素時,求P(x)的值。其中:(4)當以矩陣A為自變量時,求P(x)的值。其中A的值及第(3)題相同。解:M文件:clc;clear;p1=[1,2,4,0,5];p2=[1,2];p3=[1,2,3];p2=[0,0,0,p2];p3=[0,0,p3];p4=conv(p2,p3);%p4是p2及p3的乘積后的多項式np4=length(p4);np1=length(p1);p=[zeros(1,np4-np1)p1]+p4%求p(x)=p1(x)+p2(x)x=roots(p)%求p(x)的根A=[-11.2-1.4;0.7523.5;052.5];y=polyval(p,A)%x取矩陣A的每一元素時的p(x)值運行結果:p=0000138711x=-1.3840+1.8317i-1.3840-1.8317i-0.1160+1.4400i-0.1160-1.4400iy=1.0e+003*0.01000.03820.01250.02230.09700.41220.01101.24600.1644實驗九數值微積分及方程數值求解一、實驗目的1.掌握求數值導數和數值積分的方法。2.掌握代數方程數值求解的方法。3.掌握常微分方程數值求解的方法。二、實驗內容1.求函數在指定點的數值導數。解:M文件:clc;clear;x=1;i=1;f=inline('det([xx^2x^3;12*x3*x^2;026*x])');whilex<=3.01g(i)=f(x);i=i+1;x=x+0.01;%以0.01的步長增加,可再縮小步長提高精度endg;t=1:0.01:3.01;dx=diff(g)/0.01;%差分法近似求導f1=dx(1)%x=1的數值倒數f2=dx(101)%x=2的數值倒數f3=dx(length(g)-1)%x=3的數值倒數運行結果:f1=6.0602f2=24.1202f3=54.18022.用數值方法求定積分。(1)的近似值。(2)解:M文件:clc;clear;f=inline('sqrt(cos(t.^2)+4*sin(2*t).^2+1)');I1=quad(f,0,2*pi)g=inline('log(1+x)./(1+x.^2)');I2=quad(g,0,2*pi)運行結果:I1=10.4285I2=0.99973.分別用3種不同的數值方法解線性方程組。解:M文件:clc;clear;A=[65-25;9-14-1;342-2;3-902];b=[-413111]';x=A\by=inv(A)*b[L,U]=lu(A);z=U\(L\b)運行結果:x=0.6667-1.00001.5000-0.0000y=0.6667-1.00001.5000-0.0000z=0.6667-1.00001.5000-0.00004.求非齊次線性方程組的通解。解:M文件function[x,y]=line_solution(A,b)[m,n]=size(A);y=[];ifnorm(b)>0%非齊次方程組ifrank(A)==rank([A,b])ifrank(A)==ndisp('有唯一解x');x=A\b;elsedisp('有無窮個解,特解x,基礎解系y');x=A\b;y=null(A,'r');endelsedisp('無解');x=[];endelse%齊次方程組disp('有零解x');x=zeros(n,1);ifrank(A)<ndisp('有無窮個解,基礎解系y');y=null(A,'r');endendclc;clear;formatratA=[2731;3522;9417];b=[642]';[x,y]=line_solution(A,b)運行結果:有無窮個解,特解x,基礎解系yWarning:Rankdeficient,rank=2,tol=8.6112e-015.>Inline_solutionat11x=-2/1110/1100y=1/11-9/11-5/111/111001所以原方程組的通解是:,其中為任意常數。5.求代數方程的數值解。(1)3x+sinx-ex=0在x0=1.5附近的根。(2)在給定的初值x0=1,y0=1,z0=1下,求方程組的數值解。解:M文件:functiong=f(x)g=3*x+sin(x)-exp(x);clc;clear;fzero('f',1.5)結果是:ans=1289/682(2).M文件:functionF=fun(X)x=X(1);y=X(2);z=X(3);F(1)=sin(x)+y^2+log(z)-7;F(2)=3*x+2-z^3+1;F(3)=x+y+z-5;X=fsolve('myfun',[1,1,1]',optimset('Display','off'))運行結果:X=909/10731735/7281106/6256.求函數在指定區間的極值。(1)在(0,1)內的最小值。(2)在[0,0]附近的最小值點和最小值。解:M文件:functionf=g(u)x=u(1);y=u(2);f=2*x.^3+4*x.*y^3-10*x.*y+y.^2;clc;clear;formatlongf=inline('(x^3+cos(x)+x*log(x))/exp(x)');[x,fmin1]=fminbnd(f,0,1)[U,fmin2]=fminsearch('g',[0,0])運行結果x=0.522288340666172fmin1=0.397363464998461U=1.0810.833488282765738fmin2=-3.32447.求微分方程的數值解。解:M文件:functionxdot=sys(x,y)xdot=[y(2);(5*y(2)-y(1))/x];clc;clear;x0=1.0e-9;xf=20;[x,y]=ode45('sys',[x0,xf],[00]);[x,y]運行結果:xy’yans=0.0000000.5000001.0000001.5000002.0000002.5000003.0000003.5000004.0000004.5000005.0000005.5000006.0000006.5000007.0000007.5000008.0000008.5000009.0000009.50000010.00000010.50000011.00000011.50000012.00000012.50000013.00000013.50000014.00000014.50000015.00000015.50000016.00000016.50000017.00000017.50000018.00000018.50000019.00000019.50000020.0000008.求微分方程組的數值解,并繪制解的曲線。解:令y1=x,y2=y,y3=z;這樣方程變為:,自變量是tM文件:functionxdot=sys(x,y)xdot=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];clc;clear;t0=0;tf=8;[x,y]=ode23('sys',[t0,tf],[0,1,1])plot(x,y)運行結果:x=00.00010.00050.00250.01250.06250.16320.30330.48290.71620.98491.26101.56781.95502.32872.70243.01533.29213.48893.64523.75383.86243.99414.16454.38354.65374.92655.22455.58616.03026.34286.65556.93717.15417.32387.45027.57657.70427.87068.0000y=01.00001.00000.00011.00001.00000.00051.00001.00000.00251.00001.00000.01250.99991.00000.06240.99800.99900.16210.98680.99330.29650.95500.97730.45630.88980.94540.63500.77220.89120.79440.60690.82330.90690.42030.76170.97800.20660.71550.9975-0.06440.70160.9450-0.32580.73770.8127-0.58170.81410.6303-0.77550.89270.4130-0.90980.95520.2324-0.97160.98580.0795-0.99580.9980-0.0289-0.99860.9994-0.1367-0.98960.9949-0.2640-0.96340.9817-0.4187-0.90690.9538-0.5935-0.80340.9053-0.7644-0.64270.8373-0.8859-0.46090.7738-0.9656-0.25420.7235-0.9985-0.00140.7003-0.94950.30920.7343-0.84950.52470.7943-0.68580.72560.8712-0.48020.87510.9387-0.28880.95540.9778-0.12540.99020.99530.00020.99810.99930.12570.99010.99530.24940.96630.98330.40160.91360.95720.51000.85780.9305圖形:實驗十符號計算基礎及符號微積分一、實驗目的1.掌握定義符號對象的方法。2.掌握符號表達式的運算法則以及符號矩陣運算。3.掌握求符號函數極限及導數的方法。4.掌握求符號函數定積分和不定積分的方法。二、實驗內容1.已知x=6,y=5,利用符號表達式求提示:定義符號常數x=sym(‘6’),y=sym(‘5’)。解:M文件:clearall;clc;x=sym('6');y=sym('5');z=(1+x)/(sqrt(3+x)-sqrt(y))運行結果:z=-7/(5^(1/2)-3)2.分解因式。(1)x4-y4 (2)5135解:M文件:clearall;clc;symsxy;t=sym('5135');a=x^4-y^4;factor(a)factor(t)運行結果:ans=(x-y)*(x+y)*(x^2+y^2)ans=5*13*793.化簡表達式。解:M文件:clearall;clc;symsbeta1beta2x;f1=sin(beta1)*cos(beta2)-cos(beta1)*sin(beta2);simplify(f1)%(1)問f2=(4*x^2+8*x+3)/(2*x+1);simplify(f2)%(2)問運行結果:ans=sin(beta1-beta2)ans=2*x+34.已知完成下列運算:(1)B=P1·P2·A 。 (2)B的逆矩陣并驗證結果。(3)包括B矩陣主對角線元素的下三角陣。 (4)B的行列式值。解:M文件:clearall;clc;symsabcdefghk;p1=[010;100;001];p2=[100;010;101];A=[abc;def;ghk];B=p1*p2*AB1=inv(B)%B的逆矩陣B1*B%驗證逆矩陣結果B2=tril(B)d=det(B)運行結果:B=[d,e,f][a,b,c][a+g,b+h,c+k]B1=[-(c*h-b*k)/(a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k),(b*f-c*e+f*h-e*k)/(a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k),-(b*f-c*e)/(a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k)][(c*g-a*k)/(a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k),-(a*f-c*d+f*g-d*k)/(a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k),(a*f-c*d)/(a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k)][(a*h-b*g)/(a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k),(a*e-b*d-d*h+e*g)/(a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k),-(a*e-b*d)/(a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k)]ans=[1,0,0][0,1,0][0,0,1]B2=[d,0,0][a,b,0][a+g,b+h,c+k]d=a*f*h-b*f*g-c*d*h+c*e*g-a*e*k+b*d*k5.用符號方法求下列極限或導數。解:M文件:clearall;clc;symsxtayz;f1=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/sin(x)^3;%(1)limit(f1)f2=(sqrt(pi)-sqrt(acos(x)))/sqrt(x+1);%(2)limit(f2,x,-1,'right')y=(1-cos(2*x))/x;%(3)y1=diff(y)y2=diff(y,2)A=[a^xt^3;t*cos(x)log(x)];%(4)Ax1=diff(A,x,1)At2=diff(A,t,2)Axt=diff(Ax1,t)f=(x^2-2*x)*exp(-x^2-z^2-x*z);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 固定資產轉讓合同
- 勞務分包安全合同
- 兒童玩具購銷合同書
- 工程裝飾裝修合同文書
- 木門簽訂合同協議怎么寫
- 合同代保管協議
- 學術推廣合同協議
- 石頭加工合同協議
- 公寓樓轉賣合同協議
- 員工解除合同協議書丟失
- DB21-T 3413-2021地下工程自防護混凝土結構耐久性技術規程
- 學校食品安全管理
- 2024年安徽六安城市建設投資有限公司招聘筆試參考題庫含答案解析
- 無人駕駛除冰車研發及示范應用
- 痙攣性斜頸的物理治療與按摩技術
- 團隊溝通與協作培訓
- 工作交接表表格模板
- 媒介的欺騙性:后圖靈時代的人工智能和社會生活
- 老年專科護士準入(選拔)考試理論試題及答案
- 國開學習行為表現(通用11篇)
- 廢氣治理設施運行管理規程制度
評論
0/150
提交評論