資源描述:
《實驗四 MATLAB數值計算》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、實驗四MATLAB數值計算一、實驗目的1.掌握數據統(tǒng)計和分析的方法2.掌握數據插值和曲線擬合的方法3.掌握求數值導數和數值積分的方法4.掌握代數方程數值求解的方法5.掌握常微分方程數值求解的方法二、實驗內容1.利用matlab提供的rand函數生成30,000個符合均勻分布的隨機數,然后檢驗隨機數的性質:(1)均值和標準方差;(2)最大元素與最小元素;(3)大于0.5的隨機數個數占總數額百分比。>>x=rand(1,30000);Mean=mean(x)%均值Std=std(x,0,2)%標準方差MAX=max(x)%最大值MIN=min(x)%最小值n
2、=sum(x>0.5);percentage=n/30000%大于0.5的隨機數個數占總數額百分比Mean=0.5023Std=0.2886MAX=1.0000MIN=2.4530e-005percentage=0.50632.按下表用3次樣條方法插值計算0~900范圍內整數點的正弦值和0~750范圍內整數點的正切值,然后用5次多項式擬合方法計算相同的函數值,并將兩種計算結果進行比較。a度0153045607590Sina00.25880.50000.70710.86600.96591.0000Tana00.26790.57741.00001.73203
3、.7320t1=0:15*pi/180:0.5*pi;t2=0:15*pi/180:75*pi/180;Sina=[0,0.2588,0.5,0.7071,0.866,0.9659,1];Tana=[0,0.2679,0.5774,1,1.732,3.732];x1=0:pi/180:0.5*pi;%3次樣條插值x2=0:pi/180:5/12*pi;T1=interp1(t1,Sina,x1,'spline');T2=interp1(t2,Tana,x2,'spline');p1=polyfit(t1,Sina,5);%多項式擬合disp(p1)L1=
4、polyval(p1,t1);p2=polyfit(t2,Tana,5);disp(p2)L2=polyval(p2,t2);x=linspace(0,2*pi,100);subplot(2,1,1);plot(t1,L1,':o',x1,T1,'-+',x,sin(x));title('sin(x)');axis([0,0.5*pi,0,1]);subplot(2,1,2);plot(t2,L2,'-*',x2,T2,':.',x,tan(x));title('tan(x)')axis([0,5/12*pi,0,4]);sin(x)、tan(x)的5次
5、多項式擬合的系數為:0.00540.0075-0.17450.00360.99940.00004.3197-10.20219.2877-3.25911.40270.00003.(1)求函數在點的數值導數。x=pi*[1/6,1/4,1/3,1/2];DX=pi*[1/6,1/12,1/12,1/6];y=inline('sin(x).^3+cos(x).^3');df=diff(y([0,x]))./DXdf=-0.4306-0.25750.25750.4306(2)用數值方法求積分g=inline('log(1+x)./(1+x.^2)');I=qua
6、dl(g,0,1)I=0.27224.求方程在附近的根。f=inline('3*x+sin(x)-exp(x)');fzero('fz',1.5)ans=1.89005.求函數在(0,1)內的最小值。f=inline('(x.^3+cos(x)+x.*log(x))./exp(x)');[x,fval]=fminbnd(f,0,1)x=0.5223fval=0.39746.求微分方程的數值解,并繪制解的曲線先建立函數文件sys.mfunctiondy=sys(t,y)dy=zeros(3,1);dy(1)=y(2)*y(3);dy(2)=-y(1)*y(
7、3);dy(3)=-0.51*y(1)*y(2);取tf=20,再輸入命令:t0=0;tf=20;[t,y]=ode45('sys',[t0,tf],[0,1,1]);plot(t,y(:,1),t,y(:,2),t,y(:,3))三、實驗收獲與體會在學習MATLAB前,我們早已學習了多門數學課如數值分析、數學分析、最優(yōu)化和常微分等,各門課程里都有相關的問題、方程、函數和解決這些的方法,實驗四真正地讓我們學以致用,解決問題的方法都可以通過MATLAB實現來求解問題。