《数学实验》实验报告实验四 MATLAB 的作图功能1、画出y=x+cosx 在[02]π,上的图形。
>> x=linspace(0,0.1,30); >> y=x+cos(x); >> plot(x,y)12345672、在同一坐标系中作出两曲线y=tanx 、y=x-cosx 、2y x =、21y x =-在[0]π,上的图形;要求曲线分别用虚实线表示,并注明曲线名称及适当的标注。
x=0:0.1:pi;y1=tan(x); y2=x-cos(x); y3=x.*x; y4=1-x.*x; plot(x,y1,'k-',x,y2,'k:',x,y3,'k-.',x,y4,'k--'); title('四条平面曲线'); gtext('y=tantx'); gtext('y=x-cosx'); gtext('y=x^2'); gtext('y=1-x^2 ');0.511.522.533.5-35-30-25-20-15-10-5051015四条平面曲线3、222351,cos ,21,1xx x y e z x u x v x +-===-=+将在同一窗口画出图形。
>> x=linspace(0,2*pi,30);>> y=exp(x); z=cos(x); u=2*x.^2-1; v=(3*x.*x+5*x-1)./(x.*x+1); >> subplot(2,2,1),plot(x,y),title('y=e^x') >> subplot(2,2,2),plot(x,z), title('y=cosx') >> subplot(2,2,3),plot(x,u), title('y=2x^2-1')>> subplot(2,2,4),plot(x,v), title('y=(3*x^2+5*x-1)/(x^2+1)')2468200400600y=e x2468-1-0.500.51y=cosx2468-50050100y=2x 2-12468-20246y=(3*x 2+5*x-1)/(x 2+1)4、画出y=2x 和y=cosx 围成的区域图。
>> fplot('[x.^2,cos(x)]',[-pi,pi]); >> hold on>> x1=-pi:0.01:pi; >> x2=pi:-0.01:-pi;>> u1=x1.^2; u2=cos(x2); >> fill([x1,x2],[u1,u2],'r');>> xlabel('x 轴'); ylabel('y 轴');>> title('y=x^2和y=cosx 围成的区域图'); >> gtext('y=x^2');gtext('y=cosx');-3-2-10123-2246810x 轴y 轴y=x 2和y=cosx 围成的区域图5、画出222y x y x ==-+2、与x=2围成的区域。
fplot('[x.^2+2,2-x.^2,0]',[-5,5,-5,8]); hold on x1=0:0.01:2; x2=2:-0.01:0; u1=x1.^2+2; u2=2-x2.^2;fill([x1,x2],[u1,u2],'b'); xlabel('x 轴'); ylabel('y 轴');title('围线围成的区域图');gtext('y=x^2+2');gtext('y=2-x^2');-5-4-3-2-1012345-4-22468x 轴y 轴围线围成的区域图6、sin 2 画出四叶玫瑰线r=3的图象. x=0:0.1:2*pi; r=3*sin(2*x); polar(x,r)902701800四叶玫瑰线7、2333311t t t t ++画出笛卡儿叶形线x=,y=的图形. ezplot('(3*t)./(1+t.^3)','(3*t.^2)/(1+t.^3)',[-0.6,6]);-2-1.5-1-0.50.511.5-0.50.511.52xyx = (3 t)/(1+t 3), y = (3 t 2)/(1+t 3)8、已知某函数的离散值为x=[1.5 1.8 1.9 2.0 2.3 3.0 3.5 4.1 4.7 5.2]y=[3.75 2.55 3.88 5.80 8.00 9.6 5.5 6.3 7.4 3.6] scatter(x,y,3,'c')1.52 2.53 3.54 4.55 5.59、在范围-10<x<10,-10<y<10内绘2252z x y xy =+-+的等值线图 [X,Y]=meshgrid(-10:0.5:10,-10:0.5:10); Z=X.^2+Y.^2-5*X*Y+2; coutour(X,Y ,Z); xlabel('x 轴'); ylabel('y 轴'); title('等值线图'); [C,h]=coutour(X,Y ,Z); clabel(C,h); colormap cool-10-8-6-4-20246810-10-8-6-4-2024681010、画出三维曲线图:22,2sin ,.[0,10]x t y t z t t π===∈ t=0:0.1:10*pi;x=2*t; y=2*sin(t); z=t.*t; plot3(x,y,z,'r'); xlabel('x 轴'); ylabel('y 轴'); zlabel('z 轴'); grid on80x 轴y 轴z 轴11、22+y )所围成的区域图形. x=-3:0.05:3; y=-3:0.05:3; [X,Y]=meshgrid(x,y); Z1=4-sqrt(X.^2+Y.^2); ii=find(X.^2+Y.^2>1.4); Z1(ii)=NaN; surf(X,Y,Z1); hold onZ2=-1+3*(X.^2+Y.^2); jj=find(X.^2+Y.^2>1.4); Z2(jj)=NaN; surf(X,Y,Z2);-442.已知函数)(x f 在一些点i x 处的函数值i y 如下表所示。
45.335.225.11i x 8.29.14.39.22.16.48.2iy要求:(1)作出函数)(x f 的6次拉格朗日插值多项式的曲线,求出()f x 在x=1.7,2.3,3.2,3.6的近似值;(2)用曲线拟合方法作出)(x f 的多项式拟合曲线,用此多项式计算)8.2(f 的近似值; (1)作函数)(x f 的6次拉格朗日插值多项式的曲线。
由于没有现成的拉格朗日插值命令,所以需自己先编写,lglrcz.m 见附页。
x=1.0:0.5:4.0;y=[2.8,4.6,1.2,2.9,3.4,1.9,2.8]; x1=1.0:0.05:4.2; x2=[1.7,2.3,3.2,3.6]; lglr=lglrcz(x,y,x1); fz=lglrcz(x,y,x2);fprintf('在给定点处得近似值为:') ;fprintf('%f',fz); plot(x,y,'*',x1,lglr)xlabel('x 轴'); ylabel('y 轴'); title('六次拉格朗日曲线')以上代码运行结果:在给定点处得近似值为:2.501390 2.001147 2.770376 1.835679>>1 1.52 2.53 3.54 4.5x 轴y 轴六次拉格朗日曲线(2)用曲线拟合方法作出)(x f 的多项式拟合曲线 x=1.0:0.5:4.0;y=[2.8,4.6,1.2,2.9,3.4,1.9,2.8]; x1=1.0:0.05:4.2; p1=polyfit(x,y,5); p2=polyfit(x,y,6); y5=polyval(p1,x1); y6=polyval(p2,x1); f5=polyval(p1,2.8); f6=polyval(p2,2.8);fprintf('五次拟合值为:%f',f5); fprintf('六次拟合值为:%f',f6); plot(x,y,'*',x1,y5,'r',x1,y6,'c'); xlabel('x 轴'); ylabel('y 轴');gtext('五次拟合曲线'); gtext('六次拟合曲线'); title('多项式拟合曲线');五次拟合值为:3.524617六次拟合值为:3.61927211.522.533.54 4.5x 轴y 轴多项式拟合曲线用不同的插值方法画出车门曲线图。
(1)使用拉格朗日插值、线性插值、三次样条插值方法在同一坐标图上分别画出车门曲线,以便对比。
x=[0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0];y=[2.51,3.30,4.04,4.70,5.22,5.54,5.78,5.40,5.57,5.70,5.80]; x0=0:0.01:10;lglr=lglrcz(x,y,x0); %lglrcz 函数、newtoncz 代码见附页fdxx=interp1(x,y,x0);scyt=interp1(x,y,x0,'spline');plot(x,y,'*',x0,lglr,'b',x0,fdxx,'r',x0,scyt,'g'); xlabel('x 轴'); ylabel('y 轴');title('不同插值方法画出的车门曲线图')gtext('拉格朗日插值曲线') gtext('线性插值曲线') gtext('三次样条插值曲线')12345678910x 轴y 轴不同插值方法画出的车门曲线图(2)利用Newton 插值方法绘制车门曲线图X=[0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0];Y=[2.51,3.30,4.04,4.70,5.22,5.54,5.78,5.40,5.57,5.70,5.80]; t=0:0.01:10;Newton=newtoncz(X,Y,t); plot(t,Newton); xlabel('x 轴'); ylabel('y 轴');title('Newton 插值方法画出的车门曲线图')123456789101.522.533.544.555.566.5x 轴y 轴Newton 插值方法画出的车门曲线图附页11. lglrcz 函数代码lglrcz.mfunction y=lglrcz(x0,y0,x) n=length(x0); m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=kp=p*(z-x0(j))/(x0(k)-x0(j)); end ends=p*y0(k)+s; endy(i)=s; end2.newtoncz函数代码newtoncz.mfunction y=newtoncz(X,Y,x)n=length(X); m=length(x);for t=1:mz=x(t); A=zeros(n,n);A(:,1)=Y';s=0.0; p=1.0; q1=1.0; c1=1.0;for j=2:nfor i=j:nA(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1));endq1=abs(q1*(z-X(j-1)));c1=c1*j;endC=A(n,n);q1=abs(q1*(z-X(n)));for k=(n-1):-1:1C=conv(C,poly(X(k)));d=length(C);C(d)=C(d)+A(k,k);endy(t)= polyval(C, z);end。