matlab上机练习(附答案)
matlab上机习题详细讲解-试题答案解析

学习指导参考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 上机 习题及答案

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π≤≤。
Matlab上机练习题及答案

Matlab 上机练习题及答案---------------------------------------------------------------------1、矩阵Y=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡3472123100451150425,给出元素1的全下标和单下标,并用函数练习全下标和单下标的转换,求出元素100的存储位置。
取出子矩阵⎥⎦⎤⎢⎣⎡21301,并求该矩阵的维数。
解:命令为:Y=[5,2,4;0,15,1;45,100,23;21,47,3]Y(2,3)Y(10)sub2ind([43],2,3)[i,j]=ind2sub([43],10)find(Y==100)sub2ind([43],3,2)B=Y(2:2:4,3:-2:1)或B=Y([24],[31])[m n]=size(Y)---------------------------------------------------------------------2、已知矩阵A=[10-1;241;-205],B=[0-10;213;112]求2A+B 、A 2-3B 、A*B 、B*A 、A.*B ,A/B 、A\B 解:命令为:A=[10-1;241;-205]B=[0-10;213;112]E=2*A+B F=A^2-3*B G=A*B H=B*A I=A.*B J=A/B K=A\B---------------------------------------------------------------------3、利用函数产生3*4阶单位矩阵和全部元素都为8的4*4阶矩阵,并计算两者的乘积。
解:命令为:A=eye(3,4)B=8*ones(4)C=A*B---------------------------------------------------------------------4、创建矩阵a=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------7023021.5003.120498601,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b构成矩阵d ,计算a*b 、c<d ,c&d,c|d ,~c|~d 解:命令为:a=[-1,0,-6,8;-9,4,0,12.3;0,0,5.1,-2;0,-23,0,-7]b=a(:,[12])c=a([12],:)d=b’e=a*b f=c<d g=c&d h=c|d i=~c|~d---------------------------------------------------------------------5、求!201∑=n n 解:命令文件为sum=0;s=1;for n=1:20s=n*s;sum=sum+s;end sum---------------------------------------------------------------------6、求a aa aaa aa a S n ++++=得值,其中a 是一个数字,由键盘输入,表达式中位数最多项a 的个数,也由键盘输入。
MATLAB上机答案

X
1
2
3
4
5
6
7
8
9
10
Y
16
32
70
142 260 436 682 1010 1432 1960
>> x=1:10;y=[16 32 70 142 260 436 682 1010 1432 1960];
>> p1=polyfit(x,y,1)
>>
p1 =
p2=polyfit(x,y,2),y2=polyval(p2,9.5)
0.01
0.005
0
-0.005
-0.01
-0.015
0
1
2
3
4
5
6
7
(3)大气压强 p 随高度 x 变化的理论公式为
,为验证这一公式,
测得某地大气压强随高度变化的一组数据如表所示。试用插值法和拟合法进行计算并绘图,
看那种方法较为合理,且总误差最小。
高度/m
0
300
600
1000
1500
2000
压强/Pa
equally spaced points between X1 and X2. 以 X1 为首元素,X2 为末元素平均生成 100 个元素的行向量。
LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2.
ans =
pi =
ans =
5
0
3.1416
答:3 次执行的结果不一样。exist()函数是返回变量搜索顺序的一个函数。在第一次
Matlab上机练习参考答案

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]。
Matlab上机作业部分参考答案

1
1
( x s inx )x2d x
的命
(2 ,4 .9 ) 4. 假设已知一组数据,试用插值方法绘制出 x
区间内的光滑函数曲线,比较各种值算法的优劣。
x
-2
i
-1.7
-1.4
-1.1
-0.8
-0.5
-0.2
0.1
0.4
0.7
1
1.3
y
x
i
.102 .117 .131 .144 .156 .166 .173 .177 .178 .176 .171 .163 89 41 58 83 56 22 32 5 53 35 09 02
11. 用单选框做一个如图所示的界面,通过选择不同的单选 框来决定使用不同的色彩图。
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8
0
2
4
6
8
10
12
14
假设 求
f (x ,y ) e d t
t2 0
x y
x 2 f 2 f 2 f 2 ,试 2 y x x y y2
.17853 .17635 .17109 .16302
y
x
i
1.6
i
1.9
2.2
2.5
2.8
3.1
3.4
3.7
4
4.3
4.6
4.9
.15255 .1402
.12655 .11219 .09768 .08353 .07015 .05786 .04687 .03729 .02914 .02236
y
i
【求解】用下面的语句可以立即得出给定样本点数据的三次插值与样条 插值,得出的结果如,可见,用两种插值方法对此例得出的结果几乎一 致,效果均很理想。 >> x=[-2,-1.7,-1.4,-1.1,-0.8,-0.5,-0.2,0.1,0.4,0.7,1,1.3,... 1.6,1.9,2.2,2.5,2.8,3.1,3.4,3.7,4,4.3,4.6,4.9]; y=[0.10289,0.11741,0.13158,0.14483,0.15656,0.16622,0.17332,... 0.1775,0.17853,0.17635,0.17109,0.16302,0.15255,0.1402,... 0.12655,0.11219,0.09768,0.08353,0.07019,0.05786,0.04687,... 0.03729,0.02914,0.02236]; x0=-2:0.02:4.9; y1=interp1(x,y,x0,'cubic'); y2=interp1(x,y,x0,'spline'); plot(x0,y1,':',x0,y2,x,y,'o')
matlab上机习题详解试题答案

百度文库 - 让每个人平等地提升自我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期末上机试题带答案

MATLAB 期末上机考试试题带答案版姓名:学号:成绩:1.请实现下图:50100150200250x y x=linspace(0,8*pi,250);y=sin(x);plot(x,y)area(y,-1)xlabel('x')ylabel('y')title('y=sin(x)')2.请实现下图:x=linspace(0,2*pi,100);y1=sin(x);subplot(2,2,1)plot(x,y1,'k--')grid onxlabel('x')ylabel('y')title('sin(x)')legend('y=sin(x)')y2=cos(x);subplot(2,2,2)plot(x,y2,'r--')grid onxlabel('x')ylabel('y')title('cos(x)')legend('y=cos(x)')y3=tan(x);subplot(2,2,3)plot(x,y3,'k-')grid onxlabel('x')ylabel('y')title('tan(x)')legend('y=tan(x)')y4=cot(x);subplot(2,2,4)plot(x,y4)grid onxlabel('x')ylabel('y')title('cot(x)')legend('y=cot(x)')3.解方程组:a=[321;1-13;24-4];b=[7;6;-2];x=a\b4.请实现下图:x y x=linspace(0,4*pi,1000);y1=sin(x);y2=sin(2*x);plot(x,y1,'--',x,y2,'b*')grid onxlabel('x');ylabel('y');title('耿蒙蒙')legend('sin(x)','sin(2*x)')5.请在x ,y 在(-2,2)内的z=xexp (-x 2-y 2)绘制网格图[x,y]=meshgrid(-2:0.1:2);z=x.*exp (-x.^2-y.^2);mesh(x,y,z)6.请实现peaks 函数:-33x Peaksy [x,y]=meshgrid(-3:1/8:3);z=peaks(x,y);mesh(x,y,z)surf(x,y,z)shading flataxis([-33-33-88])xlabel('x');ylabel('y');title('Peaks')7.请在x=[0,2],y=[-0.5*pi,7.5*pi],绘制光栅的振幅为0.4的三维正弦光栅。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.以下两种说法对吗?
(1)MATLAB进行数值的表达精度与其指令窗中的数据显示精度相同。
(2)MATLAB指令窗中显示的数据有效位数不超过七位。
2.历史指令窗所记录的内容与diary指令所产生的“日志”内容有什么不同?
DIARY filename causes a copy of all subsequent command window input
and most of the resulting command window output to be appended to the
named 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:15
for k=1:length(x)
z(k)=x(k)^2+2.3*x(k)^0.5;
end
x=11:15 z1=x.^2+2.3*x.^0.5
6.不使用数组算术运算符,重写下面的程序代码:
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;
end
7.某公司销售电脑打印机的价格方案如下:
()如果顾客只买一台打印机,则一台的基本价格为$150。
()如果顾客购买两台以上打印机,则第二台价格为$120。
()第三台以后,每台$110。
写一段程序分别计算出购买1--10台打印机所需的钱数。
打印机台数可以在程序开始处指定,或通过input 命令读入。
运行程序,计算出购买10台打印机的总价格。
写出程序,生成分别购买1--10台打印机所需价格的图表(使用fprintf 命令输出图表,不允许手算)。
x=1:10;
if x<=1
y(x)=150*x;
elseif x<=2
y(x)=150+120*(x-1);
else y(x)=150+120+110*(x-2);
end
y(10)
plot(x,y(x),’r*--‘)
8. 编写一个函数M 文件fun_es(x ),计算如下函数 /320.5s i n x y e x x
=- function y=es(x)
y=0.5*exp(x/3)-x.^2.*sin(x)
其中参数可以为标量,也可以为向量。
在MATLAB 里键入如下命令检验此函数:
fun_es(3)
fun_es([1 2 3])
9.定义一个矩阵 125312413m ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦
m=[1 2 5;3 1 2;4 1 3];
如何用语句input 将m 读入MATLAB ?在MATLAB 上验证此过程是否正确。
在MATLAB 上sum(m ),max(m )和min(m )的结果分别是什么?
10. 写一段程序计算 10
11n n S n ==+∑ (a) 使用一个for/end 循环,但不能使用数组运算符和sum 。
sum (a)
11. (a)写一个函数M 文件以计算方程 2
0a x b x
c ++= 的解。
规定此函数形式为 quad_rt(a,b,c ),其中a,b 和c 可以为向量。
quad_rt(a,b,c )
x1=(-b+sqrt(b.^2-4*a.*c)./(2*a),
x2=(-b-sqrt(b.^2-4*a.*c)./(2*a),
(b)用a =3,b =1,c =1检验此函数。
(c)用 a =[3 1 2],b =[1 –4 9],c =[1 3 –5] 检验此函数。
12.编写一个名为fun_xb 的M 文件以计算下面级数的和:
23
21()(1)23n x x x f x x n +=-+-+- x 和n 的值由input 给出。
与手算的x =1,n =4时的结果相比,检验此函数。
上述级数是log(1+x )的截断麦克劳林展开,当-1<x <1时,此级数收敛。
利用该知识选定一些x 值检验此函数。
例如:可取x =-0.5,0.5,n =1,2,3,5,10,20,50,将结果与log(1+x )进行比较(当x 接近-1或1时,收敛将变得越来越困难)。
13.写出下面MATLAB 程序所描述的数学表达式。
(1) for j = 1 : n (2) for j = 1 : n
for i = 1 : m y=x(j)*A(:,j)+y
y ( i ) = A ( i , j )*x ( j ) + y( i ) end
end
end
14.写出下面MATLAB 程序所描述的数学表达式。
(1)for i = 1 : m (2)
for j = 1 : n for j = 1 : m
A(i,j) =A(i,j)+ x(i )* y(j) A(:,j)=A(:,j)+y(
end end
end
15. 用一条plot 命令,在同一幅图中绘制下面两个函数的图形:
(1)(2)(4)(5),06(31)(32)(34)(35)
(2)(3)(4)(5),06(12)(13)(14)(15)x x x x y x x x x x y x ----=
≤≤--------=≤≤----
hold off 16. 绘制如下方程给出的椭圆:22(2)2(1)3x y x -+--=,把y 看做x 的函数解方程。
这样
做将得到两个方程,一个是椭圆的上半部分,另一个是椭圆的下半部分。
绘制这两个关于x 的方程,得到椭圆。
x=-4:0.01:4;
y1=-sqrt((3-(x-2).^2)/2)+x+1;
y2= sqrt((3-(x-2).^2)/2)+x+1;
plot(x,y1,’g-‘,x,y2,’r-‘)
17. 将两个设计参数x 和y 定为0<x<5和0<y<5。
产品的成本为:
22860.150f x
x y y xy =-+--+
[m,n]=find(f==min (min (f)));
x(m,n),y(m,n)
18. 用contour 命令重做上题。
P98-1
编写程序Gauss-Siedel 程序
function y=gs(A,b,x0)
D=diag(diag(A));
U=-triu(A,1);
L=-tril(A,1);
G=(D-L)\U;
f=(D-L)\b;
y=G*x0+f;
n=1;
while norm(y-x0)>=10e-6
x0=y;
y= G*x0+f;
n=n+1;
end
y
n
A=[10,-1,0;-1,10,-2;0,-2,10];
b=[9;7;6];
gs(A,b,[0;0;0])
P98-2
设流入节点流量为正,流出节点流量为负,每个节点流入流出流量之和为0,建立一个9×10的增广阵,
$$Ax+b=0$$
$$x=A\backslash-b$$
解得x=\\
P107
solve(‘(x-2)^2+(y-3+2*x)^2-5’,’2*(x-3)^2+(y/3)^2-4’,’x’,’y’)。