Matlab上机练习参考答案
- 格式:doc
- 大小:136.00 KB
- 文档页数:17
实验一MA TLAB的基本命令与基本函数1已知矩阵a =11 12 13 1421 22 23 2431 32 33 3441 42 43 44求(1) A(:,1) (2) A(2,:)(3) A(:,2:3) (4) A(2:3,2:3)(5) A(:,1:2:3) (6) A(2:3)(7) A(:) (8) A(:,:)(9) ones(2,2) (10) eye(2)(11) [A,[ones(2,2);eye(2)]](12) diag(A) (13) diag(A,1)(14) diag(A,-1) (15) diag(A,2)2(1)输入如下矩阵A0π/3A=π/6 π/2(2) 求矩阵B1,B1中每一元素为对应矩阵A中每一元素的正弦函数(3) 求矩阵B2, B2中每一元素为对应矩阵A中每一元素的余弦函数(4) 求B12+B22(5) 求矩阵A的特征值与特征矢量:称特征矢量为M,而特征值矩阵为L(6) 求Msin(L)M-13已知水的黏度随温度的变化公式为μ=μ0/(1+at+bt2)其中μ0=1.785×10-3,a=0.03368,b=0.000221,求水在0,20,40,80℃时的黏度。
程序如下:miu0=1.785e-3;a=0.03368;b=0.000221;t=0:20:80miu=miu0./ (1+a*t+b*t.^2)(2)一个长管,其内表面半径为a,温度为Ta ;外表面半径为Tb;则其径向和切向应力可分别表示为:⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛+----=⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛----=r b a b r b a b a a b v T T E r b a b r b a b a a b v T T E b a t b a r ln ln 11)/ln()1(2)(ln ln 1)/ln()1(2)(2222222222ασασ式中r 为管子的径向坐标,E 为管子材料的弹性模量,ɑ为热膨胀系数。
三、假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给B 矩阵,用magic(8)A =命令生成A 矩阵,用上述命令检验一下结果是不是正确。
>> A=magic(8) A =64 2 3 61 60 6 7 57 9 55 54 12 13 51 50 16 17 47 46 20 21 43 42 24 40 26 27 37 36 30 31 33 32 34 35 29 28 38 39 25 41 23 22 44 45 19 18 48 49 15 14 52 53 11 10 56 8 58 59 5 4 62 63 1 >> B=A(2:2:end,:)B =9 55 54 12 13 51 50 16 40 26 27 37 36 30 31 33 41 23 22 44 45 19 18 48 8 58 59 5 4 62 63 1五、选择合适的步距绘制出下面的图形。
(1))/1sin(t ,其中)1,1(-∈t ; (2))tan(sin )sin(tan t t -,其中),(ππ-∈t 。
1.>> t=[-1:0.0001:1];y=sin(1./t);plot(t,y) Warning: Divide by zero. >>2.>> t=[-pi:0.001:pi];y=sin(tan(t))-tan(sin(t));plot(t,y) >>七、试求出如下极限。
(1)x xx x 1)93(lim +∞→; (2)11lim00-+→→xy xy y x ; (3)22)()cos(1lim222200yx y x ey x y x +→→++-。
(1)>> syms x;f=(3^x+9^x)^(1/x);limit(f,x,inf)ans =9(2)>> syms x y;f=x*y/(sqrt(x*y+1)-1);limit(limit(f,x,0),y,0) ans =2(3)>> syms x y;f=(1-cos(x^2+y^2))/(x^2+y^2)*exp(x^2+y^2);limit(limit(f,x,0),y,0) ans =0九、假设⎰-=xytt ey x f 0d ),(2,试求222222yf yx f xf y x ∂∂+∂∂∂-∂∂。
15、今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。
p1=[1.0 0.0 0.0 -2.0 1.0];>> p2=[0.0 0.0 1.0 4.0 -0.5];>> p1x=poly2sym(p1);p2x=poly2sym(p2);>> p=p1x+p2xp =x^4+2*x+1/2+x^2>> x=0:5;>> x.^4+2*x+1/2+x.^2ans =0.5000 4.5000 24.5000 96.5000 280.5000 660.50001、试个MATLAB的工作空间中建立以下2个矩阵:A=[1 2]1234B⎡⎤=⎢⎥⎣⎦,求出矩阵A和B的乘积,并将结果赋给变量C。
>> A=[1 2]A =1 2>> B=[1 23 4]B =1 23 4>> C=A*BC =7 102、利用MATLAB提供的帮助信息,了解inv命令的调用格式,并作简要说明。
help invINV Matrix inverse.INV(X) is the inverse of the square matrix X.A warning message is printed if X is badly scaled ornearly singular.See also SLASH, PINV, COND, CONDEST, LSQNONNEG, LSCOV. Overloaded methodshelp gf/inv.mhelp zpk/inv.mhelp tf/inv.mhelp ss/inv.mhelp lti/inv.mhelp frd/inv.mhelp sym/inv.mhelp idmodel/inv.m3、使用help命令查询函数plot的功能以及调用方法,然后利用plot命令绘制函数y=sin(x)的图形,其中0xπ≤≤。
1.以下两种说法对吗?(1)MATLAB进行数值的表达精度与其指令窗中的数据显示精度相同。
(2)MATLAB指令窗中显示的数据有效位数不超过七位。
2.历史指令窗所记录的内容与diary指令所产生的“日志”内容有什么不同?DIARY filename causes a copy of all subsequent command window inputand most of the resulting command window output to be appended to thenamed file. If no file is specified, the file 'diary' is used.DIARY OFF suspends it.DIARY ON turns it back on.DIARY, by itself, toggles the diary state.Use the functional form of DIARY, such as DIARY('file'),when the file name is stored in a string.3.如何把用户自己的“工作目录”永久地设置在MATLAB的搜索路径上?“位于搜索路径上的目录”与“当前目录”在MATLAB中的功用相同吗?4.如何向MATLAB工作空间输入一个含有100个左右元素的一维或二维数值数组?用直接键入法?用数组编辑器?用M文件编辑器?5.运用数组算术运算符去掉下面程序里的for/end循环:x=11:15for k=1:length(x)z(k)=x(k)^2+2.3*x(k)^0.5;endx=11:15 z1=x.^2+2.3*x.^0.56.不使用数组算术运算符,重写下面的程序代码:x=[2 1 4]z=1./(1+x.^2)x=2;k=1;while i<=4,z2(k)=1/(1+i^2);i=i+1;x=x+1;end7.某公司销售电脑打印机的价格方案如下:()如果顾客只买一台打印机,则一台的基本价格为$150。
百度文库 - 让每个人平等地提升自我P 第一次实验答案1. 设要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。
clc clearx=0:0.01:1.5;y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3)y1=diff(y) subplot(2,1,1) plot(x,y)subplot(2,1,2) plot(x(1:150),y1)2绘制极坐标系下曲线(a,b,n 自定数据)clc clear a=10; b=pi/2; n=5;theta=0:pi/100:2*pi; rho=a*cos(b+n*theta); polar(theta,rho)3. 列出求下列空间曲面交线的程序clc clearx=[-5:0.5:5];[X,Y]=meshgrid(x); z1=X.^2-2*Y.^2;z2=X.*2-Y.*3; xlabel('x') ylabel('y') zlabel('z') surf(X,Y,z1) hold onsurf(X,Y,z2)k=find(abs(z1-z2)<0.5); x1=X(k) y1=Y(k)z3=x1.^2-2*y1.^2 hold onplot3(x1,y1,z3,'*')4、设 ⎥⎦⎤⎢⎣⎡++=)1(sin 35.0cos 2x x x y 把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线,要求有图形标注。
clc clearx=-2*pi:0.1: 2*pi;y=cos(x).*(0.5+sin(x)*3./(1+x.^2)); plot(x,y,'b*-'); title('绘图'); xlabel('x 坐标'); ylabel('y 坐标'); legend('原函数')gtext('y=cos(x)(0.5+3*sin(x)/(1+x^2))')5、求下列联立方程的解 81025695832475412743-=+-+-=-+-=++-=--+w z y x w z x w z y x w z y xclc cleara=[3,4,-7,-12;5,-7,4,2;1,0,8,-5;-6,5,-2,10];b=[4,-3,9,-8]; c=b/a; x=c(1,1) y=c(1,2) z=c(1,3) w=c(1,4)6. 假设一曲线数据点为x = 0:2:4*pi;y = sin(x).*exp(-x/5);试将x 的间距调成 0.1,采用不同插值方法进行插值,并通过子图的形式将不同插值结果和原始数据点绘制在同一图形窗口。
第二、三次上机练习:目的:运行课本第四章及课堂上讲过的例子,掌握Matlab 的流程控制语句、函数及脚本文件的编程、调试方法。
作业:1、 完成下列操作:1) 求[100,999]之间能被21整除的个数。
2) 建立一个字符串向量(要求字符串向量中必须包含自己的姓名首字母,大小写均可),删除其中的大写字母2. 编写脚本文件,实现用magic(6)产生一矩阵,用for 循环指令求解其所有元素的和。
3. 定义一个函数文件,求∑=ni m i 1,要求在函数文件中包含能够通过help 查询到的说明;然后调用该函数文件求∑∑∑===++101501210011k k k k k k 的值。
4. 已知)7.1cos(12ln )7.1sin(++++=x xx y π,当x 取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时, 1) 求各点的函数值;2) 求这些数据的平均值;5、求分段函数的值。
222603565231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩, 且, 0且及, 其它用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5时的值。
6、输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。
其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:分别用if 语句和switch 语句实现。
7、根据222221111...,6123n ππ=++++求的近似值。
当n 分别取100、1000、10000时,结果是多少?(要求:分别用循环结构和向量运算来实现)8、已知n=1时,f 1=1;n=2时,f 2=0;n=3时,f 3=1;n>3时,f n =f n-1 -2f n-2+ f n —3; 求f 1~ f 100中,最大值、最小值以及各数之和。
Matlab 上机练习二班级 学号 姓名按要求完成题目,并写下指令和运行结果。
(不需要画图)1、 求⎥⎦⎤⎢⎣⎡+-+-+-+-++=i 44i 93i 49i 67i 23i 57i 41i 72i 53i 84x 的共轭转置。
>> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i];>> x’ans =- -- ++ -- ++ -2、计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
>> a=[6 9 3;2 7 5];>> b=[2 4 1;4 6 8];>> a.*bans =12 36 38 42 403、 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
>> A=[4 9 2;7 6 4;3 5 7];>> B=[37 26 28]’;>> X=A\BX =4、 ⎥⎦⎤⎢⎣⎡-=463521a ,⎥⎦⎤⎢⎣⎡-=263478b ,观察a 与b 之间的六种关系运算的结果。
>> a=[1 2 3;4 5 6];>> b=[8 –7 4;3 6 2];>> a>bans =0 1 01 0 1 >> a>=bans =0 1 01 0 1 >> a<bans =1 0 1 0 1 0 >> a<=bans =1 0 1 0 1 0 >> a==bans =0 0 0 0 0 0>> a~=bans =1 1 11 1 15、[]7.0=-a,在进行逻辑运算时,a相当于什么样的逻辑量。
82.05-相当于a=[1 1 0 1 1]。
6、角度[]60x,求x的正弦、余弦、正切和余切。
=3045>> x=[30 45 60];>> x1=x/180*pi;>> sin(x1)ans =>> cos(x1)ans =>> tan(x1)ans =>> cot(x1)ans =7、 用四舍五入的方法将数组[ ]取整。
>> b=[ ];>> round(b)ans =2 6 4 98、设⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡------=81272956313841A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。
>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];>> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7];>> C1=A*B'C1 =19 -82 3012 27 3-38 54 29>> C2=A'*BC2 =-15 16 -24 36 63 -17 93 -105 22 6 117 -60 19 46 84 -10 >> C3=A.*BC3 =5 16 24 -26 -18 -12 -15 72 -2 -21 108 -56 >> inv(C1)ans =>> inv(C2)Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = .ans =+015 *>> inv(C3)Error using ==> invMatrix must be square.9、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y 曲线。
>> t=linspace(0,10);>> r1=2;>> x1=(r1*cos(t)+3*t);>> y1=r1*sin(t)+3;>> r2=3;>> x2=(r2*cos(t)+3*t);>> y2=r2*sin(t)+3;>> r3=4;>> x3=(r3*cos(t)+3*t);>> y3=r3*sin(t)+3;>> plot(x1,y1,'r',x2,y2,'b',x3,y3,'m')10、设f(x)=x5- 4x4 +3x2- 2x+ 6(1) 在x=[-2,8]之间取100个点,画出曲线,看它有几个过零点。
(提示:用polyval 函数)>> x=linspace(2,8,100);>> y=polyval([1 0 -4 3 -2 6],x);>> plot(x,y,'b',x,0,'y')(2) 用roots函数求此多项式的根。
t=[1 0 -4 3 -2 6]p=roots(t)11、设x=sint, y=sin(nt+a),(1)若a=1,令n =1,2,3,4,在四个子图中分别画出其曲线。
(2)若n=2,取a=0,π/3,π/2,及π,在四个子图中分别画出其曲线。
(1)a=1;x=sin(t);y1=sin(1*t+a);y2=sin(2*t+a);y3=sin(3*t+a);y4=sin(4*t+a);subplot(2,2,1);plot(x,y1);subplot(2,2,2);plot(x,y2);subplot(2,2,3 );plot(x,y3);subplot(2,2,4);plot(x,y4)(2)n=2;x=sin(t);y1=sin(2*t+0);y2=sin(2*t+pi/3);y3=sin(2*t+pi/2);y4=s in(2*t+pi);subplot(2,2,1);plot(x,y1);subplot(2,2,2);plot(x,y2);su bplot(2,2,3);plot(x,y3);subplot(2,2,4);plot(x,y4)注:本题好像题目本身就有问题,因为“t”取值不明,所以运行不了,画不出图来。
转化为符号式来画图也是不可行的。
(纯粹个人意见,可能我想错了方向,会做的同学请上传一下正确的做法)12、求解多项式x3-7x2+2x+40的根。
>> r=[1 -7 2 40];>> p=roots(r);13、符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t 的变化范围为[0,2]。
>> syms t>> ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi])14、设,求x=sym('x'); y=(sin(x))^4+(cos(x))^4;diff(y,10)15、dx x x ⎰-632)9(x=sym('x');int((sqrt((9-x^2)^3)/x^6),x)16、⎰+213xx dx x=sym('x');int(x+x^3,x,1,2)17、求级数的和: ∑∞=+122n n n sym(‘n ’);symsum(n+2/2^n,n,1,inf)18、利用函数int 计算二重不定积分x=sym('x'); y=sym('y');z=(x+y)*exp(-x*y);a=int(z,x);int(a,y)19、试求出如下极限。
(1)x x x x 1)93(lim +∞→; (2)11lim 00-+→→xy xy y x ;dxdy e y x xy ⎰⎰-+)((1)>> syms x;f=(3^x+9^x)^(1/x);l=limit(f,x,inf)l =9(2)>> syms x y;f=x*y/(sqrt(x*y+1)-1);limit(limit(f,x,0),y,0) ans =2(3)>> syms x y;f=(1-cos(x^2+y^2))*exp(x^2+y^2)/(x^2+y^2);limit(limit(f,x,0),y,0) ans =20、已知参数方程⎩⎨⎧-==t t t y t x sin cos cos ln ,试求出x y d d 和3/22d d π=t x y >> symst;x=log(cos(t));y=cos(t)-t*sin(t);diff(y,t)/diff(x,t)ans =-(-2*sin(t)-t*cos(t))/sin(t)*cos(t)>> f=diff(y,t,2)/diff(x,t,2);subs(f,t,sym(pi)/3)ans =3/8-1/24*pi*3^(1/2)21、假设⎰-=xy t t e y x f 0d ),(2,试求222222y f y x f x f y x ∂∂+∂∂∂-∂∂>> syms x y t >> s=int(exp(-t^2),t,0,x*y);>> x/y*diff(f,x,2)-2*diff(diff(f,x),y)+diff(f,y,2)ans =2*x^2*y^2*exp(-x^2*y^2)-2*exp(-x^2*y^2)-2*x^3*y*exp(-x^2*y^2)22试求出下面的极限。
(1)⎥⎦⎤⎢⎣⎡-++-+-+-∞→1)2(1161141121lim 2222n n ; (2))131211(lim 2222ππππn n n n n n n ++++++++∞→ >> syms k n;symsum(1/((2*k)^2-1),k,1,inf)ans =1/2>> limit(symsum(1/((2*k)^2-1),k,1,n),n,inf)ans =1/2(2)>> limit(n*symsum(1/(n^2+k*pi),k,1,n),n,inf)ans =123、假设一曲线数据点为x=0:2:4*pi y=sin(x).*exp(-x/5)试将x的间距调成,并用下列方法进行内插:(1)线性内插法(method=’linear’)(2)样条内插法(method=’spline’)(3)三次多项式内插法(method=’cubic’)(4)多项式拟合法:直接利用6次多项式去通过7个数据点请将这些内插法的结果及原先的数据点画在同一个图上24、(15分)某一过程中通过测量得到:编程完成以下内容:(1) 分别采用三阶和四阶多项式对数据进行拟合;(提示:采用polyfit进行多项式拟合;调用格式为p = polyfit(t,y,n),n为多项式阶数,p为得到的多项式系数)(2) 比较拟合效果,要求把图形窗口分成两个子窗口,子窗口1绘制出原始测量值和三阶多项式拟合后的曲线,子窗口2绘制出原始测量值和四阶多项式拟合后的曲线;七、(15分)t = [0 ];y = [ ]; % 1分p1 = polyfit(t,y,3); % 1分p2 = polyfit(t,y,4); % 1分x = [0::5];y1 = polyval(p1,x); % 1分y2 = polyval(p2,x); % 1分subplot(1,2,1); % subplot 语句格式写对1分plot(t,y,'o',x,y1); % 也可使用hold on命令,正确画出第一个子图 2分subplot(1,2,2);plot(t,y,'o',x,y2); % 正确画出第二个子图 2分25、阅读以下程序并在指定位置上写注释(6分)t=(0::2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,'r-',x,y,z,'bd') %___(1)_绘制一条红色连续曲线和蓝色菱形离散点view([-82,58]) %___(2)__以方位角-82度,俯角58度观察视图box on %显示坐标轴的矩形框legend('图形','视角') %__ (3)_标注图例______hold on %__(4)_保持图形_____x=-4:4;y=x;[X,Y]=meshgrid(x,y); %__(5)_生成平面网格坐标矩阵__Z=X.^2+Y.^2;surf(X,Y,Z); %__ (6)_绘制三维曲面_26、编写一个M 函数文件fun_es(x),计算如下函数:)sin(5.023/x x e y x -=,其中参数可以为标量,也可以为向量。