当前位置:文档之家› matlab上机练习(附答案)

matlab上机练习(附答案)

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’)。

相关主题